randomx Asked: 2011-06-17 15:33:05 +0800 CST2011-06-17 15:33:05 +0800 CST 2011-06-17 15:33:05 +0800 CST XtraBackup 和 rsync 有什么区别? 772 是的,我要对它们都运行 strace ......但是,我想知道...... XtraBackup 在 rsync -ac src dest 之外做了什么? XtraBbackup 有什么特别之处? XtraBackup 如何与 mysqld 交互? mysql backup 1 个回答 Voted Best Answer RolandoMySQLDBA 2011-06-17T19:17:45+08:002011-06-17T19:17:45+08:00 rsync只是从一个地方到另一个地方的数据的暴力逐字节复制。在最后一次 rsync 之前,您将执行多个 rsync,这非常快。然后,您将完全关闭 MySQL 并再执行一次 rsync。 XtraBackup是一个综合工具,其行为类似于 rsync,但在生活中具有明确的目的。它可以开始复制所有 InnoDB 数据和表空间。它能够在内部创建检查点并就地执行 InnoDB 崩溃恢复,以帮助获得完美的时间点备份。XtraBackup 还具有允许创建增量备份的额外功能。另一个附加功能是创建 InnoDB 日志文件,也是通过就地崩溃恢复构建的。还有一些包装软件也可以提供 MyISAM 表的冻结复制。 两种方法都很棒。XtraBackup 只是在大部分初始复制中实现 InnoDB 事务功能。Xtrabackup 创建可以放入已建立的 MySQL 基础架构的文件。公平地说,XtraBackup 提供仪器备份和物化的、非常有用的 InnoDB 文件。 使用 rsync 会强制您多次管理复制过程,并通过关闭 mysql 来限制它,以要求 rsync 进行一次干预。 使用其中一个可能是个人喜好。必须承认一件事:XtraBackup 制作的备份比复制的数据要大一些。我将方法的选择留给这个问题的读者。 我更喜欢 rsync 因为它使用简单,我可以在进程开始之前确定具体的时间点,我还可以完全控制锁定 mysqld 或关闭它,何时可以执行这种控制,以及我指定的任何顺序. 两种备份方式有一个共同点:使用 XtraBackup,实际时间点是一个移动目标,直到备份过程完成,您必须信任 XtraBackup(嘿,到目前为止,下载量已达 200,000 次。Facebook 是最大的用户之一)它。它赢得了很多信任)。换句话说,如果我在午夜启动 XtraBackup 并且备份持续到凌晨 2:20,那么备份的实际时间点是凌晨 2:20。使用 rsync 具有相同的移动目标问题,因为您必须手动执行多个 rsync,然后在最终 rsync 之前确定何时发出“service mysql stop”。 这些方法的不同之处在于必须使用 rsync 方法关闭 mysqld,而 XtraBackup 独立于 mysqld 运行。事实上,XtraBackup 根本不与 mysqld 交互,除非通过包装软件处理 MyISAM 表。XtraBackup 尝试使用独立于 mysqld 的 InnoDB 存储引擎操作来构建功能齐全的 InnoDB 数据和日志文件。 关闭 mysql 对于 rsync 方法是非常必要的,一个很大的原因是:InnoDB Buffer Pool 可以保存“脏页”,即尚未写回磁盘的数据和索引页(1 Page = 16KB)。使用 rsync 不会捕获 InnoDB 缓冲池中待处理的数据更改。要加快关闭 mysqld 以进行最终 rsync,请运行以下命令: SET GLOBAL innodb_max_dirty_pages_pct = 0; 该命令会将脏页的数量保持在最低限度。此命令应在执行 rsync 备份方法前大约一小时运行。这甚至可能对 XtraBackup 有帮助,尽管 XtraBackup 不需要关闭 mysql。
rsync只是从一个地方到另一个地方的数据的暴力逐字节复制。在最后一次 rsync 之前,您将执行多个 rsync,这非常快。然后,您将完全关闭 MySQL 并再执行一次 rsync。
XtraBackup是一个综合工具,其行为类似于 rsync,但在生活中具有明确的目的。它可以开始复制所有 InnoDB 数据和表空间。它能够在内部创建检查点并就地执行 InnoDB 崩溃恢复,以帮助获得完美的时间点备份。XtraBackup 还具有允许创建增量备份的额外功能。另一个附加功能是创建 InnoDB 日志文件,也是通过就地崩溃恢复构建的。还有一些包装软件也可以提供 MyISAM 表的冻结复制。
两种方法都很棒。XtraBackup 只是在大部分初始复制中实现 InnoDB 事务功能。Xtrabackup 创建可以放入已建立的 MySQL 基础架构的文件。公平地说,XtraBackup 提供仪器备份和物化的、非常有用的 InnoDB 文件。
使用 rsync 会强制您多次管理复制过程,并通过关闭 mysql 来限制它,以要求 rsync 进行一次干预。
使用其中一个可能是个人喜好。必须承认一件事:XtraBackup 制作的备份比复制的数据要大一些。我将方法的选择留给这个问题的读者。
我更喜欢 rsync 因为它使用简单,我可以在进程开始之前确定具体的时间点,我还可以完全控制锁定 mysqld 或关闭它,何时可以执行这种控制,以及我指定的任何顺序.
两种备份方式有一个共同点:使用 XtraBackup,实际时间点是一个移动目标,直到备份过程完成,您必须信任 XtraBackup(嘿,到目前为止,下载量已达 200,000 次。Facebook 是最大的用户之一)它。它赢得了很多信任)。换句话说,如果我在午夜启动 XtraBackup 并且备份持续到凌晨 2:20,那么备份的实际时间点是凌晨 2:20。使用 rsync 具有相同的移动目标问题,因为您必须手动执行多个 rsync,然后在最终 rsync 之前确定何时发出“service mysql stop”。
这些方法的不同之处在于必须使用 rsync 方法关闭 mysqld,而 XtraBackup 独立于 mysqld 运行。事实上,XtraBackup 根本不与 mysqld 交互,除非通过包装软件处理 MyISAM 表。XtraBackup 尝试使用独立于 mysqld 的 InnoDB 存储引擎操作来构建功能齐全的 InnoDB 数据和日志文件。
关闭 mysql 对于 rsync 方法是非常必要的,一个很大的原因是:InnoDB Buffer Pool 可以保存“脏页”,即尚未写回磁盘的数据和索引页(1 Page = 16KB)。使用 rsync 不会捕获 InnoDB 缓冲池中待处理的数据更改。要加快关闭 mysqld 以进行最终 rsync,请运行以下命令:
该命令会将脏页的数量保持在最低限度。此命令应在执行 rsync 备份方法前大约一小时运行。这甚至可能对 XtraBackup 有帮助,尽管 XtraBackup 不需要关闭 mysql。