如何测试mysql数据库和记录是否已经正确迁移到服务器?

如何测试mysql数据库和记录是否已经正确迁移到服务器?

我必须将数据库移至新服务器。我从服务器 A 执行数据库的 mysqldump 并将其导入服务器 B。然后我从服务器 B 执行转储,并通过 bash 上的 diff 将其与服务器 A 的转储进行比较。此操作失败,有些行不匹配,尽管手动检查显示没有涉及任何数据行。两台服务器运行的 mysql 5.0.x 版本略有不同。

使用的mysqldump命令:

mysqldump -u user -p mydb > mydbA.sql

经过一番研究后,我使用 bash 上的工具完成了以下操作:

  1. 旧服务器 A 上的 mysqldump ,完整转储和仅数据转储。
  2. 在新服务器 B 上创建数据库并从 A 导入完整转储。
  3. 然后仅从服务器 B 转储数据。
  4. 对数据转储 A 和数据转储 B 进行差异比较。
  5. 应以 0 退出 - 来自 echo $?
  6. MD5 也给出相同的哈希值。

两个服务器运行的 mysql 5.0.x 版本略有不同。

“全部”转储

mysqldump -u user -p mydb > mydbFULL.sql

仅数据转储

mysqldump --no-create-info --skip-opt --skip-comments --skip-extended-insert --compact -u user -p mydb > mydbDATAonly.sql

答案1

您可能需要查看 Percona Toolkit for MySQL。pt-table-checksum 工具将针对每个表运行校验和。虽然这是为 MySQL 复制设计的,但我认为您也可以使用它来比较迁移的数据。

参考: http://www.percona.com/software/percona-toolkit

相关内容