use*_*ser 6 mysql replication mysqldump backup mysql-5.5
可以mysqldump --single-transaction
在不停止复制的情况下在 Slave DB上运行( stop slave;
) 吗?这是用于定期的每日备份,因此我们可以在发生存储灾难时恢复 Master DB。大多数表是 InnoDB,只有几个是 MyISAM。
官方文档说:
“您应该在开始转储过程之前停止从属设备上的复制,以确保转储包含一组一致的数据”。
这是什么意思consistent data
?这是否意味着像最新数据?
我知道这--single-transaction
意味着它从发布时间开始就需要数据,因此在转储发生时新的进一步更改不会记录到转储中。我对么?
不想在 master 上运行备份,因为它在我们的应用程序上创建了滞后。
执行 mysqldump 会创建一致且逻辑的数据转储,并且可以按时间点恢复。
有两种方法可以中途停止复制
当您使用--dump-slave执行 mysqldump 时,它只会停止 SQL 线程。I/O 线程继续从 Master 收集二进制日志事件。请注意 MySQL 文档中对此的解释:
此选项与 --master-data 类似,不同之处在于它用于转储复制从服务器以生成转储文件,该文件可用于将另一台服务器设置为与转储服务器具有相同主服务器的从服务器。它导致转储输出包含一个 CHANGE MASTER TO 语句,该语句指示转储从属主机的二进制日志坐标(文件名和位置)。这些是从属服务器应开始复制的主服务器坐标。
--dump-slave 导致使用主服务器的坐标,而不是转储服务器的坐标,如 --master-data 选项所做的那样。此外,指定此选项会导致 --master-data 选项被覆盖(如果使用)并被有效忽略。
选项值的处理方式与 --master-data 相同(设置无值或 1 会导致 CHANGE MASTER TO 语句写入转储,设置 2 会导致语句被写入但包含在 SQL 注释中)并且具有在启用或禁用其他选项以及如何处理锁定方面与 --master-data 具有相同的效果。
该选项导致 mysqldump 在转储之前停止从属 SQL 线程,并在转储之后再次重新启动它。
还可以与 --dump-slave 结合使用 --apply-slave-statements 和 --include-master-host-port 选项。
该选项是在 MySQL 5.5.3 中添加的。
您知道可以手动停止 SQL 线程吗?根据MySQL文档STOP SLAVE;
,您可以运行以下命令:
mysql> STOP SLAVE SQL_THREAD;
Run Code Online (Sandbox Code Playgroud)
I/O线程继续从Master接收binlog事件。
运行后STOP SLAVE SQL_THREAD;
,您可以运行 mysqldump。您可能可以对从站上的数据文件执行 LVM 快照或其他任何操作。
完成备份后,然后运行
mysql> START SLAVE SQL_THREAD;
Run Code Online (Sandbox Code Playgroud)
或者
mysql> START SLAVE;
Run Code Online (Sandbox Code Playgroud)
这将重新激活 SQL 线程。
警告:停止 SQL 线程(这会终止本地数据库连接)可能会使创建的表CREATE TEMPORARY TABLE
消失。如果您使用基于语句的复制,请对您的应用程序进行额外的研究,以确保事务在 SQL 线程停止时不会回滚。
您可以使用 --single-transaction 进行 mysqldump ??? 没有 --dump-slave。但是,有许多命令会中断正在运行的事务。请参阅我的旧帖子MySQL 的事务性 DDL 工作流程中的这些命令的列表。
你刚才问我:These backups are for restoring the master DB in case of a storage disaster. Not for slave. So is --dump-slave still valid?
如果您按原样使用转储(不使用它创建另一个从属设备,也不尝试通过重播二进制日志进行时间点恢复),那么是 --dump-slave就可以了。
请记住,如果您在午夜启动 mysqldump,那就是转储的时间点。
使用 --dump-slave的另一个好处是:mysqldump 将包含 Master 的日志文件以及第 23 行和 25 行之间的位置。这样,如果您希望创建另一个从属服务器,您就拥有了 Master 的复制坐标。如果您希望尝试时间点恢复并且仍然可以从旧的 Master 检索二进制日志,则可以这样做。
归档时间: |
|
查看次数: |
7490 次 |
最近记录: |