Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

System Variable: Update tidb-restricted-read-only (#9182) #9223

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions system-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -653,8 +653,13 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数
- 作用域:GLOBAL
- 默认值:`0`
- 可选值:`0` 和 `1`
- 该变量可以控制整个集群的只读状态,开启后,整个集群中的 TiDB 服务器都将进入只读状态,只有 `SELECT`、`USE`、`SHOW` 等不会修改数据的语句才能被执行,其他如 `INSERT`、`UPDATE` 等语句会被拒绝执行。该变量开启只读模式只保证整个集群最终进入只读模式,当变量修改状态还没被同步到其他 TiDB 服务器时,尚未同步的 TiDB 仍然停留在非只读模式。
- 在变量开启时,正在执行的 SQL 语句不会受影响,只对新执行的 SQL 语句进行是否只读的检查。如果有尚未提交的只读事务,可正常提交该事务。如果尚未提交的事务为非只读事务,在事务内执行写入的 SQL 语句会被拒绝。如果未提交的事务已经有数据改动,其提交也会被拒绝。
- 该变量可以控制整个集群的只读状态。开启后(即该值为 `1`),整个集群中的 TiDB 服务器都将进入只读状态,只有 `SELECT`、`USE`、`SHOW` 等不会修改数据的语句才能被执行,其他如 `INSERT`、`UPDATE` 等语句会被拒绝执行。
- 该变量开启只读模式只保证整个集群最终进入只读模式,当变量修改状态还没被同步到其他 TiDB 服务器时,尚未同步的 TiDB 仍然停留在非只读模式。
- 在变量开启时,正在执行的 SQL 语句不会受影响,只对新执行的 SQL 语句进行是否只读的检查。
- 在变量开启时,对于尚未提交的事务:
- 如果有尚未提交的只读事务,可正常提交该事务。
- 如果尚未提交的事务为非只读事务,在事务内执行写入的 SQL 语句会被拒绝。
- 如果尚提交的事务已经有数据改动,其提交也会被拒绝。
- 当集群开启只读模式后,所有用户(包括 `SUPER` 用户)都无法执行可能写入数据的 SQL 语句,除非该用户被显式地授予了 `RESTRICTED_REPLICA_WRITER_ADMIN` 权限。
- 拥有 `RESTRICTED_VARIABLES_ADMIN` 或 `SUPER` 权限的用户可以修改该变量。如果用户开启了[安全增强模式 (Security Enhanced Mode)](/system-variables.md#tidb_enable_enhanced_security),则只有 `RESTRICTED_VARIABLES_ADMIN` 权限的用户才能修改该变量。

Expand Down