背景
上期给大家介绍了 SHOW INSTANCE LIST
语法,通过 SHOW INSTANCE LIST
语句可以查看当前集群中 Proxy 实例的状态信息;本期紧接上期内容为大家介绍如何通过 DistSQL 启停 Proxy 实例
语法
RAL 语法 DISABLE INSTNCE
以及 ENABLE INSTANCE
完整语法如下:
关键字解析:
- instanceId :此处
instanceId
提供三种输入形式,默认的 IP 加 PORT 形式、标识符形式和字符形式
语法作用
-
DISABLE INSTANCE instanceId
:将实例由启动状态调整为停止状态 -
ENABLE INSTANCE instanceId
:将实例由停止状态调整为启动状态
特别说明
- 只允许集群模式下使用
-
instanceId
默认为 IP@PORT 的形式 -
DISABLE INSTANCE
语法并不会终止目标实例的进程,只是在逻辑上对其进行停用 -
DISABLE INSTANCE instanceId
无法停止正在执行该语句的 Proxy 实例;举例来说 在实例 instance_A 上执行DISABLE INSTANCE instance_A
时,会出现'instance_A' is the currently in use instance and cannot be disabled
的异常
实战
准备工作
参考 SHOW INSTANCE LIST
,需要先以集群模式启动多个 Proxy (5.1.1-SNAPSHOT)实例,此处将启动12.3.4.56@3310
和 12.3.4.56@3309
两个实例
停用实例
首先使用命令行工具连接至实例 12.3.4.56@3309
,在执行 DISABLE INSTANCE instanceId
之前,先通过 SHOW INSTANCE LIST
查看当前集群下的 Proxy 实例
+----------------+-----------+------+---------+-----------+--------+
| instance_id | host | port | status | mode_type | labels |
+----------------+-----------+------+---------+-----------+--------+
| 12.3.4.56@3310 | 12.3.4.56 | 3310 | enabled | Cluster | |
| 12.3.4.56@3309 | 12.3.4.56 | 3309 | enabled | Cluster | |
+----------------+-----------+------+---------+-----------+--------+
之后通过 DISABLE INSTANCE 12.3.4.56@3310
停用实例
执行后通过 SHOW INSTANCE LIST
可以发现实例 12.3.4.56@3310
的 status
由 enabled
变为 disabled
+----------------+-----------+------+----------+-----------+--------+
| instance_id | host | port | status | mode_type | labels |
+----------------+-----------+------+----------+-----------+--------+
| 12.3.4.56@3310 | 12.3.4.56 | 3310 | disabled | Cluster | |
| 12.3.4.56@3309 | 12.3.4.56 | 3309 | enabled | Cluster | |
+----------------+-----------+------+----------+-----------+--------+
最后使用命令行连接至 12.3.4.56@3310
执行任意的 DistSQL 进行验证,如出现 Circuit break mode is ON.
则表示停用成功
此处任然以 SHOW INSTANCE LIST
为例,连接至 12.3.4.56@3310
执行结果如下
1000 - Circuit break mode is ON.
启用实例
刚才已经通过 DISABLE INSTANCE instanceId
完成了实例的停用,接下来将通过 ENABLE INSTANCE instanceId
将停用的实例 12.3.4.56@3310
重新启用;完整的命令为 ENABLE INSTANCE 12.3.4.56@3310
在执行后,尝试使用命令行工具连接至 12.3.4.56@3310
并执行 SHOW INSTANCE LIST
+----------------+-----------+------+---------+-----------+--------+
| instance_id | host | port | status | mode_type | labels |
+----------------+-----------+------+---------+-----------+--------+
| 12.3.4.56@3310 | 12.3.4.56 | 3310 | enabled | Cluster | |
| 12.3.4.56@3309 | 12.3.4.56 | 3309 | enabled | Cluster | |
+----------------+-----------+------+---------+-----------+--------+
可以发现 12.3.4.56@3310
已经能够执行 DistSQL 命令,并且展示的结果中 12.3.4.56@3310
的status
已经由 disabled
修改为 enabled
以上就是通过 DistSQL 对实例启停的过程。