脚踏实地、勇往直前!
全部博文(1005)
分类: Mysql/postgreSQL
2016-05-31 14:53:04
通常情况下,我们在日常维护的过程中发现备库的数据跟主库不一致,这个时候我们可以重新部署复制,确保主备数据一致。
1.备份数据库
flush tables with read lock; ##锁表,禁止写入
mysqldump -h localhost -uroot -pmysql -S /db/mmm/mysql/mysql.sock --single-transaction --databases hxl>/db/hxl_bak.sql ##导出备库不一致的数据库
查看主数据库的binlog和pos:
mysql> show master status \G;
*************************** 1. row ***************************
File: binlog.000045
Position: 194
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set: f47c3f0a-6460-11e7-825d-080027f5de7d:1-529
1 row in set (0.00 sec)
2.把数据文件传到需要恢复的机器
[root@host01 db]# scp hxl_bak.sql
3.还原数据库
3.1 停止slave
stop slave
3.1 将原来的数据库删除掉
drop database hxl;
3.2 导入数据库
mysql -h localhost -uroot -pmysql -S /db/mmm/mysql/mysql.sock < /db/hxl_bak.sql
4.重新配置主从
change master to master_host='192.168.56.111',
master_port=3306,
master_user='repl',
master_password='mysql',
master_log_file='binlog.000045', ##主库上show master status查看当前的日志
master_log_pos=194;
start slave;
5.在备份的数据库上释放锁
unlock table; ##释放表锁
-- The End --