ALTER PLACEMENT POLICY

警告:

Placement Rules in SQL 是 TiDB 在 v5.3.0 中引入的实验特性,其语法在 GA 前可能会发生变化,还可能存在 bug。如果你知晓潜在的风险,可通过执行 SET GLOBAL tidb_enable_alter_placement = 1; 来开启该实验特性。

ALTER PLACEMENT POLICY 用于修改已创建的放置策略。此修改会自动更新至所有使用这些放置策略的表和分区。

语法图

1. AlterPolicyStmt ::=
2. "ALTER" "PLACEMENT" "POLICY" IfExists PolicyName PlacementOptionList

4. PolicyName ::=
5. Identifier

7. PlacementOptionList ::=
8. DirectPlacementOption
9. |   PlacementOptionList DirectPlacementOption
10. |   PlacementOptionList ',' DirectPlacementOption

12. DirectPlacementOption ::=
13. "PRIMARY_REGION" EqOpt stringLit
14. |   "REGIONS" EqOpt stringLit
15. |   "FOLLOWERS" EqOpt LengthNum
16. |   "VOTERS" EqOpt LengthNum
17. |   "LEARNERS" EqOpt LengthNum
18. |   "SCHEDULE" EqOpt stringLit
19. |   "CONSTRAINTS" EqOpt stringLit
20. |   "LEADER_CONSTRAINTS" EqOpt stringLit
21. |   "FOLLOWER_CONSTRAINTS" EqOpt stringLit
22. |   "VOTER_CONSTRAINTS" EqOpt stringLit
23. |   "LEARNER_CONSTRAINTS" EqOpt stringLit

示例

注意:

如要查看所在集群中可用的区域,见 SHOW PLACEMENT LABELS。如果未看到任何可用的区域,此 TiKV 集群在部署时可能未正确设置标签 (label)。

1. CREATE PLACEMENT POLICY p1 PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-west-1";
2. ALTER PLACEMENT POLICY p1 PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-west-1,us-west-2" FOLLOWERS=4;
3. SHOW CREATE PLACEMENT POLICY p1\G
1. Query OK, 0 rows affected (0.08 sec)

3. Query OK, 0 rows affected (0.10 sec)

5. *************************** 1. row ***************************
6. Policy: p1
7. Create Policy: CREATE PLACEMENT POLICY `p1` PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-west-1,us-west-2" FOLLOWERS=4
8. 1 row in set (0.00 sec)

MySQL 兼容性

该语句是 TiDB 对 MySQL 语法的扩展。

另请参阅