已索引
切换前检查:
如果切换失败,可以参考下文通过 SQL 命令来处理:
然后把 broker 配置重启一下即可:
disable configuration;
enable configuration;
disable database demodbstd;
enable database demodbstd;
检查当前状态(备库上执行)
DGMGRL> show configuration;
Configuration - demodb
Protection Mode: MaxAvailability
Members:
demodb - Primary database
demodbstd - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 15 seconds ago)
模拟主库断电故障(备库上执行)
[xoracle]$ srvctl stop database -d demodb -o abort
Failover 至备库(备库上执行)
DGMGRL> show configuration;
Configuration - demodb
Protection Mode: MaxAvailability
Members:
demodb - Primary database
Error: ORA-1034: ORACLE not available
demodbstd - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
ERROR (status updated 0 seconds ago)
DGMGRL> failover to demodbstd;
Performing failover NOW, please wait...
Failover succeeded, new primary is "demodbstd"
DGMGRL> show configuration;
Configuration - demodb
Protection Mode: MaxAvailability
Members:
demodbstd - Primary database
Warning: ORA-16857: member disconnected from redo source for longer than specified threshold
demodb - Physical standby database (disabled)
ORA-16661: the standby database needs to be reinstated
Fast-Start Failover: Disabled
Configuration Status:
WARNING (status updated 80 seconds ago)
启动原主库到 mounted 模式(主库上执行)
[xoracle]$ srvctl start database -d demodb -o MOUNT
SQL> select inst_id,name,open_mode,database_role from gv$database;
INST_ID NAME OPEN_MODE DATABASE_ROLE
---------- --------- -------------------- ----------------
2 DEMODB MOUNTED PRIMARY
1 DEMODB MOUNTED PRIMARY
DGMGRL> show configuration;
Configuration - demodb
Protection Mode: MaxAvailability
Members:
demodb - Primary database
demodbstd - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
DISABLED
DGM-17290: Role change detected. This database may no longer be the primary database.
将失败的主库转换为备库(在备库上执行)
DGMGRL> show configuration;
Configuration - demodb
Protection Mode: MaxAvailability
Members:
demodbstd - Primary database
Warning: ORA-16629: database reports a different protection level from the protection mode
demodb - Physical standby database (disabled)
ORA-16661: the standby database needs to be reinstated
Fast-Start Failover: Disabled
Configuration Status:
WARNING (status updated 54 seconds ago)
DGMGRL> reinstate database demodb;`
Reinstating database "demodb", please wait...
Reinstatement of database "demodb" succeeded
DGMGRL> show configuration;
Configuration - demodb
Protection Mode: MaxAvailability
Members:
demodbstd - Primary database
demodb - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 24 seconds ago)
再次查询主库状态(主库上执行)
SQL> select inst_id,name,open_mode,database_role from gv$database;
INST_ID NAME OPEN_MODE DATABASE_ROLE
---------- --------- -------------------- ----------------
1 DEMODB READ ONLY WITH APPLY PHYSICAL STANDBY
2 DEMODB READ ONLY WITH APPLY PHYSICAL STANDBY
正常回切
DGMGRL> switchover to demodb;
Performing switchover NOW, please wait...
Operation requires a connection to database "demodb"
Connecting ...
Connected to "demodb"
Connected as SYSDBA.
New primary database "demodb" is opening...
Oracle Clusterware is restarting database "demodbstd" ...
Connected to "DEMODBSTD"
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 an idle instance.
Connected to "demodbstd"
Connected to "demodbstd"
Switchover succeeded, new primary is "demodb"