熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle歸檔模式的命令及參數說明

2013-11-13 16:01:28  來源: Oracle 

  Oracle數據庫能運行在種模式下:歸檔模式(archivelog)和非歸檔模式(noarchivelog)歸檔模式能提高Oracle數據庫的可恢復性生產數據庫都應該運行在此模式下歸檔模式應該和相應的備份策略相結合只有歸檔模式沒有相應的備份策略只會帶來麻煩

  檢查歸檔模式命令

  SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence Current log sequence

  設置歸檔模式

  SQL> shutdown immediate; Database closed Database dismounted ORACLE instance shut down SQL> startup mount ORACLE instance started Total System Global Area bytes Fixed Size bytes Variable Size bytes Database Buffers bytes Redo Buffers bytes Database mounted SQL> alter database archivelog; Database altered SQL> alter database open; Database altered SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence Next log sequence to archive Current log sequence

  如果需要停止歸檔模式使用alter database noarchivelog 命令Oracleg之前你還需要修改初始化參數使數據庫處於自動歸檔模式在pfile/spfile中設置如下參數

  log_archive_start = true

  重啟數據庫此參數生效此時數據庫處於自動歸檔模式也能在數據庫啟動過程中手工執行

  archive log start

  使數據庫啟用自動歸檔不過重啟後數據庫仍然處於手工歸檔模式g使用db_recovery_file_dest來作為歸檔日志的存放地

  SQL> show parameter db_recovery NAME TYPE VALUE db_recovery_file_dest string /home/oracle/orag/flash_reco very_area/ db_recovery_file_dest_size big integer G

  能修改db_recovery_file_dest_size參數的大小

  alter system set db_recovery_file_dest_size=

  一

  重做日志文件把對數據文件的修改在寫入數據文件之前記錄下來日志文件以一種循環的方式被寫入信息當一個日志組被寫滿時回自動向另一個日志組寫入管理員可以手工切換當前日志組alter system switch logfile 可以切換當前的日志組當日志組發生切換時oracle向新的重做日志組分配一個日志序列號當存在大量的事務時必須調整重做日志文件的大小以避免頻繁的日志切換發生重做日志文件被順序的寫在磁盤上如果磁盤沒有其他活動I/O將會很快應該把重做日志文件保存在單獨的磁盤上以獲取良好的性能尤其不要把經常處於活動狀態的SYSTEMUNDOTBSSYSAUX的表空間或索引表空間文件保存到同一塊磁盤上因為只有在事務的請求被寫到重做日志後請求才能被完成最大限度的提高重做日志的吞吐量是oracle性能優化首先考慮的因素當發生重做日志切換而生成一個新的檢查點時DBWn就會寫髒緩沖器塊這樣會影響oracle的性能可以通過fast_start_mttr_target初始化參數來調整檢查點

  每個數據庫都有自己的聯機重做日志組一個聯機重做日志組有多個重做日志成員每個日志成員有單獨的操作系統文件在一個rac配置(這種配置中單個數據庫裝有多個實例)每個實例有一個聯機重做日志線程每個實例的lgwr進程都寫到相同的聯機重做日志文件因此oracle必須跟蹤數據庫實例修改來自那個實例

  當多路復用重做日志文件時應該把一個組的成員保存在不同的磁盤上以避免單點故障的發生如果重做日志文件組的所有成員都無法寫入數據oracle將被掛起Dba可以在創建數據庫時創建多個聯機重做日志文件的副本

  對日志的操作如下

  a 創建新的重做日志組

  Alter database add logfile

  Group (/ora/oradata/mydb/redolog

  /ora/oradata/mdb/redolog) size m;

  如果省略group子句oracle分配一個有效的編號如下

  Alter database add logfile

  b 添加新的組成員

  alter database add logfile member

  /ora/oradata/mydb/redolog to group ;(向第二組中添加新的成員)

  c重命名日志成員

  在重命名日志組成員之前新的目標必須已經存在Oracle的sql命令只是把控制文件中的內部指針指向新的日志文件Dba需要用操作系統命令來重命名此日志文件步驟如下

  .關閉數據庫

  .使用操作系統命令重命名或移動日志文件

   啟動數據庫實例(start mount)重命名控制文件中的日志文        件成員Alter database rename file         old_redo_file_name to new_redo_file_name;

  .打開數據庫 alter database open

  .備份控制文件

  D.刪除重做日志組

  將要被刪除的重做日志組不能是活動的日志組Alter database drop logfile group ;當重做日志文件被刪除後相關的操作系統文件也被刪除相關的數據庫控制文件也給更新

  E.使用和刪除重做日志組相同的方式dba可以只刪除一個非活動的重做日志組的成員

  Alter database drop logfile member /ora/oradata/mydb/redolog;

  f 創建聯機重做日志文件

  當重做日志組成員遭到破壞時可以刪除並重新添加這個重做日志組或組成員

  二

  檔案重做日志文件

  它是聯機重做日志文件的一個副本Lgwr和arcn進程的故障都會引起數據庫的掛起只有當arcn進程把聯機重做日志寫到歸檔地後才可以向此重做日志組成員寫入數據

  設置歸檔目的地

  可以在參數初始化文件中的log_archive_dest_n來定義歸檔目的地歸檔目的地可以在本地計算機上也可在遠程的數據庫服務器上定義語法如下

  LOG_ARCHIVE_DEST_n= null_string |

  (service=tnsnames_name |

  LOCATION= directory_name)

  [MANDATORY | OPTIONAL]

  [REOPEN[=integer]]

  例

  LOG_ARCHIVE_DEST_=((LOCATION=/archive/MYDB) MANDATORU REOPEN=)定義歸檔日志的位置為/archive/MYDBmandatory子句的定義向這個位置寫日志的操作必須的成功的Reopen子句定義在日志寫入失敗時下次嘗試寫入操作的時間間隔缺省是

  例

  LOG_ARCHIVE_DEST_@=(SERVICE=STDBY) OPTIONAL REOPEN;語句中的stdby的連接到遠程數據庫的oracle net連接串由於寫操作是可選的所以數據庫活動繼續當arcn進程不能寫檔案日志文件時進程將立即嘗試重新寫入(這個動作有reopen子句來定義)

  Log_archive_min_succeed_dest:定義最少歸檔日志的副本數量

  Log_archive_format:定義歸檔日志文件采用的名稱和使用的格式可以使用預定義變量來構造每個歸檔日志文件的名稱變量如下

  %s      日志序列號

  %t      線程號

  %r      復位日志id

  %d      數據庫id

  定義歸檔日志名稱的變量至少包含%s%t%r當多個數據庫實例的歸檔日志采用相同的歸檔日志位置時還必須定義%d例如%t_%s_%rdbf


From:http://tw.wingwit.com/Article/program/Oracle/201311/17689.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.