xtrabackup搭建MySQL 8.0 主从复制
本次搭建的环境信息如下:
OS版本:Red Hat Enterprise Linux Server release 7.6 (Maipo)
MySQL版本:Server version: 8.0.37
xtrabackup版本:xtrabackup version 8.0.35-31 based on MySQL server 8.0.35 Linux (x86_64) (revision id: 55ec21d7)
本次采用物理备份和还原的方式来进行主从复制的初始化,相比于mysqldump,本方案适合数据量比较大的情况下,初始化很快,而且不像mysqldump的方式,从库不需要先进行初始化。
安装MySQL 8.0.37
groupadd mysql
useradd -g mysql -s /sbin/nologin -d /usr/local/mysql -MN mysql
cd /opt
unxz mysql-8.0.37-linux-glibc2.17-x86_64.tar.xz
tar -xvf mysql-8.0.37-linux-glibc2.17-x86_64.tar
cd /usr/local
ln -s /opt/mysql-8.0.37-linux-glibc2.17-x86_64 mysql
chown -R mysql:mysql /usr/local/mysql/
mkdir -p /data/mysql/mysql3306/{
data,logs,tmp}
mv /opt/my.cnf /data/mysql/mysql3306/my3306.cnf
chown -R mysql:mysql /usr/local/mysql/
chown -R mysql:mysql /data/mysql/mysql3306/
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf --initialize
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf &
/usr/local/mysql/bin/mysql -uroot -p -S /tmp/mysql3306.sock
alter user user() identified by 'mysql';
安装xtrabackup
xtrabackup是社区开源产品。但是它不是MySQL自带的工具,需要我们自己进行安装。下面就说下安装过程
1、 下载安装包
由于xtrabackup有版本的区别,根据最佳实践,我们安装的MySQL版本为8.0.37,xtrabackup选择8.0以上最新版本即可,不选择2.4的版本,rpm安装,方便简单。
下载地址:https://www.percona.com/downloads
version:选择最新的
software:选择rpm,就选RHELx。如果是二进制,就选 Linux-Generic
2、安装,为了解决软件依赖问题,采用yum localinstall来安装
缺两个包:zstd和libev.so.4()(64bit),镜像里面没有这两个包,我们手动下载匹配版本进行安装:
# rpm -ivh libev-4.15-7.el7.x86_64.rpm
# rpm -ivh zstd-1.5.5-1.el7.x86_64.rpm
重新安装成功
[root@postgre opt]# yum localinstall percona-xtrabackup-80-8.0.35-31.1.el7.x86_64.rpm
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Examining percona-xtrabackup-80-8.0.35-31.1.el7.x86_64.rpm: percona-xtrabackup-80-8.0.35-31.1.el7.x86_64
Marking percona-xtrabackup-80-8.0.35-31.1.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package percona-xtrabackup-80.x86_64 0:8.0.35-31.1.el7 will be installed
--> Processing Dependency: perl(DBD::mysql) for package: percona-xtrabackup-80-8.0.35-31.1.el7.x86_64
--> Processing Dependency: perl(Digest::MD5) for package: percona-xtrabackup-80-8.0.35-31.1.el7.x86_64
--> Running transaction check
---> Package perl-DBD-MySQL.x86_64 0:4.023-6.el7 will be installed
---> Package perl-Digest-MD5.x86_64 0:2.52-3.el7 will be installed
--> Processing Dependency: perl(Digest::base) >= 1.00 for package: perl-Digest-MD5-2.52-3.el7.x86_64
--> Running transaction check
---> Package perl-Digest.noarch 0:1.17-245.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==========================================================================================================================================================================================
Package Arch Version Repository Size
==========================================================================================================================================================================================
Installing:
percona-xtrabackup-80 x86_64 8.0.35-31.1.el7 /percona-xtrabackup-80-8.0.35-31.1.el7.x86_64 219 M
Installing for dependencies:
perl-DBD-MySQL x86_64 4.023-6.el7 base 140 k
perl-Digest noarch 1.17-245.el7 base 23 k
perl-Digest-MD5 x86_64 2.52-3.el7 base 30 k
Transaction Summary
==========================================================================================================================================================================================
Install 1 Package (+3 Dependent packages)
Total size: 219 M
Total download size: 193 k
Installed size: 219 M
Is this ok [y/d/N]: y
Downloading packages:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 464 kB/s | 193 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
Installing : perl-DBD-MySQL-4.023-6.el7.x86_64 1/4
Installing : perl-Digest-1.17-245.el7.noarch 2/4
Installing : perl-Digest-MD5-2.52-3.el7.x86_64 3/4
Installing : percona-xtrabackup-80-8.0.35-31.1.el7.x86_64 4/4
base/productid | 1.6 kB 00:00:00
Verifying : perl-Digest-1.17-245.el7.noarch 1/4
Verifying : perl-Digest-MD5-2.52-3.el7.x86_64 2/4
Verifying : percona-xtrabackup-80-8.0.35-31.1.el7.x86_64 3/4
Verifying : perl-DBD-MySQL-4.023-6.el7.x86_64 4/4
Installed:
percona-xtrabackup-80.x86_64 0:8.0.35-31.1.el7