11.2.0.4rman duplicate 通过 backup or atcive database

本文详细介绍了如何使用RMAN(恢复管理器)通过backup和active数据库的方式设置Oracle数据库的standby实例。内容涵盖从源库备份、standby库的初始化配置、文件传输到standby库的启动和复制过程,以及如何解决可能出现的问题。
摘要由CSDN通过智能技术生成

源库 db_name=primary sid=primary
复制库standby db_name=standby  sid= standby

1:首先为standby库添加静态注册信息
vi $ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER =   --这是静态注册,这样rman客户端才能连接到nomount状态的实例
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = standby)
      (ORACLE_HOME = /u01/app/oracle/product/11g)
      (SID_NAME = standby)
    )
  )

LISTENER =         --这是动态注册监听信息 也是netca图形界面下创建出来的监听
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = standby)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )


2:为standby库创建一个密码文件和adump和其他目录否则复制的时候会报错哦
[oracle@standby dbs]$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=redhat entries=10

[oracle@standby admin]$ mkdir -p $ORACLE_BASE/admin/primary/adump

[oracle@standby admin]$ mkdir -p $ORACLE_BASE/diag/rdbms/primary/primary

[oracle@standby admin]$ mkdir -p $ORACLE_BASE/fast_recovery_area/primary

3:为standby实例建立一个初始化参数文件用于standby实例启动到nomount
[oracle@standby dbs]$ echo DB_NAME='standby' > initstandby.ora

4: 备份primary库
backup database plus archivelog delete input format='/u01/app/oracle/backup/dd_%U';

5:将备份的文件拷贝到standby里
[oracle@standby backup]$ scp oracle@primary:/u01/app/oracle/backup/*  /u01/app/oracle
[oracle@standby backup]$ scp oracle@primary:/u01/app/oracle/fast_recovery_area/PRIMARY/backupset/2013_11_24/*  /u01/app/oracle

6:启动standby实例到 nomount状态
[oracle@standby dbs]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sun Nov 24 11:30:13 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup nomount pfile='/u01/app/oracle/product/11g/dbs/initstandby.ora';
ORACLE instance started.
Total System Global Area  263090176 bytes
Fixed Size                  2252256 bytes
Variable Size             205521440 bytes
Database Buffers           50331648 bytes
Redo Buffers                4984832 bytes

7:rman客户端连接到standby(only auxiliary) 执行脚本
[oracle@primary primary]$ rman auxiliary sys/redhat@standby
run
{
  allocate auxiliary channel dup type disk;
  SET NEWNAME FOR DATABASE TO '/oradata/standby%U'; --db_name被修改为standby了
  SET NEWNAME FOR DATAFILE 1 TO '/u01/app/oracle/oradata/standby/system01.dbf';
  SET NEWNAME FOR DATAFILE 2 TO '/u01/app/oracle/oradata/standby/sysaux01.dbf';
  SET NEWNAME FOR DATAFILE 3 TO '/u01/app/oracle/oradata/standby/undotbs01.dbf';
  SET NEWNAME FOR DATAFILE 4 TO '/u01/app/oracle/oradata/standby/users01.dbf';
  SET NEWNAME FOR TEMPFILE 1 TO '/u01/app/oracle/oradata/standby/temp01.dbf';
  duplicate database to 'standby' spfile backup location '/u01/app/oracle/backup' nofilenamecheck  --因为只连了auxiliary所以要指定backup location
  logfile
   GROUP 1 ('/u01/app/oracle/oradata/standby/redo01.log') size 50m,
   GROUP 2 ('/u01/app/oracle/oradata/standby/redo02.log') size 50m,
   GROUP 3 ('/u01/app/oracle/oradata/standby/redo03.log') size 50m;
}

8:rman客户端连接到target auxiliary (from active database) 执行脚本
[oracle@primary primary]$ rman target sys/redhat@primary auxiliary sys/redhat@standby
run
{
  SET NEWNAME FOR DATABASE TO '/oradata/standby%U'; --db_name被修改为standby了
  SET NEWNAME FOR DATAFILE 1 TO '/u01/app/oracle/oradata/standby/system01.dbf';
  SET NEWNAME FOR DATAFILE 2 TO '/u01/app/oracle/oradata/standby/sysaux01.dbf';
  SET NEWNAME FOR DATAFILE 3 TO '/u01/app/oracle/oradata/standby/undotbs01.dbf';
  SET NEWNAME FOR DATAFILE 4 TO '/u01/app/oracle/oradata/standby/users01.dbf';
  SET NEWNAME FOR TEMPFILE 1 TO '/u01/app/oracle/oradata/standby/temp01.dbf';
  duplicate database to 'standby' from active database spfile nofilenamecheck  --因为直接从活动的数据库里复制需要加上 from active database

   --skip tablespace tablespace_name --可以跳过复制某个表空间
  logfile
   GROUP 1 ('/u01/app/oracle/oradata/standby/redo01.log') size 50m,
   GROUP 2 ('/u01/app/oracle/oradata/standby/redo02.log') size 50m,
   GROUP 3 ('/u01/app/oracle/oradata/standby/redo03.log') size 50m;
}

脚本执行完毕之后OK了。如果报错就根据错误具体解决!

最后查询2个库的dbid 是不一样的,和手动复制有点不一样。

SQL>  select dbid ,name from v$database;

      DBID NAME
---------- ---------
1669545047 PRIMARY

SQL> select dbid ,name from v$database;

      DBID NAME
---------- ---------
1644075315 STANDBY


所有的步骤官方网有帮助文档不明白的jump过去查  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值