我做了一个mysql DBname < dumpFile.sql
,就像一个真正的混蛋,我没有背景的过程,最终我的SSH会话与损坏的pipe道死亡。 我如何使用转储文件,validation是否在mysql数据库上完成导入? RHEL 6,mysql 5.1.6。
检查转储文件的最后一个插入(它是文本,将其尾部),并查看数据是否已经将其转到数据库。
之一:
从数据库中做一个转储,并区分旧的和新的
删除数据库并重新导入数据
只要做一个新的数据库的mysqldump,并与旧的数据库进行比较。
假设你的两个服务器上的MySQL版本匹配(或非常接近匹配)…
步骤1
在MySQL提示符下运行CHECKSUM TABLE table_name;
并查看两个地方的校验和是否匹配。
请注意,这将需要一些时间来运行和绑定您的表。 然而,即使有几GB的数据,它应该不到一分钟左右……除非你的盒子configuration是不可思议的。
http://dev.mysql.com/doc/refman/5.1/en/checksum-table.html
第2步
因为在不匹配的表格上以及子孙后代之间都有轻微的校验和冲突的可能性,所以这是您的备份步骤。
运行(更改your_database_name和your_table_name后)…
SELECT CONCAT(table_schema, '.', table_name) AS 'database.table', FORMAT(table_rows, 0) AS table_rows, FORMAT(data_length, 0) AS data_length, FORMAT(index_length, 0) AS index_length FROM information_schema.TABLES WHERE table_schema = 'your_database_name' AND table_name = 'your_table_name';
如果一切都匹配,你很好走! 如果没有,你将不得不深入挖掘。
只有索引大小不匹配可能不是问题,因为导入通常(取决于设置)在导入时创build新的索引而没有碎片。 但是,如果索引不匹配,并且希望在继续处理之前尝试同步它们,请针对源表运行OPTIMIZE TABLE,然后再次检查是否可以解决该问题。
有索引大小的边缘情况我没有完全分类,只是供参考… 为什么MySQL MyISAM表索引(又名MYI文件)的大小在mysqldump导入后不匹配?
结论
这在99%的情况下对我来说没有问题。 应该指出,我主要使用MyISAM(出于各种原因),但是这对InnoDB也应该是好的。 希望能帮助到你!
这是你正在寻找的答案…(浪潮绝地手)