已索引

切换前检查:

如果切换失败,可以参考下文通过 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"
-- By 许望(RHCA、OCM、VCP)
最后修改:2024 年 09 月 23 日 05 : 12 PM
如果觉得我的文章对你有用,请随意赞赏