首页 > 数据库 > Oracle > RAC恢复到单实例节点上
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/ ,如需转载,请注明出处,否则将追究法律责任。