1、 sql
重作日誌文件把對數據文件的修改在寫入數據文件以前記錄下來。日誌文件以一種循環的方式被寫入信息。當一個日誌組被寫滿時,回自動向另外一個日誌組寫入。管理員能夠手工切換當前日誌組。alter system switch logfile 能夠切換當前的日誌組。當日志組發生切換時,oracle向新的重作日誌組分配一個日誌序列號。當存在大量的事務時必須調整重作日誌文件的大小,以免頻繁的日誌切換髮生。重作日誌文件被順序的寫在磁盤上,若是磁盤沒有其餘活動,I/O將會很快。應該把重作日誌文件保存在 單獨的磁盤上,以獲取良好的性能。尤爲不要把常常處於活動狀態的SYSTEM,UNDOTBS,SYSAUX的表空間或索引表空間文件保存到同一塊磁盤上。由於只有在事務的請求被寫到重作日誌後,請求才能被完成。最大限度的提升重作日誌的吞吐量是oracle性能優化首先考慮的因素。當發生重作日誌切換而生成 一個新的檢查點時,DBWn就會寫髒緩衝器塊。這樣會影響oracle的性能。能夠經過fast_start_mttr_target初始化參數來調整檢查點。 數據庫
每一個數據庫都有本身的聯機重作日誌組,一個聯機重作日誌組有多個重作日誌成員,每一個日誌成員有單獨的操做系統文件。在一個rac配置(這種配置中單個數據庫裝有多個實例),每一個實例有一個聯機重作日誌線程,每一個實例的lgwr進程都寫到相同的聯機重作日誌文件。所以oracle必須跟蹤數據庫實例修改來自那個實例。 性能優化
當多路複用重作日誌文件時,應該把一個組的成員保存在不一樣的磁盤上。以免單點故障的發生。若是重作日誌文件組的全部成員都沒法寫入數據,oracle將被掛起。Dba能夠在建立數據庫時建立多個聯機重作日誌文件的副本。 服務器
對日誌的操做以下: oracle
a. 建立新的重作日誌組: 性能
Alter database add logfile 優化
Group 3 (‘/ora02/oradata/mydb01/redo0301.log’, spa
’/ora03/oradata/mdb01/redo0302.log’) size 10m; 操作系統
若是省略group子句,oracle分配一個有效的編號,以下: 線程
Alter database add logfile
b. 添加新的組成員:
alter database add logfile member
‘/ora04/oradata/mydb01/redo0203.log’ to group 2;(向第二組中添加新的成員)
c.重命名日誌成員:
在重命名日誌組成員以前新的目標必須已經存在。Oracle的sql命令只是把控制文件中的內部指針指向新的日誌文件。Dba須要用操做系統命令來重命名此日誌文件。步驟以下:
1.關閉數據庫
2.使用操做系統命令重命名或移動日誌文件
3. 啓動數據庫實例(start mount),重命名控制文件中的日誌文 件成員。Alter database rename file ‘old_redo_file_name’ to ‘new_redo_file_name’;
4.打開數據庫 alter database open
5.備份控制文件
D.刪除重作日誌組:
將要被刪除的重作日誌組不能是活動的日誌組。Alter database drop logfile group 3;。當重作日誌文件被刪除後,相關的操做系統文件也被刪除,相關的數據庫控制文件也給更新。
E.使用和刪除重作日誌組相同的方式,dba能夠只刪除一個非活動的重作日誌組的成員。
Alter database drop logfile member ‘/ora04/oradata/mydb01/redo0203.log’;
f. 建立聯機重作日誌文件:
當重作日誌組成員遭到破壞時,能夠刪除並從新添加這個重作日誌組或組成員。
2、
檔案重作日誌文件:
它是聯機重作日誌文件的一個副本。Lgwr和arcn進程的故障都會引發數據庫的掛起。只有當arcn進程把聯機重作日誌寫到歸檔地後,才能夠向此重作日誌組成員寫入數據。
設置歸檔目的地:
能夠在參數初始化文件中的log_archive_dest_n來定義歸檔目的地。歸檔目的地能夠在本地計算機上,也可在遠程的數據庫服務器上。定義語法以下:
LOG_ARCHIVE_DEST_n= 「null_string」 |
(service=tnsnames_name |
LOCATION= ‘directory_name’)
[MANDATORY | OPTIONAL]
[REOPEN[=integer]]
例1:
LOG_ARCHIVE_DEST_1=((LOCATION=’/archive/MYDB01’) MANDATORU REOPEN=60)定義歸檔日誌的位置爲/archive/MYDB01,mandatory子句的定義向這個位置寫日誌的操做必須的成功的。Reopen子句定義在日誌寫入失敗時,下次嘗試寫入操做的時間間隔。缺省是300秒。
例2:
LOG_ARCHIVE_DEST_@=(SERVICE=STDBY01) OPTIONAL REOPEN;語句中的stdby01的鏈接到遠程數據庫的oracle net鏈接串。因爲寫操做是可選的,因此數據庫活動繼續,當arcn進程不能寫檔案日誌文件時,進程將當即嘗試從新寫入(這個動做有reopen子句來定義)。
Log_archive_min_succeed_dest:定義最少歸檔日誌的副本數量。
Log_archive_format:定義歸檔日誌文件採用的名稱和使用的格式。可使用預約義變量來構造每一個歸檔日誌文件的名稱。變量以下:
%s 日誌序列號
%t 線程號
%r 復位日誌id
%d 數據庫id
定義歸檔日誌名稱的變量至少包含%s,%t,%r,當多個數據庫實例的歸檔日誌採用相同的歸檔日誌位置時,還必須定義%d。例如:%t_%s_%r.dbf