oracle 10g簡單的歸檔、備份及恢復

開啓歸檔
--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當前日誌,用這個當前日誌去做恢復

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章