Percona XtraBackup
介绍
Persona Xtrabackup 是MySQL中的一个免费的热备份工具。它针对InnoDB和XtraDB提供了无锁的热备份。它有如下几个特点:
- 可靠的快速备份。
- 备份时不中断事务处理。
- 节省硬盘空间和网络带宽。
- 自动的备份校验。
- 快速的数据恢复。
- 支持InnoDB no-blocking热备份。
- 支持增量备份。
- 支持压缩流式备份到另一台服务器
- 在不同的服务器中在线迁移表。
前提
需要账号和密码连接服务器
xtrabackup --user=user --password=password --backup --target-dir=/data/backup
除此之外,--port
可以指定端口,--socket
指定使用localhost本地连接的socket文件的位置,--host
指定tcp/ip链接的时候的地址。
需要一些账号权限
RELOAD
和LOCK TABLES
(如果使用了--no-lock
参数,则不需要这个权限),这两个权限是为了执行FLUSH TABLES WITH READ LOCK
和FLUSH ENGINE LOGS
指令。BACKUP_ADMIN
权限,查询performance_schema .log_status
需要这个权限,LOCK INSTANCE FOR BACKUP
,LOCK BINLOG FOR BACKUP
,LOCK TABLES FOR BACKUP
也需要。REPLICATION CLIENT
,为了查询二进制日志的位置。CREATE TABLESPACE
,为了导入表。PROCESS
,运行SHOW ENGINE INNODB STATUS
。SUPER
,INSERT
和SELECT
权限。
创建备份账号的一个例子:
|
|
备份的一些例子
创建一个备份
使用--backup
参数
sudo xtrabackup --user=xtrabackup --password=password --port=3306 --host=localhost --backup --target-dir=/var/backups/mysqlbackup
准备一个备份
使用--prepare
参数
sudo xtrabackup --prepare --target-dir=/var/backups/mysqlbackup
在执行数据恢复之前,必须先执行prepare操作。在执行prepare操作之前这些个备份的数据都是不一致的,因为这些文件是在程序运行的不同时间复制的。
实现一个增量备份
使用--incremental-dir
指定基础的版本
sudo xtrabackup --user=xtrabackup --password=password --port=3306 --host=localhost --backup --incremental-basedir=/var/backups/mysqlbackup
恢复一个备份
使用--copy-back
,--move-back
参数,其中--move-back
参数会删除备份,请谨慎使用。
xtrabackup --copy-back --target-dir=/data/backups/
- 原文作者:SilentStorm
- 原文链接:https://silentstormic.top/post/XtraBackup/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。