RAC恢復到單例項節點上

shilei1發表於2014-09-05

簡單說明: 

版本:11.2.0.3 

平臺:linux-x86-64    win7-64bit 

例項: bdstar1bdstar2   還原到bdstar 參考:三思筆記資料庫備份與恢復 

2 windows平臺系統恢復環境建立 

建立例項:oradim -new -sidbdstar 編寫一個簡單的引數檔案: 

*.audit_file_dest='E:\app\Administrator\admin\bdstar\adump' *.audit_trail='db' 

*.compatible='11.2.0.0.0' 

*.control_files='E:\app\Administrator\oradata\bdstar\control01.ctl' *.db_block_size=8192 *.db_domain='' *.db_name='bdstar' 

*.dispatchers='(PROTOCOL=TCP) (SERVICE=bdstarXDB)' *.nls_language='SIMPLIFIED CHINESE' *.nls_territory='CHINA' *.open_cursors=300 

*.pga_aggregate_target=184549376 *.processes=150 

*.remote_login_passwordfile='exclusive' *.sga_target=553648128 

*.undo_tablespace='UNDOTBS1' 

bdstar.__oracle_base='E:\app\Administrator'#ORACLE_BASE set from environment  

控制檔案的建立 

set oracle_sid=bdstar    --設定環境變數  

C:\Users\Administrator>sqlplus / as sysdba  

SQL*Plus: Release 11.2.0.3.0 Production on 星期二 9 11 10:02:23 2012  

Copyright (c) 1982, 2011, Oracle.  All rights reserved.  

已連線到空閒例程。  

SQL>startupnomount 

ORACLE 例程已經啟動。

Total System Global Area  551165952 bytes Fixed Size                  2257072 bytes Variable Size             171970384 bytes Database Buffers          369098752 bytes Redo Buffers                7839744 bytes SQL> create spfile from pfile;  

--轉入到RMAN還原控制檔案  

RMAN > set dbid=165487523    --dbid可是從備份檔案的log日誌獲得  

--linux中將備份全部複製到windows下的d:\oraback\  

RMAN > restore controfile from 'd:\oraback\1_32_793037884.dbf'   --該檔案為linuxracautobackup control檔案  

RMAN > alter database  mount   

--下面就可以看到RAC資料庫中的一些基本情況了,根據這些基本情況進行還原  

SQL>  selectfile#,name from v$datafile;  

     FILE# ---------- NAME 

--------------------------------------------------------------------------------  

         1 

+DATA/bdstar/datafile/system.256.793037767  

         2 

+DATA/bdstar/datafile/sysaux.257.793037769  

         3 

+DATA/bdstar/datafile/undotbs1.258.793037769   

     FILE# ---------- NAME 

+DATA/bdstar/datafile/users.259.793037771  

         5 

+DATA/bdstar/datafile/undotbs2.264.793038149  

         6 

+DATA/bdstar/datafile/tbs_spotlight.268.793381581   

已選擇6行。  

SQL>  selectfile#,name from v$tempfile;  

     FILE# ---------- NAME 

--------------------------------------------------------------------------------  

         1 

+DATA/bdstar/tempfile/temp.263.793037901   

SQL>  select member from v$logfile;  

MEMBER 

--------------------------------------------------------------------------------  

+DATA/bdstar/onlinelog/group_2.262.793037887 +DATA/bdstar/onlinelog/group_1.261.793037885 +DATA/bdstar/onlinelog/group_3.265.793038337 +DATA/bdstar/onlinelog/group_4.266.793038339  

恢復資料檔案 

 

--載入你的備份,使RMAN識別你的備份集 

RMAN>catalogbackuppiece 'd:\oraback\cre0_16_793617290.db';  

已將備份片段列入目錄 

備份片段控制程式碼=D:\ORABACK\CRE0_16_793617290.DB RECID=10 STAMP=793646472

RMAN>catalogbackuppiece 'd:\oraback\cre0_17_793617290.db';  

已將備份片段列入目錄 

備份片段控制程式碼=D:\ORABACK\CRE0_17_793617290.DB RECID=11 STAMP=793646486  

RMAN>catalogbackuppiece 'd:\oraback\cre0_18_793617292.db';  

已將備份片段列入目錄 

備份片段控制程式碼=D:\ORABACK\CRE0_18_793617292.DB RECID=12 STAMP=793646496  

RMAN>catalogbackuppiece 'd:\oraback\cre0_19_793617316.db';  

已將備份片段列入目錄 

備份片段控制程式碼=D:\ORABACK\CRE0_19_793617316.DB RECID=13 STAMP=793646514  

RMAN>catalogbackuppiece 'd:\oraback\cre0_23_793617422.arc';  

已將備份片段列入目錄 

備份片段控制程式碼=D:\ORABACK\CRE0_23_793617422.ARC RECID=14 STAMP=793646540  

RMAN>catalogbackuppiece 'd:\oraback\cre0_24_793617499.arc';  

已將備份片段列入目錄 

備份片段控制程式碼=D:\ORABACK\CRE0_24_793617499.ARC RECID=15 STAMP=793646554  

--將資料檔案恢復到新的位置 RMAN>run{ 

2> set newname for datafile 1 to 'E:\app\Administrator\oradata\bdstar\system.dbf '; 

3> set newname for datafile 2 to 'E:\app\Administrator\oradata\bdstar\sysaux.dbf '; 

4> set newname for datafile 3 to 'E:\app\Administrator\oradata\bdstar\undotbs1.d bf'; 

5> set newname for datafile 4 to 'E:\app\Administrator\oradata\bdstar\users.dbf' ; 

6> set newname for datafile 5 to 'E:\app\Administrator\oradata\bdstar\undotbs2.d bf'; 

7> set newname for datafile 6 to 'E:\app\Administrator\oradata\bdstar\tbs_spotli ght.dbf';

8> set newname for tempfile 1 to 'E:\app\Administrator\oradata\bdstar\temp01.dbf '; 

9> restore database; 

10> switch datafile all; 

11> switch tempfile all; 

12> }  

正在執行命令: SET NEWNAME  

正在執行命令: SET NEWNAME  

正在執行命令: SET NEWNAME  

正在執行命令: SET NEWNAME  

正在執行命令: SET NEWNAME  

正在執行命令: SET NEWNAME  

正在執行命令: SET NEWNAME  

啟動 restore  10-9 -12 使用通道 ORA_DISK_1  

資料檔案 2 已經還原到檔案 E:\app\Administrator\oradata\bdstar\sysaux.dbf  資料檔案 4 已經還原到檔案 E:\app\Administrator\oradata\bdstar\users.dbf  通道 ORA_DISK_1: 正在開始還原資料檔案備份集 

通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案 通道 ORA_DISK_1: 將資料檔案 00001 還原到 E:\app\Administrator\oradata\bdstar\sys tem.dbf 

通道 ORA_DISK_1: 將資料檔案 00005 還原到 E:\app\Administrator\oradata\bdstar\und otbs2.dbf 

通道 ORA_DISK_1: 正在讀取備份片段 D:\ORABACK\CRE0_16_793617290.DB 

通道 ORA_DISK_1: 段控制程式碼 = D:\ORABACK\CRE0_16_793617290.DB 標記 = LEVEL_0 

通道 ORA_DISK_1: 已還原備份片段 1 

通道 ORA_DISK_1: 還原完成用時: 00:00:35 

通道 ORA_DISK_1: 正在開始還原資料檔案備份集 

通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案 通道 ORA_DISK_1: 將資料檔案 00003 還原到 E:\app\Administrator\oradata\bdstar\undotbs1.dbf 

通道 ORA_DISK_1: 將資料檔案 00006 還原到 E:\app\Administrator\oradata\bdstar\tbs _spotlight.dbf 

通道 ORA_DISK_1: 正在讀取備份片段 D:\ORABACK\CRE0_17_793617290.DB 

通道 ORA_DISK_1: 段控制程式碼 = D:\ORABACK\CRE0_17_793617290.DB 標記 = LEVEL_0 

通道 ORA_DISK_1: 已還原備份片段 1 

通道 ORA_DISK_1: 還原完成用時: 00:00:03 完成 restore  10-9 -12  

資料檔案 1 已轉換成資料檔案副本 

輸入資料檔案副本 RECID=7 STAMP=793646621 檔名=E:\APP\ADMINISTRATOR\ORADATA\BDS TAR\SYSTEM.DBF 

資料檔案 2 已轉換成資料檔案副本 

輸入資料檔案副本 RECID=8 STAMP=793646621 檔名=E:\app\Administrator\oradata\bds tar\sysaux.dbf 

資料檔案 3 已轉換成資料檔案副本 

輸入資料檔案副本 RECID=9 STAMP=793646621 檔名=E:\APP\ADMINISTRATOR\ORADATA\BDS TAR\UNDOTBS1.DBF 

資料檔案 4 已轉換成資料檔案副本 

輸入資料檔案副本 RECID=10 STAMP=793646621 檔名=E:\app\Administrator\oradata\bd star\users.dbf 

資料檔案 5 已轉換成資料檔案副本 

輸入資料檔案副本 RECID=11 STAMP=793646621 檔名=E:\APP\ADMINISTRATOR\ORADATA\BD STAR\UNDOTBS2.DBF 

資料檔案 6 已轉換成資料檔案副本 

輸入資料檔案副本 RECID=12 STAMP=793646621 檔名=E:\APP\ADMINISTRATOR\ORADATA\BD STAR\TBS_SPOTLIGHT.DBF  

臨時檔案 1 在控制檔案中已重新命名為 

E:\app\Administrator\oradata\bdstar\temp01.dbf   

RMAN> recover database 2> 

啟動 recover  10-9 -12 使用通道 ORA_DISK_1  

正在開始介質的恢復  

通道 ORA_DISK_1: 正在開始將歸檔日誌還原到預設目標 通道 ORA_DISK_1: 正在還原歸檔日誌 歸檔日誌執行緒=2 序列=26 

通道 ORA_DISK_1: 正在讀取備份片段 D:\ORABACK\CRE0_23_793617422.ARC 

通道 ORA_DISK_1: 段控制程式碼 = D:\ORABACK\CRE0_23_793617422.ARC 標記 = TAG20120910T09 1635 

通道 ORA_DISK_1: 已還原備份片段 1 

通道 ORA_DISK_1: 還原完成用時: 00:00:03 

通道 ORA_DISK_1: 正在開始將歸檔日誌還原到預設目標 通道 ORA_DISK_1: 正在還原歸檔日誌 歸檔日誌執行緒=1 序列=30 

通道 ORA_DISK_1: 正在還原歸檔日誌 歸檔日誌執行緒=1 序列=31 

通道 ORA_DISK_1: 正在還原歸檔日誌 歸檔日誌執行緒=2 序列=27 

通道 ORA_DISK_1: 正在讀取備份片段 D:\ORABACK\CRE0_24_793617499.ARC 

通道 ORA_DISK_1: 段控制程式碼 = D:\ORABACK\CRE0_24_793617499.ARC 標記 = TAG20120910T09 1635 

通道 ORA_DISK_1: 已還原備份片段 1 

通道 ORA_DISK_1: 還原完成用時: 00:00:03 歸檔日誌檔名

=E:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\RDBMS\ARC0000000030_ 

0793037884.0001 執行緒=1 序列=30 歸檔日誌檔名

=E:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\RDBMS\ARC0000000026_ 

0793037884.0002 執行緒=2 序列=26 RMAN-00571: 

=========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: 

=========================================================== RMAN-03002: recover 命令 ( 09/10/2012 17:25:54 失敗

RMAN-11003: 在分析/執行 SQL 語句期間失敗: alter database recover logfile 'E:\APP 

\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\RDBMS\ARC0000000026_0793037884.0002' 

ORA-10562: Error occurred while applying redo to data block (file# 2, block# 402 84) 

ORA-10564: tablespace SYSAUX ORA-01110: 資料檔案 2: 

'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\SYSAUX.DBF' 

ORA-10561: block type 'TRANSACTION MANAGED INDEX BLOCK', data object# 70514 

ORA-00600: 內部錯誤程式碼引數: [6122], [0], [24024], [0], [], [], [], [], [], [] , [], []  

重新編寫控制檔案 

SQL > alter database backup controlfile to trace as 'd:/oraback/controlfile.sql'   --轉存目前資料庫控制檔案,根據該檔案重新建立控制檔案。  

--以上的錯誤正常,由於日誌不一致造成的。關閉資料庫啟動到nomount階段   

SQL > STARTUP NOMOUNT  

SQL > CREATE CONTROLFILE REUSE DATABASE "BDSTAR" RESETLOGS  NOARCHIVELOG 

    MAXLOGFILES 192     MAXLOGMEMBERS 3     MAXDATAFILES 1024     MAXINSTANCES 32     MAXLOGHISTORY 292 LOGFILE 

  GROUP 1 'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\redo01.dbf'  SIZE 50M BLOCKSIZE 512, 

  GROUP 2 'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\redo02.dbf'  SIZE 50M BLOCKSIZE 512 DATAFILE 

  'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\SYSTEM.DBF',   'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\SYSAUX.DBF',   'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\UNDOTBS1.DBF',   'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\USERS.DBF', 

  'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\UNDOTBS2.DBF', 

  'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\TBS_SPOTLIGHT.DBF' 

RMAN-11003: 在分析/執行 SQL 語句期間失敗: alter database recover logfile 'E:\APP 

\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\RDBMS\ARC0000000026_0793037884.0002' 

ORA-10562: Error occurred while applying redo to data block (file# 2, block# 402 84) 

ORA-10564: tablespace SYSAUX ORA-01110: 資料檔案 2: 

'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\SYSAUX.DBF' 

ORA-10561: block type 'TRANSACTION MANAGED INDEX BLOCK', data object# 70514 

ORA-00600: 內部錯誤程式碼引數: [6122], [0], [24024], [0], [], [], [], [], [], [] , [], []  

重新編寫控制檔案 

SQL > alter database backup controlfile to trace as 'd:/oraback/controlfile.sql'   --轉存目前資料庫控制檔案,根據該檔案重新建立控制檔案。  

--以上的錯誤正常,由於日誌不一致造成的。關閉資料庫啟動到nomount階段   

SQL > STARTUP NOMOUNT  

SQL > CREATE CONTROLFILE REUSE DATABASE "BDSTAR" RESETLOGS  NOARCHIVELOG 

    MAXLOGFILES 192     MAXLOGMEMBERS 3     MAXDATAFILES 1024     MAXINSTANCES 32     MAXLOGHISTORY 292 LOGFILE 

  GROUP 1 'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\redo01.dbf'  SIZE 50M BLOCKSIZE 512, 

  GROUP 2 'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\redo02.dbf'  SIZE 50M BLOCKSIZE 512 DATAFILE 

  'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\SYSTEM.DBF',   'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\SYSAUX.DBF',   'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\UNDOTBS1.DBF',   'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\USERS.DBF', 

  'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\UNDOTBS2.DBF', 

  'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\TBS_SPOTLIGHT.DBF' 

CHARACTER SET ZHS16GBK  

--關閉重啟 

SQL>startup mount 

ORACLE 例程已經啟動。  

Total System Global Area  551165952 bytes Fixed Size                  2257072 bytes Variable Size             167776080 bytes Database Buffers          373293056 bytes Redo Buffers                7839744 bytes 資料庫裝載完畢。 

SQL> alter database open resetlogs;  --  這一步很關鍵啊,為什麼後加例項2的兩個日誌檔案,這需要思考的地方。 alter database open resetlogs * 

 1 行出現錯誤

ORA-38856: 無法將例項 UNNAMED_INSTANCE_2 (重做執行緒 2) 標記為啟用   

SQL> alter database add logfile thread 2 group 3 'E:\APP\ADMINISTRATOR\ORADATA\B DSTAR\redo03.dbf' size 100M,group 4 

'E:\APP\ADMINISTRATOR\ORADATA\BDSTAR\redo04. dbf' size 100M;  

資料庫已更改。  

SQL> alter database open resetlogs;  

資料庫已更改。   

7恢復成功後的後續處理 

 

SQL> select * from v$log;  

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC 

---------- ---------- ---------- ---------- ---------- ---------- --- 

STATUS           FIRST_CHANGE# FIRST_TIME     NEXT_CHANGE# NEXT_TIME

 

---------------- ------------- -------------- ------------ -------------- 

         1          1          1   52428800        512          1 NO CURRENT                3134189 10-9 -12       2.8147E+14  

         2          1          0   52428800        512          1 YES 

UNUSED                       0                           0  

         3          2          1  104857600        512          1 NO CURRENT                3134189 10-9 -12       2.8147E+14   

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC 

---------- ---------- ---------- ---------- ---------- ---------- --- 

STATUS           FIRST_CHANGE# FIRST_TIME     NEXT_CHANGE# NEXT_TIME 

---------------- ------------- -------------- ------------ -------------- 

         4          2          0  104857600        512          1 YES 

UNUSED                       0                           0  

--刪除thread 2 的日誌 

SQL> alter database disable thread 2;  

資料庫已更改。  

SQL> alter database drop logfile group 3;  

資料庫已更改。  

SQL> alter database drop logfile group 4;  

資料庫已更改。  

SQL> show parameter undo_tablespace   

NAME                                 TYPE        VALUE ------------------------------------ ----------- ------------------------------ 

undo_tablespace                      string      UNDOTBS1 SQL> drop undo_tablespace undotbs2; dropundo_tablespace undotbs2      * 

 1 行出現錯誤

 

ORA-00950: 無效 DROP 選項   

SQL> select name from v$tablespace where name like 'UNDO%' 2  ;  

NAME 

------------------------------ UNDOTBS1 UNDOTBS2  

SQL> DROP TABLESPACE UNDOTBS2 INCLUDING CONTENTS AND DATAFILES;  

表空間已刪除。  

--建立臨時表空間 

SQL> alter tablespace temp add tempfile 'E:\app\Administrator\oradata\bdstar\tem p01.dbf' size 50m;  

表空間已更改。  

SQL> ARCHIVE LOG LIST; 資料庫日誌模式非存檔模式 自動存檔禁用 

存檔終點            E:\app\Administrator\product\11.2.0\dbhome_1\RDBMS 最早的聯機日誌序列     1 當前日誌序列           1

 

 

 



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/196700/viewspace-1264642/,如需轉載,請註明出處,否則將追究法律責任。

相關文章