Duplicate standby database from active database
Database Role | DB_UNIQUE_NAME |
Primary Database | PROD |
Standby Database | SBDB |
/* 需要注意的是DG环境中force logging,不要用了新特性就将这个基本的要求忘记了 ! */SQL> select * from v$version;BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production PL/SQL Release 11.2.0.2.0 - Production CORE 11.2.0.2.0 Production TNS for Linux: Version 11.2.0.2.0 - Production NLSRTL Version 11.2.0.2.0 - Production/* 显然PROD主库应当处于归档模式并且是FORCE LOGGING状态下 */SQL> alter database force logging; Database altered.同时在Primary Database上创建必要的standby logfile:SQL> alter database add standby logfile group 7 size 50M; Database altered.SQL> alter database add standby logfile group 8 size 50M; Database altered.............../* standby实例只需要db_name参数就可以启动到nomount模式了,并为standby数据库创建密码文件 */[maclean@rh6 ~]$ echo "db_name=PROD" >$ORACLE_HOME/dbs/initSBDB.ora[maclean@rh6 ~]$ orapwd file=$ORACLE_HOME/dbs/orapwSBDB password=XXXX entries=10[maclean@rh6 ~]$ cd $ORACLE_HOME/network/admin我们需要保证PROD和SBDB实例在监听器Listener中被静态注册,同时也包括DGMGRL需要用到的*_DGMGRL服务名[maclean@rh6 admin]$ cat listener.ora # listener23920.ora Network Configuration File: /tmp/listener23920.ora # Generated by Oracle configuration tools.DGLSN =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = rh6.oracle.com)(PORT = 1588)))SID_LIST_DGLSN =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = PROD)(ORACLE_HOME = /s01/product/11.2.0/dbhome_2)(SID_NAME = PROD))(SID_DESC =(GLOBAL_DBNAME = SBDB)(ORACLE_HOME = /s01/product/11.2.0/dbhome_2)(SID_NAME = SBDB))(SID_DESC =(GLOBAL_DBNAME = PROD_DGMGRL)(ORACLE_HOME = /s01/product/11.2.0/dbhome_2)(SID_NAME = PROD))(SID_DESC =(GLOBAL_DBNAME = SBDB_DGMGRL)(ORACLE_HOME = /s01/product/11.2.0/dbhome_2)(SID_NAME = SBDB)))/* 并在tnsnames.ora文件中加入必要的服务别名 */[maclean@rh6 admin]$ cat tnsnames.ora # tnsnames.ora Network Configuration File: /s01/product/11.2.0/dbhome_2/network/admin/tnsnames.ora # Generated by Oracle configuration tools.PROD =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = rh6.oracle.com)(PORT = 1588))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = PROD)))SBDB =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = rh6.oracle.com)(PORT = 1588)))(CONNECT_DATA =(SERVICE_NAME = SBDB)))DGLSN =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = rh6.oracle.com)(PORT = 1588)))接着我们来启动辅助实例[maclean@rh6 ~]$ export ORACLE_SID=SBDB [maclean@rh6 ~]$ sqlplus / as sysdba SQL> startup nomount; ORACLE instance started./* 使用远程登录测试是否可以以SYSDBA登录SBDB实例 */[maclean@rh6 ~]$ sqlplus sys/XXXXXX@SBDB as sysdba下面我们需要准备一份duplicate standby database的脚本, 因为我们是在同一台主机上配置Data Guard所以这里要用到db_file_name_convert和log_file_name_convert, 如果你的环境中不需要这么做那么你可以指定NOFILENAMECHECK;以下为示例的脚本,可以看到它并不复杂只是指定了必要的初始化参数,十分易于记忆。[maclean@rh6 ~]$ cat duplicate_act_standby.rcv duplicate target database for standby from active database DORECOVER spfile set db_unique_name='SBDB' set log_archive_dest_1='location=/standby/arch02' set log_archive_dest_2='service=PROD async lgwr register valid_for=(online_logfile,primary_role) db_unique_name=PROD' set standby_file_management='AUTO' set fal_server='PROD' set fal_client='SBDB' set control_files='/standby/oradata/SBDB/controlfile/control1.ctl','/standby/oradata/SBDB/controlfile/control2.ctl' set db_file_name_convert='PROD','SBDB' set log_file_name_convert='PROD','SBDB' set memory_target='0' set sga_target='400M';具体执行以上脚本,我们需要同时登录target database PROD和auxiliary instance辅助实例SBDB:[maclean@rh6 ~]$ echo $ORACLE_SID PROD[maclean@rh6 ~]$ rman target / auxiliary sys/oracle@SBDB cmdfile=duplicate_act_standby.rcv log=das.logconnected to target database: PROD (DBID=158660885) connected to auxiliary database: PROD (not mounted)RMAN> duplicate target database 2> for standby 3> from active database 4> DORECOVER 5> spfile 6> set db_unique_name='SBDB' 7> set log_archive_dest_1='location=/standby/arch02' 8> set log_archive_dest_2='service=PROD async lgwr register valid_for=(online_logfile,primary_role) db_unique_name=PROD' 9> set standby_file_management='AUTO' 10> set fal_server='PROD' 11> set fal_client='SBDB' 12> set control_files='/standby/oradata/SBDB/controlfile/control1.ctl','/standby/oradata/SBDB/controlfile/control2.ctl' 13> set db_file_name_convert='PROD','SBDB' 14> set log_file_name_convert='PROD','SBDB' 15> set memory_target='0' 16> set sga_target='400M'; 17> Starting Duplicate Db at 26-MAR-11 using target database control file instead of recovery catalog allocated channel: ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: SID=96 device type=DISKcontents of Memory Script: {backup as copy reusetargetfile '/s01/product/11.2.0/dbhome_2/dbs/orapwPROD' auxiliary format'/s01/product/11.2.0/dbhome_2/dbs/orapwSBDB' targetfile'/s01/product/11.2.0/dbhome_2/dbs/spfilePROD.ora' auxiliary format'/s01/product/11.2.0/dbhome_2/dbs/spfileSBDB.ora' ;sql clone "alter system set spfile= ''/s01/product/11.2.0/dbhome_2/dbs/spfileSBDB.ora''"; } executing Memory ScriptStarting backup at 26-MAR-11 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=17 device type=DISK Finished backup at 26-MAR-11sql statement: alter system set spfile= ''/s01/product/11.2.0/dbhome_2/dbs/spfileSBDB.ora''contents of Memory Script: {sql clone "alter system set db_unique_name =''SBDB'' comment='''' scope=spfile";sql clone "alter system set log_archive_dest_1 =''location=/standby/arch02'' comment='''' scope=spfile";sql clone "alter system set log_archive_dest_2 =''service=PROD async lgwr register valid_for=(online_logfile,primary_role) db_unique_name=PROD'' comment='''' scope=spfile";sql clone "alter system set standby_file_management =''AUTO'' comment='''' scope=spfile";sql clone "alter system set fal_server =''PROD'' comment='''' scope=spfile";sql clone "alter system set fal_client =''SBDB'' comment='''' scope=spfile";sql clone "alter system set control_files =''/standby/oradata/SBDB/controlfile/control1.ctl'', ''/standby/oradata/SBDB/controlfile/control2.ctl'' comment='''' scope=spfile";sql clone "alter system set db_file_name_convert =''PROD'', ''SBDB'' comment='''' scope=spfile";sql clone "alter system set log_file_name_convert =''PROD'', ''SBDB'' comment='''' scope=spfile";sql clone "alter system set memory_target =0 comment='''' scope=spfile";sql clone "alter system set sga_target =400M comment='''' scope=spfile";shutdown clone immediate;startup clone nomount; } executing Memory Scriptsql statement: alter system set db_unique_name = ''SBDB'' comment= '''' scope=spfilesql statement: alter system set log_archive_dest_1 = ''location=/standby/arch02'' comment= '''' scope=spfilesql statement: alter system set log_archive_dest_2 = ''service=PROD async lgwr register valid_for=(online_logfile,primary_role) db_unique_name=PROD'' comment= '''' scope=spfilesql statement: alter system set standby_file_management = ''AUTO'' comment= '''' scope=spfilesql statement: alter system set fal_server = ''PROD'' comment= '''' scope=spfilesql statement: alter system set fal_client = ''SBDB'' comment= '''' scope=spfilesql statement: alter system set control_files = ''/standby/oradata/SBDB/controlfile/control1.ctl'', ''/standby/oradata/SBDB/controlfile/control2.ctl'' comment= '''' scope=spfilesql statement: alter system set db_file_name_convert = ''PROD'', ''SBDB'' comment= '''' scope=spfilesql statement: alter system set log_file_name_convert = ''PROD'', ''SBDB'' comment= '''' scope=spfilesql statement: alter system set memory_target = 0 comment= '''' scope=spfilesql statement: alter system set sga_target = 400M comment= '''' scope=spfileOracle instance shut downconnected to auxiliary database (not started) Oracle instance startedTotal System Global Area 417546240 bytesFixed Size 2227072 bytes Variable Size 134218880 bytes Database Buffers 272629760 bytes Redo Buffers 8470528 bytescontents of Memory Script: {backup as copy current controlfile for standby auxiliary format '/standby/oradata/SBDB/controlfile/control1.ctl';restore clone controlfile to '/standby/oradata/SBDB/controlfile/control2.ctl' from'/standby/oradata/SBDB/controlfile/control1.ctl'; } executing Memory ScriptStarting backup at 26-MAR-11 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile copy copying standby control file output file name=/s01/product/11.2.0/dbhome_2/dbs/snapcf_PROD.f tag=TAG20110326T195144 RECID=2 STAMP=746826704 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 Finished backup at 26-MAR-11Starting restore at 26-MAR-11 allocated channel: ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: SID=134 device type=DISKchannel ORA_AUX_DISK_1: copied control file copy Finished restore at 26-MAR-11contents of Memory Script: {sql clone 'alter database mount standby database'; } executing Memory Scriptsql statement: alter database mount standby databasecontents of Memory Script: {set newname for tempfile 1 to"/standby/oradata/SBDB/datafile/o1_mf_temp_6rvjsmr4_.tmp";switch clone tempfile all;set newname for datafile 1 to"/standby/oradata/SBDB/datafile/o1_mf_system_6rvjrtxh_.dbf";set newname for datafile 2 to"/standby/oradata/SBDB/datafile/o1_mf_sysaux_6rvjs6vh_.dbf";set newname for datafile 3 to"/standby/oradata/SBDB/datafile/o1_mf_undotbs1_6rvjsjjg_.dbf";set newname for datafile 4 to"/standby/oradata/SBDB/datafile/o1_mf_users_6rvjsy5q_.dbf";backup as copy reusedatafile 1 auxiliary format"/standby/oradata/SBDB/datafile/o1_mf_system_6rvjrtxh_.dbf" datafile2 auxiliary format"/standby/oradata/SBDB/datafile/o1_mf_sysaux_6rvjs6vh_.dbf" datafile3 auxiliary format"/standby/oradata/SBDB/datafile/o1_mf_undotbs1_6rvjsjjg_.dbf" datafile4 auxiliary format"/standby/oradata/SBDB/datafile/o1_mf_users_6rvjsy5q_.dbf" ;sql 'alter system archive log current'; } executing Memory Scriptexecuting command: SET NEWNAMErenamed tempfile 1 to /standby/oradata/SBDB/datafile/o1_mf_temp_6rvjsmr4_.tmp in control fileexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEStarting backup at 26-MAR-11 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile copy input datafile file number=00001 name=/standby/oradata/PROD/datafile/o1_mf_system_6rvjrtxh_.dbf output file name=/standby/oradata/SBDB/datafile/o1_mf_system_6rvjrtxh_.dbf tag=TAG20110326T195152 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15 channel ORA_DISK_1: starting datafile copy input datafile file number=00002 name=/standby/oradata/PROD/datafile/o1_mf_sysaux_6rvjs6vh_.dbf output file name=/standby/oradata/SBDB/datafile/o1_mf_sysaux_6rvjs6vh_.dbf tag=TAG20110326T195152 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15 channel ORA_DISK_1: starting datafile copy input datafile file number=00003 name=/standby/oradata/PROD/datafile/o1_mf_undotbs1_6rvjsjjg_.dbf output file name=/standby/oradata/SBDB/datafile/o1_mf_undotbs1_6rvjsjjg_.dbf tag=TAG20110326T195152 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07 channel ORA_DISK_1: starting datafile copy input datafile file number=00004 name=/standby/oradata/PROD/datafile/o1_mf_users_6rvjsy5q_.dbf output file name=/standby/oradata/SBDB/datafile/o1_mf_users_6rvjsy5q_.dbf tag=TAG20110326T195152 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 Finished backup at 26-MAR-11sql statement: alter system archive log currentcontents of Memory Script: {backup as copy reusearchivelog like "/standby/arch01/1_17_746822549.dbf" auxiliary format"/standby/arch02/1_17_746822549.dbf" ;catalog clone archivelog "/standby/arch02/1_17_746822549.dbf";switch clone datafile all; } executing Memory ScriptStarting backup at 26-MAR-11 using channel ORA_DISK_1 channel ORA_DISK_1: starting archived log copy input archived log thread=1 sequence=17 RECID=3 STAMP=746826751 output file name=/standby/arch02/1_17_746822549.dbf RECID=0 STAMP=0 channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01 Finished backup at 26-MAR-11cataloged archived log archived log file name=/standby/arch02/1_17_746822549.dbf RECID=1 STAMP=746826752datafile 1 switched to datafile copy input datafile copy RECID=2 STAMP=746826752 file name=/standby/oradata/SBDB/datafile/o1_mf_system_6rvjrtxh_.dbf datafile 2 switched to datafile copy input datafile copy RECID=3 STAMP=746826752 file name=/standby/oradata/SBDB/datafile/o1_mf_sysaux_6rvjs6vh_.dbf datafile 3 switched to datafile copy input datafile copy RECID=4 STAMP=746826752 file name=/standby/oradata/SBDB/datafile/o1_mf_undotbs1_6rvjsjjg_.dbf datafile 4 switched to datafile copy input datafile copy RECID=5 STAMP=746826752 file name=/standby/oradata/SBDB/datafile/o1_mf_users_6rvjsy5q_.dbfcontents of Memory Script: {set until scn 242517;recoverstandbyclone databasedelete archivelog; } executing Memory Scriptexecuting command: SET until clauseStarting recover at 26-MAR-11 using channel ORA_AUX_DISK_1starting media recoveryarchived log for thread 1 with sequence 17 is already on disk as file /standby/arch02/1_17_746822549.dbf archived log file name=/standby/arch02/1_17_746822549.dbf thread=1 sequence=17 media recovery complete, elapsed time: 00:00:00 Finished recover at 26-MAR-11 Finished Duplicate Db at 26-MAR-11Recovery Manager complete.[maclean@rh6 ~]$ export ORACLE_SID=PROD [maclean@rh6 ~]$ sqlplus / as sysdba/* 在主库PROD上设置到物理备库SBDB的归档目的地 */SQL> alter system set log_archive_dest_2='service=sbdb lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=SBDB'; System altered.以上完成了对物理备库Physical Standby的配置,紧接着我们来配合Data Broker:SQL> alter system set dg_broker_start=true; System altered.[maclean@rh6 ~]$ export ORACLE_SID=SBDB [maclean@rh6 ~]$ sqlplus / as sysdbaSQL> alter system set dg_broker_start=true; System altered.[maclean@rh6 ~]$ dgmgrl sys/oracle@PROD DGMGRL for Linux: Version 11.2.0.2.0 - 64bit ProductionCopyright (c) 2000, 2009, Oracle. All rights reserved.Welcome to DGMGRL, type "help" for information. Connected.DGMGRL> create CONFIGURATION PROD as PRIMARY DATABASE IS PROD CONNECT IDENTIFIER IS PROD; Configuration "prod" created with primary database "prod"DGMGRL> add database sbdb AS CONNECT IDENTIFIER IS sbdb MAINTAINED AS PHYSICAL; Database "sbdb" addedDGMGRL> enable configuration; Enabled.DGMGRL> edit database prod set property LogXptMode='sync'; Property "logxptmode" updated DGMGRL> edit database sbdb set property LogXptMode='sync'; Property "logxptmode" updated/* 修改当前DG的保护模式为最大可用模式MaxAvailability */DGMGRL> edit CONFIGURATION SET PROTECTION MODE as MaxAvailability; Succeeded.DGMGRL> show configuration;Configuration - prodProtection Mode: MaxAvailabilityDatabases:prod - Primary databasesbdb - Physical standby databaseError: ORA-16766: Redo Apply is stoppedFast-Start Failover: DISABLEDConfiguration Status: ERROR/* 以上可以看到物理备库SBDB上的REDO APPLY被停止了,我们可以在DGMGRL中启动其REDO APPLY */DGMGRL> edit database sbdb set state='APPLY-ON'; Succeeded.DGMGRL> show configuration;Configuration - prodProtection Mode: MaxAvailabilityDatabases:prod - Primary databasesbdb - Physical standby databaseFast-Start Failover: DISABLEDConfiguration Status: SUCCESS/* 以下使用DGMGRL来回切换主备库角色,十分方便 */DGMGRL> switchover to sbdb; Performing switchover NOW, please wait... New primary database "sbdb" is opening... Operation requires shutdown of instance "PROD" on database "prod" Shutting down instance "PROD"... ORACLE instance shut down. Operation requires startup of instance "PROD" on database "prod" Starting instance "PROD"... ORACLE instance started. Database mounted. Switchover succeeded, new primary is "sbdb"DGMGRL> switchover to prod; Performing switchover NOW, please wait... New primary database "prod" is opening... Operation requires shutdown of instance "SBDB" on database "sbdb" Shutting down instance "SBDB"... ORACLE instance shut down. Operation requires startup of instance "SBDB" on database "sbdb" Starting instance "SBDB"... ORACLE instance started. Database mounted. Switchover succeeded, new primary is "prod"
转载于:https://www.cnblogs.com/macleanoracle/archive/2013/03/19/2967711.html
Duplicate standby database from active database相关推荐
- Oracle 11g Data Guard 使用duplicate from active database 创建 standby database
用这种方式来搭建DG ,主库的停机时间很少,只需要重启一下,使参数生效.也可以用这种方法进行DB迁移.DG搭建好,然后把备库激活就可以了. 这样整个迁移中宕机时间也比较短. Oracle 11g的py ...
- oracle 11g duplicate active database 建立物理DG
环境: primary: OS: Red Hat Enterprise 5.8 IP: 10.131.119.118 DBVersion: 11.2.0.3.0 db_name: orcl db_un ...
- Oracle 11g 使用duplicate from active database 创建物理ADG
1.概述: 之前使用冷备的方式搭建了一个物理ADG环境,但是由于冷备需要停库.因此在一些大型库上使用这种技术就不怎么实用了,而使用duplicatefrom active database则必免了这种 ...
- oracle copy database,oracle 11g duplicate from active database 复制数据库(二)
下面介绍将数据库复制到远程主机相同目录结构的操作步骤 1.创建辅助实例的密码文件(这里辅助实例名为dup) ,在目的主机上为辅助实例创建密码文件可以有以下选项: .手动创建密码文件,对于duplica ...
- mysql2ora datacopy,Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库
我们看一个完整的复制示例: Target DB: IP: 192.168.2.42 SID:orcl Auxiliary: IP:192.168.2.43 SID:orcl 我这里复制的目录相同. 如 ...
- 使用Oracle 11g新特性 Active Database Duplication 搭建Dataguard环境
Duplication Database 介绍 Duplicate database可以按照用途分为2种:duplicate database(复制出一个数据库)duplicate standby d ...
- 通过RMAN克隆11g数据库(基于active database)
11g的RMAN duplicate 可以通过Active databaseduplicate和Backup-based duplicate两种方法实现.这里的测试使用的是Active databas ...
- oracle database version,Oracle Database Version History
9i Release 1(9.0.1) 2001年6月 * Traditional Rollback Segments (RBS) are still available, but can be re ...
- Recreate failovered primary database using Flashback Database
很多朋友一直对DataGuard的fast-start failover持怀疑的态度;通过observer的观察,(Fast-Start Failover)FSFO提供了一种在primary数据库不可 ...
最新文章
- C++_pthread read-write lock_读写锁_visual studio 2015下配置
- vue打包后element-icon不显示问题解决
- 怎么用python处理excel文件-python如何处理excel
- 本地仓库管理权限问题
- SAP UI5 Currency 数据类型的校验逻辑分析
- OpenGL pipeline (very important)
- 二层交换网络_网络中的第2层交换
- 华为云华中大联合实验室,夺得2019ICDAR发票识别竞赛世界第一
- 360浏览器清除缓存_微信缓存清理教程
- Openresty 学习笔记(一)opm 工具的使用
- 进阶之路(基础篇) - 003 I/O的模拟的读取
- Ehcache 整合Spring 使用页面、对象缓存(转)
- Android游戏开发中使用Libgdx引擎遇到的问题及解决办法汇总
- VC MFC 换肤 SkinSharp
- vue在开发环境中配置本地hosts修改域名
- python写梦幻西游脚本精灵_奔三新人学习按键精灵脚本做冷门项目
- ios睡眠分析 卧床 睡眠_苹果ios14睡眠记录功能 让用户清楚的了解自己的睡眠
- pycharm 将本地文件添加到library root
- python axis到底如何理解?
- 史上最全Python学习笔记(基于《Python学习手册(第4版)》)——Part3 语句和语法
热门文章
- mongo 唯一约束索引_快速掌握mongoDB(三)——mongoDB的索引详解
- java实现表达式求值_如何编写一个高效的Java表达式求值程序
- 为什么要用!DOCTYPE声明
- 解析JVM内存区域组成
- 【C++进阶】利用重载二元运算符改进平面向量类Vec2D
- leetcode 42. 接雨水 思考分析(暴力、动态规划、双指针、单调栈)
- css模糊_如何使用CSS模糊图像?
- Java LocalDate类| 带示例的getDayOfYear()方法
- 干涉测量技术的应用_技术分享 | 石化行业测量仪表应用在线答疑
- 质量效能研发部php,【百度】百度质量效能研发部【社招/实习】