乐观备份是MySQL Enterprise backup 3.11中引入的一个特性,用于提高备份和恢复大型数据库(其中只有少量表频繁修改)的性能。
在一个巨大数据库的热备份过程中(例如,以tb为单位),当备份正在进行时,服务器上可能会生成巨大的重做日志文件。由于重做日志文件的增长速度超过了处理它们的速度mysqlbackup时,备份操作实际上可能失败mysqlbackup无法赶上重做日志周期,并且在服务器读取之前,lpar会被服务器覆盖mysqlbackup。此外,运用原木
一步为恢复准备备份会花很长时间mysqlbackup有巨大的ibbackup_logfile
应用于备份的文件(从大重做日志文件创建)。当备份和恢复过程中可用于读写重做日志的I/O资源稀缺时,问题会加剧。
乐观备份通过将备份过程划分为两个内部阶段来解决这些问题,这两个阶段对用户是透明的:
乐观阶段:在第一阶段中,在备份过程中不太可能修改的表(称为”不活跃的表”下面,由用户用
optimistic-time
选项,或通过排除optimistic-busy-tables
选项)在不锁定MySQL实例的情况下进行备份。由于在备份完成之前不希望更改这些表,所以重做日志、撤消日志和系统表空间不会通过mysqlbackup在这个阶段。正常阶段:在第二阶段中,第一阶段没有备份的表(称为”繁忙的表”)正在以一种与普通备份处理方式类似的方式进行备份:首先复制InnoDB文件,然后在锁定MySQL实例的情况下复制或处理其他相关文件。重做日志、撤消日志和系统表空间也在此阶段进行备份。
的时候就会发生乐观备份optimistic-time
或optimistic-busy-tables
选项。关于如何使用这些选项,请参见第15.10节“性能/可伸缩性/容量选项”。如果如预期的那样,由乐观选项标识的非活动表列表在备份期间没有更改(或者,即使更改的百分比很小),大多数用户将发现总体备份时间与普通备份相比显著减少,因为要备份的重做日志数据的大小将会小得多。此外,备份的恢复时间也将缩短,因为运用原木
由于重做日志更小,操作将更快。但是,如果发现在备份过程中标识的非活动表列表发生了很大一部分更改,那么执行乐观备份的好处就会变得有限,而且在最坏的情况下,乐观备份实际上可能需要更长时间执行,而且对于单文件备份,备份的大小将比普通备份更大。因此,用户应该小心识别哪些表”不活跃的”哪些是”忙”当试图执行乐观备份时。
不能为增量备份或使用的备份执行乐观备份可迁移表空间(TTS)。
下面的示例说明如何进行乐观备份。
例4.25使用选项进行乐观备份optimistic-time =
YYMMDDHHMMSS
在本例中,自2011年5月16日中午以来修改过的表被视为忙表,并在乐观备份的正常阶段进行备份,而所有其他表都在乐观备份阶段进行备份:
Mysqlbackup——defaults-file=/etc/my.cnf——optimistic-time=110516120000 backup- image . Mysqlbackup——defaults-file=/etc/my.cnf
例4.26使用选项进行乐观备份现在optimistic-time =
在本例中,所有表都被视为非活动表,并在乐观备份的乐观阶段进行备份:
Mysqlbackup——defaults-file=/etc/my.cnf——optimistic-time=now备份到映像
例4.27乐观备份使用optimistic-busy-tables
选项
在本例中,表在mydatabase
前缀是mytables -
在它们的名称中被视为忙表,并在乐观备份的正常阶段进行备份,而所有其他表都在乐观备份阶段进行备份:
Mysqlbackup——defaults-file=/etc/my.cnf——optimist -busy-tables="^mydatabase\.mytables-. "*”备份
当你使用两个optimistic-time
而且optimistic-busy-tables
选项,它们在确定哪些表是忙表时发生冲突,optimistic-busy-tables
优先于optimistic-time
。例如:
例4.28乐观和部分备份使用optimistic-busy-tables
而且optimistic-time
选项
在本例中,表在mydatabase
前缀是mytables -
在它们的名称中被视为忙表并在正常阶段进行备份,即使它们自2010年5月16日(指定的时间)以来没有被修改optimistic-time
:
Mysqlbackup——defaults-file=/etc/my.cnf——optimist -busy-tables="^mydatabase\.mytables-. "*" \——optimistic-time=100516备份