Ste*_*ski 1 mysql backup snapshot
我有一个运行 MySQL 5.5 的 Enterprise Linux 6 系统。我正在尝试使用LVM 捕获每周文件系统快照。
然而,正如我们许多人所经历的那样,“用读锁刷新表;” 可能会导致死锁情况、造成查询积压、填满连接池并导致系统脱机。事实上,昨晚我的“用读锁刷新表;” 由于长时间运行的查询,直到执行后 8 小时才完成。
如果我使用这样的脚本执行 MySQL 快照,我可以以某种方式使“FLUSH TABLES WITH READ LOCK;”超时吗?如果它在一段时间后没有执行,我想杀死它并避免不可避免的死锁。
mysql -u root <<-MYSQL_INPUT
FLUSH TABLES WITH READ LOCK;
SYSTEM /usr/local/bin/mysql-create-lvm-snapshot;
UNLOCK TABLES;
\q
MYSQL_INPUT
Run Code Online (Sandbox Code Playgroud)
没有可靠的中断方法FLUSH TABLES WITH READ LOCK。我不同意之前的回答。您可以尝试根据FLUSH需要终止查询。通常,这只会挂起,直到原始命令完成。
不过,有一些好消息要告诉你。您应该意识到,这FLUSH TABLES WITH READ LOCK并不是拍摄 LVM 快照所必需的。
如果出现以下情况,则需要:
如果您的数据库是面向 InnoDB 的,并且您的 MyISAM 系统表没有发生任何有趣的事情(即没有人创建过程、授予权限等),那么您只需要FLUSH这些表就足够了。
所有InnoDB的东西,你都可以拍快照。ing 没有任何好处FLUSH。无论如何,InnoDB 都会进行适当的恢复。
当您希望FLUSH TABLE能够重建从站或以其他方式使用二进制日志时,需要获取二进制日志文件和位置。
| 归档时间: |
|
| 查看次数: |
6997 次 |
| 最近记录: |