取消
显示结果 
搜索替代 
您的意思是: 
cancel
2268
查看次数
24
有帮助
0
评论
julianchen
Advocate
Advocate
在新服务器上验证导入的数据



现在我们在新服务器上已经导入了数据库,那么我们就需要一种方法来验证数据的真实存在,并确保没有任何遗漏。

我建议您同时在旧的和新的数据库上运行如下查询,并将获得的结果进行对比。

该查询会在所有的表里计算行数,以显示出新、旧数据库中的数据量。

SELECT

TABLE_NAME,

TABLE_ROWS

FROM

`information_schema`.`tables`

WHERE

`table_schema` = 'YOUR_DB_NAME';

此外,我建议您检查各个表中数字列的MINMAX记录,以确保数据本身是有效的,而不仅仅是看数据的总量(虽然这是查询所唯一能够读出的值)。另一种可供测试的选择是将数据库从新的服务器导出为SQL转储文件,并将其与旧服务器的SQL转储文件做比较。

此外,在应用程序被迁移之前,我建议您先将一个应用程序的实例重定向到新的数据库上,以确认一切运行正常。

另一种导出和导入选项

我们之所以把该选项放在最后,是因为我们的确不建议您去使用它。

该方法实现起来非常的容易,因为它仅使用一个命令,便能一次性将转储文件导出、传输、并将其数据导入到新的数据库之中。

而它的不足之处在于,一旦其网络链接断掉,您就需要重新启动它了

因此,我们认为它并不值得被推荐,尤其是在大型数据库中,可能会非常不适用。

当然,如果您非要尝试一下的话,可以使用如下的命令:

mysqldump -uroot -pPassword --all-databases | ssh user@new_host.host.com 'cat - | mysql -uroot -pPassword'

重要提示

l 请确保在新旧两处,安装有相同官方发行版本的MySQL服务器。否则,你需要按照MySQL网站上的升级说明来进行统一(请参见(https://dev.mysql.com/doc/refman/5.7/en/upgrading.html)。
l
l 请确保您在旧的服务器上有足够的空间来保存转储文件和压缩文件(应该有db_size×2的空间)。
l
l 请确保您在新的服务器上有足够的空间来保存加密的和解密的转储文件、并能导入数据库(应该有db_size×3的空间)。
l
l 如果您曾经考虑过只是将datadir从一个数据库转移到另一个的话,我建议您最好不要这样做。否则,您会搞乱数据库的内部结构,而且会给将来可能的问题埋下隐患。
l
l 在新的服务器配置中,请不要忘了配置诸如innodb_log_file_size这样的重要标志。因为如果忘记了根据新服务器的规格而更新配置的话,则可能会导致严重的性能问题。
l
l 在许多情况下,一般升级到新的数据库服务器的初衷是为了提高查询性能。而如果此类升级没有达到预期的改善,那么您就应该考虑去优化SQL查询,而不仅仅是升级硬件那么简单了(请参见https://www.eversql.com/)。
l
祝您数据库迁移顺利!

【原标题】 How to Transfer a MySQL DatabaseBetween Two Servers

作者: Tomer Shimshilashvili

原文链接:https://dzone.com/articles/how-to-transfer-a-mysql-database-between-two-serve


入门指南

使用上面的搜索栏输入关键字、短语或问题,搜索问题的答案。

我们希望您在这里的旅程尽可能顺利,因此这里有一些链接可以帮助您快速熟悉思科社区:







认可您的同行
快捷链接