一、mysql主从搭建使用mysql自身自己做,需要停止mysql服务进行,这种情况下面临以下问题
1.影响客户正在运行的软件,数据库比较大的情况下耗时时间长
2.如果不想影响客户使用体验,就是晚上加班搞
为了更好软件体验及避免加班情况,可以借助于xtrackbackup工具进行搭建
二、环境准备
1.系统CentoS7
2.mysql5.7(两台服务器,一台主库master 一台从库slave)
三、安装xtrabackup工具,主、从两台服务器都需要安装,以下是安装步骤
1.下载安装
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.26/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.26-1.el7.x86_64.rpm
yum localinstall -y ./percona-xtrabackup-24-2.4.26-1.el7.x86_64.rpm
2.检查是否安装成功。执行一下命令出现如下情况表示安装成功
rpm -ql percona-xtrabackup-24
3.主库服务器导出备份
innobackupex --defaults-file=/etc/my.cnf -S /tmp/mysql.sock datadir=/home/data/ddserver/mysql/data -- --host=localhost --port=3306 --user=root --password=1234 /data/xtrabackup/
解释:--defaults-file:mysql默认配置文件
/tmp/mysql.sock: mysql.sock文件路径
datadir:mysql数据目录所在位置
/data/xtrabackup/:导出备份所放置位置
命令执行完毕之后会在 /data/xtrabackup/目录下生成一个当前时间生成的目录,里面存在的是导出的数据
4.使用 --apply-log参数使得主从数据趋于一致性状态
参数说明:--apply-log:该选项表示同xtrabackup的--prepare参数,一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据 文件仍处理不一致状态。--apply-log的作用是通过回滚未提交的事务及同步已经提交的事务至数据文件使数据文件处于一致性状态。
当看到最后显示:completed OK! 字样的时候,则表示完成一致性操作。
5.从库服务器mysql data目录先备份,备份完成之后删除data目录,然后新建一个data空目录
这样做的目的,使用主库备份还原保持主库服务器与从库服务器mysql data目录数据一致
6.使用scp 命令把主库服务器备份的文件复制到从库服务器。
这里使用内网传输命令
scp [email protected]:/data/xtrabackup/ /data/xtrabackup/
第一个/data/xtrabackup/ 是主库所在服务器目录
第二个/data/xtrabackup/ 复制到从库服务器所在目录
7.把服务过来的文件替换mysql下data目录数据,替换之前先停止从库mysql服务
这里使用第5步骤新创建的data。可以看一下第三步操作,生成的2023-10-14_23-21-39目录下文件结构是mysqldata数据目录
mv /data/xtrabackup/2023-10-14_23-21-39/ /mysql/data
8.修改权限。递归将data目录的所有者和所属组均授权给mysq用户,防止因权限不足启动服务失败
chown -R mysql.mysql /mysql/data
9.启动从库mysql服务器
/etc/init.d/mysql-3306 start
10.修改主从配置
可以参考 CentoS7 安装篇八:mysql主从搭建_centos7 mysql主从搭建_mhi()的博客-CSDN博客
change master to master_host='192.168.15.3',master_user='asyncuser',master_password='123456',master_port=3306,,master_log_file='mysql-bin.000002',master_log_pos=1631;
master_log_file与master_log_pos 两个值 在xtrabackup_binlog_info文件中查看
xtrabackup_binlog_info在/data/xtrabackup/2023-10-14_23-21-39/xtrabackup_binlog_info目录下
11.查看从库状态:show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
表示主从搭建成功
12.当查看到下图的Seconds_Behind_Master的value值为0时,表示主从2个数据库的数据已经保持一致,至此备份主库到从库,以及实现主从复制完成
当参数 Senonds_Behind_Master为0时,表示主从数据已趋于一致性。
四、可能出现异常问题解决方案
1. Too many open files
ulimit -n 65535