Mysql Xtrabackup主从同步参考手册(centos7.6+mysql8.0.26)

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

Mysql Xtrabackup主从同步参考手册(centos7.6+mysql8.0.26)

一、查看操作系统版本

cat /etc/redhat-release

二、查看mysql版本

三、下载对应系统版本和mysql版本 Xtrabackup安装包(主机需要外网下载权限,否则无法解决安装过程中依赖问题)
https://www.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.0.26-18/binary/redhat/7/

四、主机上下载后,再使用yum安装

yum -y install percona-xtrabackup-80-8.0.26-18.1.el7.x86_64.rpm

五、主库上进行备份(非压缩)

(1)脚本内容

cat xtrabackup.sh

#!/bin/bash

#脚本文件需要775权限

 

echo "begin_dbaflag  `date +%Y-%m-%d`  `date +%H:%M:%S`"

#以下三行需要根据实际情况调整,备份bakdir目录需要775权限

bakdir=/data/backup

username=mysql用户名

passwd=mysql用户名对应密码

 

#以下所有都通用,无需调整

Dat=`date +%Y%m%d`

dat=`date +%Y-%m-%d-%H-%M-%S`

day=`date +%w`

MYCNF=`systemctl status mysqld |grep -i datadir|awk -F '=' '{print "--defaults-file="$2}' |awk '{print $1}'`

 

cd $bakdir

if [ -e $day ]

then   rm -rf $day

fi

mkdir $day;

 

/usr/bin/xtrabackup $MYCNF  --user=$username --password=$passwd --no-lock --backup --target-dir=$bakdir/$day

 

echo -e "\n end_dbaflag  `date +%Y-%m-%d`  `date +%H:%M:%S`"

(2)脚本文件需要775权限(chmod 775 xtrabackup.sh)

(3)脚本计划任务举例

(4)备份正常日志举例

六、上传备份到从库
压缩打包(备份过大,建议压缩,IO为固态,可考虑直接传出)


上传备份到备库,并解压(路径任意指定,路径需要775权限):


七、从库上恢复


(1)停止从库mysql服务(注意IP)
systemctl stop mysql         #停从库上mysql服务

ps -ef |grep  -i mysql        #检查没有mysql进程说明停止成功

(2)删除从库上mysql数据目录和日志目录下数据
cd /data/mysql/mysql3306/    #cd到实际路径下面删除 data和log目录,即只保留etc/my.cnf

rm  -rf /data/mysql/mysql3306/{data,log}/*    #删除命令

(3)恢复重做日志

xtrabackup --defaults-file=/data/mysql/mysql3306/etc/my.cnf  --prepare --use-memory=2G --target-dir=/data/backup/5          #恢复重做日志:

(4)恢复数据
xtrabackup --defaults-file=/data/mysql/mysql3306/etc/my.cnf  --copy-back --target-dir=/data/backup/5          #恢复数据,时间与拷贝数据有关(与OS上IO有关)

(5)从库参数文件中server_id值调整:
调整参数文件/data/mysql/mysql3306/etc/my.cnf中server_id值从库比主库小即可。

备注:这里的路径要特别注意,为实际mysql路径:默认若安装在/kingdee下,那数据位置为:/kingdee/mysql/mysql3306/,具体参考my.cnf中datadir位置。

(6)改恢复后的data目录和log目录下所有权限为mysql:
chown mysql:mysql  data/ -R
chown mysql:mysql  log/ -R

创建log路径下目录relay-log以及修改权限为mysql:
mkdir /data/mysql/mysql3306/log/relay-log
chown mysql:mysql /data/mysql/mysql3306/log/relay-log

八、从库上同步处理

(1)恢复完成后,启动从库上mysql服务:systemctl start mysql;

 (2)登录到从库mysql -uroot -p密码

(3)从库上创建与主库同样用于同步账号&授权
alter user repl@'%' identified by 'repl';

GRANT ALL PRIVILEGES ON *.* TO 'repl'@'%' ;

flush privileges;



同步操作:

reset master;

set @@global.gtid_purged=' b9f25a54-0232-11ed-a7c8-080027de1ec4:1-9'; #从备份目录中的xtrbackup_info文件得到gtid值

change master to master_host='192.168.56.220',master_user='repl',master_password='repl',master_port=3306,master_auto_position=1;

start slave;
show slave status \G;

(4)若有报错遗漏地方,检查后可按如下处理:

报无relay-log目录问题(见前面主从库都需要创建此目录):

再执行同步操作,开始同步:start slave; 查看从库状态:show  slave status \G;

提示账号没权限(若repl权限给的过小报此错误):

给同步账号all权限(建议给同步权限即可)

alter user repl@’%’ identified by ‘repl’;
grant all privileges on *.* to ‘repl’@’%’;

flush privileges;


最后再stop slave; start slave;


(5)基于位点方式处理
若前面已经使用gtid方式,需要对master_auto_position置0即可,位点方式(binlog文件号和位点号可在xtrabackup_info文件中查到):
reset master;
change master to master_auto_position=0;
change master to master_host='192.168.56.220',master_user='repl',master_password='repl',master_port=3306,MASTER_LOG_FILE='mysql_bin_30001.000004' ,MASTER_LOG_POS=196;


Mysql Xtrabackup主从同步参考手册(centos7.6+mysql8.0.26)

一、查看操作系统版本cat /etc/redhat-release 二、查看mysql版本三、下载对应系统版本和mysql版本 Xtrabackup安装包(主机需要外网下载...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息