Oracle 11gR2 Duplicate target database for standby

本文详细介绍了Oracle DataGuard配置步骤,包括从主数据库复制控制文件到备用数据库并重命名、复制密码文件、使用参数文件启动备用数据库、使用恢复目录复制数据库等关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. copy standby control file from primary db to standby db and rename the file name and location in stdby db same as the primary db

2. copy password file from primary db to the standby db (keep both of them same )

3. use the pfile to startup the standby database using  >>>>>>>>>>

SQL> conn sys@brsstby as sysdba
输入口令:
已连接到空闲例程。
SQL> startup nomount pfile='d:\pfileBRS.ora'
ORACLE 例程已经启动。startup nomount  pfile= '

 >>>use recovery catalog to duplicate database

rman target  sys/oracle@BRS  auxiliary sys/oracle@BRSSTBY catalog rman/rman001@RMANDB

run
{
allocate channel disk1 device type disk;
allocate channel disk2 device type disk ;
allocate channel disk3 device type disk ;
allocate channel disk4 device type disk ;
allocate auxiliary channel aux1 device type disk ;
allocate auxiliary channel aux2 device type disk ;
allocate auxiliary channel aux3 device type disk ;
allocate auxiliary channel aux4 device type disk ;
DUPLICATE TARGET DATABASE
  FOR STANDBY
  FROM ACTIVE DATABASE
  DORECOVER
  PASSWORD FILE
  SPFILE
    SET db_unique_name='BRSSTBY' COMMENT 'Is standby'
    SET LOG_ARCHIVE_DEST_2='SERVICE=BRS ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=BRS'
    SET FAL_SERVER='BRS' COMMENT 'Is primary'
  NOFILENAMECHECK;
}

SQL> shutdown immediate;
ORA-01109: database not open
SQL> startup mount;

SQL> alter database recover managed standby database disconnect from session;

Start the apply process on standby server.

# Foreground redo apply. Session never returns until cancel.
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;

# Background redo apply. Control is returned to the session once the apply process is started.

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

If you need to cancel the apply process, issue the following command.

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

On Primary:

SQL> archive log list
SQL> alter system switch logfile;


On Standby:

SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

SEQUENCE# APPLIED
———- —————————
31 YES
32 YES
33 YES
34 YES
35 IN-MEMORY

 

SQL> ALTER DATABASE REGISTER LOGFILE '<archive destination with archive file>';


on prod DB
SQL> SELECT STATUS,PROCESS FROM V$MANAGED_STANDBY;

STATUS PROCESS
------------ ---------
CLOSING ARCH
CLOSING ARCH
CLOSING ARCH
WRITING LNS

on standby

SQL> SELECT STATUS,PROCESS FROM V$MANAGED_STANDBY;

 

SQL> select database_role from v$database;

DATABASE_ROLE
————————————————
PHYSICAL STANDBY


注意Data Guard 启动顺序:
启动顺序:先standby ,后primary;
关闭顺序:先primary 后standby;


SQL> select member from v$logfile;

MEMBER
-----------------------------------------------
G:\ORACLE_DATA\BRS\REDO41.LOG
D:\ORACLE_DATA\BRS\REDO42.LOG
F:\ORACLE_DATA\BRS\REDO31.LOG
G:\ORACLE_DATA\BRS\REDO32.LOG
E:\ORACLE_DATA\BRS\REDO21.LOG
F:\ORACLE_DATA\BRS\REDO22.LOG
D:\ORACLE_DATA\BRS\REDO11.LOG
E:\ORACLE_DATA\BRS\REDO12.LOG
E:\ORACLE_DATA\STANDBYBRS\STDY_REDO51.LOG
D:\ORACLE_DATA\STANDBYBRS\STDY_REDO52.LOG
F:\ORACLE_DATA\STANDBYBRS\STDY_REDO61.LOG

MEMBER
-----------------------------------------------
G:\ORACLE_DATA\STANDBYBRS\STDY_REDO62.LOG
E:\ORACLE_DATA\STANDBYBRS\STDY_REDO71.LOG
F:\ORACLE_DATA\STANDBYBRS\STDY_REDO72.LOG
D:\ORACLE_DATA\STANDBYBRS\STDY_REDO81.LOG
E:\ORACLE_DATA\STANDBYBRS\STDY_REDO82.LOG

已选择16行。

转载于:https://www.cnblogs.com/jefflu2012/p/3947719.html

<think>嗯,用户想在Oracle 11g RAC环境中使用ACTIVE DATABASE进行duplicate操作,创建一个名为copydb的副本,并且不检查文件名。首先,我需要回忆一下Oracle中的duplicate命令的使用方法,特别是RAC环境下的注意事项。 我记得在单实例环境下,使用RMAN的duplicate命令可以复制数据库,但RAC环境可能更复杂,需要处理多个节点和参数文件。用户提到的命令是“duplicate target database to copydb from active database nofilenamecheck”,但需要确认是否适用于RAC。 根据引用[5],创建辅助实例的参数文件时,需要考虑ORACLE_SID和db_name的设置。在RAC中,可能需要确保各个节点的参数文件正确配置,尤其是db_name和实例名的设置。另外,nofilenamecheck选项应该用来避免文件名冲突,特别是在共享存储的情况下。 接下来,步骤可能包括准备辅助实例的参数文件,启动辅助实例到nomount状态,配置RMAN连接,然后执行duplicate命令。需要注意的是,RAC环境下可能需要每个节点都有相应的参数文件,或者使用共享存储来管理文件。另外,启动MRP进程(如引用[3]提到的)可能是在Data Guard环境中,但这里可能不需要,因为duplicate是直接复制活动数据库。 可能还需要检查网络配置,确保主库和备库之间的连接正常,监听器是否正确启动(如引用[2]中提到的lsnrctl start)。此外,用户可能需要确保目标数据库的目录结构存在,或者使用set newname命令来重定向文件路径,避免与源库冲突。 另外,用户的问题中提到的“nofilenamecheck”选项,可能需要确保RMAN不会因为文件名相同而报错,特别是在ASM或共享存储的情况下,可能需要这个选项来跳过检查。同时,要注意辅助实例的ORACLE_SID是否与源库不同,避免冲突。 可能遇到的错误包括参数文件配置错误,存储路径权限问题,或者网络连接问题。需要确保辅助实例的参数文件中db_name设置为copydb,并且各节点的实例名正确。同时,在RAC环境中,可能需要使用服务名而不是单个实例名,或者配置适当的TNS条目。 最后,测试步骤应该包括启动辅助实例,执行duplicate命令,检查日志是否有错误,并验证数据库是否成功打开。可能需要参考引用中的步骤,如启动到mount状态,应用恢复等,但具体在duplicate过程中可能由RMAN自动处理。</think>### 分步解决方案 #### **1. 准备工作** - **确认源库环境** 确保源数据库(RAC)处于运行状态,所有节点已正确启动,监听服务已启用[^2][^3]。 ```bash srvctl status database -d orcldb # 检查主库状态 lsnrctl status # 检查监听状态 ``` - **创建辅助实例参数文件** 在目标主机上为辅助实例创建参数文件(`initcopydb.ora`),需包含以下关键参数[^5]: ```bash db_name=copydb db_unique_name=copydb instance_name=copydb1,copydb2 # 根据RAC节点数调整 cluster_database=true cluster_database_instances=2 # 与节点数一致 compatible=11.2.0.4 control_files='+DATA/copydb/control01.ctl' log_archive_dest_1='location=+ARCH/copydb' ``` 文件应存放在默认目录(如Linux的 `$ORACLE_HOME/dbs/`)。 #### **2. 启动辅助实例到NOMOUNT状态** - 在每个RAC节点上启动辅助实例: ```sql export ORACLE_SID=copydb1 # 节点1 sqlplus / as sysdba SQL> startup nomount; ``` 确保所有节点实例均处于 `NOMOUNT` 状态。 #### **3. 配置RMAN连接** - 在RMAN中同时连接目标库(源库)和辅助库(目标库): ```bash rman target sys/password@source_db auxiliary sys/password@copydb ``` #### **4. 执行DUPLICATE命令** - 在RMAN中执行以下命令: ```sql RMAN> run { allocate channel ch1 type disk; allocate channel ch2 type disk; allocate auxiliary channel aux1 type disk; allocate auxiliary channel aux2 type disk; duplicate target database to copydb from active database nofilenamecheck spfile set db_name='copydb' set cluster_database='true' set instance_name='copydb1','copydb2' ; } ``` - **`nofilenamecheck`**:跳过文件名冲突检查(适用于ASM或共享存储场景)[^1]。 - **`spfile`**:动态生成目标库参数文件。 #### **5. 验证副本数据库** - 启动目标数据库并检查状态: ```sql srvctl start database -d copydb srvctl status database -d copydb sqlplus / as sysdba SQL> select open_mode from v$database; # 应为READ WRITE ``` --- ### **注意事项** 1. **存储路径**:若使用ASM,需确保 `+DATA` 和 `+ARCH` 目录存在且权限正确。 2. **网络配置**:主备库的TNSNAMES需互相解析,监听器需启用[^2]。 3. **日志分析**:若失败,检查 `$ORACLE_HOME/rdbms/log/` 下的跟踪文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值