博客
关于我
MySql 手动执行主从备份
阅读量:796 次
发布时间:2023-02-10

本文共 1024 字,大约阅读时间需要 3 分钟。

今天发现主从数据库没有同步,需要进行解决。先上主库查看状态,使用show processlist;检查进程状态,发现没有异常。接着查看show master status;,结果正常。然后再到从库查看,使用show slave status\G,发现Slave_IO_Running: Yes,但Slave_SQL_Running: No,说明从库没有完成同步。

针对这种情况,可以采用以下两种解决方案:

解决方法一:忽略错误后继续同步

my.cnf文件中添加配置:slave_skip_errors=all。这种方法适用于主从库数据差异不大,或者对数据一致性要求不高的情况。操作步骤如下:

  • 停止从库同步:stop slave;
  • 设置跳过错误计数:set global sql_slave_skip_counter = 1;
  • 启动从库:start slave;
    同步完成后,检查从库状态,应发现Slave_SQL_Running: Yes,说明同步正常。
  • 解决方法二:重新做主从,完全同步

    这种方法适用于主从库数据差异较大,或者要求数据完全一致的情况。操作步骤如下:

  • 进入主库执行锁表:flush tables with read lock;
  • 备份数据库:
    mysqldump -uroot -p -hlocalhost > mysql.bak.sql

    注意:数据库备份需定期进行,确保数据安全。

  • 查看主库状态:show master status;,获取最新的文件和位置信息。
  • 将备份文件传输到从库机器,恢复数据:
    scp mysql.bak.sql root@192.168.128.101:/tmp/
  • 停止从库同步:stop slave;
  • 将备份文件导入从库:source /tmp/mysql.bak.sql;
  • 设置从库同步:
    change master to master_host = '192.168.128.100', master_user = 'rsync', master_port=3306, master_password='', master_log_file = 'mysqld-bin.000001', master_log_pos=3260;
  • 启动从库同步:start slave;
    最后,检查从库状态,确保Slave_IO_Running: YesSlave_SQL_Running: Yes,说明同步完成。
  • 转载地址:http://oubfk.baihongyu.com/

    你可能感兴趣的文章
    MySQL 误操作后数据恢复(update,delete忘加where条件)
    查看>>