searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

物理备份恢复数据库

2025-10-30 10:08:16
3
0

一、操作场景:

1.下载天翼云RDS for MySQL实例中对应时间点的全备文件。
2.将全备文件上传到本地用以重建数据库。
3.使用qpress工具将全备文件解压。
4.通过Xtrabackup工具将全备文件恢复到数据库的data目录中,并将数据库原数据保留到data_back文件中。
5.重启数据库,数据重建成功。

二、适用资源池:

华东地区: 杭州/南昌/上海4/苏州/芜湖
华南地区: 长沙2/福州1/广州4/海口/南宁/深圳/武汉2
西北地区: 兰州/乌鲁木齐/西安2/西宁/中卫
西南地区: 成都3/重庆/贵州1/昆明
北方地区: 北京2/长春/哈尔滨/华北/内蒙3/青岛/沈阳3/石家庄/太原/天津/郑州

三、恢复数据操作步骤

1.下载天翼云mysql数据库备份文件上传至云主机(centos系统)。

#wget 命令格式:wget -c '备份文件下载地址' -O 自定义文件名.qp

wget -c 'https://mysql-database-backupxxxxxxxxxxxxxxx' -O /data/db.qp

2.下载正确版本的qpress和XtraBackup,根据数据对应版本进行下载。下载完成后将安装包上传到本地MySQL库所在的Linux设备。

#安装qpress rpm包。
wget https://repo.percona.com/yum/release/7/RPMS/x86_64/qpress-11-1.el7.x86_64.rpm
rpm -ivh qpress-11-1.el7.x86_64.rpm

#安装Percona XtraBackup,MySQL5.7,以下载并安装Percona XtraBackup 2.4.9为例
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm
rpm -ivh percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm --nodeps --force

#MySQL 8.0,以下载并安装Percona XtraBackup 8.0为例
wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.32-26/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.32-26.1.el7.x86_64.rpm
rpm -ivh percona-xtrabackup-80-8.0.32-26.1.el7.x86_64.rpm --nodeps --force

3.数据恢复

#创建数据目录
mkdir /backupdir

#MySQL 5.6、5.7解压备份文件
xbstream -x -p 4 < ./全备文件.qp -C ./backupdir/
innobackupex --parallel 4 --decompress ./backupdir

Q:xbstream: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
A:sudo yum install libaio

#MySQL 8.0
xbstream -x -p 4 < ./全备文件.qp -C ./backupdir/
xtrabackup --parallel 4 --decompress --target-dir=./backupdir

#删除qp文件
find ./backupdir/ -name '*.qp' | xargs rm -f

#应用redo日志。
--MySQL 5.6、5.7
innobackupex --apply-log ./backupdir
--MySQL 8.0
xtrabackup --prepare --target-dir=./backupdir

#备份数据,停止MySQL数据库服务。
service mysql stop

#如果是MySQL 5.7,需执行如下命令停止MySQL数据库服务:
/bin/systemctl stop mysqld.service

#备份原来的数据库目录。
mv /usr/local/mysql/data /usr/local/mysql/data_bak
mkdir /usr/local/mysql/data

#创建新的数据库目录并修改目录权限。
chown mysql:mysql /usr/local/mysql/data

#恢复数据到自建库,并修改目录权限。执行该步骤前,需要清空自建库的“data”目录。
--MySQL 5.6、5.7
innobackupex --defaults-file=/etc/my.cnf --copy-back ./backupdir
chown -R mysql:mysql /usr/local/mysql/data

--MySQL 8.0
xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=./backupdir
chown -R mysql:mysql /usr/local/mysql/data

4.直接解压/data/目录进行恢复,和3一样的操作,2选1即可。

#创建数据目录
mkdir /data

#解压数据
--MySQL 5.6  5.7
xbstream -x -p 4 < ./全备文件.qp -C /data/
innobackupex --parallel 4 --decompress /data/
--MySQL 8.0
xbstream -x -p 4 < ./全备文件.qp -C /data
xtrabackup --parallel 4 --decompress --target-dir=/data/

#删除qp文件。
find /data/ -name '*.qp' | xargs rm -f

#应用redo日志。
--MySQL 5.6、5.7
innobackupex --apply-log /data
--MySQL 8.0
xtrabackup --prepare --target-dir=/data

#目录授权,创建 mysql 用户组(如果不存在)
sudo groupadd mysql

# 创建 mysql 用户并加入 mysql 用户组并授权
sudo useradd -r -g mysql -s /bin/false mysql
chown -R mysql.mysql /data/

5.安装数据库并启动

#下载对应版本的MySQL
下载地址:https://mirrors.huaweicloud.com/mysql/Downloads/

#解压安装
tar xf mysql-5.6.49-linux-glibc2.12-x86_64.tar.gz

#/etc/my.cnf
[mysqld]
user=mysql
basedir=/app/mysql
datadir=/data
socket=/tmp/mysql.sock
server_id=666
port=3306

#启动数据库
./mysqld --defaults-file=/etc/my.cnf &
0条评论
0 / 1000
邓萌萌
4文章数
0粉丝数
邓萌萌
4 文章 | 0 粉丝
原创

物理备份恢复数据库

2025-10-30 10:08:16
3
0

一、操作场景:

1.下载天翼云RDS for MySQL实例中对应时间点的全备文件。
2.将全备文件上传到本地用以重建数据库。
3.使用qpress工具将全备文件解压。
4.通过Xtrabackup工具将全备文件恢复到数据库的data目录中,并将数据库原数据保留到data_back文件中。
5.重启数据库,数据重建成功。

二、适用资源池:

华东地区: 杭州/南昌/上海4/苏州/芜湖
华南地区: 长沙2/福州1/广州4/海口/南宁/深圳/武汉2
西北地区: 兰州/乌鲁木齐/西安2/西宁/中卫
西南地区: 成都3/重庆/贵州1/昆明
北方地区: 北京2/长春/哈尔滨/华北/内蒙3/青岛/沈阳3/石家庄/太原/天津/郑州

三、恢复数据操作步骤

1.下载天翼云mysql数据库备份文件上传至云主机(centos系统)。

#wget 命令格式:wget -c '备份文件下载地址' -O 自定义文件名.qp

wget -c 'https://mysql-database-backupxxxxxxxxxxxxxxx' -O /data/db.qp

2.下载正确版本的qpress和XtraBackup,根据数据对应版本进行下载。下载完成后将安装包上传到本地MySQL库所在的Linux设备。

#安装qpress rpm包。
wget https://repo.percona.com/yum/release/7/RPMS/x86_64/qpress-11-1.el7.x86_64.rpm
rpm -ivh qpress-11-1.el7.x86_64.rpm

#安装Percona XtraBackup,MySQL5.7,以下载并安装Percona XtraBackup 2.4.9为例
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm
rpm -ivh percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm --nodeps --force

#MySQL 8.0,以下载并安装Percona XtraBackup 8.0为例
wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.32-26/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.32-26.1.el7.x86_64.rpm
rpm -ivh percona-xtrabackup-80-8.0.32-26.1.el7.x86_64.rpm --nodeps --force

3.数据恢复

#创建数据目录
mkdir /backupdir

#MySQL 5.6、5.7解压备份文件
xbstream -x -p 4 < ./全备文件.qp -C ./backupdir/
innobackupex --parallel 4 --decompress ./backupdir

Q:xbstream: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
A:sudo yum install libaio

#MySQL 8.0
xbstream -x -p 4 < ./全备文件.qp -C ./backupdir/
xtrabackup --parallel 4 --decompress --target-dir=./backupdir

#删除qp文件
find ./backupdir/ -name '*.qp' | xargs rm -f

#应用redo日志。
--MySQL 5.6、5.7
innobackupex --apply-log ./backupdir
--MySQL 8.0
xtrabackup --prepare --target-dir=./backupdir

#备份数据,停止MySQL数据库服务。
service mysql stop

#如果是MySQL 5.7,需执行如下命令停止MySQL数据库服务:
/bin/systemctl stop mysqld.service

#备份原来的数据库目录。
mv /usr/local/mysql/data /usr/local/mysql/data_bak
mkdir /usr/local/mysql/data

#创建新的数据库目录并修改目录权限。
chown mysql:mysql /usr/local/mysql/data

#恢复数据到自建库,并修改目录权限。执行该步骤前,需要清空自建库的“data”目录。
--MySQL 5.6、5.7
innobackupex --defaults-file=/etc/my.cnf --copy-back ./backupdir
chown -R mysql:mysql /usr/local/mysql/data

--MySQL 8.0
xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=./backupdir
chown -R mysql:mysql /usr/local/mysql/data

4.直接解压/data/目录进行恢复,和3一样的操作,2选1即可。

#创建数据目录
mkdir /data

#解压数据
--MySQL 5.6  5.7
xbstream -x -p 4 < ./全备文件.qp -C /data/
innobackupex --parallel 4 --decompress /data/
--MySQL 8.0
xbstream -x -p 4 < ./全备文件.qp -C /data
xtrabackup --parallel 4 --decompress --target-dir=/data/

#删除qp文件。
find /data/ -name '*.qp' | xargs rm -f

#应用redo日志。
--MySQL 5.6、5.7
innobackupex --apply-log /data
--MySQL 8.0
xtrabackup --prepare --target-dir=/data

#目录授权,创建 mysql 用户组(如果不存在)
sudo groupadd mysql

# 创建 mysql 用户并加入 mysql 用户组并授权
sudo useradd -r -g mysql -s /bin/false mysql
chown -R mysql.mysql /data/

5.安装数据库并启动

#下载对应版本的MySQL
下载地址:https://mirrors.huaweicloud.com/mysql/Downloads/

#解压安装
tar xf mysql-5.6.49-linux-glibc2.12-x86_64.tar.gz

#/etc/my.cnf
[mysqld]
user=mysql
basedir=/app/mysql
datadir=/data
socket=/tmp/mysql.sock
server_id=666
port=3306

#启动数据库
./mysqld --defaults-file=/etc/my.cnf &
文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0