云数据库RDS中的MySQL数据库备份-阿里云开发者社区

开发者社区> sunlovesi> 正文

云数据库RDS中的MySQL数据库备份

简介: RDS使用mysqldump对 MySQL 数据库进行逻辑全量备份,使用开源软件Xtrabackup进行物理全量备份,是实例级别的备份。本文主要从原理的角度来介绍MySQL数据库的备份和恢复,让用户更加了解RDS的备份恢复机制。
+关注继续查看

背景

RDS使用mysqldump对 MySQL 数据库进行逻辑全量备份,使用开源软件Xtrabackup进行物理全量备份,是实例级别的备份。本文主要从原理的角度来介绍MySQL数据库的备份和恢复,让用户更加了解RDS的备份恢复机制。

一、使用Mysqldump进行逻辑备份 

mysqldump作为重要的MySQL备份工具,功能相当强大。备份参数、恢复策略,需要仔细研究。

备份数据库:

备份单个数据库或单个数据库中的指定表:

mysqldump [OPTIONS] database [tb1] [tb2]…

备份多个数据库:

mysqldump [OPTIONS] –databases [OPTIONS] DB1 [DB2 DB3...]

备份所有数据库:

mysqldump [OPTIONS] –all-databases [OPTIONS]

二、使用Xtrabackup进行物理备份恢复

Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具。

备份数据库:

如果在程序启动阶段未指定模式,innobackupex将会默认以备份模式启动。

默认情况下,此脚本以–suspend-at-end选项启动xtrabackup,然后xtrabackup程序开始拷贝InnoDB数据文件。当xtrabackup程序执行结束,innobackupex将会发现xtrabackup创建了xtrabackupsuspended2文件,然后执行FLUSH TABLES WITH READ LOCK,此语句对所有的数据库表加读锁,然后开始拷贝其他类型的文件。

如果–ibbackup未指定,innobackupex将会自行尝试确定使用的xtrabackup的binary。其确定binary的逻辑如下:首先判断备份目录中xtrabackup_binary文件是否存在,如果存在,此脚本将会依据此文件确定使用的xtrabackup binary。否则,脚本将会尝试连接database server,通过server版本确定binary。如果连接无法建立,xtrabackup将会失败,需要自行指定binary文件。

在binary被确定后,将会检查到数据库server的连接是否可以建立。其执行逻辑是:建立连接、执行query、关闭连接。若一切正常,xtrabackup将以子进程的方式启动。

FLUSH TABLES WITH READ LOCK是为了备份MyISAM和其他非InnoDB类型的表,此语句在xtrabackup已经备份InnoDB数据和日志文件后执行。在这之后,将会备份 .frm, .MRG, .MYD, .MYI, .TRG, .TRN, .ARM, .ARZ, .CSM, .CSV, .par, and .opt 类型的文件。

当所有上述文件备份完成后,innobackupex脚本将会恢复xtrabackup的执行,等待其备份上述逻辑执行过程中生成的事务日志文件。接下来,表被解锁,slave被启动,到server的连接被关闭。接下来,脚本会删掉xtrabackupsuspended2文件,允许xtrabackup进程退出。

三、使用innobackupex备份数据库

完全备份:

innobackupex –user=root -p /home/backup/

备份后的文件:在备份的同时,备份数据会在备份目录下创建一个以当前日期时间为名字的目录存放备份文件。

c2dd640c9f020c4128206c648d01f25339bdc07d

各文件说明:

(1) backup-my.cnf —— 备份命令用到的配置选项信息;

d2ccdd56f2d9bc7698d12aac6f9e8267b6ebc78d

(2) ibdata —— 备份的表空间文件;

(3) xtrabackup_binary —— 备份中用到的xtrabackup的可执行文件;

9b5c69f571097a2b4465242f19c01ca9bf79f69f

(4) xtrabackup_binlog_info —— mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置;

465fe2df6e0556ade964ffbf09daaf1add8d91db

(5) xtrabackup_checkpoints —— 备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN(日志序列号)范围信息;

9dd86cef95d16053140784fd67590c5523f2403b

(6) xtrabackup_logfile —— 备份的重做日志文件。

在使用innobackupex进行备份时,还可以使用–no-timestamp选项来阻止命令自动创建一个以时间命名的目录;如此一来,innobackupex命令将会创建一个BACKUP-DIR目录来存储备份数据。

准备(prepare)一个完全备份

一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。

innobakupex命令的–apply-log选项可用于实现上述功能。

innobackupex –apply-log /home/backup/2014-05-03_17-21-11/

 

执行成功,显示如下:

75f663aea0ece99efee57e491882b5861c96775e

在实现“准备”的过程中,innobackupex通常还可以使用–use-memory选项来指定其可以使用的内存的大小,默认通常为100M。如果有足够的内存可用,可以多划分一些内存给prepare的过程,以提高其完成速度。


参考

RDS中的MYSQL备份恢复

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
用SQL命令查看Mysql数据库大小
用SQL命令查看Mysql数据库大小 除了可以直接进入后台查看数据文件大小,可以用SQL命令查看Mysql数据库大小 1、进入information_schema 数据库(存放其他的数据库的信息的数据库)  mysql> show databases; +--...
635 0
使用navicat将SQL server数据库导成mysql数据库
使用navicat将SQL server数据库导成mysql数据库 1、新建一个数据库名 2、右键表名,选择导入向导 3、选择‘odbc’ 4、点击下一步, 5、再下一步 6、点去确定的时候报错 “无法打开文件Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=TYPQMS;Data Source=.” 7、原因是 弹出的界面密码又被设置成了空白 因此我们要保存密码 8、正确来连接成功后的页面。
1661 0
mysqldump常用于MySQL数据库逻辑备份
mysqldump常用于MySQL数据库逻辑备份。   1、各种用法说明      A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump file]      上述命令将指定数据库备份到某dump文件(转储文件)中,比如: mysqldump -uroot -p123 test > test.dump      生成的test.dump文件中包含建表语句(生成数据库结构哦)和插入数据的insert语句。
1000 0
为更强大而生的开源关系型数据库来了!阿里云RDS for MySQL 8.0 正式上线!
2019年5月29日15时,阿里云RDS for MySQL 8.0正式上线,使得阿里云成为紧跟社区步伐,发布MySQL最新版本的云厂商。RDS for MySQL 8.0 产品是阿里云推出的 MySQL 系列云产品之一,使用完全兼容 MySQL 8.0 的阿里云 AliSQL 8.0 分支,除了官方在 MySQL 8.0 推出的全新功能外,AliSQL 沉淀了许多在 Alibaba 集团电商业务和云上几十万客户在使用 MySQL 过程中遇到的问题和需求,以此来加固AliSQL, 提升 AliSQL 的性能和稳定性。
10666 0
阿里云MySQL云数据库和Redis6.0数据库使用体验
阿里云MySQL云数据库和Redis6.0数据库使用体验
1455 0
阿里云RDS-MYSQL数据库参数设置
阿里云RDS-MYSQL数据库参数设置
24384 0
+关注
23
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载