Mysql从节点修复
版本:5.7.25
需要tar包:
backuptools:percona-xtrabackup-2.4.7-Linux-x86_64.tar.gz
mysql依赖:boost_1_59_0.tar.gz
mysql:mysql-5.7.25.tar.gz
Ⅰ主库操作:
1.登陆mysql,停掉slave节点
mysql> slave stop;
mysql> show slave status;
SQL_THREAD和IO_THREAD都是no即可
2.物理备份主库:
/data/backup/percona-xtrabackup-2.4.7-Linux-x86_64.tar.gz/bin/innobackupex --user=root --password='密码' --socket=/data/mysql/mysql.sock /data/backup
结尾出现completely即可
Ⅱ 从库操作:
1.停掉mysql服务
service mysql stop
2.解压mysql tar包
tar xvf mysql-5.7.25.tar.gz -C /data/mysql
3.CMAKE
cmake \
-DCMAKE_INSTALL_PREFIX=/data/mysql \
-DSYSCONFDIR=/data/mysql/etc \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DMYSQL_DATADIR=/data/mysql/data \
-DENABLED_LOCAL_INFILE=1 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_BOOST=/tmp/boost_1_59_0
如有报错要删除CMakeCache.txt文件再cmake
4.MAKE
make -j 4
#参数根据cpu决定
5.make install
6.修改mysql配置文件
7.创建所需目录
mkdir etc binlog relaylog
8.启动从库Mysql
mysql service start
9.事务回滚、恢复
将主库备份的文件进行回滚
innobackupex --use-memory=12040m --apply-log /data/backup/XXXX-XX-XX
innobackupex --defaults-file=/etc/my.cnf --copy-back /data/backup/XXXX-XX-XX
10.更改目录属主、组为mysql
11.查看备份目录的xtrabackup_info文件,记录下来binlog的filename和binlog的pos信息
12.登陆从库,同步主库
change master to master_host='10.0.0.112',master_user='XXXX',master_password='XXXXXXXX',master_log_file='第11步查到的',master_log_pos=第11步查到的(这个数字不需要加引号)
salve start;
show slave status \G
确定SQL_THREAD和IO_THREAD都是yes。
13.每日自动备份,及自动删除两个月前的备份
crontab -e #定时任务
0 1 * * * /data/backup/percona-xtrabackup-2.4.7-Linux-x86_64/bin/innobackupex --user=root --password='XXXX' --socket=/data/mysql/mysql.sock /data/backup
#每晚一点执行全量备份,保存在/data/backup下。
0 6 * * * /bin/find /data/backup -m +60 -type d -name '20*' | xargs rm -rf
#找到/data/backup目录下修改日期大于60天开头为'20'的目录并删除。