目前TAE的RDS数据库实例,可以按照用户自己的设置,对数据进行相应的备份,并且可以根据不同的备份进行数据的恢复,为用户数据提供安全保障,减小因为误操作而引起数据丢失的风险。
进入TAE RDS 列表页面,点击数据备份 , 进入到数据备份相关操作界面,如下所示:
点击备份列表,可以查看到当前7天以内的保留的所有备份数据,如下图所示:
说明:
- 备份方式:包括系统备份和手动备份。
系统备份是指通过指定RDS的备份策略,后台系统默认以物理模式进行数据备份。
手动备份是指通过点击备份列表页面的新建备份操作,用户自行触发的立即备份功能。手动备份可以选择是物理备份还是逻辑备份(物理备份和逻辑备份,下面说明)。- 备份模式:包括物理备份和逻辑备份。
物理备份是指转储物理文件(如数据文件、控制文件、归档日志文件等),一旦数据库发生故障,可以利用这些文件进行还原。
逻辑备份是指对数据库对象(如用户、表、存储过程等)利用EXPORT等工具进行导出工作,可以利用IMPORT等工具把逻辑备份文件导入到数据库- 备份状态:包括备份完成和备份失败。
只有备份完成的状态才可以进行数据恢复操作。备份使用场景建议:
逻辑备份:线上数据库的导出。
物理备份:线上数据库的回滚恢复。
点击新建备份,可以对当前的数据库实例立即进行备份,备份当前的数据库数据镜像,如下图所示:
点击创建临时实例按钮,可以根据当前的备份文件镜像创建一个临时实例出来,临时实例的创建不影响线上的当前实例运行,临时实例的数据是根据用户选择的备份点产生的。
点击创建以后,可以在临时实例页面看到具体的临时实例信息。如下图所示:
在临时实例页面,可以看到对应的临时实例的版本,有效期,数据库的链接信息。
如果临时实例创建完成,可以看到临时实例的删除和数据库控制台操作两个按钮。如下图所示:
注意:临时实例只有两天的有效期,请在有效期内做好相应数据保存。
在备份设置里面,可以查看到当前数据库的系统备份时间,如下图所示:
点击修改,可以修改备份策略,如下图所示:
建议:为了数据安全,请设置一周至少两次备份。
备份策略说明:
rds系统采用全量,物理备份的形式 , 按照设置的时间和周期进行数据库的备份。数据保留的天数只有7天。
在备份列表的页面,所有的备份点都包含一个恢复操作的按钮,点击恢复按钮,可以用当前的备份数据镜像恢复到当前数据库实例上面,如下图所示:
注意:此操作会引起备份时间点到当前恢复时间点的部分数据的丢失。
在RDS的备份列表页面,可以看到备份的数据类型包括了两种类型:物理备份和逻辑备份。在备份列表页面也提供了备份文件的下载功能,可以下载对应的备份文件,恢复到线下的测试库,方便用户的测试。
如果是逻辑备份的文件,点击下载对应的gz文件,解压出SQL 文件,对于这种SQL文件,MySQL有很多成熟的工具可以导入,如下图所示:
RDS MySQL 使用开源软件 Xtrabackup 对 MySQL 数据库进行备份。需要下载该软件,然后使用该软件进行恢复。
由于Xtrabackup只支持Linux环境,所以下面的所有的操作都必须在Linux环境下执行,但是,通过Xtrabackup恢复出来的MySQL数据文件是可以在Windows、Linuxs下使用的。
文档采用的环境:Ubuntu 14.04.1 LTS 64位 , MySQL 5.5 .
Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。
由于TAE RDS 采用的是Xtrabackup 2.0.6版本进行的数据备份,建议下载对应的版本进行数据恢复。下载地址:https://www.percona.com/downloads/XtraBackup/(复制下载地址在浏览器打开)
下载percona-xtrabackup-2.0.6,进行解压
tar –xvf percona-xtrabackup-2.0.6-523.tar.gz
将xtrabackup的解压目录添加到环境变量中:
sudo vim /etc/profile
在最后一行添加:
export PATH=$PATH:/home/mapan/program/percona-xtrabackup-2.0.6/bin
在 /home 路径下面新建一个备份数据恢复的文件mysql_test(说明: 为了后面的操作方便,执行 sudo –s ,切换到root账号下面)
mkdir mysql_test
拷贝刚才从TAE 下载的物理备份到当前目录下,解压文件:
tar vizxf hins437287_xtra_20150406013519.tar.gz
查询解压后生成的文件,其中蓝色字体的目录文件为备份生成时RDS实例中存在的数据库,如下图所示:
在当前目录执行命令:
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! ,则执行正确,如下图所示:
由于存在的版本问题,请将解压文件backup-my.cnf中的除了innodb_data_file_path , innodb_log_files_in_group ,innodb_log_file_size 以外的配置给注释掉,添加datadir=/xxx/xxx/ (这里为数据的解压目录),如下所示:
用户可以删除现有的MySQL系统库,重新生成MySQL系统库从而拥有数据库的root权限。删除mysql系统库命令为:
rm -rf mysql
确认删除成功,如图所示:
删除解压目录下的原始的下载文件:
rm -rf hins437287_xtra_20150406013519.tar.gz
修改ubuntu 的配置文件:/etc/apparmor.d/usr.sbin.mysqld , 在这个文件里面添加新的MySQL数据文件路径:/home/mysql_test/** rwk,
重启apparmor:
sudo /etc/init.d/apparmor restart
重装MySQL的系统库:
命令格式:
mysql_install_db --user=mysql --datadir=/xxx/xxx/
确认操作成功,如下图所示
命令格式:
chown -R mysql:mysql /xxx/xxx/(备份文件所属目录)
检查文件所属为mysql用户,如下图所示:
命令格式:
mysqld_safe --defaults-file=/xxx/xxx/backup-my.cnf --skip-grant-tables &(备份文件所属目录)
验证命令:
ps –ax | grep mysql
下图所示: