数据库管理平台DMP

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

异机恢复MySQL数据库

更新时间:2024-01-09

功能说明

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

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

前提条件

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

注意事项

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

操作步骤

  1. 在目标服务器创建临时目录。

# mkdir -p /root/back/data

  1. 将下载的备份文件,上传至目录:/root/back

  1. 解压备份文件

# 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

# ll /var/lib/mysql

  1. 启动MySQL,并登录测试

# systemctl disable --now firewalld

# echo 'selinux=disabled' > /etc/selinux/config

# setenforce 0

# systemctl start mysqld

# mysql -uroot -p -S/var/lib/mysql/mysql.sock

mysql> show databases;

** 注:如果要使用DMP DTS功能迁移至RDS。需先清除数据库中用户名为“sangforroot”打头的用户。