| dn3 | ds[3],ds[7] | 0 | mysql | 0 | 0 | 128 | 0 | 0 | 0 | 0 | -1 |
| dnG | ds[8] | 0 | mysql | 0 | 0 | 128 | 0 | 0 | 0 | 0 | -1 |
+------+-------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+
5 rows in set (0.01 sec)
我们发现DATASOURCES中前面4个都有两个节点,INDEX目前都是0,表示连接的是前面这个节点。
这时我们模拟宕机,将ds[0]这个节点kill掉,过几秒钟再用上面这个命令查看时,就会发现第一个INDEX变成了1,也就是说用到的是ds[4]节点。之后的读写都会在ds[4]中操作。
然后我们重新启动ds[0],再查状态,发现还是INDEX还是维持1,cobar不会主动切换回去。假如我们想切换回去,可以用命令switch @@datasource name:index,(序号参数可选)
MySQL [(none)]> switch @@datasource dn0:0;
Query OK, 1 row affected (0.03 sec)
注意该功能只会修改当前cobar的配置,其他节点并不会一同修改,因此有一定风险。配置文件的加载也是一样,多个节点间不会同步,因此也有一点风险。