如何(通过mysqldump)将MySQL数据库从一个云服务器备份到另一个云服务器?
我有一个使用innodb的MySQL服务器,大小约为150 is。
我想把数据库备份到其他服务器,最有效的方法是什么?
发布于 2018-03-15 13:07:53
我通过以下查询获得了backUp:
mysqldump mysqldump --单事务--例程--主机10.222.55.111 -u root -p 'Password‘-P 3306 dbname > backup/dbname _$(日期+%F).sql
它可以很好地将备份从一个云服务器转移到其他云服务器。但现在我错了
失去了连接。
我的备份程序还没完成。那我就变了
max_allowed_packet = 1073741824;
现在它工作了一段时间,有时会失败。所以,这似乎并不是完全的证据。
发布于 2018-03-12 21:36:52
第三台机器可以同时访问它们,对--你的机器。
your> mysqldump -h cloud1 ... >somefile.sql
your> mysql -h cloud2 ... <somefile.sql或者,更大胆一些:
your> mysqldump -h cloud1 ... |
mysql -h cloud2 ...那你甚至都没碰你的磁盘。
性能将取决于您与每个云之间的带宽。在路径中添加一个gzip不会有帮助,因为它在到达您的机器之前不会被压缩。Percona的Xtrabackup是mysqldump的一个很好的替代方案。它有压缩选项,甚至还有一些并行性,但是,同样,您可能无法利用这些。
我避免了显而易见的事情(让一个云发送到另一个云端),因为我认为这样的交通是被禁止的。或者,您不能在两个云中运行shell脚本中的命令。
在任何一台云机器上,做
mysqldump -h cloud1 ... | mysql -h cloud2 ...如果网络是慢部分,则在源计算机上执行此操作。
mysqldump ... | gzip | ssh cloud2 ... "gunzip | mysql"(我忘记了如何使用ssh在那边执行这些操作的细节。)
这可以倒转到cloud2上运行:
ssh cloud1 "mysqldump ... | gzip" | gunzip | mysql ...但这可能并不重要。
https://dba.stackexchange.com/questions/199977
复制相似问题