处于只读模式的集群的状态显示为 ,与处于 DISABLED
状态的集群对比:
两种状态的集群都禁止与其它集群传输日志。
DISABLED WITH READ ONLY
仅支持PRIMARY
角色的集群,包括原主集群与新主集群; 角色的集群即使以只读模式启动,也不会进入DISABLED WITH READ ONLY
状态。处于
DISABLED WITH READ ONLY
状态的集群支持普通租户的强一致性读,各个分区的日志会发生变化;处于DISABLED
状态的集群保证普通租户的日志不发生变化,适用于无损 Failover 后的接入流程,无损 Failover 后原主集群的接入操作请参见 执行无损 Failover 后原主集群接入流程。
只读模式的特性及使用限制如下:
处于只读模式的集群的普通租户支持强一致性读和弱一致性读操作。
处于只读模式的集群的普通租户不支持写入操作和 DDL 操作。
处于只读模式的集群不支持新建租户。
当处于
VALID
状态的主集群不可用或者不存在时,支持通过 Failover 命令将只读模式的集群切换为VALID
状态的主集群。
操作步骤
原主集群启动后,执行以下命令,查看集群状态,确认进入
DISABLED WITH READ ONLY
状态即只读模式状态。原主集群以只读模式启动后,会进行自我隔离,即不会从新主集群或者其他备集群同步数据,自身也不会向其他集群同步数据,保证数据安全性。在用户侧,普通租户仅支持读操作,不支持写入和 DDL 操作,并且保证数据冻结在 Failover 之前的快照版本。
登录集群的普通租户,订正新主集群与原主集群的数据。
OceanBase 数据库默认开启了强一致性读,不需要特殊配置,直接订正数据即可。您也可以通过以下方法强制指定强一致性读:
设置 Session 变量