RAC备份恢复到单节点

1简单说明

  版本:11.2.0.3

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

 实例: bdstar1bdstar2  还原到   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 racautobackup 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

你可能感兴趣的:(oracle异地还原,RAC恢复)