ITPub博客

首页 > 数据库 > Oracle > RAC恢复到单实例节点上

RAC恢复到单实例节点上

Oracle 作者:shilei1 时间:2014-09-05 05:14:25 0 删除 编辑

1 简单说明: 

版本:11.2.0.3 

平台:linux-x86-64  到  win7-64bit 

实例: bdstar1,bdstar2   还原到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  

3 控制文件的创建 

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'   --该文件为linuxrac下autobackup 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 

4 

+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  

4 恢复数据文件 

 

--载入你的备份,使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], [], [], [], [], [], [] , [], []  

6 重新编写控制文件 

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], [], [], [], [], [], [] , [], []  

6 重新编写控制文件 

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博客 ” ,链接:https://blog.itpub.net/196700/viewspace-1264642/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-10-10

  • 博文量
    548
  • 访问量
    129696