验证高可用
- 模拟停用一台SECONDARY节点后,测试读请求的情况。
- 登录数据库从库1。
1
/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysqls.sock
- 关闭数据库。
1
shutdown;
- 登录主库并查看组成员信息。
1 2
/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysqlm.sock select * from performance_schema.replication_group_members;
- 执行读请求脚本。
1
sh /home/read_6447.sh
数据库127.0.0.1:3307服务停用了,读端口只路由到127.0.0.1:3308服务上,测试符合预期。
- 登录数据库从库1。
- 模拟停用两台SECONDARY节点后,测试读路由的情况。
- 登录数据库从库2。
1
/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysqls2.sock
- 关闭数据库。
1
shutdown;
- 登录主库并查看组成员信息。
1 2
/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysqlm.sock select * from performance_schema.replication_group_members;
- 执行读请求脚本。
1
sh /home/read_6447.sh
所有SECONDARY服务器停用了,读端口路由到PRIMARY节点服务127.0.0.1:3306上,测试符合预期(round-robin-with-fallback算法实现的)。
- 登录数据库从库2。
- 模拟PRIMARY节点切换。
- 分别启动数据库从库1和数据库从库2。
1 2
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf-slave-mgr & /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf-slave-2-mgr &
- 分别登录到数据库从库1和数据库从库2。
1 2
/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysqls.sock /usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysqls2.sock
- 分别在登录到数据库从库1和数据库从库2里执行如下语句启动MGR。
1
START GROUP_REPLICATION;
- 查看组成员信息(可在MGR群组的任意成员中查看)。
1
select * from performance_schema.replication_group_members;
- 将从库2设置为PRIMARY节点,其它为SECONDARY节点。
1
select group_replication_set_as_primary('从库2的member_id');
- 执行读请求脚本。
1
sh /home/read_6446.sh
- 执行写请求脚本。
- 编辑文件。
1
vim /home/write_6446.sh
- 替换为如下内容。
1 2 3 4 5
#!/bin/bash for i in {1001..2000} do /usr/local/mysql/bin/mysql -uroot -p123456 -P6446 -h127.0.0.1 -Dsysbench -e "insert into test1(id,report_serverid) values($i,@@server_id)" done
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 执行写请求脚本。
1
sh /home/write_6446.sh
- 确认测试数据。
1
/usr/local/mysql/bin/mysql -uroot -p123456 -P6446 -h127.0.0.1 -Dsysbench -e "select * from test1"
- 编辑文件。
- 执行读请求脚本。
1
sh /home/read_6447.sh
写端口(6446端口)所有的读写请求都路由到PRIMARY服务127.0.0.1:3308上,读端口(6447端口)所有的读请求都路由到SECONDARY服务127.0.0.1:3306和127.0.0.1:3307上,测试符合预期。
- 分别启动数据库从库1和数据库从库2。
父主题: 部署MySQL Router