数据库管理平台DMP

深信服数据库管理平台(DMP)提供MySQL、Oracle的RDS功能,支持全生命周期管理、自动MySQL主从切换、故障自愈、事务一致性备份、监控告警等,能够实现业务快速上线、资源快速分发、数据安全保护,提供SLA保障,使数据库运维复杂度大幅下降,帮助客户减少被动性救火工作,专注业务创新。
点击可切换产品版本
知道了
不再提醒
DMP 2.3.0
{{sendMatomoQuery("数据库管理平台DMP","异机恢复MySQL数据库")}}

异机恢复MySQL数据库

更新时间:2023-09-04

功能说明

通过DMP 备份下载的文件,在异机恢复 MySQL 数据库。

下面将使用 RPM 安装版本进行演示。

前提条件

  1. 已下载 MySQL 数据库备份。
  2. 已部署 MySQL 环境,并与 RDS for MySQL 版本一致。
  3. 已安装 XtrabackupMySQL 5.7 à4版本;MySQL 8.0 à 8.0版本) 软件。
  4. 已安装 qpress

注意事项

  1. MySQL 版本建议一致,起码要保证大版本一致;如 MySQL 5.7.30 可以在 MySQL 5.7.32 上恢复。
  2. 不可以降级恢复,如 MySQL 8.0 MySQL 5.7 中恢复。
  3. 建议按实际数据库大小的 3 准备磁盘空间。
  4. #”为Linux命令;“mysql> ”为SQL命令。

操作步骤

  1. 在目标服务器创建临时目录。
# mkdir -p /root/back/data
  1. 将下载的备份文件,上传至目录:/root/back
  2. 解压备份文件
# tar -zxvf E13E5BB0AC514C8986FE434A5FD9AC43.tar.gz
# chmod -R 775 /root/back/full_3_1
# cd /root/back
# xbstream -x --parallel=4 -C ./data < ./full_3_1/backup.xbstream
# xtrabackup --decompress --remove-original --parallel=4 --target-dir=./data
  1. 关闭MySQL
# systemctl stop mysqld
# systemctl status mysqld
  1. 准备目录
# cd /var/lib/
# mv mysql mysql_back
# mkdir mysql
  1. 执行恢复操作
# xtrabackup --defaults-file=/etc/my.cnf --prepare --parallel=4 --target-dir=/root/back/data

修改(或添加)my.cnf文件中[mysqld]标签参数innodb_undo_tablespaces为如下命令查出的值

# grep "innodb_undo_tablespaces" /root/back/data/backup-my.cnf
# echo 'innodb_undo_tablespaces=3' >> /etc/my.cnf

--datadir参数指定的目录必须为空文件夹(Linux系统中检查是否有隐藏文件)

# xtrabackup --defaults-file=/etc/my.cnf --copy-back  --parallel=4 --datadir=/var/lib/mysql --target-dir=/root/back/data
  1. 修改目录权限
# chown -R mysql:mysql /var/lib/mysql
  1. 启动MySQL,并登录测试
# systemctl start mysqld
# mysql -uroot -p -S/var/lib/mysql/mysql.sock
mysql> show databases;