我运行以下命令从远程计算机备份mysql数据库:
ssh root@example.com 'mysqldump mainserver' | gzip -c > mainserver.sql.gz我已经安排了命令的时间,似乎需要2.5到3分钟。它似乎没有任何问题。
不过,问题是远程服务器上的所有其他网络通信似乎都被中断了。
远程服务器有"comet"-like http连接(长期开放的连接),这些连接似乎停止了。还有一些其他TCP连接处于打开状态,这些连接似乎是在上面的ssh命令完成时断开的。(至少在ssh命令停止时会出现日志消息,但我怀疑没有比此更早的数据传输)。
发布于 2015-02-23 21:43:55
尽管问题中将其描述为“远程服务器上的所有其他网络通信似乎都被中断”,但数据库转储锁(所有)无害数据库表的可能性要大得多。
在这种情况下,任何读取/写入锁定表的进程都将等待转储完成,然后才能获得锁本身、对数据库进行读/写并完成请求。如果所有http流量都需要对数据库进行读/写,这将给出所有http流量被阻塞的感觉。
Mysqldump提供了-单笔交易标志,它允许mysqldump不锁定innodb表。
https://serverfault.com/questions/670809
复制相似问题