数据库恢复工具实战教程

随着业务变化与时间的推移,在使用阿里云的云数据库 RDS数据库中 数据也不断地增长。阿里云提供了非常稳定而高效的数据备份机制(备份一次仅仅耗时 1s)。下面总结下在使用阿里云RDS数据库恢复工具时,实际的操作过程与心得,来为遇到类似问题的同伴提供一些有效的帮助。

操作环境

操作系统: OS X 10.10.4

服务器环境:CentOS 6.5

本地数据库环境:Server version: 5.6.21-log MySQL Community Server (GPL)

生产数据库环境:MySQL5.5

使用工具

终端工具:iTerm (Mac)

数据压缩解压工具:rds_backup_extract (仅仅适用 RDS)

数据库恢复工具:Percona XtraBackup 2.2 Release 2.2.12

操作过程

1. 下载 RDS 官方提供的压缩工具包 rds_backup_extract

RDS的备份文件是一个压缩包,需要先解压出来,才能恢复,这里下载解压工具 rds_backup_extract (sh 文件),目前只支持 64 位 Linux 系统。

软件使用方式:

2. 安装备份还原工具 Percona XtraBackup 2.2

请下载官方的 Percona-XtraBackup(下载地址:https://www.percona.com/downloads/XtraBackup/)官方提供各种平台的安装包,请根据自己的需要下载。RDS 备份使用的版本是 2.2.9,建议您下载 2.2.9 或更新的版本使用。想要了解工具原理的可以参考官方文档。

3.根据帮助文档解压备份文件

解压备份文件:

bash rds_backup_extract -f /home/mysql/backup/hins575175_xtra_20150429091224.tar.gz -C /home/mysql/data

如图:

 

查询解压后生成的文件,其中蓝色字体的目录文件为备份生成时 RDS 存在的数据库

 

4. 还原备份文件

解压备份文件前,要先安装好 Percona-XtraBackup 工具。然后执行下面的命令:

innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data

这一步最后如果看到类似如下输出,显示 completed OK,表示执行成功:

5.环境配置

由于存在的版本问题,请将解压文件 backup-my.cnf 中的 innodb_fast_checksum、innodb_page_size 、innodb_log_block_size 注释掉,如下图:

 

6. 修改文件属主

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

chown -R mysql:mysql /home/mysql/data

7.启动mysqld进程并且登录验证

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

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

 

客户端登录mysql验证

 

 注意

恢复完成后,表mysql.user 中是不包含RDS中创建的用户,需要新建。

新建用户前请执行如下 SQL:

delete from mysql.db where user<>'root' and char_length(user)>0;

delete from mysql.tables_priv where user<>'root' and char_length(user)>0;

flush privileges;








参考:

RDS for MySQL 备份文件恢复到自建数据库

阿里云RDS数据库恢复工具实战心得

 

时间: 2024-12-31 08:52:36

数据库恢复工具实战教程的相关文章

Backbone实战教程(二)

在Backbone实战教程(一)中我们已经写好了基本页面文件.功能需求以及整体框架.今天我们就正式进入js代码的实现部分. 首先附上Backbone和Underscore官方文档地址,这里才是最佳的学习地方: Backbone:http://backbonejs.org/ Underscore:http://underscorejs.org/ 整个实例我已经做好,大家可以在这里看: Backbone通讯录实例v1.0 定义项目的命名空间 var Contact = { Models: {}, C

SEO搜索中文分词算法原理实战教程

SEO搜索中文分词算法原理实战教程,如果一个人想成为一个合格的SEO人员,那么搜索引擎分词思维是必须掌握的,因为只有掌握了分词思维,你才可以做出搜索引擎喜欢,而且用户也喜欢的网页,虽然在梦想之旅视频教程中有和大家分享过搜索引擎中文分词原理,但没有完全的,系统的用文字版本和图片版本和大家分享,那么顾芳源就带大家如何正确学习SEO搜索分词思维吧. 搜索引擎中文分词原理 首先我们要知道搜索引擎工作原理是把每个网页的内容按词来录入到数据库,比如你的文章标题是:梦想SEO实战培训提供免费SEO教程,那么搜

mybatis实战教程(mybatis in action),mybatis入门到精通

 目录(?)[-] mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程mybatis in action之三实现数据的增删改查 mybatis实战教程mybatis in action之四实现关联数据的查询 mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring

《软件功能测试自动化实战教程》—第6章6.7节文件数据源的数据驱测试

6.7 文件数据源的数据驱测试 软件功能测试自动化实战教程 执行数据驱测试前要先定义测试所需的数据源,数据驱动测试的数据源除了UFT自带的DataTable之外,可以是文本文件.Excel文件.数据库表格等.本小节主要列举了以文本文件或者以Excel文件为代表的文件数据源的数据驱动测试实例. 6.7.1 文本文件作为数据源 在本实例中以UFT自带订票系统为例讲解如何使用文本文件存储数据源实现数据驱动测试. 首先,录制订票系统的业务流程,如图6-44所示: 其次,用记事本编辑一个文本文件作为测试的

mybatis实战教程

http://www.yihaomen.com/article/java/302.htm 作者:轻舞肥羊 日期:2012-11-12 写在这个系列前面的话:          以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错,比hibernate灵活.性能也比hibernate好.而且也比较轻量级,因为当时在项目中,没来的及做很很多笔记.后来项目结束了,我也没写总结文档.已经过去好久了.但最近突然又对这个ORM 工具感兴趣.因为接下来自己的项目中很有可能采用这个OR

ActiveReports 9实战教程(3): 图文并茂的报表形式

原文:ActiveReports 9实战教程(3): 图文并茂的报表形式  基于上面2节内容,我们搭建了AR9的开发环境,配置好了数据源.在本节,我们以官方提供的3个中文图文并茂的报表来展示AR9的功能,并通过实战的方式一一分享. 以往做报表相关的工作时,最害怕的是报表的UI设计工作,当遇到一个布局非常复杂的报表,往往会花上两.三时间才能完成报表的UI设计工作.造成这一问题的原因除了报表本身比较复杂之外,其中一个主要原因就是报表设计器没有提供足够多的功能来辅助报表的UI设计工作.      

Mybatis实战教程之入门到精通(经典)_java

什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到 ses

ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)

原文:ActiveReports 9实战教程(2): 准备数据源(设计时.运行时) 在上讲中<ActiveReports 9实战教程(1): 手把手搭建环境Visual Studio 2013 社区版>,我们已经结合Visual Studio 2013搭建好了ActiveReports 9的开发环境,并完成了一个Hello World的RDL报表. 在本文,我们通过配置数据源进行报表实战,做过报表开发的报表达人知道,报表中的数据源分设计时数据源和运行时数据源. 如何理解呢? 这2类数据源,表结

《软件功能测试自动化实战教程》—第6章6.1节什么时候使用数据驱动测试方法

第6章 数据驱动测试软件功能测试自动化实战教程数据驱动的测试方法要解决的核心问题是把数据从测试脚本中分离出来,从而实现测试脚本的参数化. 6.1 什么时候使用数据驱动测试方法软件功能测试自动化实战教程自动化测试对录制和编辑好的测试步骤进行回放,这种是线性的自动化测试方式,其缺点是明显的,就是其测试覆盖面比较低.测试回放的只是录制时做出的界面操作,以及输入的测试数据,或者是脚本编辑时指定的界面操作和测试数据. 如何让测试脚本执行时,不仅仅局限于测试录制或编辑时的测试数据呢?数据驱动的测试方式是解决