您的位置:首页 > 其它

RAC备份恢复到单节点

2013-03-27 17:12 267 查看
1简单说明
版本:11.2.0.3
平台:linux-x86-64 到 win7-64bit
实例: bdstar1,bdstar2 还原到 bdstar

参考:三思笔记数据库备份与恢复
2 windows平台系统恢复环境创建
创建实例:oradim -new -sid
bdstar
编写一个简单的参数文件:
*.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> startup nomount
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' --该文件为linux
rac下autobackup control文件

RMAN > alter database mount;

--下面就可以看到RAC数据库中的一些基本情况了,根据这些基本情况进行还原

SQL> select file#,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> select file#,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> catalog backuppiece 'd:\oraback\cre0_16_793617290.db';

已将备份片段列入目录
备份片段句柄=D:\ORABACK\CRE0_16_793617290.DB RECID=10 STAMP=793646472

RMAN> catalog backuppiece 'd:\oraback\cre0_17_793617290.db';

已将备份片段列入目录
备份片段句柄=D:\ORABACK\CRE0_17_793617290.DB RECID=11 STAMP=793646486

RMAN> catalog backuppiece 'd:\oraback\cre0_18_793617292.db';

已将备份片段列入目录
备份片段句柄=D:\ORABACK\CRE0_18_793617292.DB RECID=12 STAMP=793646496

RMAN> catalog backuppiece 'd:\oraback\cre0_19_793617316.db';

已将备份片段列入目录
备份片段句柄=D:\ORABACK\CRE0_19_793617316.DB RECID=13 STAMP=793646514

RMAN> catalog backuppiece 'd:\oraback\cre0_23_793617422.arc';

已将备份片段列入目录
备份片段句柄=D:\ORABACK\CRE0_23_793617422.ARC RECID=14 STAMP=793646540

RMAN> catalog backuppiece '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\und
otbs1.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'
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;
drop undo_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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: