尽管pt-slave-find是个很好的主从拓扑发现工具,但命令行看起来毕竟不太直观,db-topology是我写的一个python小工具,可以以图方式直观显示MySQL/MariaDB的拓扑结构.如下图:
一主两从
级联复制
基本思路:
脚本里指定user和password,这个user能连上所有节点,且至少具有replication slave、replication client、process权限,通过
show slave status;
show slave host;
select host from INFORMATION_SCHEMA.PROCESSLIST where command = 'Binlog Dump'
递归找出它的所有master和slave.
依赖:
Python3
Connector/Python
NetworkX
使用方法
$ git clone https://github.com/leafonsword/db-topology.git
$ cd db-topology
$ chmod +x db-topology.py
修改db-topology.py里:
user = 'yourname'
password = 'yourpassword'
$ ./db-topology.py IP1:PORT [IP2:PORT ........]
然后当前目录下会生成一个force.json文件,这是绘图的数据素材,接下来用浏览器打开topology.html就能看到动态图了.