1、检测准备库是否能正常切换
主库:
alter database commit to switchover to physical standby with session shutdown;
备库:
alter database commit to switchover to primary with session shutdown;
alter database open;
主库:
startup;
2、确保主备库都是spfile启动
主库:
SYS@dgpri>show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DATA/ZZZDGPRI/parameterfile/s
pfile.276.1025373149
**备库:**
SYS@dgphy>show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DATADG/ZZZDGPHY/parameterfile
/spfile.258.1025389845
3、修改dg_broker_start参数为TRUE
主库:
SYS@dgpri>show parameter dg_broker;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
dg_broker_config_file1 string /u01/app/oracle/product/19.2.0
.0.0/dbhome_1/dbs/dr1ZZZDGPRI.
dat
dg_broker_config_file2 string /u01/app/oracle/product/19.2.0
.0.0/dbhome_1/dbs/dr2ZZZDGPRI.
dat
dg_broker_start boolean FALSE
SYS@dgpri>alter system set dg_broker_start = true;
System altered.
SYS@dgpri>host ps -ef | grep dmon
oracle 35590 1 0 18:39 ? 00:00:00 ora_dmon_dgpri
oracle 35639 9449 0 18:39 pts/2 00:00:00 /bin/bash -c ps -ef | grep dmon
oracle 35641 35639 0 18:39 pts/2 00:00:00 grep dmon
备库:
SYS@dgphy>show parameter dg_broker;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
dg_broker_config_file1 string /u01/app/oracle/product/19.2.0
.0.0/dbhome_1/dbs/dr1ZZZDGPHY.
dat
dg_broker_config_file2 string /u01/app/oracle/product/19.2.0
.0.0/dbhome_1/dbs/dr2ZZZDGPHY.
dat
dg_broker_start boolean FALSE
SYS@dgphy>alter system set dg_broker_start = true;
System altered.
SYS@dgphy>host ps -ef | grep dmon
oracle 14377 1 0 18:39 ? 00:00:00 ora_dmon_dgphy
oracle 14410 8169 0 18:40 pts/2 00:00:00 /bin/bash -c ps -ef | grep dmon
oracle 14412 14410 0 18:40 pts/2 00:00:00 grep dmon
4、修改dg_broker参数文件位置
主库:
SYS@dgpri>alter system set dg_broker_config_file1 = '+DATA/dr1ZZZDGPRI.dat' scope = spfile;
System altered.
SYS@dgpri>alter system set dg_broker_config_file2 = '+DATA/dr2ZZZDGPRI.dat' scope = spfile;
System altered.
备库:
SYS@dgphy>alter system set dg_broker_config_file1 = '+DATADG/dr1ZZZDGPHY.dat' scope = spfile;
System altered.
SYS@dgphy>alter system set dg_broker_config_file2 = '+DATADG/dr2ZZZDGPHY.dat' scope = spfile;
System altered.
重启主备库
5、配置DG_BROKER监听和TNS
可以使用默认监听,也可以创建一个非默认监听,这里使用默认监听。
查看domain,如果存在则需要在服务后加上domain后缀
SYS@dgpri>show parameter domain
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_domain string
**配置LISTENER**
主库:
[grid@kkk admin]$ cat listener.ora
#Backup file is /u01/app/grid/crsdata/kkk/output/listener.ora.bak.kkk.grid line added by Agent
# listener.ora Network Configuration File: /u01/app/19.2.0.0.0/grid/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.59.16)(PORT = 1521))
)
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(ORACLE_HOME=/u01/app/oracle/product/19.2.0.0.0/dbhome_1)
(GLOBAL_DBNAME=ZZZDGPRI)
(SID_NAME=dgpri)
)
(SID_DESC=
(ORACLE_HOME=/u01/app/oracle/product/19.2.0.0.0/dbhome_1)
(GLOBAL_DBNAME=ZZZDGPRI_DGMGRL) #DG_BROKER专用服务名
(SID_NAME=dgpri)
)
)
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_LISTENER=ON # line added by Agent
备库:
[grid@hhh admin]$ cat listener.ora
#Backup file is /u01/app/grid/crsdata/hhh/output/listener.ora.bak.hhh.grid line added by Agent
# listener.ora Network Configuration File: /u01/app/19.2.0.0.0/grid/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.59.17)(PORT = 1521))
)
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(ORACLE_HOME=/u01/app/oracle/product/19.2.0.0.0/dbhome_1)
(GLOBAL_DBNAME=ZZZDGPHY)
(SID_NAME=dgphy)
)
(SID_DESC=
(ORACLE_HOME=/u01/app/oracle/product/19.2.0.0.0/dbhome_1)
(GLOBAL_DBNAME=ZZZDGPHY_DGMGRL)
(SID_NAME=dgphy)
)
)
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_LISTENER=ON # line added by Agent
添加后lsnrctl reload
配置TNS
主备库tnsnames.ora文件添加如下
TNS_ZZZDGPRI_DGMGRL=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.59.16)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ZZZDGPRI_DGMGRL)
)
)
TNS_ZZZDGPHY_DGMGRL=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.59.17)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ZZZDGPHY_DGMGRL)
)
)
6、配置DG_BROKER参数文件
DGMGRL> create configuration c1 as primary database is ZZZDGPRI connect identifier is TNS_ZZZDGPRI_DGMGRL
> ;
**12c环境直接添加备库会报错,清空log_archive_dest_n**
DGMGRL> add database ZZZDGPHY as connect identifier is TNS_ZZZDGPHY_DGMGRL maintained as PHYSICAL;
Error: ORA-16698: member has a LOG_ARCHIVE_DEST_n parameter with SERVICE attribute set
#清空主备库log_archive_dest_n参数
DGMGRL> add database ZZZDGPHY as connect identifier is TNS_ZZZDGPHY_DGMGRL maintained as PHYSICAL;
Database "zzzdgphy" added
启用参数文件
DGMGRL> enable configuration;
Enabled.
DGMGRL> show configuration verbose;
Configuration - c1
Protection Mode: MaxPerformance
Members:
zzzdgpri - Primary database
zzzdgphy - Physical standby database
Properties:
FastStartFailoverThreshold = '30'
OperationTimeout = '30'
TraceLevel = 'USER'
FastStartFailoverLagLimit = '30'
CommunicationTimeout = '180'
ObserverReconnect = '0'
FastStartFailoverAutoReinstate = 'TRUE'
FastStartFailoverPmyShutdown = 'TRUE'
BystandersFollowRoleChange = 'ALL'
ObserverOverride = 'FALSE'
ExternalDestination1 = ''
ExternalDestination2 = ''
PrimaryLostWriteAction = 'CONTINUE'
ConfigurationWideServiceName = 'ZZZ_CFG'
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS
DGMGRL> show database zzzdgpri verbose;
Error: ORA-16606: unable to find property "verbose"
DGMGRL> show database verbose zzzdgpri
Database - zzzdgpri
Role: PRIMARY
Intended State: TRANSPORT-ON
Instance(s):
dgpri
Properties:
DGConnectIdentifier = 'tns_zzzdgpri_dgmgrl'
ObserverConnectIdentifier = ''
FastStartFailoverTarget = ''
PreferredObserverHosts = ''
LogShipping = 'ON'
RedoRoutes = ''
LogXptMode = 'ASYNC'
DelayMins = '0'
Binding = 'optional'
MaxFailure = '0'
ReopenSecs = '300'
NetTimeout = '30'
RedoCompression = 'DISABLE'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyLagThreshold = '30'
TransportLagThreshold = '30'
TransportDisconnectedThreshold = '30'
ApplyParallel = 'AUTO'
ApplyInstances = '0'
StandbyFileManagement = ''
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '0'
LogArchiveMinSucceedDest = '0'
DataGuardSyncLatency = '0'
LogArchiveTrace = '0'
LogArchiveFormat = ''
DbFileNameConvert = ''
LogFileNameConvert = ''
ArchiveLocation = ''
AlternateLocation = ''
StandbyArchiveLocation = ''
StandbyAlternateLocation = ''
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
LogXptStatus = '(monitor)'
SendQEntries = '(monitor)'
RecvQEntries = '(monitor)'
HostName = 'kkk'
StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.59.16)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ZZZDGPRI_DGMGRL)(INSTANCE_NAME=dgpri)(SERVER=DEDICATED)))'
TopWaitEvents = '(monitor)'
SidName = '(monitor)'
Log file locations:
Alert log : /u01/app/oracle/diag/rdbms/zzzdgpri/dgpri/trace/alert_dgpri.log
Data Guard Broker log : /u01/app/oracle/diag/rdbms/zzzdgpri/dgpri/trace/drcdgpri.log
Database Status:
SUCCESS
DGMGRL> show database verbose zzzdgphy
Database - zzzdgphy
Role: PHYSICAL STANDBY
Intended State: APPLY-ON
Transport Lag: 0 seconds (computed 0 seconds ago)
Apply Lag: 0 seconds (computed 0 seconds ago)
Average Apply Rate: 30.00 KByte/s
Active Apply Rate: 0 Byte/s
Maximum Apply Rate: 0 Byte/s
Real Time Query: ON
Instance(s):
dgphy
Properties:
DGConnectIdentifier = 'tns_zzzdgphy_dgmgrl'
ObserverConnectIdentifier = ''
FastStartFailoverTarget = ''
PreferredObserverHosts = ''
LogShipping = 'ON'
RedoRoutes = ''
LogXptMode = 'ASYNC'
DelayMins = '0'
Binding = 'optional'
MaxFailure = '0'
ReopenSecs = '300'
NetTimeout = '30'
RedoCompression = 'DISABLE'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyLagThreshold = '30'
TransportLagThreshold = '30'
TransportDisconnectedThreshold = '30'
ApplyParallel = 'AUTO'
ApplyInstances = '0'
StandbyFileManagement = ''
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '0'
LogArchiveMinSucceedDest = '0'
DataGuardSyncLatency = '0'
LogArchiveTrace = '0'
LogArchiveFormat = ''
DbFileNameConvert = ''
LogFileNameConvert = ''
ArchiveLocation = ''
AlternateLocation = ''
StandbyArchiveLocation = ''
StandbyAlternateLocation = ''
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
LogXptStatus = '(monitor)'
SendQEntries = '(monitor)'
RecvQEntries = '(monitor)'
HostName = 'hhh'
StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.59.17)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ZZZDGPHY_DGMGRL)(INSTANCE_NAME=dgphy)(SERVER=DEDICATED)))'
TopWaitEvents = '(monitor)'
SidName = '(monitor)'
Log file locations:
Alert log : /u01/app/oracle/diag/rdbms/zzzdgphy/dgphy/trace/alert_dgphy.log
Data Guard Broker log : /u01/app/oracle/diag/rdbms/zzzdgphy/dgphy/trace/drcdgphy.log
Database Status:
SUCCESS
7、switchover测试
DGMGRL> help switchover;
Switches roles between a primary and standby database
Syntax:
SWITCHOVER TO <standby database name> [WAIT [<timeout in seconds>]];
DGMGRL> switchover to ZZZDGPHY;
Performing switchover NOW, please wait...
Operation requires a connection to database "zzzdgphy"
Connecting ...
Connected to "ZZZDGPHY"
Connected as SYSDBA.
New primary database "zzzdgphy" is opening...
Oracle Clusterware is restarting database "zzzdgpri" ...
Connected to an idle instance.
Connected to an idle instance.
Connected to an idle instance.
Connected to an idle instance.
Connected to an idle instance.
Connected to an idle instance.
Connected to "ZZZDGPRI"
Connected to "ZZZDGPRI"
Switchover succeeded, new primary is "zzzdgphy"
DGMGRL> show configuration;
Configuration - c1
Protection Mode: MaxPerformance
Members:
zzzdgphy - Primary database
zzzdgpri - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 88 seconds ago)
DGMGRL> switchover to zzzdgpri;
Performing switchover NOW, please wait...
Operation requires a connection to database "zzzdgpri"
Connecting ...
Connected to "ZZZDGPRI"
Connected as SYSDBA.
New primary database "zzzdgpri" is opening...
Oracle Clusterware is restarting database "zzzdgphy" ...
Connected to an idle instance.
Connected to an idle instance.
Connected to an idle instance.
Connected to an idle instance.
Connected to an idle instance.
Connected to an idle instance.
Connected to "ZZZDGPHY"
Connected to "ZZZDGPHY"
Switchover succeeded, new primary is "zzzdgpri"
DGMGRL> show configuration;
Configuration - c1
Protection Mode: MaxPerformance
Members:
zzzdgpri - Primary database
zzzdgphy - Physical standby database
Warning: ORA-16854: apply lag could not be determined
Fast-Start Failover: Disabled
Configuration Status:
WARNING (status updated 8 seconds ago)
DGMGRL> show configuration;
Configuration - c1
Protection Mode: MaxPerformance
Members:
zzzdgpri - Primary database
zzzdgphy - Physical standby database
Warning: ORA-16854: apply lag could not be determined
Fast-Start Failover: Disabled
Configuration Status:
WARNING (status updated 36 seconds ago)
DGMGRL> show configuration;
Configuration - c1
Protection Mode: MaxPerformance
Members:
zzzdgpri - Primary database
zzzdgphy - Physical standby database
Warning: ORA-16854: apply lag could not be determined
Fast-Start Failover: Disabled
Configuration Status:
WARNING (status updated 44 seconds ago)
DGMGRL> show configuration;
Configuration - c1
Protection Mode: MaxPerformance
Members:
zzzdgpri - Primary database
zzzdgphy - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 39 seconds ago)
修改属性
EDIT { RECOVERY_APPLIANCE | DATABASE | FAR_SYNC }
<object name> SET PROPERTY <property name> = <value>;
DGMGRL> edit database zzzdgpri set property StandbyFileManagement = 'AUTO';
Property "standbyfilemanagement" updated
DGMGRL> edit database zzzdgphy set property StandbyFileManagement = 'AUTO';
Connected to "ZZZDGPHY"
Property "standbyfilemanagement" updated
主库:
SYS@dgpri>select name,db_unique_name,database_role,open_mode,switchover_status from v$database;
NAME DB_UNIQU DATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS
--------------- -------- ---------------- -------------------- ------------------
ZZZ ZZZDGPRI PRIMARY READ WRITE TO STANDBY
SYS@dgpri>archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 57
Next log sequence to archive 59
Current log sequence 59
备库:
SYS@dgphy>select name,db_unique_name,database_role,open_mode,switchover_status from v$database;
NAME DB_UNIQU DATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS
--------------- -------- ---------------- -------------------- ------------------
ZZZ ZZZDGPHY PHYSICAL STANDBY READ ONLY WITH APPLY NOT ALLOWED
SYS@dgphy>select max(sequence#) from v$archived_log where name like '+FRA%' and applied in ('YES','IN-MEMORY');
MAX(SEQUENCE#)
--------------
58
8、开启FAILOVER
开启主备库闪回
主库:
YS@dgpri>select flashback_on from v$database;
FLA
---
NO
SYS@dgpri>alter database flashback on;
Database altered.
SYS@dgpri>select flashback_on from v$database;
FLA
---
YES
备库:
SYS@dgphy>select flashback_on from v$database;
FLA
---
NO
SYS@dgphy>alter database flashback on;
alter database flashback on
*
ERROR at line 1:
ORA-01153: an incompatible media recovery is active
SYS@dgphy>alter database recover managed standby database cancel;
Database altered.
SYS@dgphy>alter database flashback on;
Database altered.
SYS@dgphy>select flashback_on from v$database;
FLA
---
YES
SYS@dgphy>alter database recover managed standby database using current logfile disconnect;
Database altered.
DGMGRL> enable fast_start failover;
Enabled in Potential Data Loss Mode.
DGMGRL> show configuration verbose;
Configuration - c1
Protection Mode: MaxPerformance
Members:
zzzdgpri - Primary database
zzzdgphy - (*) Physical standby database
(*) Fast-Start Failover target
Properties:
FastStartFailoverThreshold = '30'
OperationTimeout = '30'
TraceLevel = 'USER'
FastStartFailoverLagLimit = '30'
CommunicationTimeout = '180'
ObserverReconnect = '0'
FastStartFailoverAutoReinstate = 'TRUE'
FastStartFailoverPmyShutdown = 'TRUE'
BystandersFollowRoleChange = 'ALL'
ObserverOverride = 'FALSE'
ExternalDestination1 = ''
ExternalDestination2 = ''
PrimaryLostWriteAction = 'CONTINUE'
ConfigurationWideServiceName = 'ZZZ_CFG'
Fast-Start Failover: Enabled in Potential Data Loss Mode
Lag Limit: 30 seconds
Threshold: 30 seconds
Active Target: zzzdgphy
Potential Targets: "zzzdgphy"
zzzdgphy valid
Observer: kkk
Shutdown Primary: TRUE
Auto-reinstate: TRUE
Observer Reconnect: (none)
Observer Override: FALSE
Configuration Status:
SUCCESS
开启observer
[oracle@kkk ~]$ dgmgrl
DGMGRL for Linux: Release 19.0.0.0.0 - Production on Mon Jan 13 20:09:11 2020
Version 19.2.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
Welcome to DGMGRL, type "help" for information.
DGMGRL> help start;
Starts the fast-start failover observer
Syntax:
START OBSERVER [FILE=<observer file>];
START OBSERVER [<observer name>]
[FILE IS <observer file>]
[LOGFILE IS <observer log file>]
[TRACE_LEVEL IS { USER | SUPPORT }];
START OBSERVER [<observer name>]
IN BACKGROUND
[FILE IS <observer file>]
[LOGFILE IS <observer log file>]
CONNECT IDENTIFIER IS <connect identifier>
[TRACE_LEVEL IS { USER | SUPPORT }];
START OBSERVING [<configuration group name>]
[TRACE_LEVEL IS { USER | SUPPORT }];
DGMGRL> start observer;
not logged on
Failed to start the observer.
DGMGRL> conn sys/oracle@TNS_ZZZDGPRI_DGMGRL as sysdba;
Unrecognized command "conn", try "help"
DGMGRL> connect sys/oracle@TNS_ZZZDGPRI_DGMGRL as sysdba;
Connected to "ZZZDGPRI"
Connected as SYSDBA.
DGMGRL> start observer;
[W000 2020-01-13T20:09:58.949+08:00] FSFO target standby is zzzdgphy
Observer 'kkk' started
[W000 2020-01-13T20:09:59.321+08:00] Observer trace level is set to USER
[W000 2020-01-13T20:09:59.321+08:00] Try to connect to the primary.
[W000 2020-01-13T20:09:59.321+08:00] Try to connect to the primary tns_zzzdgpri_dgmgrl.
[W000 2020-01-13T20:09:59.451+08:00] The standby zzzdgphy is ready to be a FSFO target
[W000 2020-01-13T20:10:00.451+08:00] Connection to the primary restored!
[W000 2020-01-13T20:10:02.451+08:00] Disconnecting from database tns_zzzdgpri_dgmgrl.
9、测试FAILOVER
主库:
#主库关闭进行FAILOVER测试
SYS@dgpri>shutdown abort;
ORACLE instance shut down.
[W000 2020-01-13T20:13:17.939+08:00] Primary database cannot be reached.
[W000 2020-01-13T20:13:17.939+08:00] Fast-Start Failover threshold has not exceeded. Retry for the next 30 seconds
[W000 2020-01-13T20:13:18.940+08:00] Try to connect to the primary.
[W000 2020-01-13T20:13:20.116+08:00] Primary database cannot be reached.
[W000 2020-01-13T20:13:21.116+08:00] Try to connect to the primary.
[W000 2020-01-13T20:13:44.030+08:00] Primary database cannot be reached.
[W000 2020-01-13T20:13:44.030+08:00] Fast-Start Failover threshold has not exceeded. Retry for the next 3 seconds
[W000 2020-01-13T20:13:45.030+08:00] Try to connect to the primary.
[W000 2020-01-13T20:13:46.207+08:00] Primary database cannot be reached.
[W000 2020-01-13T20:13:46.207+08:00] Fast-Start Failover threshold has not exceeded. Retry for the next 1 second
[W000 2020-01-13T20:13:47.207+08:00] Try to connect to the primary.
[W000 2020-01-13T20:13:48.385+08:00] Primary database cannot be reached.
[W000 2020-01-13T20:13:48.385+08:00] Fast-Start Failover threshold has expired.
[W000 2020-01-13T20:13:48.385+08:00] Try to connect to the standby.
[W000 2020-01-13T20:13:48.385+08:00] Making a last connection attempt to primary database before proceeding with Fast-Start Failover.
[W000 2020-01-13T20:13:48.385+08:00] Check if the standby is ready for failover.
[S002 2020-01-13T20:13:48.402+08:00] Fast-Start Failover started...
2020-01-13T20:13:48.402+08:00
Initiating Fast-Start Failover to database "zzzdgphy"...
[S002 2020-01-13T20:13:48.402+08:00] Initiating Fast-start Failover.
Performing failover NOW, please wait...
Failover succeeded, new primary is "zzzdgphy"
2020-01-13T20:14:36.545+08:00
[S002 2020-01-13T20:14:36.545+08:00] Fast-Start Failover finished...
[W000 2020-01-13T20:14:36.545+08:00] Failover succeeded. Restart pinging.
[W000 2020-01-13T20:14:36.565+08:00] Primary database has changed to zzzdgphy.
[W000 2020-01-13T20:14:36.573+08:00] Try to connect to the primary.
[W000 2020-01-13T20:14:36.573+08:00] Try to connect to the primary tns_zzzdgphy_dgmgrl.
[W000 2020-01-13T20:14:36.747+08:00] The standby zzzdgpri needs to be reinstated
[W000 2020-01-13T20:14:36.747+08:00] Try to connect to the new standby zzzdgpri.
[W000 2020-01-13T20:14:36.747+08:00] Connection to the primary restored!
ri.
[W000 2020-01-13T20:14:48.772+08:00] Connection to the new standby restored!
#当主库修复好后,failover会自动就行修复
[W000 2020-01-13T20:15:23.855+08:00] Connection to the new standby restored!
[W000 2020-01-13T20:15:56.921+08:00] Try to connect to the primary tns_zzzdgphy_dgmgrl.
[W000 2020-01-13T20:15:57.921+08:00] Connection to the primary restored!
[W000 2020-01-13T20:15:57.921+08:00] Wait for new primary to be ready to reinstate.
[W000 2020-01-13T20:15:58.927+08:00] New primary is now ready to reinstate.
[W000 2020-01-13T20:15:59.927+08:00] Issuing REINSTATE command.
2020-01-13T20:15:59.927+08:00
Initiating reinstatement for database "zzzdgpri"...
Reinstating database "zzzdgpri", please wait...
[W000 2020-01-13T20:16:21.983+08:00] The standby zzzdgpri is ready to be a FSFO target
Reinstatement of database "zzzdgpri" succeeded
2020-01-13T20:17:09.802+08:00
[W000 2020-01-13T20:17:10.085+08:00] Successfully reinstated database zzzdgpri.
DGMGRL> connect sys/oracle@TNS_ZZZDGPRI_DGMGRL as sysdba;
Connected to "ZZZDGPRI"
Connected as SYSDBA.
DGMGRL> disable fast_start failover;
Disabled.
DGMGRL> show configuration verbose;
Configuration - c1
Protection Mode: MaxPerformance
Members:
zzzdgphy - Primary database
zzzdgpri - Physical standby database
Properties:
FastStartFailoverThreshold = '30'
OperationTimeout = '30'
TraceLevel = 'USER'
FastStartFailoverLagLimit = '30'
CommunicationTimeout = '180'
ObserverReconnect = '0'
FastStartFailoverAutoReinstate = 'TRUE'
FastStartFailoverPmyShutdown = 'TRUE'
BystandersFollowRoleChange = 'ALL'
ObserverOverride = 'FALSE'
ExternalDestination1 = ''
ExternalDestination2 = ''
PrimaryLostWriteAction = 'CONTINUE'
ConfigurationWideServiceName = 'ZZZ_CFG'
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS
10、关闭FAILOVER
DGMGRL> connect sys/oracle@TNS_ZZZDGPRI_DGMGRL as sysdba;
Connected to "ZZZDGPRI"
Connected as SYSDBA.
DGMGRL> disable fast_start failover;
Disabled.
DGMGRL> show configuration verbose;
Configuration - c1
Protection Mode: MaxPerformance
Members:
zzzdgphy - Primary database
zzzdgpri - Physical standby database
Properties:
FastStartFailoverThreshold = '30'
OperationTimeout = '30'
TraceLevel = 'USER'
FastStartFailoverLagLimit = '30'
CommunicationTimeout = '180'
ObserverReconnect = '0'
FastStartFailoverAutoReinstate = 'TRUE'
FastStartFailoverPmyShutdown = 'TRUE'
BystandersFollowRoleChange = 'ALL'
ObserverOverride = 'FALSE'
ExternalDestination1 = ''
ExternalDestination2 = ''
PrimaryLostWriteAction = 'CONTINUE'
ConfigurationWideServiceName = 'ZZZ_CFG'
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS