10bet网址
企业备份MySQL 4.0用户指南
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 1.2 mb
PDF (A4)- 1.2 mb


4.3.5部分备份

请注意

方便的创建部分备份,备份MySQL企业引入了两个新的选项部分备份自3.10版本:——包括表格——排除表。新的选项是用于替换旧的选项——包括,——数据库,——databases-list-file,——only-innodb-with-frm不兼容的新选项和即将到来的版本中被弃用。在下面的讨论中我们假设新选项用于部分备份。供参考的目的,我们年龄的包括信息选项在本小节的末尾部分备份与遗留选项

默认情况下,所有数据库数据目录中的子目录下的文件都包含在备份,以便备份包括数据从所有MySQL存储引擎,任何第三方存储引擎,甚至任何非数据库文件的目录。本节解释选项可用于有选择地备份或排除数据。

有各种各样的方法来创建不同的部分备份MySQL企业备份:

对涉及到的所有选项语法细节,明白了15.8节,“部分备份和恢复选项”

重要的

通常情况下,部分备份更难恢复完全备份,因为备份数据可能不包括必要的相关部分构成一个完整的MySQL实例。特别是,InnoDB表内部id和其他数据值,只能恢复到相同的实例,而不是不同的MySQL服务器。总是全面测试任何部分备份的恢复过程了解相关程序和限制。

重要的

因为InnoDB系统表空间包含关于InnoDB表中的所有数据库元数据实例,恢复部分备份服务器上,包括其他数据库可能导致系统失去联系InnoDB的其他数据库中的表。总是恢复部分备份在一个新鲜的MySQL服务器实例没有任何其他你想要保存的InnoDB表。

以下是一些命令样本部分备份。

包括所有表的名字开始电磁脉冲备份:

mysqlbackup \——主机=主机用户= mysqluser——协议= TCP端口= 3306 \——backup-dir = $ MEB_TEMP_BACKUP_DIR备份映像= $ MEB_BACKUPS_DIR /我。mbi \ \——包括表格=”。emp " \ backup-to-image

把备份的所有表除了表mysqlperformance_schema数据库:

mysqlbackup \——主机=主机用户= mysqluser——协议= TCP端口= 3306 \——backup-dir = $ MEB_TEMP_BACKUP_DIR备份映像= $ MEB_BACKUPS_DIR /我。mbi \——排除表= " ^ (mysql | performance_schema) \”。\ backup-to-image

所有表的备份销售数据库,但是不包括的表的名称硬件

mysqlbackup \——主机=主机用户= mysqluser——协议= TCP端口= 3306 \——-backup-dir = $ MEB_TEMP_BACKUP_DIR备份映像= $ MEB_BACKUPS_DIR /我。mbi \——包括表格= " ^销售\”。——排除表="^sales\.hardware$" \ backup-to-image

所有表的备份销售代表数据库,但是不包括的表的名称欧亚大陆(特殊字符空格或破折号等部分支持的备份选项自发布3.12.1):

mysqlbackup \——主机=主机用户= mysqluser——协议= TCP端口= 3306 \——backup-dir = $ MEB_TEMP_BACKUP_DIR备份映像= $ MEB_BACKUPS_DIR /我。mbi \——包括表格= " ^销售代表\”。——排除表="^sales reps\.euro-asia" \ backup-to-image

备份所有InnoDB表,但是没有.frm文件:

mysqlbackup————defaults-file = / home / dbadmin / my . cnf中所做only-innodb backup-to-image

你也可以做压缩和其他类型的选择性备份通过使用适当的命令选项。

与遗留部分备份选项

重要的

本节中的信息仅供使用遗留的选项——包括,——数据库,——databases-list-file,——only-innodb-with-frm即将到来的问题,这将被弃用。用于创建部分备份,强烈建议的新选项——包括表格——排除表而不是使用。注意,不能将遗留和新部分备份选项在一个单一的命令。

MySQL企业备份可以使不同类型的部分备份使用遗留部分备份选项:

在所有这些选项的语法细节,请参阅遗留部分备份选项

请注意

通常情况下,部分备份更难恢复完全备份,因为备份数据可能不包括必要的相关部分构成一个完整的MySQL实例。特别是,InnoDB表内部id和其他数据值,只能恢复到相同的实例,而不是不同的MySQL服务器。总是全面测试任何部分备份的恢复过程了解相关程序和限制。

与它的——包括选项,mysqlbackup可以做一个备份,包括一些InnoDB表而不是其他人:

  • 部分备份的——包括选择总是包含InnoDB系统表空间和里面所有的表。

  • InnoDB表存储在系统表空间,部分备份只包含那些表的名字与指定的正则表达式匹配——包括选择。

这个操作需要被排除存储在单独的表table_name.ibd文件。InnoDB表在系统表空间,而创建它innodb_file_per_tableMySQL配置选项启用。每一个.ibd文件只包含一个表的数据和索引。

创建这些InnoDB表innodb_file_per_table关闭InnoDB存储像往常一样系统表空间,不能排除在备份。

为每个表与表数据文件的字符串形式db_name.table_name针对与指定的正则表达式检查吗——包括选择。如果正则表达式匹配整个字符串db_name.table_name表是包含在备份。使用的正则表达式语法是指定的扩展形式POSIX1003.2标准。在类unix系统中,引用适当的正则表达式来防止shell元字符的解释。这个功能已经实现了RE2公司正则表达式库。

产生的备份目录包含一个InnoDB备份日志文件和复制数据文件。

重要的是:虽然mysqlbackup支持部分备份,恢复一个数据库从部分备份时要小心。mysqlbackup副本也.frm文件的表不包括在备份,除了当你部分备份使用,例如,——数据库选择。如果你使用mysqlbackup——包括选项,在恢复数据库之前,删除从备份数据.frm文件不包括在备份的任何表。

重要的是:因为InnoDB系统表空间包含关于InnoDB表中的所有数据库元数据实例,恢复部分备份服务器上,包括其他数据库可能导致系统失去联系的InnoDB表在其他数据库。总是恢复部分备份在一个新鲜的MySQL服务器实例没有任何其他你想要保存的InnoDB表。

——only-innodb——only-innodb-with-frm选择备份InnoDB表,跳过其他的存储引擎。你也可以一起使用它们——包括InnoDB表的选项使选择性备份而排除其他存储引擎创建的所有其他文件。

示例4.23做一个未压缩的部分备份InnoDB表

在这个例子中,我们已经配置了MySQL这样一些InnoDB表有自己的表空间。我们做部分只包括那些InnoDB备份表测试数据库的名字开始ib。数据库目录的内容测试数据库如下所示。目录包含一个MySQL描述文件(.frm为每个表(文件)alex1,alex2,alex3,blobt3,ibstest0,ibstest09,ibtest11a, ibtest11b,ibtest11c,ibtest11d在数据库中)。这10个表6 (alex1,alex2,alex3,blobt3,ibstest0,ibstest09)存储在表数据文件(.ibd文件)。

$ ls / sql数据/ mts /测试alex1.frm alex2。ibd blobt3.frm ibstest0。ibd ibtest11a.frm ibtest11d.frm alex1.ibd alex3.frm blobt3.ibd ibtest09.frm ibtest11b.frm alex2.frm alex3.ibd ibstest0.frm ibtest09.ibd ibtest11c.frm

我们运行mysqlbackup——包括选择:

#备份一些InnoDB表而不是任何.frm文件。mysqlbackup美元——defaults-file——包括= = / home / dbadmin / my . cnf中所做”^ \ .ib测试。*”——only-innodb备份…很多行输出……mysqlbackup:扫描日志lsn 2666737471。mysqlbackup:能够解析日志lsn 2666737471。mysqlbackup:日志记录的最大页码0 101208 17:17:45 mysqlbackup:完全备份完成!#备份一些.frm InnoDB表和文件的备份表。mysqlbackup美元——defaults-file——包括= = / home / dbadmin / my . cnf中所做”^ \ .ib测试。*“\——only-innodb-with-frm =相关备份…很多行输出……mysqlbackup:扫描日志lsn 2666737471。mysqlbackup:能够解析日志lsn 2666737471。mysqlbackup:日志记录的最大页码0 101208 17:17:45 mysqlbackup:完全备份完成!

备份目录只包含备份ibstestibtest09表。其他InnoDB表不匹配包括模式^ \ .ib测试。*。不过,请注意,表ibtest11a,ibtest11b,ibtest11c,ibtest11d在备份,即使他们在如下所示的目录是不可见的,因为他们是存储在系统表空间(ibdata1总是包括在备份文件)。

#——only-innodb选项:$ ls / sqldata-backup ibstest0 /测试。ibd ibtest09.ibd# With the --only-innodb-with-frm=related option: $ ls /sqldata-backup/test ibstest0.frm ibtest09.frm ibstest0.ibd ibtest09.ibd

示例4.24压缩部分备份

我们已经配置了MySQL,这样每个InnoDB表有自己的表空间。我们做部分备份只包括那些InnoDB表的名字开始亚历克斯。数据库目录的内容测试数据库如下所示。

$ ls / sql数据/ mts /测试alex1.frm alex2。ibd blobt3.frm ibstest0。ibd ibtest11a.frm ibtest11d.frm alex1.ibd alex3.frm blobt3.ibd ibtest09.frm ibtest11b.frm alex2.frm alex3.ibd ibstest0.frm ibtest09.ibd ibtest11c.frm

我们运行mysqlbackup——压缩——包括选项:

mysqlbackup美元——defaults-file = / home / dbadmin——压缩\ / my . cnf中所做包括= " . * \ (alex | blob)。*”——only-innodb备份…很多行输出……mysqlbackup:扫描日志lsn 2666737471。mysqlbackup:能够解析日志lsn 2666737471。mysqlbackup:日志记录0 mysqlbackup最大页码:147 MB的数据文件压缩到15 MB(压缩89%)。101208年17:18:04 mysqlbackup:完全备份完成!

数据库的备份目录测试如下所示。的.ibz文件压缩表数据文件。

$ ls / sqldata-backup alex1 /测试。ibz alex2。ibz alex3。ibz blobt3.ibz

——数据库——databases-list-file选项的mysqlbackup让你备份non-InnoDB表只从选定的数据库,而不是在整个MySQL实例。(过滤InnoDB表使用——包括选项。)与——数据库你指定一个数据库名称空格分隔的列表,与整个列表包含在双引号。与——databases-list-file,您指定路径的文件包含数据库名称的列表,每行一个。

可以将部分或全部数据库的名称限定表名,只备份选择non-InnoDB表的数据库。

如果指定这个选项,确保你包括相同的数据库为每个备份集(尤其是增量备份),这样你不恢复过时版本的任何数据库。