# 数据库比对工具 **Repository Path**: ishouke/database-checker ## Basic Information - **Project Name**: 数据库比对工具 - **Description**: 基于python开发的数据库同步检查工具 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-10 - **Last Updated**: 2025-10-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 数据库同步检测工具 ### 适用环境 win11 Centos7 ### 工具用途 **同类型数据库**比对,比较库,库表,库模式(针对opengauss)是否一致,比较库表记录数是否一致。 目前支持数据库:`mariadb/mysql`,`opengauss`,`clickhouse`,支持单台服务器,多个实例(监听不同端口)的比较。 ### 使用方法 #### 数据库配置 > *conf/databases.conf* -- 配置所有需要比对的**数据库实例**信息 ```properties [192.168.88.131-mariadb-3306] db_name = mysql db_host = 192.168.88.131 db_user = testacc db_passwd = test1234# db_port = 3306 db_charset = utf8 db_type = mariadb databases_excluded = information_schema,mysql remark = 自定义备注: databases_excluded 当前实例中不需要比对的数据库,如果有多个,用英文逗号分隔,同数据库类型的任何一个节点配置下配置都可以,如果同数据类型的多个节点都配置了,那就取并集 remark2 = 实践mariadb版本:11.4.2 [192.168.88.131-mariadb] db_name = mysql db_host = 192.168.88.131 db_user = testacc db_passwd = test1234# db_port = 3307 db_charset = utf8 db_type = mariadb databases_excluded = [192.168.88.131-clickhouse] db_name = default db_host = 192.168.88.131 db_user = testacc db_passwd = test1234# db_port = 9000 connect_timeout = 15 db_type = clickhouse databases_excluded = system,default remark = 实践clickhouse版本:20.3.5.21 [192.168.88.130-clickhouse] db_name = default db_host = 192.168.88.130 db_user = testacc db_passwd = test1234# db_port = 9000 connect_timeout = 15 db_type = clickhouse databases_excluded = [192.168.88.138-opengauss] db_name = postgres db_host = 192.168.88.138 db_user = testacc db_passwd = test1234# db_port = 15400 db_type = opengauss databases_excluded = postgres,template0,template1 schemas_excluded = pg_catalog, information_schema,dbe_pldeveloper, coverage, db4ai remark = 针对openguass:schemas_exluded 当前实例中不需要比对的数据库模式,如果有多个,用英文逗号分隔,模式书写格式:schema_name、db_name.schema_name remark2 = 实践opengauss版本:3.0.3 [192.168.88.139-opengauss] db_name = postgres db_host = 192.168.88.139 db_user = testacc db_passwd = test1234# db_port = 15400 db_type = opengauss databases_excluded = postgres,template0,template1 schemas_excluded = pg_catalog, information_schema,dbe_pldeveloper, coverage, db4ai remark = ``` #### 表记录检查配置 *conf/table_record_check.conf* > 说明:该配置主要用于配置获取表记录总数和需要比对的表记录的获取方式,一般不需要配置。表记录字段明细内容比对暂时没实现 ```json { "db_type.db_name.table_name": { "total_record_num": "SELECT COUNT(*) AS total_record_num FROM table_name", "sample_records": "SELECT * FROM table_name ORDER BY id desc" }, "opengauss.db_name.schema_name.table_name": { "total_record_num": "SELECT COUNT(*) AS total_record_num FROM table_name", "sample_records": "SELECT * FROM table_name ORDER BY id desc" } } ``` #### 日志配置 一般不用改 *conf/log.conf* #### 运行程序