本案例使用Oracle 12.1.2.0 + Redhat 6.5 x64版本
主库:host01 192.0.2.21
备库:host02 192.0.2.22
示例:
准备工作
1.配置listener.ora tnsnames.ora sqlnet.ora 并测试tnsping 正常
2.配置库归档 alter database archivelog;
3.配置主库强制日志模式 alter database force logging;
4.在线修改参数文件
主库:
alter system set DB_UNIQUE_NAME=prod1 scope=spfile; alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(prod1,prod2)' alter system set LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=prod1' scope=both; alter system set LOG_ARCHIVE_DEST_2='SERVICE=prod2 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=prod2' scope=both; alter system set REMOTE_LOGIN_PASSWORDFILE='EXCLUSIVE' scope=spfile; alter system set LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' scope=spfile; alter system set FAL_SERVER=prod2 scope=spfile; alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=spfile;
5.备库创建pfile.ora文件目录(包括pdbseed pdbprod1 pdbprod2 pdbprod3 pdbprod4 pdbprod5,adump,数据目录/u01/app/oracle/oradata/PRODCDB/)
6.在线复制(目录不变)
duplicate target database for standby from active database nofilenamecheck;
关闭备库:shutdown immediate; 启用备库:startup mount;
主库检查备库日志传输状态:select status,error from v$archive_dest where dest_id=2;
备库应用日志,同步主库日志:alter database recover managed standby database using current logfile disconnect from session;
停止应用日志:alter database recover managed standby database cancel;
启动备库:alter database open; alter pluggable database all open;
应用日志:alter database recover managed standby database using current logfile disconnect from session;
查看同步情况:
SYS@PRODCDB>select process,sequence#,status from v$managed_standby;
PROCESS SEQUENCE# STATUS
--------- ---------- ------------
ARCH 0 CONNECTED
ARCH 0 CONNECTED
ARCH 0 CONNECTED
ARCH 0 CONNECTED
RFS 0 IDLE
RFS 97 IDLE
RFS 0 IDLE
RFS 0 IDLE
MRP0 97 APPLYING_LOG