xtrabackup 8备份Mysql 8.0.18(全备全过程)身临其境乐动体育版

1,首先在mysql8里先建了一个稍微大一点的乐动体育测试表在LD90.VIP可看到更多,脚本:

CREATE TABLE user100w( id INT NOT NULL AUTO_INCREMENT, first_name VARCHAR(10) NOT NULL, last_name VARCHAR(10) NOT NULL, sex VARCHAR(5) NOT NULL, score INT NOT NULL, copy_id INT NOT NULL, PRIMARY KEY (id));
DROP PROCEDURE IF EXISTS add_user; DELIMITER // create PROCEDURE add_user(in num INT) BEGIN DECLARE rowid INT DEFAULT 0; DECLARE firstname CHAR(1); DECLARE name1 CHAR(1); DECLARE name2 CHAR(1); DECLARE lastname VARCHAR(3) DEFAULT ‘’; DECLARE sex CHAR(1); DECLARE score CHAR(2); WHILE rowid < num DO SET firstname = SUBSTRING(‘赵钱孙李周吴郑王林杨柳刘孙陈江阮侯邹高彭徐’,FLOOR(1+21RAND()),1); SET name1 = SUBSTRING(‘一二三四五六七八九十甲乙丙丁静景京晶名明铭敏闵民军君俊骏天田甜兲恬益依成城诚立莉力黎励’,ROUND(1+43RAND()),1); SET name2 = SUBSTRING(‘一二三四五六七八九十甲乙丙丁静景京晶名明铭敏闵民军君俊骏天田甜兲恬益依成城诚立莉力黎励’,ROUND(1+43*RAND()),1); SET sex=FLOOR(0 + (RAND() * 2)); SET score= FLOOR(40 + (RAND() *60)); SET rowid = rowid + 1; IF ROUND(RAND())=0 THEN SET lastname =name1; END IF; IF ROUND(RAND())=1 THEN SET lastname = CONCAT(name1,name2); END IF; insert INTO user100w (first_name,last_name,sex,score,copy_id) VALUES (firstname,lastname,sex,score,rowid); END WHILE; END //DELIMITER ;
call add_user(10000);
2,yum安装依赖

[root@centos1 ~]# yum install libev
3,下载xtrabackup后,直接用yum安装

[root@centos1 opt]# wget
https://www.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.0-7/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.7-1.el7.x86_64.rpm

Saving to: ‘percona-xtrabackup-80-8.0.7-1.el7.x86_64.rpm’
100%[+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=======================>] 12,177,712 22.2KB/s in 2m 20s 2019-11-08 17:39:37 (21.5 KB/s) - ‘percona-xtrabackup-80-8.0.7-1.el7.x86_64.rpm’ saved [12177712/12177712]
[root@centos1 opt]# yum localinstall percona-xtrabackup-80-8.0.7-1.el7.x86_64.rpm
Installed: percona-xtrabackup-80.x86_64 0:8.0.7-1.el7
Dependency Installed: perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 perl-DBD-MySQL.x86_64 0:4.023-6.el7 perl-DBI.x86_64 0:1.627-4.el7 perl-Digest.noarch 0:1.17-245.el7 perl-Digest-MD5.x86_64 0:2.52-3.el7 perl-IO-Compress.noarch 0:2.061-2.el7 perl-Net-Daemon.noarch 0:0.48-5.el7 perl-PlRPC.noarch 0:0.2020-14.el7
Complete!
[root@centos1 opt]# xtrabackup -vxtrabackup: recognized server arguments: --datadir=/var/lib/mysql xtrabackup version 8.0.7 based on MySQL server 8.0.16 Linux (x86_64) (revision id: 069e0e6)

问题来了我的mysql是8.0.18的(装好之后发现并没有什么问题)

4,开始备份

一些参数:

根据您的系统,您可能需要指定以下一个或多个选项才能连接到服务器:

选项 描述
-港口 使用TCP / IP连接到数据库服务器时使用的端口。
-插座 连接到本地数据库时使用的套接字。
-主办 使用TCP / IP连接到数据库服务器时要使用的主机。
备份(如果不是localhost的远程备份的话,mysql需要更新User表可以远程登录):

[mysql@centos1 ~]$ xtrabackup --defaults-file=/data/mysql/my.cnf --host=localhost --user=root --password=mysqlWAI --port=3306 --socket=/data/mysql/run/mysql.sock --backup --target-dir=/home/mysql/xbackup/
备份时插入一条数据做测试

mysql> select * from test1 ;±-----±-----+| id | code |±-----±-----+| 1 | 3009 || 2 | 3010 || 3 | 3011 |±-----±-----+3 rows in set (0.00 sec)
mysql> insert into test1 values(4,3099);
备份完成会提示:

191111 18:09:24 All tables unlocked
191111 18:09:24 Backup created in directory ‘/home/mysql/xbackup/’
MySQL binlog position: filename ‘mysql-bin.000004’, position ‘155’
191111 18:09:24 [00] Writing /home/mysql/xbackup/backup-my.cnf
191111 18:09:24 [00] …done
191111 18:09:24 [00] Writing /home/mysql/xbackup/xtrabackup_info
191111 18:09:24 [00] …done
xtrabackup: Transaction log of lsn (23556373) to (23556739) was copied.
191111 18:09:24 completed OK!
查看一下备份的情况

[mysql@centos1 xbackup]$ ll
total 2142252
-rw-r----- 1 mysql mysql 499 Nov 11 18:09 backup-my.cnf
-rw-r----- 1 mysql mysql 2147483648 Nov 11 18:09 ibdata1
drwxr-x— 2 mysql mysql 157 Nov 11 18:09 mysql
-rw-r----- 1 mysql mysql 155 Nov 11 18:09 mysql-bin.000004
-rw-r----- 1 mysql mysql 36 Nov 11 18:09 mysql-bin.index
-rw-r----- 1 mysql my

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,这里是一个自动化全备和增量备份MySQL8的脚本,基于您之前的要求进行修改: ``` #!/bin/bash # 设置备份相关的变量 MYSQL_USER="your_username" MYSQL_PASSWORD="your_password" BACKUP_DIR="/path/to/backup/directory" DATE=$(date +%F_%H-%M-%S) FULL_BACKUP_INTERVAL=7 # 满备份间隔(天) LAST_FULL_BACKUP=$(find $BACKUP_DIR -maxdepth 1 -name "full_backup*" | sort -nr | head -n 1) # 上一次的全量备份 INCREMENTAL_BACKUP_DIR="$BACKUP_DIR/incremental_backup_$DATE" LATEST_INCREMENTAL_BACKUP=$(find $BACKUP_DIR -maxdepth 1 -name "incremental_backup_*" | sort -nr | head -n 1) # 最新的增量备份 # 创建增量备份目录 mkdir -p $INCREMENTAL_BACKUP_DIR # 运行增量备份命令 if [ -z "$LAST_FULL_BACKUP" ]; then # 如果没有全量备份,则进行全量备份 xtrabackup --backup --user=$MYSQL_USER --password=$MYSQL_PASSWORD --target-dir=$INCREMENTAL_BACKUP_DIR else # 如果已有全量备份,则进行增量备份 xtrabackup --backup --user=$MYSQL_USER --password=$MYSQL_PASSWORD --target-dir=$INCREMENTAL_BACKUP_DIR --incremental-basedir=$LATEST_INCREMENTAL_BACKUP fi # 判断是否需要进行全量备份 if [ -z "$LAST_FULL_BACKUP" ] || [ $(expr $(date +%s) - $(date -d $(basename $LAST_FULL_BACKUP | cut -d '_' -f 3) +%s)) -ge $(expr $FULL_BACKUP_INTERVAL \* 86400) ]; then # 如果没有全量备份或者距离上次全量备份已经超过满备份间隔,则进行全量备份 FULL_BACKUP_DIR="$BACKUP_DIR/full_backup_$DATE" mkdir -p $FULL_BACKUP_DIR xtrabackup --backup --user=$MYSQL_USER --password=$MYSQL_PASSWORD --target-dir=$FULL_BACKUP_DIR fi # 删除过期的备份 find $BACKUP_DIR -maxdepth 1 -name "full_backup*" -mtime +$FULL_BACKUP_INTERVAL -exec rm -rf {} \; find $BACKUP_DIR -maxdepth 1 -name "incremental_backup_*" -mtime +$FULL_BACKUP_INTERVAL -exec rm -rf {} \; ``` 该脚本与之前的脚本基本相同,但增加了一个判断来确定是运行全备份还是增量备份: ``` if [ -z "$LAST_FULL_BACKUP" ]; then # 如果没有全量备份,则进行全量备份 xtrabackup --backup --user=$MYSQL_USER --password=$MYSQL_PASSWORD --target-dir=$INCREMENTAL_BACKUP_DIR else # 如果已有全量备份,则进行增量备份 xtrabackup --backup --user=$MYSQL_USER --password=$MYSQL_PASSWORD --target-dir=$INCREMENTAL_BACKUP_DIR --incremental-basedir=$LATEST_INCREMENTAL_BACKUP fi ``` 请将`your_username`和`your_password`替换为您的MySQL用户名和密码,将`/path/to/backup/directory`替换为您希望存储备份的目录。运行脚本时,将其保存为`.sh`文件并添加执行权限,然后在命令行中运行即可。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值