数据库一致性比对脚本
2019-10-09 本文已影响0人
superxcp
该方法是保证两个项目的数据库数据完全一致,方法是确认每个库中每个表记录条数完全一致。
-
1.准备前提:机器上安装了mysql客户端工具类
yum install mysql -
2.在一个项目的数据库上执行
use information_schema;
select concat(
'select "',
TABLE_name,
'", count(*) from ',
TABLE_SCHEMA,
'.',
TABLE_name,
' union all'
) from tables
where TABLE_SCHEMA='nubrowser';
得到一个sql语句,用来查询各自数据库的数量,拷贝该sql语句在可以连接数据库的linux机器上生成一个可执行文件diff.sql
-
3.在机器上生成tengxun.txt和ali.txt文件,用于保存执行diff.sql的结果,创建diff.result文件保存数据库是否一致的差异结果,注意文件的读写权限
-
4.生成一个c.sh可执行文件,里面的代码如下(使用时只需执行c.sh文件,查看diff.result结果就好了):
mysql -h172.11.22.1 -uuser -ppass -N < diff.sql > tengxun.txt
mysql -h172.11.22.2 -uuser -ppass -N < diff.sql > ali.txt
diff -y tengxun.txt ali.txt | grep "|" > diff.result
cat diff.result
(1)在数据库1执行diff.sql脚本,查询到的结果放到tengxun.txt中;
(2)在数据库2执行diff.sql脚本,查询到的结果放到tengxun.txt中;
(3)对比两个数据库的查询结果,差异放在diff.result中;
(4)如果diff.result有内容,说明数据库记录不一致,无内容,说明数据库记录数一致;
以上