--单实例库 set line 200 col member for a100 select * from v$logfile; select group#, bytes/1024/1024 M from v$log; alter database add standby logfile '/u01/app/oracle/oradata/SRM/standby_redo01.log' size 100M; alter database add standby logfile '/u01/app/oracle/oradata/SRM/standby_redo02.log' size 100M; alter database add standby logfile '/u01/app/oracle/oradata/SRM/standby_redo03.log' size 100M; alter database add standby logfile '/u01/app/oracle/oradata/SRM/standby_redo04.log' size 100M;
--配置log_archive_config和log_archive_dest_n,11g最多30个standby吧好像** alter system set log_archive_config='dg_config=(srm,srmdg)';
4. 设置备库redo应用位置
1 2 3 4 5 6
--本机使用fra 注意租后db_unique_name指定tns名,这里可以设置redo实时应用或者应用归档 alter system set log_archive_dest_1='location=use_db_recovery_file_dest valid_for=(all_logfiles,all_roles) db_unique_name=srm'; --归档应用型 alter system set log_archive_dest_2='SERVICE=srmdg arch async affirm valid_for=(online_logfiles,primary_role) db_unique_name=srmdg'; --日志应用型 --alter system set log_archive_dest_2='SERVICE=srmdg LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=srmdg';
5. 启用redo应用1 2 ,默认已经启动
1 2
alter system set log_archive_dest_state_1=enable; alter system set log_archive_dest_state_2=enable;
6. 设置standby file自动管理,默认为manual
1
alter system set standby_file_management='auto';
7. 设置sys远程登录
1 2 3
--检查EXCLUSIVE,一般默认为exclusive ,为none表明不允许sys远程登录,如果值不是EXCLUSIVE,则: show parameter REMOTE_LOGIN_PASSWORDFILE; alter system set remote_login_passwordfile=exclusive scope=spfile;
8. 设置故障转移
1 2 3 4 5
alter system set fal_server='srmdg';
--设置日志和数据文件名称转换,用于主和备库路径不一致情况(注意: 主库在前,备库在后,但是为standby才生效,所以一般是primary配置备库库在前,standby配置主库在前) alter system set db_file_name_convert='/u01/app/oracle/oradata2/SRMDG/','/u01/app/oracle/oradata/SRM' scope=spfile; alter system set log_file_name_convert='/u01/app/oracle/oradata2/SRMDG/','/u01/app/oracle/oradata/SRM' scope=spfile;
9. 启动主库归档
1 2 3 4 5 6
--重启生效静态参数,启动归档(如果已经启用就不用了) shu immediate startup mount; alter database archivelog; --alter database open; --archive log list;
Recovery Manager: Release 11.2.0.4.0 - Production on Fri Apr 19 07:53:36 2019
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: SRM (DBID=2040369693)
RMAN> connect auxiliary sys/oracle@srmdg
connected to auxiliary database: SRM (not mounted) # 注意这里状态
--arch型 RMAN>duplicate target database for standby from active database dorecover spfile set "db_unique_name"="SRMDG" set control_files="/u01/app/oracle/oradata2/SRMDG/control01.ctl","/u01/app/oracle/oradata2/SRMDG/control02.ctl" set log_archive_dest_1="LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=srmdg" set log_archive_dest_2="SERVICE=srm arch async affirm VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=srm" set db_file_name_convert="/u01/app/oracle/oradata/SRM/","/u01/app/oracle/oradata2/SRMDG/" set log_file_name_convert="/u01/app/oracle/oradata/SRM/","/u01/app/oracle/oradata2/SRMDG/" set fal_server="srm" comment "is primary" nofilenamecheck;
1 2 3 4 5 6 7 8 9 10 11 12 13 14
--lgwr型 --duplicate target database -- for standby -- from active database -- dorecover -- spfile -- set "db_unique_name"="SRMDG" -- set control_files="/u01/app/oracle/oradata2/SRMDG/control01.ctl","/u01/app/oracle/oradata2/SRMDG/control02.ctl" -- set log_archive_dest_1="LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=srmdg" -- set log_archive_dest_2="SERVICE=srm lgwr sync affirm VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=srm" -- set db_file_name_convert="/u01/app/oracle/oradata/SRM/","/u01/app/oracle/oradata2/SRMDG/" -- set log_file_name_convert="/u01/app/oracle/oradata/SRM/","/u01/app/oracle/oradata2/SRMDG/" -- set fal_server="srm" comment "is primary" -- nofilenamecheck;
10. 查看备库相关参数
1 2 3 4 5 6 7 8 9 10
set line 200 col OPEN_MODE for a15 col PROTECTION_MODE for a25 col PROTECTION_MODE for a25 col DATABASE_ROLE for a20 col PROTECTION_LEVEL for a25 col LOG_MODE for a15 col name for a15 col SWITCHOVER_STATUS for a20 select DBID,NAME,LOG_MODE,OPEN_MODE,DATABASE_ROLE,SWITCHOVER_STATUS,PROTECTION_MODE,PROTECTION_LEVEL from v$database;
11. 启动备库,开始归档日志应用
1 2
alter database open; alter database recover managed standby database disconnect from session;
12. 在备库查询
1 2 3 4 5 6 7 8 9 10 11 12 13
select client_process, process, thread#, sequence#, status from v$managed_standby where client_process='LGWR' or process='MRP0';
--如下所示 注意这是使用arch进程,可能监控不到应用状态 CLIENT_PROCESS PROCESS THREAD# SEQUENCE# STATUS ------------------------ --------------------------- ---------- ---------- ------------------------------------ N/A MRP0 1 63 WAIT_FOR_LOG
SQL> select DBID,NAME,LOG_MODE,OPEN_MODE,DATABASE_ROLE,SWITCHOVER_STATUS,PROTECTION_MODE,PROTECTION_LEVEL from v$database;
DBID NAME LOG_MODE OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS PROTECTION_MODE PROTECTION_LEVEL ---------- --------------- --------------- --------------- -------------------- -------------------- ------------------------- ------------------------- 2040369693 SRM ARCHIVELOG READ WRITE PRIMARY TO STANDBY MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE
备库查询
1 2 3 4 5
SQL> select DBID,NAME,LOG_MODE,OPEN_MODE,DATABASE_ROLE,SWITCHOVER_STATUS,PROTECTION_MODE,PROTECTION_LEVEL from v$database;
DBID NAME LOG_MODE OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS PROTECTION_MODE PROTECTION_LEVEL ---------- --------------- --------------- --------------- -------------------- -------------------- ------------------------- ------------------------- 2040369693 SRM ARCHIVELOG READ ONLY WITH PHYSICAL STANDBY NOT ALLOWED MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE