1.歸檔日志模式和非歸檔日志模式的區別
非歸檔模式只能做冷備份,并且恢復時只能做完全備份.最近一次完全備份到系統出錯期間的數據不能恢復.
歸檔模式可以做熱備份,并且可以做增量備份,可以做部分恢復.
用ARCHIVE LOG LIST 可以查看期模式狀態時歸檔模式還是非歸檔模式.
2.配置數據庫的歸檔模式
改變非歸檔模式到歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE ARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
5)SQL>做一次完全備份,因為非歸檔日志模式下產生的備份日志對于歸檔模式已經不可用了.這一步非非常重要!
改變歸檔模式到非歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START 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:\ORACLE\ARCHIVEDLOG";
遠程歸檔目標:
SQL>LOG_ARCHIVE_DEST_2 = "SERVICE=STANDBY_DB1";
強制的歸檔目標,如果出錯,600秒后重試:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_4 = "LOCATION=E:\ORACLE\ARCHIVEDLOG MANDATORY REOPEN=600";
可選的歸檔目標,如果出錯,放棄歸檔:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_3 = "LOCATION=E:\ORACLE\ARCHIVEDLOG 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$ARCHVIED_LOG
V$ARCHVIE_DEST
V$LOG_HISTORY
V$DATABASE
V$ARCHIVE_PROCESSES
ARCHIVE LOG LIST;