Percona Xtrabackup对数据库进行部分备份
Xtrabackup也可以实现部分备份,即只备份某个或某些指定的数据库或某数据库中的某个或某些表。但要使用此功能,必须启用innodb_file_per_table选项,即每张表保存为一个独立的文件。同时,其也不支持--stream选项,即不支持将数据通过管道传输给其它程序进行处理。
此外,还原部分备份跟还原全部数据的备份也有所不同,即你不能通过简单地将prepared的部分备份使用--copy-back选项直接复制回数据目录,而是要通过导入表的方向来实现还原。当然,有些情况下,部分备份也可以直接通过--copy-back进行还原,但这种方式还原而来的数据多数会产生数据不一致的问题,因此,无论如何不推荐使用这种方式。
(1)创建部分备份
创建部分备份的方式有三种:正则表达式(--include), 枚举表文件(--tables-file)和列出要备份的数据库(--databases)。
(a)使用--include
使用--include时,要求为其指定要备份的表的完整名称,即形如databasename.tablename,如:
# innobackupex --include='^mageedu[.]tb1' /path/to/backup
(b)使用--tables-file
此选项的参数需要是一个文件名,此文件中每行包含一个要备份的表的完整名称;如:
# echo -e 'mageedu.tb1\nmageedu.tb2' > /tmp/tables.txt
# innobackupex --tables-file=/tmp/tables.txt /path/to/backup
(c)使用--databases
此选项接受的参数为数据名,如果要指定多个数据库,彼此间需要以空格隔开;同时,在指定某数据库时,也可以只指定其中的某张表。此外,此选项也可以接受一个文件为参数,文件中每一行为一个要备份的对象。如:
# innobackupex --databases='mageedu.tb1 testdb" /path/to/backup
(2)整理(preparing)部分备份
prepare部分备份的过程类似于导出表的过程,要使用--export选项进行:
# innobackupex --apply-log --export /pat/to/partial/backup
此命令执行过程中,innobackupex会调用xtrabackup命令从数据字典中移除缺失的表,因此,会显示出许多关于“表不存在”类的警告信息。同时,也会显示出为备份文件中存在的表创建.exp文件的相关信息。
(3)还原部分备份
还原部分备份的过程跟导入表的过程相同。当然,也可以通过直接复制prepared状态的备份直接至数据目录中实现还原,不要此时要求数据目录处于一致状态。
最新文章
- 集合 LinkedList、ArrayList、Set、Treeset
- Rest(表述性状态转移)
- 【BZOJ】3436: 小K的农场
- android ImageView组件属性
- java学习第19天(异常)
- MySQL root密码找回
- Django ORM - 001 - 外键表查询主表信息
- SAE平台的文件I/O处理
- J2EE开发框架搭建(2) - springmvc4 + spring4 + hibernate4 整合
- LINUX下安装搭建nodejs及创建nodejs-express-mongoose项目
- 蓝桥杯-有奖猜谜-java
- NYOJ15-括号匹配(二)-区间DP
- Codeforces Round #466 (Div. 2) 题解
- 【SpringMVC】<;context:include-filter>;和<;context:exclude-filter>;使用时要注意的地方
- 记录一次有意思的XSS过滤绕过2
- python开发规范和(configparser、random模块)
- LeetCode算法题-Maximum Depth of N-ary Tree(Java实现)
- 基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件
- html/css实现阴影蒙版覆盖原网页并显示浮框的功能
- 我的图片爬虫demo