createtime:2024-1-25
updatetime:2025-2-17
内容概述:
该文档涵盖如何安装mysql8,并详细介绍了如何使用XtraBackup工具搭建从库。
该版本支持rocks,innodb引擎混合部署的数据实例。
解决痛点:备份工具无法同时支持 rocks,innodb双引擎的备份。
OS:CentOS 7.9
MySQL: Percona 8.0.35-27
依赖:
cmake:cmake3.5.1+
gcc:devtoolset-8
一、下载mysql源码包和cmake源码包
下载链接:Software Downloads - Percona
percona-server-8.0.35-27.tar.gz
cname源码包下载地址
Index of /files/v3.15
cmake-3.15.0-rc1.tar.gz
安装依赖
# yum -y install numactl
#yum install openldap-devel -y
# yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel php-gd -y
二、编译安装cmake
查看当前版本
# cmake --version
cmake version 2.8.12.2
2.一、解压cmake并进入目录
tar zxf cmake-3.15.0-rc1.tar.gz
cd cmake-3.15.0-rc1
2.二、配置、编译、安装
#./configure --prefix=/usr/local/cmake3.15.0
注意: CentOS 6.5 执行报错
#make -j 40
# make install
2.三、作cmake命令软链接,查看cmake版本
# ln -s /usr/local/cmake3.15.0/bin/cmake /usr/bin/cmake3.15.0
# /usr/bin/cmake3.15.0 --version
cmake version 3.15.0-rc1
安装GCC/G++ 8
yum install centos-release-scl -y
yum install devtoolset-8-gcc devtoolset-8-gcc-c++ -y
scl enable devtoolset-8 -- bash
mysql boost
mysql boost下载 JFrog Landing
mysql boost下载 :https://dev.mysql.com/downloads/mysql/8.0.html?os=src
JFrog Landing
tar -jxvf boost_1_77_0.tar.bz2
cmake编译
安装一些基本的包,避免cmake报错
yum -y install wget cmake gcc gcc-c++ncurses ncurses-devel libaio-devel openssl openssl-devel
yum install cyrus-sasl-devel cyrus-sasl-scram
yum install libcurl-devel
tar xzf percona-server-8.0.35-27.tar.gz
cd percona-server-8.0.35-27
mkdir build
cd build (cd /opt/app/percona-server-8.0.35-27/build)
|
make -j 24
make install
初始化数据库
/opt//mysql_3341/bin/mysqld --initialize --user=mysql --basedir=/opt//mysql_3341 --datadir=/opt//mysql_3341/data
chown -R mysql.mysql /opt/mysql_3341
制作my.cnf配置文件:
vim /opt//mysql_3341/my.cnf
|
启动
/opt/mysql_3341/bin/mysqld_safe --defaults-file=/opt/mysql_3341/my.cnf &
修改root临时密码
/opt/mysql_3341/bin/mysqladmin -uroot -p -S /opt/mysql_3341/mysql.sock
恢复备份到从库
MySQL8.0利用XtraBackup 搭建从库详细过程
主库 192.168.192.56 3341
从库 192.168.145.3
2.1主库上创建复制账号
create user 'repl'@'192.168.145.3' identified by 'repl';
grant replication slave on *.* TO 'repl'@'192.168.145.3';
2.2对主库进行备份
/usr/local/xtrabackup8.0.35-30/bin/xtrabackup --defaults-file=/opt//mysql_3341/my.cnf --user=root --password=***** --socket=/opt//mysql_3341/mysql.sock --backup --parallel=10 --slave-info --target-dir=/backup/backup192.56_3341/full
2.3将备份文件传输到从库上
scp -r /backup/backup192.56_3341/full/* root@10.40.145.3:/opt/backup/full
# scp -rp .rocksdb/ root@10.40.145.3:/opt/backup/full
安装备份软件
# scp -rp /usr/local/xtrabackup8.0.35-30/ root@192.168.145.3:/usr/local/
2.5在从库上进行 Prepare 和恢复
/usr/local/xtrabackup8.0.35-30/bin/xtrabackup --prepare --target-dir=/opt/backup/full
关闭数据库
清空数据库目录
# cd /opt//mysql_3341/data
# rm -rf *
/usr/local/xtrabackup8.0.35-30/bin/xtrabackup --defaults-file=/opt//mysql_3341/my.cnf --copy-back --parallel=10 --target-dir=/opt/backup/full
2.6启动实例
chown -R mysql.mysql /opt//mysql_3341/data
2.7建立复制
cat xtrabackup_binlog_info
mybinlog.002453 197 4a3b73a6-bacf-11ee-8537-c81f66f66879:1-618521396
如果 xtrabackup_binlog_info 中存在 GTID 信息,则代表备份实例开启了 GTID,这个时候就需要建立 GTID 复制。
2.7.1GTID 复制
对于 GTID 复制,在建立复制前,必须首先设置 GTID_PURGED。
设置 GTID_PURGED 时,注意备份实例的版本。
在 MySQL 8.0 中,无需设置 GTID_PURGED。
CHANGE MASTER TO
MASTER_HOST='192.168.192.56',
MASTER_USER='repl',
MASTER_PASSWORD='repl',
MASTER_PORT=3341,
GET_MASTER_PUBLIC_KEY = 1,
MASTER_AUTO_POSITION = 1;
对于 GTID 复制,需将 MASTER_AUTO_POSITION 设置为 1。
在 MySQL 8.0 中,CHANGE MASTER TO 语句中还需添加 GET_MASTER_PUBLIC_KEY = 1。
2.7.2基于位置点的复制
如果 xtrabackup_binlog_info 没有 GTID 信息,则代表备份实例没有开启 GTID,这个时候就无需设置 GTID_PURGED,直接执行 CHANGE MASTER TO 命令即可。
CHANGE MASTER TO
MASTER_HOST=‘192.168.192.156’,
MASTER_USER=‘repl’,
MASTER_PASSWORD=‘repl’,
MASTER_PORT=3341,
MASTER_LOG_FILE=‘mysql-bin.000002’,
MASTER_LOG_POS=882880068;
CHANGE MASTER TO 语句中的 MASTER_LOG_FILE 和 MASTER_LOG_POS 的值分别取自 xtrabackup_binlog_info 中的 filename 和 position。
2.8开启复制
mysql>start slave;
2.9检查主从复制是否正常
mysql>show slave status\G
Slave_IO_Running 和Slave_SQL_Running 均为 Yes 代表复制正常。
以上就是使用 XtraBackup 搭建从库的基本步骤。