云数据库 MySQL 备份恢复相关

开源软件 Percona XtraBackup 可以用于对数据库进行备份恢复,这里说明使用 Percona XtraBackup 工具,将 MySQL 物理备份文件恢复至其他主机上的自建数据库。

相关产品
云数据库 MySQL 产品页,含版本规格、价格与购买入口。

一、操作场景

注意:说明:

注意:为节约存储空间,云数据库 MySQL 的物理备份和逻辑备份文件,都会先经过 qpress 压缩,后经过 xbstream 打包(xbstream 为 Percona 的一种打包/解包工具)进行压缩与打包。

注意:如果使用透明加密或 Instant DDL 功能,则无法使用物理备份在自建系统上进行恢复。

·Percona XtraBackup 只支持 Linux 平台,不支持 Windows 平台。

·Windows 平台恢复数据请参考 命令行工具迁移数据。

二、前提条件

·下载并安装 Percona XtraBackup 工具。

注意:说明:

注意:请确保你下载的工具的版本与你数据库的版本一致,例如你的实例数据库版本为 MySQL 8.0.30,则请对应下载8.0.30版本的 Percona XtraBackup 工具。点击 下载地址 可跳转查询版本和下载工具,安装介绍请参见 Percona XtraBackup 指引。

·支持的实例版本:MySQL 双节点、三节点。

注意:说明:

注意:这篇以 CentOS 操作系统的云服务器和 MySQL 5.7 版本为例进行演示。

三、步骤1:下载备份文件

你可通过控制台下载云数据库 MySQL 的数据备份、日志备份。

注意:说明:

注意:默认每个 IP 限制10个连接,每个链接下载速度可达20Mbps – 30Mbps。

1. 登录 MySQL 控制台,在实例列表,单击实例 ID 或操作列的管理,进入实例管理页面。

2. 在实例管理页面,选择备份恢复 > 数据备份列表页, 选择需要下载的备份,在操作列单击下载。

3. 在弹出的对话框,下载地址后单击复制,获取下载链接。

4. 登录本地自建 MySQL 所在的 Linux 云服务器,运用 wget 命令进行内网高速下载物理备份。

注意:说明:

示例如下:

wget -c 'https://mysql-database-backup-sh-1218.cos.ap-nanjing.myqcloud.com/12427%2Fmysql%2F0674-ffba-11e9-b592-70bd%2Fdata%2Fautomatic-delete%2F2019-12-03%2Fautomatic%2Fxtrabackup%2Fbk_61_156758150%2Fcdb-293fl9ya_backup_20191203000202.xb?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKzxfbLJ1%26q-sign-time%3D1575374119%3B1575417319%26q-key-time%3D1575374119%3B1575417319%26q-header-list%3D%26q-url-param-list%3D%26q-signature%3Dba959757&response-content-disposition=attachment%3Bfilename%3D%22yuan177685_backup_20191203000202.xb%22&response-content-type=application%2Foctet-stream' -O /data/test.xb

四、步骤2:下载备份解密密钥(开启了备份加密功能才需操作此步骤)

你可通过控制台下载所需物理备份对应的数据备份解密密钥。

注意:说明:

注意:每个数据库备份的解密密钥独立生成,如开启了备份加密功能,下载备份文件时需要连同解密密钥一并下载保留。

1. 登录 MySQL 控制台,在实例列表,单击实例 ID 或操作列的管理,进入实例管理页面。

2. 在实例管理页面,选择备份恢复 > 数据备份列表页, 选择需要下载的备份对应的解密密钥,在操作列单击下载密钥。

五、3.1 解包备份文件

使用 xbstream 命令将数据备份文件解包到目标目录。

xbstream -x –decrypt=AES256 –encrypt-key-file=<备份密钥文件> –parallel=2 -C /data/mysql < /data/test.xb

注意:说明:

解包结果如下:

如需解包的备份文件是 binlog 备份,命令如下。

openssl enc -d -aes256 -k <encrypt_key> -in <download_binlog_name> -out <output_binlog_name>;

·<encrypt_key>:替换为实际的备份密钥文件内容。

·<download_binlog_name>:替换为实际加密的 binlog 文件名。

·<output_binlog_name>:替换为实际解密的 binlog 文件名。

六、3.2 解压备份文件

1. 通过如下命令下载 qpress 工具。

wget -d –user-agent="Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0" https://docs-tencentdb-1256569818.cos.ap-guangzhou.myqcloud.com/qpress-11-linux-x64.tar

注意:说明:

注意:若 wget 下载提示错误,你可单击 下载 qpress 工具 下载到本地后,再将 qpress 工具上传至 Linux 云服务器,请参见 通过 SCP 上传文件到 Linux 云服务器。

2. 通过如下命令解压出 qpress 二进制文件。

tar -xf qpress-11-linux-x64.tar -C /usr/local/binsource /etc/profile

3. 使用如下命令将目标目录下所有以.qp结尾的文件都解压出来。

xtrabackup –decompress –target-dir=/data/mysql

注意:说明:

七、3.3 Prepare 备份文件

备份解压出来之后,执行如下命令进行 apply log 操作。

xtrabackup –prepare –target-dir=/data/mysql

执行后若结果中包含如下输出,则表示 prepare 成功。


八、3.4 修改配置文件

1. 执行如下命令打开 backup-my.cnf 文件。

vi /data/mysql/backup-my.cnf

注意:说明:

注意:这篇以目标目录 /data/mysql 为例,你可以根据实际情况将其替换成实际路径。

2. 由于存在的版本问题,请将解压文件 backup-my.cnf 中如下参数进行注释。

·innodb_checksum_algorithm

·innodb_log_checksum_algorithm

·innodb_fast_checksum

·innodb_page_size

·innodb_log_block_size

·redo_log_version

·server_uuid

·master_key_id

九、3.5 修改文件属性

修改文件属性,并检查文件所属为 mysql 用户。

chown -R mysql:mysql /data/mysql

十、步骤4:启动 mysqld 进程并登录验证

1. 启动 mysqld 进程。

mysqld_safe –defaults-file=/data/mysql/backup-my.cnf –user=mysql –datadir=/data/mysql &

2. 客户端登录 mysql 验证。

mysql -uroot -p

注意:说明:

注意:执行命令后输入的密码,是你使用备份文件恢复到云上数据库里账号为 root 对应的密码。

十一、备份相关问题

请参见 备份常见问题 和 备份失败原因。

赞 (0)
上一篇 4天前
下一篇 4天前