1 xtrabackup安装
MySQL备份工具innobackupex简介
按照默认的yum安装方式,是不行的,因为它提示不支持5.7.33
yum -y install perl-Digest-MD5
yum install percona-xtrabackup.x86_64
# 全量备份
innobackupex --defaults-file=/etc/my.cnf --user=root --password=000000 --databases=bdo /appdata/nfsv/mysql/full/bdo
221123 14:57:53 version_check Done.
221123 14:57:53 Connecting to MySQL server host: localhost, user: root, password: set, port: 3306, socket: /application/mysql/tmp/mysql.sock
Error: Unsupported server version: '5.7.33-log'. Please report a bug at https://bugs.launchpad.net/percona-xtrabackup
percona-xtrabackup备份
看来要换部署方式
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.24/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.24-1.el7.x86_64.rpm
wget ftp://rpmfind.net/linux/atrpms/el6-x86_64/atrpms/stable/libev-4.04-2.el6.x86_64.rpm
rpm -ivh libev-4.04-2.el6.x86_64.rpm
yum -y install perl-Digest-MD5
rpm -ivh percona-xtrabackup-24-2.4.24-1.el7.x86_64.rpm
[root@bw123 app]# rpm -ivh percona-xtrabackup-24-2.4.24-1.el7.x86_64.rpm
warning: percona-xtrabackup-24-2.4.24-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 8507efa5: NOKEY
error: Failed dependencies:
libev.so.4()(64bit) is needed by percona-xtrabackup-24-2.4.24-1.el7.x86_64
perl(Digest::MD5) is needed by percona-xtrabackup-24-2.4.24-1.el7.x86_64
再次执行提示
xtrabackup: recognized server arguments: --datadir=/application/mysqldata --innodb_file_per_table=1 --log_bin=mysql-bin --server-id=101
xtrabackup: recognized client arguments:
221123 16:25:59 innobackupex: Starting the backup operation
IMPORTANT: Please check that the backup run completes successfully.
At the end of a successful backup run innobackupex
prints "completed OK!".
221123 16:25:59 version_check Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup;port=3306' as 'root' (using password: YES).
Failed to connect to MySQL server: DBI connect(';mysql_read_default_group=xtrabackup;port=3306','root',...) failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) at - line 1314.
221123 16:25:59 Connecting to MySQL server host: localhost, user: root, password: set, port: 3306, socket: not set
Failed to connect to MySQL server: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2).
我看/etc/my.cnf
中,socket = /application/mysql/tmp/mysql.sock
,为什么两者不一样呢?
[client]
port = 3306
[mysqld]
datadir=/application/mysqldata
# 禁止主机名解析
skip_name_resolve=on
# ibd文件单独存放
innodb_file_per_table = on
port = 3306
socket = /application/mysql/tmp/mysql.sock
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
log-bin=mysql-bin
server-id = 101 # 可以随便写
[mysqld_safe]
log-error = /application/mysql/logs/error.log
pid-file = /application/mysql/pids/mysqld.pid
2 全量备份
备份之只需要下面的权限,即可,不需要所有的
grant lock tables,reload,process,replication client,super on *.* to bak@'192.168.%';
flush privileges;
出现上面的问题,有两种解决方案
添加--host=127.0.0.1
,这里可以看到生成了一堆目录,只有最后一个有数据
innobackupex --defaults-file=/etc/my.cnf --user=bdo --host=127.0.0.1 --password=xxx --databases=bdo /appdata/nfsv/mysql/full/bdo
第二种方案,是指定sock,接下来全量备份文件按照你指定的名字进行。
innobackupex --defaults-file=/etc/my.cnf --socket=/application/mysql/tmp/mysql.sock --no-lock --no-timestamp \
--user=bdo --password=xxx --databases=bdo /appdata/nfsv/mysql/full/bdo
压缩全量备份
innobackupex --defaults-file=/etc/my.cnf --socket=/application/mysql/tmp/mysql.sock --no-lock --no-timestamp --parallel=8 \
--user=bdo --password=xxx --databases=bdo --stream=tar /appdata/nfsv/mysql/full/bdo/ |gzip > /appdata/nfsv/mysql/full/bdo/bdo_`date +%F`.tar.gz
3 全量还原
4 增量备份
增量还原