RAC資料庫恢復到單例項資料庫
RAC資料庫恢復到單例項資料庫
RAC資料庫恢復到單例項資料庫的基本步驟如下:
a.準備單例項伺服器,pfile檔案,啟動到nomount
b.備份rac資料庫
c.將備份檔案複製到單例項伺服器
d.在單例項伺服器上還原、恢復
e.resetlogs開啟資料庫
f.rename redo檔名
g.disable thread 2並刪除其redo組
h.增加temp臨時表空間資料檔案
i.刪除不必要的undo表空間
業務需要(比如,測試備份)將RAC資料庫透過備份恢復到單例項伺服器;下面是實際操作步驟;測試環境:RHEL4u7、oracle 10gR2、ASM、2節點,單例項伺服器:RHEL4u7、oracle 10gR2、檔案系統;在測試環境下,RAC 資料庫檔案都在asm時,在rename file操作時會遇到了BUG問題,最後的恢復時則需要重建控制檔案;上面介紹的步驟是指沒有BUG的情況的操作;
另外,備份、複製的環節就請參考其他文件,就不介紹了,下面從第4步在單例項伺服器上還原、恢復與開啟開始介紹;
RMAN> startup nomount
RMAN> restore controlfile to '/app/oracle/oradata/ctl01.dbf' from '/app/oracle/backup/ctl_23_1_855331400';
RMAN> run{startup mount;
set until sequence 870 thread 1;
set newname for datafile 1 to '/app/oracle/oradata/system.257.779207027';
set newname for datafile 3 to '/app/oracle/oradata/sysaux.262.779207043';
set newname for datafile 4 to '/app/oracle/oradata/users.260.779207053';
set newname for datafile 2 to '/app/oracle/oradata/undotbs1.264.779207043';
set newname for datafile 15 to '/app/oracle/oradata/pptest_tbs.282.793979093';
set newname for datafile 5 to'/app/oracle/oradata/undotbs2.268.779207507';
set newname for datafile 8 to'/app/oracle/oradata/tbs_p3w.271.780396123';
set newname for datafile 9 to'/app/oracle/oradata/tbs_p4w.274.780396125';
set newname for datafile 6 to'/app/oracle/oradata/tbs_p1w.270.780396121';
set newname for datafile 7 to'/app/oracle/oradata/tbs_p2w.273.780396123';
set newname for datafile 14 to'/app/oracle/oradata/pptest_tbs.279.781454807';
restore database;
switch datafile all;
recover database;
}
sys@racdb3> alter database rename file '+DG/racdb/onlinelog/group_1.263.779207025' to '/app/oracle/oradata/redo1.log';
rename 完所有redo檔案後,即可resetlogs開啟資料庫;但是,實際操作中遇到bug7207932:Rman Restore From RAC ASM To Single Instance Non ASM Fails With ORA-00600 [kgeade_is_0] (文件 ID 1146703.1)
Bug 7207932 ORA-600 [KGEADE_IS_0] WHEN RENAMING A FILE FROM ASM TO FS
要想繞開的方法則是重建控制檔案後,再開啟資料庫
sys@racdb3> alter database backup controlfile to trace as '/tmp/ctl.trc' reuse resetlogs;
開啟trace檔案,修改裡面的logfile部分資訊;然後重啟資料庫到nomount狀態;
sys@racdb3> shutdown immediate
SQL> STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "RACDB" RESETLOGS ARCHIVELOG
MAXLOGFILES 50
MAXLOGMEMBERS 2
MAXDATAFILES 2000
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/app/oracle/oradata/group_1.263.779207025' SIZE 10M,
GROUP 2 '/app/oracle/oradata/group_2.259.779207027' SIZE 10M,
GROUP 3 '/app/oracle/oradata/group_3.258.779207027' SIZE 10M
DATAFILE
'/app/oracle/oradata/system.257.779207027',
'/app/oracle/oradata/undotbs1.264.779207043',
'/app/oracle/oradata/sysaux.262.779207043',
'/app/oracle/oradata/users.260.779207053',
'/app/oracle/oradata/undotbs2.268.779207507',
'/app/oracle/oradata/tbs_p1w.270.780396121',
'/app/oracle/oradata/tbs_p2w.273.780396123',
'/app/oracle/oradata/tbs_p3w.271.780396123',
'/app/oracle/oradata/tbs_p4w.274.780396125',
'/app/oracle/oradata/pptest_tbs.279.781454807',
'/app/oracle/oradata/pptest_tbs.282.793979093'
CHARACTER SET ZHS16GBK
;
建立完成後,用backup controlfile進行恢復;
sys@racdb3> RECOVER DATABASE USING BACKUP CONTROLFILE until cancel;
sys@racdb3>ALTER DATABASE ADD LOGFILE THREAD 2
GROUP 4 '/app/oracle/oradata/group_4.265.779207453' SIZE 10M REUSE,
GROUP 5 '/app/oracle/oradata/group_5.266.779207459' SIZE 10M REUSE,
GROUP 6 '/app/oracle/oradata/group_6.267.779207467' SIZE 10M REUSE;
sys@racdb3> alter database open resetlogs;
成功resetlogs開啟後,還需要做一些去thread 2的操作;
sys@racdb3> alter database disable thread 2;
sys@racdb3> alter database drop logfile group 4;
alter database drop logfile group 4
*
ERROR at line 1:
ORA-00350: log 4 of instance UNNAMED_INSTANCE_2 (thread 2) needs to be archived
ORA-00312: online log 4 thread 2: '/app/oracle/oradata/RACDB/onlinelog/o1_mf_4_9ym2kvgf_.log'
sys@racdb3> alter database clear unarchived logfile group 4;
sys@racdb3> alter tablespace temp add tempfile '/app/oracle/oradata/temp01.dbf' size 10M reuse;
Tablespace altered.
sys@racdb3> drop tablespace undotbs2 including contents and datafiles;來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16976507/viewspace-1251569/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 將RAC備份集恢復為單例項資料庫單例資料庫
- DM7 RAC資料庫恢復成單機資料庫資料庫
- rac恢復到單例項單例
- 【資料庫資料恢復】ASM例項不能掛載的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- oracle資料庫跨平臺(AIX)從RAC恢復至(linux)下的單例項Oracle資料庫AILinux單例
- 【資料庫資料恢復】Oracle ASM例項無法掛載的資料恢復案例資料庫資料恢復OracleASM
- 【資料庫資料恢復】SAP資料庫資料恢復案例資料庫資料恢復
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- 寶塔資料庫恢復 mysql資料庫丟失恢復 mysql資料庫刪除庫恢復 寶塔mysql資料庫恢復資料庫MySql
- mysql資料庫恢復一例MySql資料庫
- 【資料庫資料恢復】windows server下SqlServer資料庫的資料恢復資料庫資料恢復WindowsServerSQL
- 【資料庫資料恢復】如何恢復Oracle資料庫truncate表的資料資料庫資料恢復Oracle
- mysqldump 恢復單個資料庫MySql資料庫
- 【資料庫資料恢復】MS SQL資料庫附加資料庫出錯怎麼恢復資料?資料庫資料恢復SQL
- 資料庫修復資料恢復資料庫資料恢復
- 【資料庫資料恢復】Oracle資料庫誤truncate table的資料恢復案例資料庫資料恢復Oracle
- 【資料庫資料恢復】誤truncate table的Oracle資料庫資料恢復方案資料庫資料恢復Oracle
- 【資料庫資料恢復】oracle資料庫誤truncate table怎麼恢復資料?資料庫資料恢復Oracle
- 【資料庫資料恢復】linux系統下MYSQL資料庫資料恢復案例資料庫資料恢復LinuxMySql
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- 資料庫資料恢復—NTFS分割槽損壞如何恢復SqlServer資料庫資料資料庫資料恢復SQLServer
- 【資料庫資料恢復】sql server資料庫連線失效的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】Oracle資料庫ASM磁碟組掉線如何恢復資料?資料庫資料恢復OracleASM
- 【資料庫資料恢復】SqlServer資料庫無法讀取的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】MongoDB資料庫檔案損壞的資料恢復案例資料庫資料恢復MongoDB
- 伺服器資料恢復—透過拼接資料庫碎片恢復SqlServer資料庫資料的資料恢復案例伺服器資料恢復資料庫SQLServer
- 資料庫資料恢復—附加資料庫錯誤823的SQL Server資料恢復案例資料庫資料恢復SQLServer
- 資料庫資料恢復—SQLserver資料庫中勒索病毒被加密怎麼恢復資料?資料庫資料恢復SQLServer加密
- 【資料庫資料恢復】SQL Server資料庫磁碟空間不足的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】ASM磁碟組掉線的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- 【資料庫資料恢復】透過資料頁恢復Sql Server資料庫資料的過程資料庫資料恢復SQLServer
- sybase資料庫恢復資料庫
- 【資料庫資料恢復】SQL server資料庫被加密怎麼辦?如何恢復?資料庫資料恢復SQLServer加密
- Oracle 資料庫巡檢指令碼 單例項 RAC 輸出HTML格式Oracle資料庫指令碼單例HTML
- 【資料庫資料恢復】斷電導致Oracle資料庫資料丟失的資料恢復案例資料庫資料恢復Oracle
- 資料庫資料恢復-SQL SERVER資料庫MDF (NDF)或LDF損壞如何恢復資料?資料庫資料恢復SQLServer
- 資料庫資料恢復-oracle資料庫報錯無法開啟的如何恢復資料?資料庫資料恢復Oracle
- 【資料庫資料恢復】LINUX環境下ORACLE資料庫誤刪除的資料恢復資料庫資料恢復LinuxOracle
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer