ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 单实例备份恢复成RAC

单实例备份恢复成RAC

原创 Linux操作系统 作者:myownstars 时间:2010-11-29 23:37:57 0 删除 编辑
背景: 将单实例库的rman备份同步到RAC上
大致步骤:(因为任务比较急,笔记记得有点乱 还望海涵)
1

将rman备份集copy到rac机上,并放到'/home/oracle/backup'下

2

关闭所有rac节点,

Export ORACLE_SID=+ASM1

Asmcmd

>--进入数据文件路径

Rm *

同时删除controlfile

3

恢复控制文件

注意事项:restore之前 需要检查一下现有的rman备份,

Crosscheck backup;

Delete expired backup;


[oracle@racdg1 backup]$ rman target /



Recovery Manager: Release 10.2.0.5.0 - Production on Fri Nov 12 10:07:36 2010



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



connected to target database (not started)



RMAN> startup nomount;



Oracle instance started



Total System Global Area   68719476736 bytes



Fixed Size                     2225168 bytes

Variable Size               3640658928 bytes

Database Buffers           65062043648 bytes

Redo Buffers                  14548992 bytes



RMAN> restore controlfile from '/home/oracle/backup/c-1185342296-20101112-00';



Starting restore at 12-NOV-10

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=2283 instance=racdg1 devtype=DISK



channel ORA_DISK_1: restoring control file

channel ORA_DISK_1: restore complete, elapsed time: 00:00:08

output filename=+DATA/std01/controlfile/current.267.734868701

Finished restore at 12-NOV-10



RMAN> shutdown immediate;



Oracle instance shut down



4 修改pfile中的控制文件信息

*.control_files='+DATA/std01/controlfile/current.267.734868701'

重新创建spfile

[oracle@racdg1 dbs]$ sqlplus / as sysdba



SQL*Plus: Release 10.2.0.5.0 - Production on Fri Nov 12 10:15:42 2010



Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.



Connected to an idle instance.



SQL> create spfile from pfile;



File created.



SQL> startup nomount;

ORACLE instance started.



Total System Global Area 6.8719E+10 bytes

Fixed Size                  2225168 bytes

Variable Size            3640658928 bytes

Database Buffers         6.5062E+10 bytes

Redo Buffers               14548992 bytes

SQL> alter database mount;



Database altered.




5.

从备份集恢复数据文件

RMAN> catalog start with '/home/oracle/backup';

run {

set newname for datafile 1 to '+DATA';

set newname for datafile 2 to '+DATA';

set newname for datafile 3 to '+DATA';

set newname for datafile 4 to '+DATA';

set newname for datafile 5 to '+DATA';

set newname for datafile 6 to '+DATA';

set newname for datafile 7 to '+DATA';

set newname for datafile 8 to '+DATA';

set newname for datafile 9 to '+DATA';

set newname for datafile 10 to '+DATA';

set newname for datafile 11 to '+DATA';

set newname for datafile 12 to '+DATA';

set newname for datafile 13 to '+DATA';

set newname for datafile 14 to '+DATA';

set newname for datafile 15 to '+DATA';

set newname for datafile 16 to '+DATA';

set newname for datafile 17 to '+DATA';

set newname for datafile 18 to '+DATA';

set newname for datafile 19 to '+DATA';

set newname for datafile 20 to '+DATA';

set newname for datafile 21 to '+DATA';

set newname for datafile 22 to '+DATA';

set newname for datafile 23 to '+DATA';

set newname for datafile 24 to '+DATA';

set newname for datafile 25 to '+DATA';

set newname for datafile 26 to '+DATA';

allocate channel d1 type disk;

allocate channel d2 type disk;

allocate channel d3 type disk;

allocate channel d4 type disk;

allocate channel d5 type disk;

restore database;

switch database to copy;

release channel d1;

release channel d2;

release channel d3;

release channel d4;

release channel d5;

}



执行完后检查文件

SQL> select to_number(file#), name from v$datafile;



TO_NUMBER(FILE#) NAME

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

               1 +DATA/std01/datafile/system.317.734880503

               2 +DATA/std01/datafile/undotbs1.300.734880293

               3 +DATA/std01/datafile/sysaux.321.734888445

               4 +DATA/std01/datafile/users.301.734880493

               5  ***************

               6 ***************



25 rows selected.



注意事项:recover时候需要用到此rman备份集备份过程中所产生的archive log,否则无法open resetlogs;



创建时候忘记了restore临时文件,open resetlogs后

SQL> alter tablespace temp02 add tempfile '+DATA';



Tablespace altered.



SQL> select name,bytes/1024/1024 from v$tempfile;



NAME                                                                                                                                BYTES/1024/1024

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

+DATA/std01/tempfile/temp02.281.734898557                                                                                               100

/data/oracle/oradata/orcl/temp02.dbf                                                                                                   1000





SQL> alter database tempfile '+DATA/std01/tempfile/temp02.281.734898557' resize 20G;



Database altered.





SQL>  alter tablespace temp02 drop tempfile '/data/oracle/oradata/orcl/temp02.dbf';



Tablespace altered.




接下来查看redo log,发现还是单实例模式的,需要将其全部清除并新建

SQL> select * from v$log;



    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM

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

         4          1          1  524288000          1 YES INACTIVE            6267473039 12-NOV-10

         5          1          2  524288000          1 YES INACTIVE            6267772522 12-NOV-10

         6          1          3  524288000          1 NO  CURRENT             6268945942 12-NOV-10

         7          1          0  524288000          1 YES UNUSED                       0

         8          1          0  524288000          1 YES UNUSED                       0



SQL> alter database clear logfile group 4;



Database altered.


SQL> alter database clear logfile group 5;



Database altered.



SQL> alter database drop logfile '/data/oracle/oradata/orcl/redo04.log';



Database altered.



SQL>  alter database drop logfile '/data/oracle/oradata/orcl/redo08.log';



Database altered.

****************
****************
****************
重新建立后的redo log

SQL> select * from v$log;



    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM

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

         1          1          5  524288000          1 YES ACTIVE              6269599597 12-NOV-10

         2          1          6  524288000          1 NO  CURRENT             6269601065 12-NOV-10

         3          1          0  524288000          1 YES UNUSED                       0

         4          1          4  524288000          1 YES ACTIVE              6269576771 12-NOV-10

         5          1          0  524288000          1 YES UNUSED                       0

SQL> select to_number(group#),member from v$logfile;



TO_NUMBER(GROUP#) MEMBER

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

                4 +DATA/std01/onlinelog/group_4.284.734899351

                1 +DATA/std01/onlinelog/group_1.272.734899525

                2 +DATA/std01/onlinelog/group_2.277.734899543

                5 +DATA/std01/onlinelog/group_5.280.734899375

                3 +DATA/std01/onlinelog/group_3.279.734899561



由于是两节点rac,还需要另外新建一个undo tablespace



SQL> CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE '+DATA' size 20g;



Tablespace created.



SQL> ALTER DATABASE ENABLE THREAD 2;



Database altered.



SQL> startup

ORACLE instance started.



Total System Global Area 6.8719E+10 bytes

Fixed Size                  2225168 bytes

Variable Size            3472886768 bytes

Database Buffers         6.5230E+10 bytes

Redo Buffers               14548992 bytes

ORA-01105: mount is incompatible with mounts by other instances

ORA-01677: standby file name convert parameters differ from other instance

最后遇到以上错误

解决办法: 创建一个公共spfile,让两个节点的pfile都指向它

Create spfile=‘+DATA’ from pfile


大致步骤如上,接下来几天还会有类似任务,到时有机会再完整整理一遍发出来供大家浏览

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15480802/viewspace-688355/,如需转载,请注明出处,否则将追究法律责任。

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

注册时间:2010-03-18

  • 博文量
    375
  • 访问量
    3158680