查看oracle數據庫是否爲歸檔模式啓動

  [1]

  1.select name,log_mode from v$database;

   NAME LOG_MODE

   ------------------ ------------------------

   QUERY NOARCHIVELOG

   2.使用ARCHIVE LOG LIST 命令

   Database log mode No Archive Mode

   Automatic archival Disabled

   Archive destination /data/oracle/product/10.2.0/db_1//dbs/arch

   Oldest online log sequence 739

   Current log sequence 741

 什麼是Oracle歸檔模式

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

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

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

   1.歸檔日誌模式和非歸檔日誌模式的區別

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

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

   用ARCHIVE LOG LIST 可以查看當前模式狀態是歸檔模式還是非歸檔模式.

配置數據庫的歸檔模式

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

   1)SQL> conn / as sysdba (以DBA身份連接數據庫)

   2)SQL> shutdown immediate; (立即關閉數據庫)

   3)SQL> startup mount (啓動實例並加載數據庫,但不打開)

   4)SQL> alter database archivelog; (更改數據庫爲歸檔模式)

   5)SQL> alter database open; (打開數據庫)

   6)SQL> alter system archive log start; (啓用自動歸檔)

   7)SQL> exit (退出)

 

  做一次完全備份,因爲非歸檔日誌模式下產生的備份日誌對於歸檔模式已經不可用了.這一步非非常重要!

 

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

 

  1)SQL>SHUTDOWN NORMAL/IMMEDIATE;

 

  2)SQL>STARTUP MOUNT;

 

  3)SQL>ALTER DATABASE NOARCHIVELOG;

 

  4)SQL>ALTER DATABASE OPEN;

 

  3.啓用自動歸檔: LOG_ARCHIVE_START=TRUE

 

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

 

  這時只能讀而不能寫.

 

  運行過程中關閉和重啓歸檔日誌進程

 

  SQL>ARCHIVE LOG STOP

 

  SQL>ARCHIVE LOG START

 

  4.手動歸檔: LOG_ARCHIVE_START=FALSE

 

  歸檔當前日誌文件

 

  SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;

 

  歸檔序號爲052的日誌文件

 

  SQL>ALTER SYSTEM ARCHIVE LOG SEQUENCE 052;

 

  歸檔所有日誌文件

 

  SQL>ALTER SYSTEM ARCHIVE LOG ALL;

 

  改變歸檔日誌目標

 

  SQL>ALTER SYSTEM ARCHIVE LOG CURRENT TO '&PATH';

 

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

 

  第4步的逆過程.

 

  6.配置多個歸檔進程

 

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

 

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

 

  SQL>ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=10;

 

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

 

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

 

  v$bgprocess,v$archive_processes

 

  7.配置歸檔目標,多歸檔目標,遠程歸檔目標,歸檔日誌格式

 

  歸檔目標 LOG_ARCHIVE_DEST_n

 

  本地歸檔目標:

 

  SQL>LOG_ARCHIVE_DEST_1 = "LOCATION=D:ORACLEARCHIVEDLOG";

 

  遠程歸檔目標:

 

  SQL>LOG_ARCHIVE_DEST_2 = "SERVICE=STANDBY_DB1";

 

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

 

  SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_4 = "LOCATION=E:ORACLEARCHIVEDLOG MANDATORY REOPEN=600";

 

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

 

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

 

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

 

  關閉歸檔目標1

 

  SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = DEFER

 

  打開歸檔目標2

 

  SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE

 

  歸檔日誌格式

 

  LOG_ARCHIVE_FORMAT

 

  8.獲取歸檔日誌信息

 

  V$ARCHIVED_LOG

 

  V$ARCHIVE_DEST

 

  V$LOG_HISTORY

 

  V$DATABASE

 

  V$ARCHIVE_PROCESSES

 

  ARCHIVE LOG LIST;

發佈了13 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章