# database-sync **Repository Path**: fish-ssh/database-sync ## Basic Information - **Project Name**: database-sync - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-07 - **Last Updated**: 2025-09-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Database-Sync 基于java开发的功能强大、配置灵活的数据库之间同步工具,和数据产生器一样,均是前段时间因为项目需要编写的小工具,在实际应用场景中,我们经常需要定期将一个数据库的数据同步到另外一个数据库中,常见的一种做法是将源数据库的数据dump为sql文件,然后到目标数据库执行sql文件完成数据库的导入,但是这种方法至少存在以下问题: - 需要手工操作,效率低 - 当涉及数据表较多时,容易遗漏、出错 - 如果要定期同步,操作人容易忘记 - 难以应付频繁变更数据表或者字段 针对以上存在的问题,将珍贵人力从这种重复、无意义的工作中解脱出来,特意开发这个小工具,其中主要配置主要在jobs.xml中完成 ## 主要功能 - 目标数据目前只支持MySQL和SQL Sever,源数据库为任何支持sql语法的数据库 - 根据cron表达式配置数据同步的周期和时间 - 执行多个数据同步任务 - 源数据是根据配置的sql语句查询得到,使用者可以非常灵活根据需要进行修改 - 根据配置的字段,判断同步数据是插入还是更新 ## 编译和运行 > mvn package >cp jobs.xml ./target/jobs.xml > cd target > java -jar DataGenerator-0.0.1-SNAPSHOT.jar ## 基本使用 cat jobs.xml ```xml 0001 jdbc:oracle:thin:@192.168.1.179:1521:XE test test oracle oracle.jdbc.driver.OracleDriver jdbc:sqlserver://192.168.1.191:1433;DatabaseName=test test test sqlserver com.microsoft.sqlserver.jdbc.SQLServerDriver 1 0/10 * * * * ? select username as username,pwd as password from user user username,password username password ```