diff --git "a/\346\240\241\351\252\214\345\267\245\345\205\267\344\275\277\347\224\250\346\214\207\345\257\274.md" "b/\346\240\241\351\252\214\345\267\245\345\205\267\344\275\277\347\224\250\346\214\207\345\257\274.md" new file mode 100644 index 0000000000000000000000000000000000000000..a6c0f98aaeea63f1d21b04eebf206bbd4e89604f --- /dev/null +++ "b/\346\240\241\351\252\214\345\267\245\345\205\267\344\275\277\347\224\250\346\214\207\345\257\274.md" @@ -0,0 +1,161 @@ +# 使用指导书 + +## 工具介绍 +openGauss数据迁移校验工具 (openGauss-tools-datachecker-performance),包含全量数据校验以及增量数据校验。 + +## 软件架构 +全量数据校验,采用JDBC方式抽取源端和目标端数据,并将抽取结果暂存到kafka中,校验服务通过抽取服务从kafka中获取指定表的抽取结果,进行校验。最后将校验结果输出到指定路径的文件文件中。 + +增量数据校验,通过debezium监控源端数据库的数据变更记录,抽取服务按照一定的频率定期处理debezium的变更记录,对变更记录进行统计。将统计结果发送给数据校验服务。由数据校验服务发起增量数据校验,并将校验结果输出到指定路径文件。 + + + +## 环境要求 + +### 硬件要求 + +- 服务器数量:3台鲲鹏920服务器(2台用于数据库服务器,1台用于校验服务端,kafka服务)。 +- 服务器硬件规格: + - Memory:大于512GB。 + - Free Disk:4块NVME硬盘,每块容量大于1TB。 + - 网卡:Hi1822千兆网卡,光纤互连。 + +### 软件要求 + +​ 操作系统要求:openEuler-20.03-LTS(aarch64 架构) + +​ JDK : JDK11+ + +​ MYSQL:要求5.7+版本 + +​ openGauss:openGauss3.0.0 + +​ 数据库配置建议使用高性能环境配置。 + +## 部署方式 + +​ 两台数据库服务器,分别安装mysql数据库和opengauss数据库 + +​ 将校验工具抽取服务部署于数据库服务器 + +​ 一台用于部署校验服务和kafka服务 + +## 使用步骤 + +**启动Zookeeper** + +``` +cd {path}/confluent-7.2.0 +``` + +``` +bin/zookeeper-server-start etc/kafka/zookeeper.properties +或者 +bin/zookeeper-server-start -daemon etc/kafka/zookeeper.properties +``` + +**启动Kafka** + +``` +bin/kafka-server-start etc/kafka/server.properties +或者 +bin/kafka-server-start -daemon etc/kafka/server.properties +``` + + + +**校验服务启动配置** + +``` +校验服务配置 修改application.yml文件 + server.port 为校验服务web端口,默认可不修改 + logging.config 设置校验服务日志路径为config/log4j2.xml文件绝对路径 + bootstrap-servers 为kafka工作地址,默认安装可不修改 + data.check.data-path 校验结果输出地址,默认配置可不修改 + data.check.source-uri 源端服务请求地址,默认配置可不修改 + data.check.sink-uri 目标端服务请求地址,默认配置可不修改 + data.check.core-pool-size 并发线程数设置,根据当前环境配置,可不修改 +``` + +**源端服务启动配置** + +``` +源端服务配置 修改application-source.yml文件 + server.port 为源端抽取服务web端口,默认可不修改 + logging.config 设置校验服务日志路径为config/log4j2source.xml文件绝对路径 + spring.check.server-uri 校验服务请求地址,默认配置可不修改 + spring.extract.schema 当前校验数据schema,mysql 数据库名称 + spring.extract.core-pool-size 并发线程数设置,根据当前环境配置,可不修改 + bootstrap-servers 为kafka工作地址,默认安装可不修改 + + 数据源配置 + 工具默认采用druid数据源,用户可以自定义配置连接池参数 + initialSize: 100 默认初始连接大小 + maxActive: 500 默认激活数据库连接数量 + +``` + +**目标端服务启动配置** + +``` +目标端服务配置 修改application-sink.yml文件 + server.port 为目标端抽取服务web端口,默认可不修改 + logging.config 设置校验服务日志路径为config/log4j2sink.xml文件绝对路径 + spring.check.server-uri 校验服务请求地址,默认配置可不修改 + spring.extract.schema 当前校验数据schema,opengauss schema名称 + spring.extract.core-pool-size 并发线程数设置,根据当前环境配置,可不修改 + bootstrap-servers 为kafka工作地址,默认安装可不修改 + + 数据源配置 + 工具默认采用druid数据源,用户可以自定义配置连接池参数 + initialSize: 100 默认初始连接大小 + maxActive: 500 默认激活数据库连接数量 +``` + + + +**启动数据校验服务** + +**后台启动命令** + +```shell +nohup java -Dspring.config.additional-location=config/application-source.yml -jar datachecker-extract-0.0.1.jar --spring.profiles.active=source >/dev/null 2>&1 & + +nohup java -Dspring.config.additional-location=config/application-sink.yml -jar datachecker-extract-0.0.1.jar --spring.profiles.active=sink >/dev/null 2>&1 & + +nohup java -Dspring.config.additional-location=config/application.yml -jar datachecker-check-0.0.1.jar >/dev/null 2>&1 & +``` + +**校验服务完全启动成功后,会自动发起校验请求。** + +**校验服务绑核** + +``` +可以使用 numactl 命令给抽取服务和校验服务进行绑核 +``` + + + +**备注:** + +``` +1、抽取服务在启动后,会自动加载数据库的表相关信息,如果数据量较大,则数据加载会比较耗时。 +2、校验服务启动后,会检测抽取端的表数据信息是否加载完成,如果在一定时间内,未完成加载,则校验服务会自行退出。这时需要查询源端和宿端的表信息加载进度,通过日志信息查看加载进度。或者直接重新启动校验服务。 +3、增量校验服务启动,需要修改源端配置文件\config\application-source.yml 中 debezium-enable:true并配置其他 debezium相关配置,服务启动即可开启增量校验服务 +4、服务启动参数与部署方式,会对校验性能产生一定的影响。 + 启动参数:校验服务和抽取进程 增加java虚拟机参数 -Xmx、 -Xms 参数设置(1G -10G)各进程参数保持一致即可 + 部署方式:将抽取服务分别部署源端和目标端的数据库节点,校验服务和kafka可以部署在单独机器上。 +``` + + + +**限制与约束** + +``` +JDK版本要求JDK11+ +当前版本仅支持对源端MySQL,目标端openGauss数据校验 +当前版本仅支持数据校验,不支持表对象校验 +MYSQL需要5.7+版本 +当前版本不支持地理位置几何图形数据校验 +``` +