【无标题】

注意:在mysql主库正常生产运行的时候,主从同步出现问题,需要快速实现主从同步
注意:在无论是主库还是从库,一定要确保磁盘空间足够

一、在主库机器上备份数据(master机器上操作)
1.安装innobackupex命令
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install percona-xtrabackup-24
yum install qpress
2.在master端通过innobackup进行备份(linux shell)
#这条命令执行完成会生成一个日期命名的目录/data/sql_dump/2023-01-11_14-53-21/
innobackupex --defaults-file=/etc/my.cnf --user=root --password=*** /data/sql_dump
#xtrabackup把备份过程中可能有尚未提交的事务或已经提交但未同步数据文件的事务,写到xtrabackup_logfile文件,所以要先通过这个日志文件回滚,把未完成的事务同步到备份文件,保证数据文件处于一致性
innobackupex --apply-log /data/sql_dump/2023-01-11_14-53-21/
3.将主库备份好的目录scp到从库(linux shell)
scp -r  -P 22 /data/sql_dump/2023-01-11_14-53-21/  3i_admin@slave_host_ip:slave_host_folder
#3i_admin -- 用户
#slave_host_ip -- 从库ip
#slave_host_folder -- 需要放在从库那个文件夹下面(data/sql_dump)
4.设置从库用户,只授予同步数据的权限(进入数据库里面操作)
create user 'repl'@'%' identified by 'root';
grant REPLICATION SLAVE on *.* to 'repl'@'%'; 
ALTER USER 'repl'@'%' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY 'FhwYp75sq4vutlxed';
flush privileges;
二、连接到主库(从库机器上操作)
1.停止主从复制, 停止从库,将当前的data目录删除,将备份的目录拷贝到从库的data目录
1、在从库mysql终端执行,停止主从复制
stop slave  
2、在从库linux shell执行,停止从库mysql服务
/etc/init.d/mysqld stop 
3、删除/data/mysql/data/,再创建
rm -rf /data/mysql/data/
mkdir /data/mysql/data/
4、将主库scp过来的目录复制到从库/data/mysql/data/
cp /data/sql_dump/2023-01-11_14-53-21/* /data/mysql/data/
chown -R mysql.mysql /data/mysql
2.查看主库的log文件和log偏移量
cat /data/sql_dump/2023-01-11_14-53-21/xtrabackup_binlog_info
3.启动从库,并重置主库信息
1、先启动从库mysql服务
/etc/init.d/mysqld start
2、进入mysql终端,重置连接主库信息
reset master;
4.重新连接主库
CHANGE MASTER TO MASTER_HOST='主库ip', MASTER_USER='repl', MASTER_PASSWORD='FhwYp75sq4vutlxed', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000049', MASTER_LOG_POS=154, MASTER_CONNECT_RETRY=10;
5.再开启主从复制
start slave;
6.查看主从状态,并关注几个指标
show slave status\G;


Slave_IO_Running: Yes #io线程,yes为正常
Slave_SQL_Running: Yes #sql 线程,yes为正常
Seconds_Behind_Master: 0 ##主从延时,单位秒,0是正常的

4.如果主从延时不为0,可以关闭从库binlog日志
# 在从库上 修改/etc/my.cnf 配置,停掉主从同步,然后重启数据库再开启主从同步:
vim /etc/my.cnf
	#binlog_format = row
	#log-slave-updates = 1
	#skip_slave_start = 1
	#log-bin= /home/mysql/log/binlog-mysql
	skip-log-bin
	disable-log-bin
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值