innobackupex
是 Percona 公司提供的一个用于 MySQL 和 MariaDB 数据库备份和恢复的工具。它是一个用 Perl 编写的脚本,可以通过 XtraBackup 插件来实现在线备份和恢复,而无需停止数据库的运行。下面是 innobackupex
命令的一些详细解释和常见用法。
工具官网地址
https://www.percona.com/software/mysql-database/percona-xtrabackup
注意
XtraBackup 版本是和MySQL版本对应的,如下所示:
- XtraBackup 2.0.x:支持 MySQL 5.1 和 MySQL 5.5
- XtraBackup 2.1.x:支持 MySQL 5.1、MySQL 5.5 和 MySQL 5.6
- XtraBackup 2.2.x:支持 MySQL 5.1、MySQL 5.5、MySQL 5.6 和 MySQL 5.7
- XtraBackup 2.3.x:支持 MySQL 5.1、MySQL 5.5、MySQL 5.6、MySQL 5.7 和 MySQL 8.0
- XtraBackup 8.x.x:支持 MySQL 8.0
请注意,以上只是一些常见的版本对应关系,实际上,每个XtraBackup版本可能会有更新,以支持新的MySQL版本或提供更多功能。在选择XtraBackup版本时,务必查阅官方文档以获取准确的版本支持信息。在使用XtraBackup进行备份和恢复时,始终建议使用与目标MySQL版本兼容的XtraBackup版本,以确保最佳的兼容性和稳定性。
基本语法:
innobackupex [options] /path/to/backup/directory
常见选项:
--user=user_name
:指定连接数据库的用户名。--password=password
:指定连接数据库的密码。--host=hostname
:指定数据库主机名。--port=port_number
:指定数据库端口号。--datadir=directory
:指定数据库数据文件的路径。--ibbackup=xtrabackup
:指定使用 XtraBackup 进行备份。--no-timestamp
:不在备份目录中创建时间戳子目录。--compress
:在备份期间压缩备份数据。--decompress
:在恢复之前解压缩备份数据。--parallel=NUM
:指定并行备份的线程数。--incremental
:执行增量备份而不是全量备份。--incremental-basedir=directory
:指定增量备份的基准目录。
常见用法:
-
创建全量备份:
innobackupex --user=<username> --password=<password> /path/to/backup/directory
这将使用 XtraBackup 插件创建一个全量备份,备份的数据将存储在指定的目录中。
-
创建增量备份:
innobackupex --user=<username> --password=<password> --incremental /path/to/incremental/backup/directory --incremental-basedir=/path/to/base/backup
通过添加
--incremental
标志,可以创建增量备份。增量备份基于之前的全量备份或增量备份。--incremental-basedir
用于指定增量备份的基准目录。 -
恢复备份:
innobackupex --apply-log /path/to/backup/directory
使用
--apply-log
标志对备份目录执行日志应用,然后可以将备份数据恢复到数据库中。 -
还原备份:
innobackupex --copy-back /path/to/backup/directory
使用
--copy-back
标志将备份数据还原到数据库数据目录。
这些只是一些 innobackupex
命令的常见用法示例,实际使用中还可以根据具体需求使用其他选项和组合。注意,innobackupex
是一个强大的工具,但在使用之前建议仔细阅读官方文档以了解更多细节和最佳实践。