MySQL主从恢复(全量恢复数据)

前言

当mysql主从(一主一从模式)数据不同步,常规方式解决不掉,故全量恢复数据并同步数据。

发现问题

首先可以由mstaer status观察到主从已经未同步,其次slave status看到slave_sql的运行状态是no的,而且有error产生错误代码1062;网上百度的跳过错误的方式并没有解决该问题,所以决定重做主从,恢复全量数据。
MySQL数据库master主机master状态
MySQL数据库slave主机master状态
MySQL数据库slave主机slave状态

问题解决

  1. 备份主库数据:
    #mysqldump --socket=/xxx/mysql.sock --single-transaction --master-data=2 -uroot -p'xxxx' -h xx.xx.xx.xx --all-databases > dbdump_20190128.sql

  2. 从库恢复数据:
    1)先将导出数据文件分发给slave主机
    2)从库恢复数据:MySQL [(none)]> source /root/dbdump_20190128.sql

  3. 确认master的mysql-bin和pos信息:
    #cat dbdump_20190128.sql | grep MASTER_LOG_FILE | grep mysql-bin.000
    查看备份sql的log_file与log_pos

  4. 主从同步:
    1)停止slave

    MySQL [none]>  stop slave;
    

    2)同步数据

    MySQL [none]>  change master to master_host='xx.xx.xx.xx',master_user='root',master_password='xxxx',master_port=3306,master_log_file='mysql-bin.000163',master_log_pos=697435740,master_connect_retry=30;
    

    3)启动slave

    MySQL [none]> start  slave;   
    
  5. 同步检测:
    1)查看从库状态
    2)在主库新建库或表,观察从库是否同步
    查看从库状态

备注说明

  1. mysqldump参数说明:
	mysqldump:mysql导出工具

	--socket、-u、-p、-h:指定mysql的sock文件、用户名、密码、主机地址

	--single-transaction:保证一个事务中所有相同的查询读取到同样的数据,其他innodb引擎的线程修改了表的数据并提交,对该dump线程的数据并无影响,不会锁表

	--master-data=2:对于生成的sql文件产生备份时刻的mysql-bion的信息和pos信息

	--all-databases:备份全库 

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL主从切换是指将原本的MySQL主服务器切换为从服务器,同时将原本的从服务器切换为新的主服务器。这种切换可以用于实现高可用性和故障恢复。 下面是一个示例的MySQL主从切换过程: 1. 停止应用程序与MySQL数据库的连接,确保所有数据传输已完成并且没有未完成的事务。 2. 在原主服务器上执行FLUSH TABLES WITH READ LOCK语句,以保证在备份期间没有写操作。 3. 使用mysqldump或其他备份工具对原主服务器进行全量备份。可以使用以下命令执行备份: ``` mysqldump -u <username> -p<password> --all-databases --master-data > backup.sql ``` 4. 将备份文件传输到新主服务器上。 5. 在新主服务器上还原备份文件。可以使用以下命令执行还原: ``` mysql -u <username> -p<password> < backup.sql ``` 6. 在新主服务器上打开binlog功能,并获取新的binlog文件名和位置。 7. 在原从服务器上执行CHANGE MASTER TO语句,将新主服务器配置为新的主服务器。可以使用以下命令执行配置: ``` CHANGE MASTER TO MASTER_HOST='<new_master_host>', MASTER_USER='<replication_user>', MASTER_PASSWORD='<replication_password>', MASTER_LOG_FILE='<new_master_log_file>', MASTER_LOG_POS=<new_master_log_pos>; ``` 8. 在原从服务器上启动复制过程: ``` START SLAVE; ``` 9. 等待一段时间,确保复制过程正常运行。 10. 在应用程序中更新连接配置,将主服务器地址改为新的主服务器。 11. 恢复原主服务器的正常操作,可以将其配置为新的从服务器或者禁用复制功能。 这是一个简单的MySQL主从切换过程示例,实际操作中可能会根据具体需求和环境进行调整。在进行主从切换前,建议先进行充分的备份并测试整个过程,以确保数据的完整性和可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值