我们正在计划将一个大的MySQL数据库从一台服务器移动到另一台服务器 – 从32位移动到64位,因此复制数据库文件似乎不是一种select。
这里的大意味着大约30个表和文件系统上的60Gb空间。 有一些问题(速度非常慢),转储数据库只有以前的十分之一:
有没有人有任何提示如何在服务器之间最好的转移? (比mysqldump“更好”?任何特定的命令行开关,应该是从文件转储/重新加载,或直接pipe道到其他数据库,做gzip压缩等)
首先,从32位到64位不应该有任何关系到您的文件系统,所以直接复制您的数据库文件不应该是一个问题。 转储大数据库可能会很慢,所以复制原始文件可能是最好的select。 你在使用MyISAM,还是InnoDB中的所有表? 如果您使用的是InnoDB,则可以尝试使用Percona的xtrabackup对数据库进行“实时”备份,而无需停机:
https://launchpad.net/percona-xtrabackup
如果您使用的是MyISAM,并且需要closures停机时间,则可以在服务器运行时直接在数据文件上执行rsync 。 连续运行多次,直到“更改”表很less,rsync快速完成。 然后,您可以执行MySQL的快速closures,最后一次运行rsync来抓取处于一致状态的文件并再次启动MySQL。 然后你可以将它们复制到你的新服务器上,启动MySQL并从那里开始。
希望这可以帮助!
mysqldump具有生成文本数据的宝贵优势,例如,可以使用脚本处理或重新排列,与结构/程序相关的二进制格式不同。
我会花费额外的时间来执行mysqldump文本备份。 但是,有两件事情需要考虑
mysqldump早期版本中存在一个导致性能下降的bug mysqldump添加--opt选项,这是新版本中的默认选项(它是--add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset ),并使进程更快(它还增加了加速加载的指令(请参阅MySQL页面以评估哪个选项适合您的需要)。