---
title: "执行 Failover 后数据的订正流程 | OceanBase 文档中心"
description: 执行 Failover 后数据的订正流程 执行有损 Failover 后，新主集群相比原主集群可能会丢失一部分数据，OceanBase 数据库提供了集群的只读模式功能，方便您订正新主集群与原主集群的数据。 背景信息 处于只读模式的集群的状态显示为 DISABLED WITH READ ONLY ，与处于 DISABL…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 3.2.3 企业版 LTS

# 执行 Failover 后数据的订正流程

更新时间：2024-04-07 14:30:34

执行有损 Failover 后，新主集群相比原主集群可能会丢失一部分数据，OceanBase 数据库提供了集群的只读模式功能，方便您订正新主集群与原主集群的数据。

## 背景信息

处于只读模式的集群的状态显示为 `DISABLED WITH READ ONLY`，与处于 `DISABLED` 状态的集群对比：

- 两种状态的集群都禁止与其它集群传输日志。
 - `DISABLED WITH READ ONLY` 仅支持 `PRIMARY` 角色的集群，包括原主集群与新主集群；`PHYSICAL STANDBY` 角色的集群即使以只读模式启动，也不会进入 `DISABLED WITH READ ONLY` 状态。
 - 处于 `DISABLED WITH READ ONLY` 状态的集群支持普通租户的强一致性读，各个分区的日志会发生变化；处于 `DISABLED` 状态的集群保证普通租户的日志不发生变化。

只读模式的特性及使用限制如下：

- 只有集群角色为 `PRIMARY` 的集群才能进入只读模式。
 - 处于只读模式的集群的普通租户支持强一致性读和弱一致性读操作。
 - 处于只读模式的集群的普通租户不支持写入操作和 DDL 操作。
 - 处于只读模式的集群不支持新建租户。
 - 当处于 `VALID` 状态的主集群不可用或者不存在时，支持通过 Failover 命令将只读模式的集群切换为 `VALID` 状态的主集群。

## 操作步骤

1. 在原主集群的所有 Server 上，指定特殊参数 `-m disabled_with_readonly_cluster`，启动 observer。

   只读模式要求原主集群的所有 Server 以特殊参数启动。集群启动后会进入 `DISABLED WITH READ ONLY` 状态。该状态会在集群内部持久化，后续 Server 重启不再要求指定特殊参数。

   ```shell
   bin/observer -m disabled_with_readonly_cluster

   ```
 2. 原主集群启动后，执行以下命令，查看集群状态，确认进入 `DISABLED WITH READ ONLY` 状态即只读模式状态。

   ```sql
   obclient> SELECT CLUSTER_ROLE, CLUSTER_STATUS FROM V$OB_CLUSTER;
   +--------------+-------------------------+
   | CLUSTER_ROLE | CLUSTER_STATUS          |
   +--------------+-------------------------+
   | PRIMARY      | DISABLED WITH READ ONLY |
   +--------------+-------------------------+
   1 row in set

   ```

   原主集群以只读模式启动后，会进行自我隔离，即不会从新主集群或者其他备集群同步数据，自身也不会向其他集群同步数据，保证数据安全性。在用户侧，普通租户仅支持读操作，不支持写入和 DDL 操作，并且保证数据冻结在 Failover 之前的快照版本。
 3. 登录集群的普通租户，订正新主集群与原主集群的数据。

   OceanBase 数据库默认开启了强一致性读，不需要特殊配置，直接订正数据即可。您也可以通过以下方法分别在新主集群与原主集群上强制指定强一致性读：

      - 设置 Session 变量

       ```sql
       obclient> SET ob_read_consistency =STRONG;

       ```
      - 在 SQL 语句中指定 Hint

       ```sql
       obclient> SELECT /*+read_consistency(strong) */  FROM table_name;

       ```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
