Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
readme.md

对比数据库

一个奇葩项目里面需要频繁对比2个数据库之间的差异,还要可以生成脚本可以将两个数据库同步成一样的,不知道使用sql咋处理,简单粗暴的写个小程序做这件事。

配置文件格式:方括号中是说明

配置文件参考config.properties

src.dburl = jdbc:oracle:thin:@localhost:1521:orcl [源数据库链接串]

src.username =bjntu_er [源数据库用户名]

src.passwd =12345 [源数据库密码]

des.dburl = jdbc:oracle:thin:@localhost:1521:orcl [目标数据库连接串]

des.username =springbatch [目标数据库用户名]

des.passwd =123456 [目标数据库密码]

[以下配置每一个对比任务的信息,下面配置中cp2是对比的名称,用于生成对比报告的文件名,src开头的为源表配置,des开头的为目标表配置]

src.cp2.keyindexs =USER_ID [返回数据中的主键字段,英文逗号分割]

src.cp2.sql = SELECT * FROM JEDA_USER a inner join JEDA_USER b on a.user_id=b.user_id [查询语句]

src.cp2.ingorefield=POSITION_ID [忽略的字段列表,英文逗号分割]

des.cp2.keyindexs =USER_ID [返回数据中的主键字段,英文逗号分割]

des.cp2.sql = SELECT * FROM JEDA_USER a inner join JEDA_USER b on a.user_id=b.user_id [查询语句]

des.cp2.ingorefield=POSITION_ID [忽略的字段列表,英文逗号分割]

执行方式

java -jar compare.jar -csql -f config.properties

config.properties为上面配置文件的文件名

输出报表

对比数据库表

配置文件格式:方括号中是说明

配置文件参考config2.properties

src.dburl = jdbc:oracle:thin:@localhost:1521:orcl [源数据库链接串]

src.username =bjntu_er [源数据库用户名]

src.passwd =12345 [源数据库密码]

des.dburl = jdbc:oracle:thin:@localhost:1521:orcl [目标数据库连接串]

des.username =springbatch [目标数据库用户名]

des.passwd =123456 [目标数据库密码]

mergeTableList = TABLE2 [需要对比的表名,英文逗号分割]

执行方式

java -jar compare.jar -msql -d2s -f config2.properties

参数说明:

-c 对比数据库表并输出对比报告

-msql 生成合并的sql语句并保存文件,输出对比报告

-m 直接合并数据库,输出对比报告

以上三个参数不能同时存在,当存在-msql或-m参数时,可以设定以下参数:

-s2d 将原表合并到目标表,即合并后目标表的数据和原表一致

-d2s 将目标表合并到原表,即合并后原表的数据和目标表一致

输出报表

Comments ( 0 )

Sign in for post a comment

About

Cancel

Releases

No release

Contributors

All

Activities

load more
can not load any more