0
点赞
收藏
分享

微信扫一扫

【运维心得】正确的校正mysql-slave及mysqldump


实践出真知,有些细节,记录下。

本文不涉及主备知识,有需右转:

mysql 正确的dump 命令:

0. 检查当前主库所在位置 
  
ip addr 查看虚拟ip所在位置 
  
1. 备机数据库dump备份: 
  
mysqldump -uroot --dump-slave=2 --single-transaction --databases db1 db2 -p > 指定位置/xxx.sql 
  
2. 主机数据库dump备份: 
  
mysqldump -uroot --master-data=2 --single-transaction --databases db1 db2 -p > 指定位置/xxx.sql 
  
3. 主机的dump数据 导入到 备机数据库 
  
备机执行: 
  
stop slave; 
  
mysql -uroot -p < 指定位置/xxx.sql 
  
4. 
  
备机: 
  
stop slave; (上一步执行了,则无需再次执行) 
  
找到master对应的pos信息:(如果master host没有丢失,仅处理pos位置即可) 从dump文件中找到binlog文件与pos 
  
(dump时 --master-data=2 会以注释的形式记录到导出文件) 
  
change master to master_log_file='binlog.000001', 
  
master_log_pos=862; 
  
start slave; 
  
5. 验证: 
  
show slave status\G 
  
查看如下两者为YES,且无其他报错信息,即正常 
  
 Slave_IO_Running: Yes 
  
 Slave_SQL_Running: Yes

着重解释下:

  1. 主库: dump时 --master-data=2 会以注释的形式记录到导出文件,即使主机仍然在写,但是我们已经知道

导出时确切的binlog文件以及位置了。导入到备机后,可以直接执行。

如:




【运维心得】正确的校正mysql-slave及mysqldump_mysql


  1. 从库执行时,使用--dump-slave=2 作用和上面一样的。只是角色为slave时,对应的状态是slave status
举报

相关推荐

0 条评论