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

Oracle中歸檔模式的定義

2022-06-13   來源: Oracle 

  oracle的歸檔模式

  一查看oracle數據庫是否為歸檔模式

  select namelog_mode from v$database;

  NAME               LOG_MODE

  

  QUERY           NOARCHIVELOG

  使用ARCHIVE LOG LIST 命令

  Database log mode              No Archive Mode

  Automatic archival             Disabled

  Archive destination            /data/oracle/product//db_//dbs/arch

  Oldest online log sequence    

  Current log sequence          

  二什麼是Oracle歸檔模式?

  Oracle數據庫有聯機重做日志這個日志是記錄對數據庫所做的修改比如插入刪除更新數據等對這些操作都會記錄在聯機重做日志裡一般數據庫至少要有個聯機重做日志組當一個聯機重做日志組被寫滿的時候就會發生日志切換這時聯機重做日志組成為當前使用的日志當聯機重做日志組寫滿的時候又會發生日志切換去寫聯機重做日志組就這樣反復進行

  如果數據庫處於非歸檔模式聯機日志在切換時就會丟棄 而在歸檔模式下當發生日志切換的時候被切換的日志會進行歸檔比如當前在使用聯機重做日志寫滿的時候發生日志切換開始寫聯機重做日志這時聯機重做日志的內容會被拷貝到另外一個指定的目錄下這個目錄叫做歸檔目錄拷貝的文件叫歸檔重做日志

  數據庫使用歸檔方式運行時才可以進行災難性恢復

  歸檔日志模式和非歸檔日志模式的區別

  非歸檔模式只能做冷備份並且恢復時只能做完全備份最近一次完全備份到系統出錯期間的數據不能恢復

  歸檔模式可以做熱備份並且可以做增量備份可以做部分恢復

  用ARCHIVE LOG LIST 可以查看期模式狀態時歸檔模式還是非歸檔模式

  三配置數據庫的歸檔模式

  改變非歸檔模式到歸檔模式:

  )SQL>SHUTDOWN NORMAL/IMMEDIATE;

  )SQL>START MOUNT;

  )SQL>ALTER DATABASE ARCHIVELOG;

  )SQL>ALTER DATABASE OPEN;

  )SQL>做一次完全備份因為非歸檔日志模式下產生的備份日志對於歸檔模式已經不可用了這一步非非常重要!

  改變歸檔模式到非歸檔模式:

  )SQL>SHUTDOWN NORMAL/IMMEDIATE;

  )SQL>START MOUNT;

  )SQL>ALTER DATABASE NOARCHIVELOG;

  )SQL>ALTER DATABASE OPEN;

  啟用自動歸檔: LOG_ARCHIVE_START=TRUE

  歸檔模式下日志文件組不允許被覆蓋(重寫)當日志文件寫滿之後如果沒有進行手動歸檔那麼系統將掛起知道歸檔完成為止

  這時只能讀而不能寫

  運行過程中關閉和重啟歸檔日志進程

  SQL>ARCHIVE LOG STOP

  SQL>ARCHIVE LOG START

  手動歸檔: LOG_ARCHIVE_START=FALSE

  歸檔當前日志文件

  SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;

  歸檔序號為的日志文件

  SQL>ALTER SYSTEM ARCHIVE LOG SEQUENCE ;

  歸檔所有日志文件

  SQL>ALTER SYSTEM ARCHIVE LOG ALL;

  改變歸檔日志目標

  SQL>ALTER SYSTEM ARCHIVE LOG CURRENT TO &PATH;

  歸檔模式和非歸檔模式的轉換

  第步的逆過程

  配置多個歸檔進程

  Q:什麼時候需要使用多個歸檔進程?

  A:如果歸檔過程會消耗大量的時間那麼可以啟動多個歸檔進程這是個動態參數可以用ALTER SYSTEM動態修改

  SQL>ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=;

  Oraclei中最多可以指定個歸檔進程

  與歸檔進程有關的動態性能視圖

  v$bgprocessv$archive_processes

  配置歸檔目標多歸檔目標遠程歸檔目標歸檔日志格式

  歸檔目標 LOG_ARCHIVE_DEST_n

  本地歸檔目標:

  SQL>LOG_ARCHIVE_DEST_ = LOCATION=D:ORACLEARCHIVEDLOG;

  遠程歸檔目標:

  SQL>LOG_ARCHIVE_DEST_ = SERVICE=STANDBY_DB;

  強制的歸檔目標如果出錯秒後重試:

  SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_ = LOCATION=E:ORACLEARCHIVEDLOG MANDATORY REOPEN=;

  可選的歸檔目標如果出錯放棄歸檔:

  SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_ = LOCATION=E:ORACLEARCHIVEDLOG OPTIONAL;

  歸檔目標狀態:關閉歸檔目標和打開歸檔目標

  關閉歸檔目標

  SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_ = DEFER

  打開歸檔目標

  SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_ = ENABLE

  歸檔日志格式

  LOG_ARCHIVE_FORMAT

  獲取歸檔日志信息

  V$ARCHVIED_LOG

  V$ARCHVIE_DEST

  V$LOG_HISTORY

  V$DATABASE

  V$ARCHIVE_PROCESSES

  ARCHIVE LOG LIST;


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