【MySQL数据库_使用Xtrabackup部署 MySQL主从】

1、概述
使用Xtrabackup搭建MySQL数据库环境为一主一从,数据库版本为:mysql 5.7.31

角色    IP地址    Server_id    操作系统    数据库版本
Master    172.168.73.129    1293306    CentOS Linux release 7.7.1908 (Core)    mysql 5.7.31
Slave    172.168.73.130    1303306    CentOS Linux release 7.7.1908 (Core)    mysql 5.7.31

2、安装部署

2.1Mysql5.7.31安装
官网下载
https://downloads.mysql.com/archives/community/

1)上传mysql安装文件并解压到指定目录
cd /opt
#解压到/usr/local/目录下
[root@localhost opt]#tar xvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
#软连接
cd /usr/local
[root@localhost local]# ln -sf mysql-5.7.31-linux-glibc2.12-x86_64/ mysql

2)创建目录
mkdir -p /data/3306/log/mysqllog
mkdir -p /data/3306/log/mysqlbinlog
mkdir -p /data/3306/log/mysqlrelay
mkdir -p /data/3306/log/mysqlslow
mkdir -p /data/3306/mysql

3)创建用户和组
[root@localhost local]# groupadd -g 1100 mysql
[root@localhost local]# useradd -g mysql -u 1100 mysql

4)清楚系统自带的MariaDB
[root@localhost local]# rpm -qa|grep mariadb*
mariadb-libs-5.5.64-1.el7.x86_64
[root@localhost local]# rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64

5)修改环境变量
[root@localhost local]# vi /etc/profile
PATH=/usr/local/mysql/bin:$PATH
#更新环境
[root@localhost local]# source /etc/profile
#查看版本
[root@localhost local]# mysql -V 
mysql  Ver 14.14 Distrib 5.7.31, for linux-glibc2.12 (x86_64) using  EditLine wrapper

6)准备参数文件(本文是最简化配置文件,根据需求自己添加)(与主库配置文件一致,只需要修改server-id,不能跟主库一致)
——————————————————————————————————————————
[mysqld]
datadir=/data/3306/mysql
socket=/data/3306/mysql/mysqld.sock
symbolic-links=0
log-error=/data/3306/log/mysqllog/mysqlerror.log
pid-file=/data/3306/mysql/mysqld.pid
lower-case-table-names=1
log-bin=/data/3306/log/mysqlbinlog/mysql_bin
server-id=1293306
——————————————————————————————————————————-
7)赋权
chown -R mysql:mysql /data/
chown -R mysql:mysql /usr/local/mysql/

8)初始化数据库
mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql

9)启动数据库
mysqld_safe --defaults-file=/etc/my.cnf  --user=mysql &

10)查看初始化密码
cat /data/3306/log/mysqllog/mysqlerror.log |grep localhost

11)用初始化密码登录MySQL后重新修改登录密码
mysql -uroot -S /data/3306/mysql/mysqld.sock -p
alter user root@'localhost' identified by '123';
flush privileges;

2.2一主一从搭建说明

MySQL数据库搭建主从,正式线上生产环境由于数据量较大,需要从主库拿到最近一次的全库备份,将主库备份导入从库并恢复,在进行主从绑定。
备份分为两种方式:(下边有两种方法操作过程)
1)如果数据量大请采用物理备份(xtrabackup ),需要安装
2)如果数据量小请采用逻辑备份(mysqldump),无需安装
备份会产生短暂的锁,请注意操作
本次操作在主库上使用,物理备份xtrabackup备份,数据量为(7G多)

下面是查询数据量的方法:
mysql> use information_schema
mysql> select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables;
+---------+
| data    |
+---------+
| 6345.54MB |
+---------+
1 row in set (3.02 sec)

2.3xtrabackup-2.4.24 主库从库安装(本次使用主库备份方式)
官网地址:https://www.percona.com/downloads/Percona-XtraBackup-2.4/LATEST/

解压 : tar xvf percona-xtrabackup-2.4.21-Linux-x86_64.glibc2.12.tar.gz -C /usr/local/
[root@localhost opt]# mv percona-xtrabackup-2.4.24-Linux-x86_64.glibc2.12 xtrabackup

设置环境变量或者软连接(方法任选其一)

方法1 设置环境变量
[root@localhost src]# vi /etc/profile
设置如下:
export PHP_HOME=/usr/local/php
PATH=$PATH:$PHP_HOME/bin:/usr/local/xtrabackup/bin
export PATH
说明:只需要在path中加入:/usr/local/xtrabackup/bin即可

使新设置的环境变量生效
[root@localhost src]# source /etc/profile

方法2 创建软链接
[root@localhost src]# ln -s /usr/local/xtrabackup/bin/* /usr/bin/

查看版本xtrabackup --version 至此安装好了

2.4xtrabackup主库备份(本次使用备份方式)
主库上操作备份
[root@tg tmp]# innobackupex --user=root --password=123 -S /data/3306/mysql/mysqld.sock  --no-timestamp /data/backup/full_`date +%F`

把备份文件传到从库(需要系统root密码)
scp -r /data/backup/full_2022-09-20 root@172.168.73.130:/data/backup/

#使用此方式备份恢复需要从库关机并清空数据目录
shutdown;

#从库清空数据目录
rm -rf /var/lib/mysql/*

从库上操作(还原主库数据)

#应用备份数据redo log
[root@localhost local]# innobackupex --apply-log /data/backup/full_2022-09-20/

#恢复数据
[root@localhost local]# innobackupex --copy-back /data/backup/full_2022-09-20/

#更改目录权限
[root@localhost backup]# chown -R mysql:mysql /usr/local/mysql/

#启动数据库
mysqld_safe &

#登录数据库
mysql -uroot -S /var/lib/mysql/mysql.sock -p123
2.5主从绑定
添加同步账号并授权

mysql> create user 'repl'@'172.168.73.%' identified by '123';
Query OK, 0 rows affected (0.01 sec)

mysql> grant replication slave on *.* to repl@'172.168.73.%';
Query OK, 0 rows affected (0.00 sec)

#刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

配置同步
#查看备份位置点: 
[root@localhost full_2022-09-20]# cat /data/backup/full_2022-09-20/xtrabackup_binlog_info 
mysql-bin.000027        203595787

#从库上进行绑定操作:

CHANGE MASTER TO
  MASTER_HOST='172.168.73.129',
  MASTER_USER='repl',
  MASTER_PASSWORD='123',
  MASTER_PORT=3306,
  MASTER_LOG_FILE='mysql-bin.000027',
  MASTER_LOG_POS=203595787;

#启动线程
start slave;

#查看状态
show slave status\G;
#结果有两个参数为yes 表示搭建成功
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
            Seconds_Behind_Master: 0
——————————————————————————————————————————  
不定期分享MySQL DBA工作中遇到的问题,如果文章中有错误欢迎大家在评论区指正,我们互相交流学习,如果觉得文章还不错对你有所帮助,希望大家点赞加关注哦!

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论

打赏作者

As before@

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值