我有这种情况
mysql 服务器上有 2 个大型数据库 - srv1
我需要将两者都转移到新服务器 - srv2
所以
- 我使用 sql 命令“FLUSH TABLES WITH READ LOCK;”来停止所有修改
然后我使用 shell 命令“mysqldump --user=root --password=blaablaaa --databases shop1 shop2 > “e:\backup\dump_both.sql”
我完全被困在这里,因为只有 SHOP1 数据库被正确转储,然后文件大小停止增长,很长时间没有发生任何事情。为什么——它恰好是在应该转储第二个数据库的时刻。
我尝试解锁数据库,然后两个数据库都可以完美转储,但数据库锁定时只能转储一个。当然,出于一致性考虑,我需要锁定它们。但为什么在这种情况下第二个数据库无法转储?
有任何想法吗 ?
注意1:shop1数据库仅使用myisam表,但shop2主要使用innodb。
答案1
FLUSH TABLES WITH READ LOCK 应在备份会话中执行。尝试使用 --flush-logs 和 --lock-all-tables 选项备份 MyISAM 表;并尝试使用 --single-transaction 选项备份 InnoDb 表。更多信息请参阅文档 -mysqldump — 数据库备份程序。