mysql8.0.11备份工具_MySQL 8.0.11 innodb cluster 运维管理手册之四-msyqlbackup备份

本文介绍了mysqlbackup工具的使用,它是一个用于InnoDB引擎的热备份工具,但对非InnoDB引擎则需要全局锁进行温备份。详细步骤包括安装、创建备份用户、全量备份和增量备份的操作,并提到了远程备份的实现方式。然而,单文件增量备份在恢复时存在限制。
摘要由CSDN通过智能技术生成

MySQL 8.0.11 innodb cluster 运维管理手册之四-msyqlbackup备份

作者 方连超

Mysqlbackup 介绍

mysqlbackup是一个热备份工具、也就是说它不像mysqldump那样给表上一个全局锁,由于mysqldump上了这个锁,所以就造成客户端只能对数据库进行读操作不能写,这也就是称mysqldump为温备份的原因。但是mysqlbackup真的有这么吊吗?答案是并没有。对于innodb引擎的表mysqlbackup 热备的;但是对于非innodb表mysqlbackup就只能温备了,原因是这类引擎不支持事务也就是说不能通过事务日志来保证备份的一致性,所以就只能给表加上一个全局锁来解决了。为了得到一致的备份mysqlbackup要不停的去追踪mysql数据库的sln号,也就是说mysqlbackup要执行备份那么它一定要连接上数据库。mysqlbackup对数据库的备份是通过复制文件的方式进行的,也就是说mysqlbackup要和数据库在同一台机器上,和xtrabackup 很相似的。

安装 mysqlbackup

Mysqlbackup 是企业版mysql中的,但可以拿来使用,登录oracle云下载,搜索mysql backup,下载二进制文件

mysql-commercial-backup-8.0.11-linux-glibc2.12-x86_64.tar.gz

传到主机上并解压,

会有 bin 和lib 文件夹,将其中的文件拷贝到 /usr/local/mysql 对应的目录中, 这里要把 软连接,库全部拷贝的,不然会报错

备份用户

(官方指导命令)

CREATE USER 'backup'@'localhost' IDENTIFIED BY '$$$$$$$$$$$$$$';

GRANT RELOAD ON *.* TO 'backup'@'localhost';

GRANT CREATE, INSERT, DROP, UPDATE ON mysql.backup_progress TO 'backup'@'localhost';

GRANT CREATE, INSERT, SELECT, DROP, UPDATE ON mysql.backup_history TO 'backup'@'localhost';

GRANT REPLICATION CLIENT ON *.* TO 'backup'@'localhost';

GRANT SUPER ON *.* TO 'backup'@'localhost';

GRANT PROCESS ON *.* TO 'backup'@'localhost';

GRANT ALTER ON mysql.backup_history TO 'backup'@'localhost'; #此表在主库上备份才会生成和写入

GRANT LOCK TABLES, SELECT, CREATE, DROP, FILE ON *.* TO 'backup'@'localhost';

GRANT CREATE, INSERT, DROP, UPDATE ON mysql.backup_sbt_history TO 'backup'@'localhost';#此表仅在主库上有效

全量备份

##备份到/fullbak/2018-10-10_19-19-11/datadir 类似这样的目录中

mysqlbackup --backup-dir=/data/backup/fullbak --host=127.0.0.1 --port=3306 --user=backup --password=$$$$$$$$ --with-timestamp backup

##############备份到/fullbak/2018-10-10_19-19-11/full_backup.bki 这样一个单文件中,以后不用备份单文件,我们自己压缩备份更小

mysqlbackup --backup-dir=/data/backup/fullbak --host=127.0.0.1 --port=3306 --user=backup --password=$$$$$$$$$$$ --backup-image=full_backup.bki --with-timestamp backup-to-image

--user:用户名。

--password:密码。

--port:端口,默认值为3306。

--backup-dir:可以看成是mysqlback的工作目录,临时用的。

--backup-image:备份文件名,这个是最终要的文件,别的都可以不要。位置可以不带路径,默认放到 backup-dir

backup-to-image:把所有的备份信息输出到一个备份文件当中

--with-timepstap: 会自动生成一个带日期文件夹,这里放的是备份时用的临时文件和最后的备份镜像(不指定镜像位置的化)

增量备份

实际证明,单文件备份是无法进行恢复的,下面这个例子放弃

mysqlbackup --backup-dir=/data/backup --host=127.0.0.1 --port=3306 --user=backup --password=Qs3ce3saadr37tpP --incremental-with-redo-log-only --incremental-base=history:last_backup --with-timestamp --backup-image=incre_backup.bki backup-to-image

不备份成单个文件,增量备份貌似也不支持,这个是可以进行恢复的 指定了备份到的增量目录和增量的基源

mysqlbackup --incremental-backup-dir=/data/backup/increbak --host=127.0.0.1 --port=3306 --user=backup --password=Qs3ce3saadr37tpP --incremental --incremental-base=history:last_backup --with-timestamp --backup-image=incre_backup.bki backup

一定要先执行上面的全备, last_backup 这个备份参数会在数据库中找,然而,这个备份要在主库进行,不能再从库,因为从库不写备份信息。

跨主机远程备份

#########备份到其他服务器

The following command streams the backup as a single-file output to a remote host to be saved under

the file name my_backup.img (--backup-dir=/tmp designates the directory for storing temporary files

rather than the final output file):

mysqlbackup --defaults-file=~/my_backup.cnf --backup-image=- --backup-dir=/tmp backup-to-image | \

ssh @ 'cat > ~/backups/my_backup.img'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值