xtraBackup 实现不停 master 服务做主从同步

当从库服务器异常时,需要重新设置从节点。本文详细介绍了如何实现主库免密登录从库,进行数据备份,以及在从库上恢复数据的步骤,包括在线备份、异地备份方案、数据传输、恢复过程和主从同步配置。注意操作顺序和关键步骤,确保MySQL服务正常启动并进行主从同步。
摘要由CSDN通过智能技术生成

基本描述

从库服务器异常,需要重做从节点。

主库服务器从库服务器
master-mysqlslave-mysql
192.168.1.31192.168.1.32
  • 数据量:900Gi
  • MySQL Version:5.6.27

操作

建立 master 免密登陆 slave

  • master 生成密钥
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
  • 将本地的公钥复制到 slave 机器上
# 发送密钥 
ssh-copy-id 192.168.1.32

master 服务器备份数据

  • 【方案一】在 master 服务器上在线备份数据库
# 本地全备
nohup innobackupex --user=root --password=xxx /tmp/backup/ &> dump.log &
  • 【方案二】 异地备份
# 异地全备
nohup innobackupex --user=root --password=xxx --defaults=/etc/my.cnf --slave-info --stream=tar /data/backup/xtrabackup | ssh -p 22 slave-mysql cat " >" /data/backup/xtrabackup/db_2022_04_29.tar &
  • 数据发送至从服务器
nohup scp -r /tmp/backup/ 192.168.1.32:/data/backup &

说明:

  1. innobackupex 工具不支持直接异地备份,需要使用流式异地备份 方案二
  2. 数据量较大,建议使用后台备份数据 nohup方式
  3. 异地全备 不支持收集备份日志,无法判断异地备份是否完成

slave 服务器上操作

  1. 关闭 mysql 服务,然后清空mysql数据目录下文件【重要】

  2. 开始恢复数据,假设备份文件的路径在:/data/backup/2022-xx-xx

# 恢复日志文件
nohup innobackupex --user=root --password=xxx --use-memory=4G --apply-log /data/backup/db &> import.log &

# 备份原始数据
mv /var/lib/mysql /var/lib/mysql_bak 
mkdir /var/lib/mysql 

# 恢复数据文件, 需要停止数据库,清除 /var/lib/mysql 数据
nohup innobackupex --defaults-file=/etc/my.cnf --user=root --password=xxx --copy-back /data/backup/db/2022-xxx &> copy_back.log &

说明: 以上操作,务必按照顺序执行,操作顺序颠倒,会引起mysql服务器启动不了!

  1. 修改数据目录权限
# innobackupex 导入数据的权限不是 mysql 
chown -R mysql.mysql /var/lib/mysql
  1. 安全方式启动 mysql,查看是否有异常
mysqld_safe --defaults-file=/etc/my.cnf &

# 如果没有异常报错,就关闭mysql
mysqladmin -uroot -p shutdown
  1. 查看 binlog 日志文件的位置值,做主从同步
cat /data/backup/2022-xx-xx/xtrabackup_binlog_info 
mysql-bin.007448        86780847        85efd34d-1732-11e9-ba1f-00163e0c4d45:1-17764402967
  1. 在 slave 机器上做主从相关操作
-- 创建同步用户: master 和 slave 都需要执行
mysql> grant REPLICATION SLAVE ON *.* to repl_user@'192.168.%.%' identified by '123456';

mysql> flush privileges;

-- 主从同步配置:slave 执行
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.31', \
MASTER_USER='repl_user', \
MASTER_PASSWORD='123456', \
MASTER_PORT=3306, \
MASTER_LOG_FILE='mysql-bin.007448', \
MASTER_LOG_POS=86780847;

-- 启动主从同步:slave 执行
mysql> start slave;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值