[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;