Jaf*_*afo 15 mysql locking mysqldump
每天我们在大约50个单独的数据库上运行mysql转储,打包它们然后将它们存储在异地.其中一些数据库相当大并且包含myisam表(不能更改,因此表明它没有意义)..我在阅读时正在阅读使用skip-lock-tables选项进行转储,但还没有读到下行的内容是.我所看到的只是基本上不同的迭代"如果数据在转储时插入到表中,它可能会产生不利影响."
这些不利影响是什么?它只是意味着我们会在恢复时错过这些查询,还是意味着转储文件将被破坏且无用?老实说,如果我们丢失转储开始后发布的新数据,我可能会更少关心,因为我只是在及时寻找快照.
我可以依赖这些数据库转储来包含在发出转储之前保存的所有数据.
geo*_*kis 27
--skip-lock-tables参数指示mysqldump实用程序在获取将在每个表上获取READ锁定的转储之前不发出LOCK TABLES命令.应锁定数据库中的所有表,以便在备份过程中提高一致性.即使使用skip-lock-tables,在转储表时,也不会收到任何INSERT或UPDATE,因为它将被锁定,因为从表中获取所有记录需要SELECT.看起来像这样
SELECT SQL_NO_CACHE * FROM my_large_table
Run Code Online (Sandbox Code Playgroud)
您可以使用SHOW PROCESSLIST命令在进程列表中看到它.如果您使用的是非事务性的MyISAM引擎,那么在任何情况下锁定表都不能保证参照完整性和数据一致性,我个人几乎总是使用--skip-lock-tables参数.在InnoDB中,使用--single-transaction参数获得预期的效果.希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
44057 次 |
| 最近记录: |