【DB筆試面試736】在Oracle中,RAC數據庫在備份恢復時有哪些步驟?
- 2020 年 2 月 24 日
- 筆記
題目部分
在Oracle中,RAC數據庫在備份恢復時有哪些步驟?
♣
答案部分
RAC數據庫的備份和恢復與單實例的數據庫的備份和恢復基本上沒有區別,其恢復過程基本上就是先恢復spfile,再還原控制文件,最後做數據庫文件的RESTORE和RECOVER。需要注意的是,在RAC中,歸檔文件需要放在共享存儲上,需要讓集群的所有節點都可以訪問的到。
RAC數據庫的備份可以使用如下的腳本:
run { allocate channel c1 type disk; allocate channel c2 type disk; backup database format '/home/oracle/rman_back/full_%n_%T_%t_%s_%p.bak'; sql 'alter system archive log current'; backup archivelog all format '/home/oracle/rman_back/arch_%d_%T_%s_%p.bak' delete input; backup current controlfile format '/home/oracle/rman_back/ctl_%d_%T_%s_%p.bak'; release channel c1; release channel c2; }
RAC數據庫的恢復過程中常用的命令如下所示:
ORACLE_SID=LHRRAC1 startup nomount; restore spfile to '+DATA/lhrrac1/spfilelhrrac1.ora' from '/home/oracle/rman_back/full_LHRRAC1x_20180711_981219654_4_1.bak'; startup nomount force; restore controlfile from '/home/oracle/rman_back/ctl_LHRRAC1_20180711_7_1.bak'; set line 9999 pagesize 9999 col FILE_NAME format a60 select 'datafile' file_type, file#,name FILE_NAME,status,enabled from v$datafile union all select 'tempfile',file#,name FILE_NAME,status,enabled from v$tempfile union all select 'logfile',group# file#,member FILE_NAME,status,'' from v$logfile union all select 'controlfile', to_number('') ,name FILE_NAME,status,'' from v$controlfile; alter database mount; restore database; list backupset of archivelog all; RUN { set until sequence 10 thread 1; set until sequence 7 thread 2; recover database; } alter database open resetlogs;
最後在節點2執行startup操作。
& 說明:
有關RAC添加和刪除節點的更多內容可以參考我的BLOG:http://blog.itpub.net/26736162/viewspace-1682237/。
本文選自《Oracle程序員面試筆試寶典》,作者:小麥苗