可能是有人在我们集群的一个slave节点上对备份数据库单独做了写操作,导致该slave节点数据库与master不同步:
mysql>show slave status;
显示:Slave_SQL_Running状态为No,由于一直没有记录数据库的相关日志,二进制的备份文件和位置也搞得稀里糊涂,干脆直接干掉这个节点的备份,重新配置。
过程:
1. 锁定master表为只读:
#锁定master数据库表
MYSQL>FLUSH TABLES WITH READ LOCK;
2. 导出要备份的数据库:
[user@gisnode-1 ~]$ mysqldump -u myuser -p gisdb>gisdb.sql
Enter Password:
3. 导入到slave节点
#新建一个数据库
mysql>create database gisdb;
mysql>use gisdb;
mysql>source gisdb.sql;
4. 关掉Slave,将主机日志文件和位置信息读入从机
mysql > stop slave;
mysql > change master to master_host='192.168.19.1', master_user='myuser', master_password='mypassword', master_log_file='mysql-bin.000023', master_log_pos=107;
mysql > start slave;
mysql> show slave status\G;
5. 若Slave_IO_Running和Slave_SQL_Running均为Yes代表配置成功。