#保护模式切换

YashanDB单机高可用架构中的保护模式有三种,分别为最大性能(MAXIMIZE PERFORMANCE)、最大可用(MAXIMIZE AVAILABILITY)和最大保护(MAXIMIZE PROTECTION)模式。数据库建库后,默认为最大性能模式。

每个节点实例上均存在保护模式设置且可以独立执行切换,主机的保护模式会通过心跳同步到备机。

只有当前主机上的保护模式设置才起作用。但由于可能发生主备角色变化,当进行保护模式设置的维护时,需要考虑到环境中所有的节点并对其操作。

# 保护模式切换

保护模式切换需要在数据库处于OPEN或者MOUNT状态时操作。

示例

--切换前的保护模式
SELECT protection_mode, protection_level FROM V$DATABASE;
PROTECTION_MODE                   PROTECTION_LEVEL                  
--------------------------------- --------------------------------- 
MAXIMUM AVAILABILITY              MAXIMUM AVAILABILITY           

--切换保护模式
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;
 
--切换后的保护模式
SELECT protection_mode, protection_level FROM V$DATABASE;
PROTECTION_MODE                   PROTECTION_LEVEL                  
--------------------------------- --------------------------------- 
MAXIMUM PERFORMANCE               MAXIMUM PERFORMANCE              

protection_mode字段表示当前设置的保护模式。

protection_level字段表示实际的保护模式,该字段主要用于在最大可用(MAXIMIZE AVAILABILITY)模式下显示redo同步情况:

  • protection_level为RESYNCHRONIZATION时,表示redo没有同步到备机。
  • protection_level为MAXIMUM AVAILABILITY时,表示redo同步到备机。

Caution

1.当在数据库OPEN状态下切换主机的保护模式为最大保护(MAXIMIZE PROTECTION)时,必须保证主机redo同步到备机,否则保护模式切换操作将失败。建议的操作方式为:

  • 先切换到最大可用(MAXIMIZE AVAILABILITY)。
  • 等待redo同步(V$DATABASE的PROTECTION_LEVEL变为MAXIMUM AVAILABILITY)。
  • 再切换到最大保护(MAXIMIZE PROTECTION)。

2.最大保护模式下,默认同步备为MAJORITY,即需要多数派备机收到redo,主机事务才可提交。如果需要指定特定的同步备,请参照定义同步备文档描述进行设置。 3.共享集群不支持保护模式切换。

下载文档
复制链接