博客 / Linux/ CentOs6.5 64位安装XtraBackup,还原百度RDS的Mysql备份文件backup.gz到本地Mysql服务器

CentOs6.5 64位安装XtraBackup,还原百度RDS的Mysql备份文件backup.gz到本地Mysql服务器

CentOs6.5 64位安装XtraBackup,还原百度RDS的Mysql备份文件backup.gz到本地Mysql服务器

准备工作:安装 XtraBackup

本文记录将百度云 RDS 的 MySQL 备份文件(backup.gz)还原到本地 CentOS 6.5 64 位系统 MySQL 服务器的完整流程。首先需要安装 Percona XtraBackup 工具。

前往 Percona 官网,根据你的系统版本下载对应的 RPM 包。本文以经典的 2.1.5 版本为例:

wget https://www.percona.com/downloads/XtraBackup/XtraBackup-2.1.5/RPM/rhel6/x86_64/percona-xtrabackup-2.1.5-680.rhel6.x86_64.rpm

安装必要的依赖包:

yum install -y perl-DBD-MySQL perl-DBI perl-Time-HiRes libaio*

安装 XtraBackup RPM 包:

rpm -ivh percona-xtrabackup-2.1.5-680.rhel6.x86_64.rpm

验证安装是否成功:

rpm -qa | grep xtrabackup

预期输出:

percona-xtrabackup-2.1.5-680.rhel6.x86_64

查看安装的文件:

rpm -ql percona-xtrabackup-2.1.5-680.rhel6.x86_64

输出应包含关键工具路径,如 /usr/bin/innobackupex/usr/bin/xtrabackup 等。

步骤一:下载并解压备份文件

使用 wget 从 RDS 控制台下载备份文件(例如 backup.gz)。下载后,执行以下命令进行解压和解包:

mkdir -p /home/mysql/data_dir && gzip -d -c backup.gz | xbstream -x -C /home/mysql/data_dir

此命令会:

  1. 创建数据目录 /home/mysql/data_dir
  2. 使用 gzip -d -c 解压备份流。
  3. 通过 xbstream -x 将解压后的流提取到指定目录。

步骤二:应用事务日志(Prepare)

解包完成后,需要应用 InnoDB 的重做日志(redo log)以使数据文件达到一致状态。这是恢复的关键步骤。

注意: 一些旧的教程或文档可能会使用错误的命令(如 innobackupex_55),导致“command not found”错误。正确的命令是 innobackupex

执行以下命令:

innobackupex --defaults-file=/home/mysql/data_dir/backup-my.cnf --apply-log /home/mysql/data_dir

命令成功执行后,终端会输出一系列日志,最终显示类似“completed OK!”的信息。

步骤三:配置 MySQL 并启动服务

准备完成后,需要根据备份的配置文件调整本地 MySQL 的配置。

  1. 编辑 MySQL 配置文件:
vi /etc/my.cnf
  1. [mysqld] 部分,注释掉或修改原有的 datadir 指向,并添加以下关键参数。这些参数值应参考 /home/mysql/data_dir/backup-my.cnf 文件,特别是 innodb_log_file_size
[mysqld]
# 将 datadir 指向解压后的数据目录
datadir=/home/mysql/data_dir
# 以下参数需与备份的 InnoDB 系统表空间配置匹配
innodb_checksum_algorithm=innodb
innodb_log_checksum_algorithm=innodb
innodb_data_file_path=ibdata1:32M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=268435456
innodb_fast_checksum=0
innodb_page_size=16384
innodb_log_block_size=512
innodb_undo_tablespaces=0

说明: innodb_log_file_size 的值(本例为 256MB)必须与备份产生时的设置一致,否则 MySQL 无法启动。

  1. 重启 MySQL 服务以使新配置生效:
/etc/init.d/mysql restart

重启后,使用 MySQL 客户端连接,检查数据库是否已成功恢复。

总结与注意事项

  • 命令差异: 不同版本的 XtraBackup 命令可能略有不同。本文基于 2.1.x 版本,更高版本(如 8.0)的命令和选项可能已更新,请以官方文档为准。
  • 配置文件: 务必确保 my.cnf 中的 InnoDB 参数,尤其是 innodb_log_file_size,与备份源环境匹配。
  • 权限问题: 确保 MySQL 运行用户(通常是 mysql)对数据目录 /home/mysql/data_dir 拥有完整的读写权限。
  • 版本兼容性: XtraBackup 的版本最好与备份文件的 MySQL 主版本兼容。还原前请确认版本支持矩阵。

发表评论

您的邮箱不会公开。必填项已用 * 标注。