我們今天主要和大家分享的是Oracle系統結構,即Oracle 實例,包括內存結構和後台進程的相關內容的描述,如果你對Oracle系統結構即Oracle 實例相關的實際操作有興趣的話,你就可以對以下的文章點擊觀看了。
1、內存結構:
(1)Oracle系統結構全局區:System Global Area(SGA) 是一塊巨大的共享內存區域,他被看做是Oracle 數據庫的一個大緩沖池,這裡的數據可以被Oracle的各個進程共用。其大小可以通過如下語句查看:
- select * from v$sga;
(2)共享池(Shared pool)
包括SQL語句緩沖(Library Cache)和數據字典緩沖區(Data Dictionary Cache)
(3)塊緩沖區高速緩存(Database Buffer Cache)
(4)重做日志緩沖區(Redo log buffer)
(5)Java程序緩沖區(Java Pool)
Java 的程序區,Oracle 8I 以後,Oracle 在內核中加入了對Java的支持。該程序緩沖區就是為Java 程序保留的。如果不用Java程序沒有必要改變該緩沖區的默認大小。
(6)大池(Large Pool)
大池的得名不是因為大,而是因為它用來分配大塊的內存,處理比共享池更大的內存,在8.0開始引入。
2、後台進程(Background process)
(1)DBWR(數據文件寫入進程):負責將更改的數據從數據庫緩沖區高速緩存寫入數據文件
(2)LGWR(日志文件寫入進程):將重做日志緩沖區中的更改寫入在線重做日志文件
(3)SMON(系統監護進程):檢查數據庫的一致性如有必要還會在數據庫打開時啟動數據庫的恢復
(4)PMON(用戶進程監護進程):負責在一個Oracle 進程失敗時清理資源
(5)CKPT(檢查點進程,同步數據文件, 日志文件,控制文件):
負責在每當緩沖區高速緩存中的更改永久地記錄在數據庫中時,更新控制文件和數據文件中的數據庫狀態信息。該進程在檢查點出現時,對全部數據文件的標題進行修改,指示該檢查點。在通常的情況下,該任務由LGWR執行。然而,如果檢查點明顯地降低Oracle系統結構性能時,可使CKPT進程運行,將原來由LGWR進程執行的檢查點的工作分離出來,
由CKPT進程實現。對於許多應用情況,CKPT進程是不必要的。只有當數據庫有許多數據文件,LGWR在檢查點時明顯地降低性能才使CKPT運行。CKPT進程不將塊寫入磁盤,該工作是由DBWR完成的。 init.ora文件中 CHECKPOINT_PROCESS 參數控制CKPT進程的使能或使不能。缺省時為FALSE,即為使不能。
(6)歸檔進程:在每次日志切換時把已滿的日志組進行備份或歸檔
(7)服務進程:用戶進程服務。
(8)用戶進程:在客戶端,負責將用戶的SQL語句傳遞給服務進程,並從服務器段拿回查詢數據。
二、Oracle數據庫的組成——物理操作Oracle系統結構文件的集合。
主要包括以下幾種。
1、控制文件(參數文件init.ora記錄了控制文件的位置)
2、數據文件(數據文件的詳細信息記載在控制文件中)
可以通過如下方式查看數據文件
- select name from v$datafile;
i.Oracle 系統結構數據文件(system_01.dbf)
ii. 回滾段文件(rbs_01.dbf)
iii. 臨時數據文件(temp_01.dbf)
iv. 用戶數據文件(/applsys_data_01.dbf ,applsys_indx_01.dbf)
3、重做日志文件(聯機重做日志)
i. 增加日志組
ii. 增大日志文件成員大小
通過v$log可以查看日志組,v$logfile可以查看具體的成員文件。
(1)查看數據文件: SQL> select * from v$datafile;
(2)查看控制文件: SQL> select * from v$controlfile;
(3)查看日志文件: SQL> select * from v$logfile;
4、歸檔日志文件
5、初始化參數文件
6、其他文件
i . 密碼文件
用於Oracle 的具有sysdba權限用戶的認證.
ii. 日志文件
報警日志文件(alert.log或alrt.ora)
後台或用戶跟蹤文件
以上的相關內容就是對Oracle系統結構的部分內容的介紹,望你能有所收獲。