--alter system set log_archive_start=true scope=spfile;--啓用主動歸檔
--alter system reset log_archive_start scope=spfile sid='*';--重置 10g這個參數廢棄,設置以後報錯32004
--alter system set log_archive_dest='E:\oracle\product\10.2.0\oradata\arch' scope=spfile;--設置歸檔路徑
10g如果只設置一個歸檔目錄,可以用上面的方式,注意沒有location
如果多個歸檔目錄,不能設置這個dest。
alter system set log_archive_dest_1='location=E:\oracle\product\10.2.0\oradata\arch\arch1' scope=spfile;--設置歸檔目錄
--alter system set log_archive_dest_2='location=E:\oracle\product\10.2.0\oradata\arch2' scope=spfile; --如果歸檔到兩個位置,則可以通過上邊方法實現
alter system set log_archive_format='arch_%d_%t_%r_%s.log' scope=spfile;
如果設置不正確,啓動報錯,原來的spfile可能要刪掉,然後:
create spfile from pfile='E:\oracle\product\10.2.0\db_1\admin\orcl\pfile\init.ora.6142013112438';
這樣在database下生成一個spfile,然後正常啓動,重新設置歸檔參數
設置成功後,關閉數據庫,用mount啓動,alter database archivelog;歸檔成功。
archive log list;查看歸檔狀態。
alter system switch logfile;立即將重做日誌歸檔
然後在E:\oracle\product\10.2.0\oradata\arch這個目錄下面會生成一個歸檔文件。文件名類似ARCH1ARCH_5061743D_1_820783296_14.LOG
====================================================================================
RMAN
cmd輸入命令rman,前提是ORACLE BIN環境變量已設置。
RMAN> connect target 連接到本地
已連接到目標數據庫: ORCL (DBID=1348564029, 未打開)
RMAN> backup database format 'E:\oracle\backup\_%U'; 備份數據庫到指定目錄
然後在目錄下會生成一些無後綴文件。如_03OEVO5S_1_1
備份歸檔日誌:
備份歸檔日誌報錯找不到文件,原因是有些日誌文件被刪除過 參考:http://blog.csdn.net/changyanmanman/article/details/7598856
執行change archivelog all crosscheck;
再重新執行backup database archivelog all delete input format 'e:\oracle\backup\_%U';自動刪除原歸檔日誌
模擬數據文件丟失。
殺ORACLE進程,刪除ht.dbf數據庫文件開啓服務,實例啓動正常,監聽服務無法啓動,監聽啓動後停留在處理中的狀態。
連接rman
rman>restore database; 恢復數據庫
然後監聽可以啓動。但是打開數據庫報錯。
SQL> alter database open;
alter database open
*
第 1 行出現錯誤:
ORA-01113: 文件 1 需要介質恢復
ORA-01110: 數據文件 1: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'
利用重做日誌恢復。
指定日誌目錄。必須是current日誌。
SQL> recover database using backup controlfile;
ORA-00279: 更改 692188 (在 07/17/2013 15:33:49 生成) 對於線程 1 是必需的
ORA-00289: 建議: E:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\ARCH1ARCH_5061743D_1_820783296_16.LOG
ORA-00280: 更改 692188 (用於線程 1) 在序列 #16 中
指定日誌: {<RET>=suggested | filename | AUTO | CANCEL}
控制檯輸入
E:\oracle\product\10.2.0\oradata\orcl\REDO01.LOG
ORA-00310: 歸檔日誌包含序列 14; 要求序列 16
ORA-00334: 歸檔日誌: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'
SQL> recover database using backup controlfile;
ORA-00279: 更改 692188 (在 07/17/2013 15:33:49 生成) 對於線程 1 是必需的
ORA-00289: 建議: E:\ORACLE\PRODUCT\10.2.0\ORADATA\ARCH\ARCH1ARCH_5061743D_1_820783296_16.LOG
ORA-00280: 更改 692188 (用於線程 1) 在序列 #16 中
指定日誌: {<RET>=suggested | filename | AUTO | CANCEL}
控制檯輸入
E:\oracle\product\10.2.0\oradata\orcl\REDO03.LOG
已應用的日誌。
完成介質恢復。
SQL> alter database open resetlogs;
數據庫已更改。
SQL>
正常了。
這裏重做日誌文件可以查v$log當前日誌,用這個當前日誌去做恢復