---
title: 如何设置租户全局只读-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于如何设置租户全局只读相关的常见问题和使用技巧，帮助您快速解决如何设置租户全局只读的难题。
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

划线反馈

# 如何设置租户全局只读

更新时间：2026-06-10 01:56

适用版本： V2.1.x、V2.2.x、V3.1.x、V3.2.x 内容类型：How-to  

本文将介绍如何将租户设置为全局只读。

## 适用版本

OceanBase 数据库所有版本。

## 适用场景

将租户设置为全局只读适用于以下场景：

- 租户数据迁移，需要停止对源库的写操作。
 - 租户租约到期，需要停止租户的写操作。
 - 租户存储空间达到上限，需要停止租户的写操作。

限制租户使用的方法包括：

- 使用 sys 租户锁定业务租户，但该操作影响较大，会使租户无法登录，无法读写数据。
 - 撤回租户账号权限，但该操作效果有限，账号较多时操作繁琐。
 - 设置租户全局只读。

本文通过配置全局变量 `tx_read_only` 的方法将租户设置为全局只读，有关 `tx_read_only` 的详细信息，请参见《OceanBase 数据库 参考指南》中的 **系统变量** 章节。

## 配置步骤

1. 使用 root 用户登录租户，其中 `tenant_name` 为租户名称。

   ```unknow
   [admin@hostname ~]# obclient -hxxx.xxx.xx.xxx -P2881 -uroot@<tenant_name> -p -A

   ```
 2. 将 `tx_read_only` 设置为 ON，表示开启租户全局只读。

   ```unknow
   obclient> SET GLOBAL tx_read_only='ON';

   ```

## 配置后验证

在该租户上执行 SELECT 命令，如果没有返回错误，则说明租户可读。

```unknow
obclient> SELECT * FROM fruit;
+------+
| id   |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.01 sec)

```

在租户上执行 INSERT、UPDATE 或 DELETE 命令，如果返回错误信息 `Cannot execute statement in a READ ONLY transcation` 则说明租户的全局只读已生效。

```unknow
obclient> INSERT INTO fruit VALUES (3);
ERROR 1792 (25006): Cannot execute statement in a READ ONLY transcation

```

Previous

[_enable_add_between_range_partitions 租户隐藏配置项的使用说明](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000001095388)

Next

[Oracle 租户丢失 SYS 密码如何重置](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000501939) ![有帮助](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) 咨询热线
