我正在使用innobackupex备份数据库,如下所示:
usr/local/bin/innobackupex --user=bkpuser --password='example' --rsync \
--no-timestamp /pathtobackup 2> /pathtobackup/innobackupex.log现在,这页面说:“然而,有些事务是不完整的,还有一些事务还没有被刷新到它们的数据文件中。换句话说,如果数据库崩溃,备份就会类似于datadir。还必须应用一些额外的事务。”
这是真的吗?我认为至少冲洗部分不是真的,我也不确定交易的情况。我的目标是恢复我的数据库,当然,就像它从未崩溃过一样,所以请给我建议。
发布于 2012-05-27 18:51:02
短版本:如果您正在对繁忙的服务器运行备份,那么是的。
如果您将服务器从更新中锁定,(即是一个从服务器)并在备份之前执行mysql -e "STOP SLAVE",我怀疑xtrabackup_logfile将为空,而apply-log将什么也不做。
有一个文档提供了一个备份和还原的示例,作为准备复制的从服务器上的howto的一部分,这表明在日志可用之前,it需要添加一个步骤来应用这些日志;
innobackupex --user=yourDBuser --password=MaGiCdB1 /path/to/backupdir
innobackupex --user=yourDBuser --password=MaGiCdB1 /
--apply-log /path/to/backupdir/$TIMESTAMP/innobackupex的选项页表示--apply-log从xtrabackup_logfile读取事务。
通过应用位于同一目录中的名为xtrabackup_logfile的事务日志文件,准备备份备份-DIR。另外,创建新的事务日志。InnoDB配置是从执行备份时由innobackupex创建的文件备份(my.cnf)读取的。
我怀疑xtrabackup_logfile包含在备份运行期间的事务,但数据库没有被锁定。我认为,通过这种策略,innobackupex可以在很短的锁定时间内运行,并使用binlog将更新应用于备份。
应用该日志的xtrabackup工具在此文件中有一个应用日志步骤;
http://code.google.com/searchframe#i12s1rWpN4M/trunk/includes/genericBackupTaker.class.php&q=apply%20log%20package:xtrabackup-manager.googlecode.com
还不清楚这些文件的格式(file xtrabackup_logfile返回“数据”),尽管它们在我的系统上似乎很稀疏,但在这种情况下,我不期望任何挂起的事务,因为备份是从停止的从服务器中提取的。尽管如果您想知道,xtrabackup的源代码是可以检查的。
https://serverfault.com/questions/393139
复制相似问题