用于 Oracle 的 Sun Cluster 数据服务指南(适用于 Solaris OS)

更改 DataGuard 实例的角色

Oracle 主数据库和 Oracle 备用数据库之间可进行数据库角色故障转移或切换。使用 Oracle 命令更改 DataGuard 实例的角色时,更改没有传播到代表这些实例的 Sun Cluster 资源。因此,您还必须使用 Sun Cluster 命令更改这些资源的扩展属性,以确保数据库实例以正确的角色启动。

Procedure如何更改 DataGuard 实例的角色

  1. 防止 Sun Cluster 以错误的角色启动实例。

    如果在更改 DataGuard 实例的角色时节点或区域发生故障,Sun Cluster 可能会以错误的角色重新启动该实例。要防止这种可能性,将代表该实例的 Oracle 服务器资源的 Dataguard_role 扩展属性更改为 IN_TRANSITION


    # clresource set -p Dataguard_role=IN_TRANSITION server-rs
    
  2. 在 Oracle 数据库上执行必要的操作,将数据库转换为新角色。

  3. 更改代表该实例的 Oracle 服务器资源的以下扩展属性,以反映该实例的新角色:

    • Dataguard_role

    • Standby_mode

    需要的 Dataguard_roleStandby_mode 组合取决于角色的更改,如下所示:

    • 要从主数据库更改为物理备用数据库,运行以下命令:


      # clresource set -p Dataguard_role=STANDBY -p Standby_mode=PHYSICAL server-rs
      
    • 要从主数据库更改为逻辑备用数据库,运行以下命令:


      # clresource set -p Dataguard_role=STANDBY \
       -p Standby_mode=LOGICAL server-rs
      
    • 要从备用数据库更改为主数据库,运行以下命令:


      # clresource set -p Dataguard_role=PRIMARY server-rs