说明

阿里云RDS-mysql数据库是通过percona-Xtrabackup进行备份的,所以恢复时也需要安装该软件。

另外注意的是:你自己下载的MySQL版本要和阿里云上的MySQL版本一致,不然会出问题!

  1、下载percona-Xtrabackup

安装这个软件的方式有很多种,推荐二进制方式,这样下载解压后就可以直接使用,省去了编译的麻烦。

下面是链接:

https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.2/binary/

安装好之后使用如下命令测试是否成功安装:

ls data/percona-xtrabackup-2.4.4-Linux-x86_64/bin/innobackupex --version

ls (GNU coreutils) 8.4
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Written by Richard M. Stallman and David MacKenzie.

  2、解压备份文件(就是tar包)

阿里云官网文档推荐使用一个工具来解压,rds_backup_extract.sh,其实就是一个shell脚本!

然后执行如下命令行:

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

  这里有一个坑!官网没有说清楚,要把文件解压到MySQL的数据目录,而不是随便的一个目录!

  (其实直接使用tar xf解压是一样的,个人觉得,为了保险还是推荐官网的方式!)

  3、恢复数据文件

使用过percona软件的人都了解,会有一个恢复文件的步骤,执行如下命令行即可:

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

  说明:backup-my.cnf也是在数据目录下,--apply-log选项后面接的也是数据目录。

     命令执行成功后会有completed ok!的显示。

  4、修改配置文件

编辑数据目录下的backup-my.cnf文件,注释三行代码即可:

[mysqld]
innodb_checksum_algorithm=innodb
innodb_log_checksum_algorithm=innodb
innodb_data_file_path=ibdata1:200M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=1048576000
#innodb_fast_checksum=false
#innodb_page_size=16384
#innodb_log_block_size=512
innodb_undo_directory=.
innodb_undo_tablespaces=0 rds_encrypt_data=false
innodb_encrypt_algorithm=aes_128_ecb

  5、修改文件的权限

需要将数据目录下的文件属主和属组改为mysql,执行如下命令行:

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

  6、启动mysql进程并登陆验证

service mysqld restart

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

  命令的执行完成可能要等一会儿,有点耐心,一般几分钟而已(园主的2分钟以内)。

登陆数据库验证:

mysql -uroot -p

>show databases;

  7、重新建立授权用户

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

创建授权用户之前执行下面3条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; 如果直接复制粘贴官网的语句会报错!原因是引号错误,自己需要把引号改一改! >grant all on 'user01'@'%' IDENTIFIED BY 'password01';
>flush privileges; 说明:%表示可以远程连入数据库,不想远程连接可以改为localhost。

  好了!到此为止,数据恢复完成!因为软件的原因,恢复仅限Linux系统进行,但是可以在Windows上用客户端工具连入数据库。

阿里云RDS备份的tar格式包恢复到本地自建数据库的更多相关文章

  1. 阿里云rds 备份和还原

    阿里云rds 备份和还原 转发:https://www.cnblogs.com/lin1/p/8617764.html 转发:https://help.aliyun.com/knowledge_det ...

  2. 阿里云RDS备份 恢复到本地

    目录 一.恢复准备 二.具体操作 一.恢复准备 阿里云RDS默认配置了全备份+binlog,可以精准恢复到某个时间点上. 可以下载备份的包到本地,进行本地恢复,要预留好本地的数据库容量和cpu等规格, ...

  3. MongoDB自建和阿里云RDS备份还原

    MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功 ...

  4. 将 云数据库MongoDB(阿里云)物理备份文件下载恢复至本地自建数据库 遇到的5个问题

    有时候我们可能需要将云上数据库下载到本地,下面是我们在操作MongoDB数据库时遇到的五个小问题. 其实现在RDS的 帮助文档 写的都比较详细了,大家在第一次操作时,可以细读一下,避免一些不必要的问题 ...

  5. 阿里云RDS备份在本地mysql快速还原

    本地准备: ##安装和RDS相同的mysql版本,拿mysql5.6为例 http://www.cnblogs.com/37yan/p/7513605.html ##安装Xtrabackup 包 cd ...

  6. wget下载阿里云RDS备份集

    [root@localhost tmp]# more wget.sh #!/bin/bash download_url=`python /tmp/geturl.py` echo $download_u ...

  7. 阿里云RDS数据库备份同步到自建库方法(SHELL脚本)

    一.背景: 由于阿里云RDS生产库每天都需要备份且拷贝到自建读库,而如果使用阿里云的自动拷贝到只读实例, 费用太高, 故采用自编写同步脚本方法实现. 二.前提: 1). 已开通阿里云RDS, 且开启定 ...

  8. 烂泥:阿里云RDS本地恢复数据

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 公司目前使用的数据库是阿里云的RDS,目前RDS的版本为mysql5.6.如下: 现在要 ...

  9. 阿里云RDS导入服务器数据库 XtraBackup

    如果是centos系统,默认会开启selinux 一定需关闭selinux 解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=dis ...

随机推荐

  1. 【找规律】URAL - 2069 - Hard Rock

    题解及证明:http://www.cnblogs.com/StupidBoy/p/5241258.html #include<cstdio> #include<algorithm&g ...

  2. 【二分答案】【哈希表】【字符串哈希】bzoj2946 [Poi2000]公共串

    二分答案,然后搞出hash值扔到哈希表里.期望复杂度O(n*log(n)). <法一>next数组版哈希表 #include<cstdio> #include<cstri ...

  3. 10.2(java学习笔记)JDBC事务简述

    一.事务 事务是指作为一系列操作组成的一个整体,该整体只有两种状态,要么全部执行,要么全部不执行. 当组成这个事务的所有语句都执行成功则该事务执行,只要有一条语句执行失败则该事务不执行. 假设这里有一 ...

  4. 【MySQL笔记】数据操纵语言DML

    1.数据插入   INSERT INTO table_name (列1, 列2,...) VALUES(值1, 值2,....),(第二条),(第三条)...   注: 1)如果表中的每一列均有数据插 ...

  5. JNI概述

    JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++). JNI 让你在利用强大 Java 平台的同时,使你仍然可以用 ...

  6. PHP正则表达式之快速学习法

    1.入门简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或 ...

  7. typeof、instanceof与isPrototypeOf()的差异与联系

    一.typeof 1.typeof的意义及作用: 我们知道ECMAScript中有5种简单(基本)数据类型:Undefined.Null.Boolean.Number.String,以及一种引用数据类 ...

  8. More is better——并查集求最大集合(王道)

    Description Mr Wang wants some boys to help him with a project. Because the project is rather comple ...

  9. uva 10934 装满水的气球

    题意和思路见: http://blog.csdn.net/shuangde800/article/details/11273123 我的想法: 首先问题转化一下 将问题转化成:定义f[i][j] 表示 ...

  10. iOS怎样找到自己的沙盒

    iOS怎样找到自己的沙盒 在ios开发我们会用到沙盒,因为自己对沙盒理解的不够,所以找不到沙盒文件在哪里,当然要知道路径了 比如我的路径 NSString* cachepath = [NSHomeDi ...