RAC下RMAN异机恢复的问题

1) 将主数据库两个节点设置成归档模式

在主库上的每个节点都要设置,注:在一台机器设置归档时其他的节点实例都要关闭
   sqlplus /nolog
   SQL>conn /as sysdba
   SQL > alter system set log_archive_dest_1='LOCATION=+DATA1/archive' scope=spfile SID='*';
   SQL > alter system set log_archive_format='arch_%t_%s_%r.arc' scope=spfile SID='*';
   SQL > alter system set cluster_database=false SCOPE=SPFILE SID='*';
   SQL > shutdown immediate
   SQL> startup mount exclusive;
   SQL> alter database archivelog;
        Database altered.
   SQL> archive log start
       Statement processed.
   SQL> alter system set cluster_database=true scope=spfile sid='*';
   SQL> alter database open
        Database altered.
   SQL> archive log list
        Database log mode              Archive Mode
        Automatic archival             Enabled
        Archive destination            +DATA1/archive/
   SQL> show parameter archive_start
设置主库的强行日志处理:(每个节点都执行)
   SQL> ALTER DATABASE FORCE LOGGING;
建立备份目录(主备同时建立,主库只要一个节点上做)

测试需要将第1个节点shutdown
然后同时启动两个节点


SQL> show parameter cluster_database


alter system switch logfile 在两个节点上产生几个归档日志

  mkdir -p /backup/databackup/
  chown -R oracle.oinstall  /backup



2)


备份spfile文件
CREATE PFILE='/backup/databackup/standby.ora' FROM SPFILE;


3)备份数据,控制,归档文件
先执行 alter system archive log current;产生归档
rman到处主库的一个节点,备份 数据文件和归档,并产生standby 控制文件
alter system archive log current;
select thread#,sequence# from v$archived_log;

    rman target /
    RMAN> backup device type disk format '/backup/databackup/%U' database plus archivelog;
    RMAN> backup device type disk format '/backup/databackup/%U' current controlfile;

4)
将主库的listener.ora, tnsnames.ora文件复制到/backup/databackup/
然后将这个文件夹tar

在备库上
cd $ORACLE_BASE
   mkdir -p admin/racstd/bdump
   mkdir -p admin/racstd/cdump
   mkdir -p admin/racstd/udump
   mkdir -p admin/racstd/adump
   mkdir -p admin/racstd/dpdump
   mkdir -p admin/racstd/hdump

5)执行备份并将backup 传到从库

6)将 listener.ora, tnsnames.ora 复制到相应目录
并执行合并
备机上合并listener.ora, tnsnames.ora
      cat /backup/databackup/listener.ora >> $ORACLE_HOME/network/admin/listener.ora
      cat /backup/databackup/tnsnames.ora >> $ORACLE_HOME/network/admin/tnsnames.ora
主机上合并standby 的 listener.ora, tnsnames.ora(两个节点上做)
     cat $ORACLE_BASE/listener.ora >> $ORACLE_HOME/network/admin/listener.ora
     cat $ORACLE_BASE/tnsnames.ora >> $ORACLE_HOME/network/admin/tnsnames.ora


7)备机上建立密码文件
     cd $ORACLE_HOME/dbs
     orapwd file=orapw$ORACLE_SID password=fleety entries=5

8)将pfile 复制到相应目录
cp /backup/databackup/standby.ora $ORACLE_HOME/dbs/initracstd.ora

9)
修改其中参数,删除有关集群的参数并添加standby设置参数,相见如下
      *.audit_file_dest='/opt/oracle/admin/racstd/adump'
      *.background_dump_dest='/opt/oracle/admin/racstd/bdump'
      *.compatible='10.2.0.1.0'
      *.control_files='/oradata/orcl/controlfile01.ctl','/oradata/orcl/controlfile02.ctl','/oradata/orcl/controlfile03.ctl'
这里的控制文件改成普通文件系统,并用standby 控制文件
      *.core_dump_dest='/opt/oracle/admin/racstd/cdump'
      *.db_block_size=8192
      *.db_create_file_dest='/oradata/racstd'
      *.db_domain=''
      *.db_file_multiblock_read_count=16
      *.db_name='racstd'
      *.db_recovery_file_dest='/opt/oracle/flash'
      *.db_recovery_file_dest_size=2147483648
      *.instance_name='racstd'
      *.job_queue_processes=10
      *.log_archive_dest_1='location=/oradata/archive'
      *.log_archive_dest_state_2='ENABLE'
      *.log_archive_format='arch_%t_%s_%r.arc'
      *.open_cursors=300
      *.pga_aggregate_target=520093696
      *.processes=150
      *.remote_login_passwordfile='exclusive'
      *.sga_target=1073741824
      *.thread=1
      *.undo_management='AUTO'
      *.undo_tablespace='UNDOTBS1'
      *.user_dump_dest='/opt/oracle/admin/racstd/udump'
      *.service_names='racstd'


log_file_name_convert=('+DATA1/orcl/onlinelog','/oradata/racstd')
db_file_name_convert=('+DATA1/orcl/datafile','/oradata/racstd')


listener.ora
加下面内容
   (SID_DESC =
     (SID_NAME = racstd )
     (ORACLE_HOME = /opt/oracle/product/10.2.0)
    )


保证各节点可以互相sqlplus连接成功 通过sys用户


10)将备用库启动到nomount                       
    sqlplus /nolog                           
    SQL>conn /as sysdba                       
    SQL> STARTUP NOMOUNT   

此时在主库一个节点上做
rman target / auxiliary sys/fleety@racstd
RMAN>
run {
duplicate target database to racstd
logfile
'/oradata/racstd/redo01.log' size 100m,
'/oradata/racstd/redo02.log' size 100m,
'/oradata/racstd/redo03.log' size 100m;
}









RMAN> run {
duplicate target database to racstd
logfile
'/oradata/racstd/redo01.log' size 100m,
'/oradata/racstd/redo02.log' size 100m,
'/oradata/racstd/redo03.log' size 100m;
}
2> 3> 4> 5> 6> 7>
Starting Duplicate Db at 01-APR-08
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: sid=155 devtype=DISK

contents of Memory Script.:
{
   set until scn  543604;
   set newname for datafile  1 to
"/oradata/racstd/system.256.649083659";
   set newname for datafile  2 to
"/oradata/racstd/undotbs1.258.649083663";
   set newname for datafile  3 to
"/oradata/racstd/sysaux.257.649083661";
   set newname for datafile  4 to
"/oradata/racstd/users.259.649083663";
   set newname for datafile  5 to
"/oradata/racstd/undotbs2.264.649083969";
   restore
   check readonly
   clone database
   ;
}
executing Memory Script

executing command: SET until clause

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 01-APR-08
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backupset restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /oradata/racstd/system.256.649083659
restoring datafile 00002 to /oradata/racstd/undotbs1.258.649083663
restoring datafile 00003 to /oradata/racstd/sysaux.257.649083661
restoring datafile 00004 to /oradata/racstd/users.259.649083663
restoring datafile 00005 to /oradata/racstd/undotbs2.264.649083969
channel ORA_AUX_DISK_1: reading from backup piece /backup/databackup/07jcoe78_1_1

channel ORA_AUX_DISK_1: restored backup piece 1
piece handle=/backup/databackup/07jcoe78_1_1 tag=TAG20080401T183520
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:21
Finished restore at 01-APR-08
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "RACSTD" RESETLOGS ARCHIVELOG
  MAXLOGFILES    192
  MAXLOGMEMBERS      3
  MAXDATAFILES     1024
  MAXINSTANCES    32
  MAXLOGHISTORY      292
LOGFILE
  GROUP  1 '/oradata/racstd/redo01.log' SIZE 100 M ,
  GROUP  2 '/oradata/racstd/redo02.log' SIZE 100 M ,
  GROUP  3 '/oradata/racstd/redo03.log' SIZE 100 M
DATAFILE
  '/oradata/racstd/system.256.649083659'
CHARACTER SET ZHS16GBK


contents of Memory Script.:
{
   switch clone datafile all;
}
executing Memory Script

released channel: ORA_AUX_DISK_1
datafile 2 switched to datafile copy
input datafile copy recid=1 stamp=650914314 filename=/oradata/racstd/undotbs1.258.649083663
datafile 3 switched to datafile copy
input datafile copy recid=2 stamp=650914314 filename=/oradata/racstd/sysaux.257.649083661
datafile 4 switched to datafile copy
input datafile copy recid=3 stamp=650914314 filename=/oradata/racstd/users.259.649083663
datafile 5 switched to datafile copy
input datafile copy recid=4 stamp=650914315 filename=/oradata/racstd/undotbs2.264.649083969

contents of Memory Script.:
{
   set until scn  543604;
   recover
   clone database
    delete archivelog
   ;
}
executing Memory Script

executing command: SET until clause

Starting recover at 01-APR-08
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: sid=155 devtype=DISK

starting media recovery

channel ORA_AUX_DISK_1: starting archive log restore to default destination
channel ORA_AUX_DISK_1: restoring archive log
archive log thread=1 sequence=10
channel ORA_AUX_DISK_1: restoring archive log
archive log thread=2 sequence=9
channel ORA_AUX_DISK_1: reading from backup piece /backup/databackup/09jcoedp_1_1
channel ORA_AUX_DISK_1: restored backup piece 1
piece handle=/backup/databackup/09jcoedp_1_1 tag=TAG20080401T183849
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
archive log filename=/oradata/archivearch_1_10_649083817.arc thread=1 sequence=10
archive log filename=/oradata/archivearch_2_9_649083817.arc thread=2 sequence=9
channel clone_default: deleting archive log(s)
archive log filename=/oradata/archivearch_1_10_649083817.arc recid=2 stamp=650914319
channel clone_default: deleting archive log(s)
archive log filename=/oradata/archivearch_2_9_649083817.arc recid=1 stamp=650914319
media recovery complete, elapsed time: 00:00:03
Finished recover at 01-APR-08

contents of Memory Script.:
{
   shutdown clone;
   startup clone nomount ;
}
executing Memory Script

database dismounted
Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area     218103808 bytes

Fixed Size                     1218604 bytes
Variable Size                 71305172 bytes
Database Buffers             142606336 bytes
Redo Buffers                   2973696 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "RACSTD" RESETLOGS ARCHIVELOG
  MAXLOGFILES    192
  MAXLOGMEMBERS      3
  MAXDATAFILES     1024
  MAXINSTANCES    32
  MAXLOGHISTORY      292
LOGFILE
  GROUP  1 '/oradata/racstd/redo01.log' SIZE 100 M ,
  GROUP  2 '/oradata/racstd/redo02.log' SIZE 100 M ,
  GROUP  3 '/oradata/racstd/redo03.log' SIZE 100 M
DATAFILE
  '/oradata/racstd/system.256.649083659'
CHARACTER SET ZHS16GBK


contents of Memory Script.:
{
   set newname for tempfile  1 to
"/oradata/racstd/temp.dbf";
   switch clone tempfile all;
   catalog clone datafilecopy  "/oradata/racstd/undotbs1.258.649083663";
   catalog clone datafilecopy  "/oradata/racstd/sysaux.257.649083661";
   catalog clone datafilecopy  "/oradata/racstd/users.259.649083663";
   catalog clone datafilecopy  "/oradata/racstd/undotbs2.264.649083969";
   switch clone datafile all;
}
executing Memory Script

executing command: SET NEWNAME

renamed temporary file 1 to /oradata/racstd/temp.dbf in control file

cataloged datafile copy
datafile copy filename=/oradata/racstd/undotbs1.258.649083663 recid=1 stamp=650914335

cataloged datafile copy
datafile copy filename=/oradata/racstd/sysaux.257.649083661 recid=2 stamp=650914335

cataloged datafile copy
datafile copy filename=/oradata/racstd/users.259.649083663 recid=3 stamp=650914335

cataloged datafile copy
datafile copy filename=/oradata/racstd/undotbs2.264.649083969 recid=4 stamp=650914336

datafile 2 switched to datafile copy
input datafile copy recid=1 stamp=650914335 filename=/oradata/racstd/undotbs1.258.649083663
datafile 3 switched to datafile copy
input datafile copy recid=2 stamp=650914335 filename=/oradata/racstd/sysaux.257.649083661
datafile 4 switched to datafile copy
input datafile copy recid=3 stamp=650914335 filename=/oradata/racstd/users.259.649083663
datafile 5 switched to datafile copy
input datafile copy recid=4 stamp=650914336 filename=/oradata/racstd/undotbs2.264.649083969

contents of Memory Script.:
{
   Alter clone database open resetlogs;
}
executing Memory Script

database opened
Finished Duplicate Db at 01-APR-08

RMAN>

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

转载于:http://blog.itpub.net/87010/viewspace-420436/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值