author:chenjunwen 294712221 2022-3-14

    安全停机 - 图1
    This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
    1.22实验功能

    停止服务

    1. /*+ mycat:pauseServer{
    2. "connectionIds":[1]
    3. } */;

    除了connectionIds中会话ID和当前连接的会话,其他会话在没有事务的情况下停止接收SQL,如果10秒内,所有会话无法停止接收SQL,则报错并恢复接收SQL
    执行该注释后,如果成功,不能把上述排除停止接收sql的会话都关闭,否则,因为mycat不接收sql,可能没有会话可用.

    恢复服务

    1. /*+ mycat:resumeServer{
    2. } */;

    在执行pauseServer之后,执行此注释,开始恢复接收SQL

    停止创建新的网络连接

    1. /*+ mycat:setAcceptConnect{
    2. "value":1 //允许创建新的连接
    3. } */;
    4. /*+ mycat:setAcceptConnect{
    5. "value":0 //禁止创建新的连接
    6. } */;

    之后成功后,根据需求确保有会话可以操作mycat.如果没有会话可以操作mycat,就没法恢复允许创建新连接.

    会话自杀

    1. /*+ mycat:setReadyToCloseSQL{
    2. "sql":"select 'x'"
    3. } */;

    通知Mycat中所有连接在接收到此SQL的时候,关闭会话,sql一般是心跳语句。