重要-准确-MySQL数据库主从修复

MySQL 主从复制修复详解(无需锁表)

在某些生产环境中,锁表操作可能会导致服务中断或性能问题,因此需要一种无需锁表的方式来修复和重建 MySQL 主从复制关系。以下是一个更加严谨且不涉及锁表的 MySQL 主从修复步骤:

环境设定

  • 主数据库(Master)

    • IP地址:172.10.12.195
    • 数据库账号:root
    • 数据库密码:xxxxxxx(实际使用时请替换为真实密码)
  • 从数据库(Slave)

    • IP地址:172.10.12.200
    • 数据库账号:root
    • 数据库密码:xxxxxxx(实际使用时请替换为真实密码)

修复步骤

1. 获取主数据库的二进制日志位置信息

为了确保数据一致性,无需锁表,可以利用 --single-transaction 选项在不锁定表的情况下获取一致性的快照,并通过 --master-data 选项记录当前的二进制日志文件和位置。

在主数据库上执行以下命令导出数据:

mysqldump -u root -p --all-databases --single-transaction --master-data=1 > dump.sql

或导出指定数据库(如 saas_nacos):

mysqldump -u root -p saas_nacos --single-transaction --master-data=1 > dump.sql
  • --single-transaction:在事务中导出数据,适用于 InnoDB 表,确保数据一致性而无需锁表。

  • --master-data=1:在 dump.sql 文件中插入 CHANGE MASTER 语句,记录当前的二进制日志文件和位置,如下示例:

    -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000849', MASTER_LOG_POS=1291053;
    

输入密码 xxxxxxx 以执行导出操作。

2. 将导出的数据传输到从数据库服务器

使用 scp 命令将 dump.sql 文件传输到从服务器:

scp -o HostKeyAlgorithms=+ssh-rsa dump.sql aaa@172.10.12.200:/tmp
  • aaa 是从数据库服务器的用户名,文件传输到 /tmp 目录。
3. 在从数据库上导入数据

登录到从数据库服务器,并执行以下命令导入数据:

nohup mysql -u root -pxxxxxxx < /tmp/dump.sql > /
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ascarl2010

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值