注意:以下文档只适用于TOP接口,请谨慎使用!

RDS备份恢复说明

更新时间:2015/09/18 访问次数:20166

简介

目前TAE的RDS数据库实例,可以按照用户自己的设置,对数据进行相应的备份,并且可以根据不同的备份进行数据的恢复,为用户数据提供安全保障,减小因为误操作而引起数据丢失的风险。

RDS备份操作指南

数据备份

进入TAE RDS 列表页面,点击数据备份 , 进入到数据备份相关操作界面,如下所示:

enter image description here

查看备份列表

点击备份列表,可以查看到当前7天以内的保留的所有备份数据,如下图所示:

enter image description here

说明:

  • 备份方式:包括系统备份和手动备份。
    系统备份是指通过指定RDS的备份策略,后台系统默认以物理模式进行数据备份。
    手动备份是指通过点击备份列表页面的新建备份操作,用户自行触发的立即备份功能。手动备份可以选择是物理备份还是逻辑备份(物理备份和逻辑备份,下面说明)。
  • 备份模式:包括物理备份和逻辑备份。
    物理备份是指转储物理文件(如数据文件、控制文件、归档日志文件等),一旦数据库发生故障,可以利用这些文件进行还原。
    逻辑备份是指对数据库对象(如用户、表、存储过程等)利用EXPORT等工具进行导出工作,可以利用IMPORT等工具把逻辑备份文件导入到数据库
  • 备份状态:包括备份完成和备份失败。
    只有备份完成的状态才可以进行数据恢复操作。

备份使用场景建议: 
逻辑备份:线上数据库的导出。 
物理备份:线上数据库的回滚恢复。

新建备份

点击新建备份,可以对当前的数据库实例立即进行备份,备份当前的数据库数据镜像,如下图所示:

enter image description here

创建临时实例

点击创建临时实例按钮,可以根据当前的备份文件镜像创建一个临时实例出来,临时实例的创建不影响线上的当前实例运行,临时实例的数据是根据用户选择的备份点产生的。
点击创建以后,可以在临时实例页面看到具体的临时实例信息。如下图所示:

enter image description here

在临时实例页面,可以看到对应的临时实例的版本,有效期,数据库的链接信息。
如果临时实例创建完成,可以看到临时实例的删除和数据库控制台操作两个按钮。如下图所示:

enter image description here

注意:临时实例只有两天的有效期,请在有效期内做好相应数据保存。

备份策略设置

在备份设置里面,可以查看到当前数据库的系统备份时间,如下图所示:

enter image description here

点击修改,可以修改备份策略,如下图所示:

enter image description here

建议:为了数据安全,请设置一周至少两次备份。

备份策略说明: 
rds系统采用全量,物理备份的形式 , 按照设置的时间和周期进行数据库的备份。数据保留的天数只有7天。

恢复备份

在备份列表的页面,所有的备份点都包含一个恢复操作的按钮,点击恢复按钮,可以用当前的备份数据镜像恢复到当前数据库实例上面,如下图所示:

enter image description here

注意:此操作会引起备份时间点到当前恢复时间点的部分数据的丢失。

RDS恢复指南

在RDS的备份列表页面,可以看到备份的数据类型包括了两种类型:物理备份和逻辑备份。在备份列表页面也提供了备份文件的下载功能,可以下载对应的备份文件,恢复到线下的测试库,方便用户的测试。

逻辑备份的恢复

如果是逻辑备份的文件,点击下载对应的gz文件,解压出SQL 文件,对于这种SQL文件,MySQL有很多成熟的工具可以导入,如下图所示:

enter image description here

物理备份的恢复

RDS MySQL 使用开源软件 Xtrabackup 对 MySQL 数据库进行备份。需要下载该软件,然后使用该软件进行恢复。
由于Xtrabackup只支持Linux环境,所以下面的所有的操作都必须在Linux环境下执行,但是,通过Xtrabackup恢复出来的MySQL数据文件是可以在Windows、Linuxs下使用的。
文档采用的环境:Ubuntu 14.04.1 LTS 64位 , MySQL 5.5 .

Xtrabackup安装

Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。
由于TAE RDS 采用的是Xtrabackup 2.0.6版本进行的数据备份,建议下载对应的版本进行数据恢复。下载地址:https://www.percona.com/downloads/XtraBackup/(复制下载地址在浏览器打开)

enter image description here

下载percona-xtrabackup-2.0.6,进行解压

			tar –xvf  percona-xtrabackup-2.0.6-523.tar.gz 

enter image description here

将xtrabackup的解压目录添加到环境变量中:

sudo vim /etc/profile

在最后一行添加:

export PATH=$PATH:/home/mapan/program/percona-xtrabackup-2.0.6/bin

enter image description here

解压备份文件

在 /home 路径下面新建一个备份数据恢复的文件mysql_test(说明: 为了后面的操作方便,执行 sudo –s ,切换到root账号下面)

mkdir  mysql_test

拷贝刚才从TAE 下载的物理备份到当前目录下,解压文件:

tar vizxf  hins437287_xtra_20150406013519.tar.gz

enter image description here

查询解压后生成的文件,其中蓝色字体的目录文件为备份生成时RDS实例中存在的数据库,如下图所示:

enter image description here

恢复数据文件

在当前目录执行命令:

innobackupex --defaults-file=./backup-my.cnf --apply-log ./  --ibbackup

说明:xtrabackup_xx 为指定MySQL的版本,根据不同的MySQL版本选择不同的参数

  • xtrabackup_51 (for MySQL 5.0 and 5.1)
  • xtrabackup_55 (for MySQL 5.5)
  • xtrabackup_56 (for MySQL or Percona Server 5.6)
  • xtrabackup (for MySQL 5.1 with InnoDB plugin or Percona Server)

如果执行的最后一行显示: innobackupex: completed OK! ,则执行正确,如下图所示:

enter image description here

修改配置文件

由于存在的版本问题,请将解压文件backup-my.cnf中的除了innodb_data_file_path , innodb_log_files_in_group ,innodb_log_file_size 以外的配置给注释掉,添加datadir=/xxx/xxx/ (这里为数据的解压目录),如下所示:

enter image description here

删除旧的MySQL系统库

用户可以删除现有的MySQL系统库,重新生成MySQL系统库从而拥有数据库的root权限。删除mysql系统库命令为:

rm -rf mysql

确认删除成功,如图所示:

enter image description here

重装MySQL系统库

删除解压目录下的原始的下载文件:

rm -rf hins437287_xtra_20150406013519.tar.gz 

修改ubuntu 的配置文件:/etc/apparmor.d/usr.sbin.mysqld , 在这个文件里面添加新的MySQL数据文件路径:/home/mysql_test/** rwk,

enter image description here

重启apparmor:

sudo /etc/init.d/apparmor restart

重装MySQL的系统库:
命令格式:

mysql_install_db --user=mysql --datadir=/xxx/xxx/

确认操作成功,如下图所示

enter image description here

修改文件用户权限属性

命令格式:

chown -R mysql:mysql /xxx/xxx/(备份文件所属目录)

检查文件所属为mysql用户,如下图所示:

enter image description here

启动mysqld进程,并验证启动成功

命令格式:

mysqld_safe --defaults-file=/xxx/xxx/backup-my.cnf   --skip-grant-tables &(备份文件所属目录)

验证命令:

ps –ax | grep mysql

下图所示:

enter image description here

 

FAQ

关于此文档暂时还没有FAQ
返回
顶部