迁移程序从源数据库读取数据后写入目标数据库,因此需要一定量的内存作为中转缓存(并行度越高、表中单行数据越大(特别是大对象(LOB,Large Object)字段,如 BLOB、CLOB、NCLOB 等)需要的内存越多)。此外,还需要一定量的磁盘空间用于存储日志、脚本、报告等。
查看计算机 CPU 的架构类型(x64、AArch64 等)及核心数和线程数,然后根据计算机可用内存、CPU 核心数和线程数并兼顾源库和目标库服务器的性能及负载情况给迁移程序规划和设置合理的读 / 写线程数(conf/kb-thread-config.xml),配置时可参考目录中不同内存大小的配置文件(带 - 2G、-4G、-8G 的文件),缺省配置文件是基于 Intel Xeon Gold 6330(28 核心 56 线程),256G 内存,JVM 为 16G 内存的服务器进行配置的。
查看计算机内存的可用大小,然后给迁移程序规划和设置合理的 Java 虚拟机内存(bin/startup.sh 或 startup.bat 中 JAVA_OPT 项的 - Xms 和 - Xmx 参数值),确保分配的内存在可用内存范围内(缺省值为 “-Xms16G -Xmx16G”)。
检查计算机磁盘的剩余空间,应预留足够的磁盘空间(500MB 以上,取决于迁移的对象和数据的多少)给迁移程序,多次迁移时应注意清理过时的内容(logs 和 result 目录)。
将迁移程序包 kdts-app-console-xxx-bs.zip 解压到安装目录即可(其中 xxx 为版本号),程序包括如下目录:
bin: 启动脚本
conf: 配置文件
doc: 使用指南 & 操作手册
drivers: 数据库连接驱动
jdk: jdk 目录
lib: 程序包
迁移程序需要 JDK11 及以上的版本,如果计算机中已有可用的 JDK,配置迁移程序启动脚本(bin/startup.sh 或 startup.bat)中 JAVA_PATH 即可。如果没有,可从 OpenJDK 网站 https://jdk.java.net/archive/ 上下载与计算机的操作系统和 CPU 架构相匹配的版本(如 Liunx/AArch64、Linux/x64、Windows/x64 等),然后将 JDK 安装包解压为 jdk 目录。
注意:
应使用解压版本的 JDK,也不要把 JDK 设置到系统环境变量里,以免影响计算机上的其它应用。
下载时应选择最新更新的 JDK 版本,例如在下载页面上 Open JDK 11 有 “11 GA (build 11+28)、11.0.1 (build 11.0.1+13)、11.0.2 (build 11.0.2+9)” 等 3 个版本,应下载 11.0.2。
迁移程序的启动脚本在 bin 目录下,Linux 平台为 startup.sh,Windows 平台为 startup.bat。
3.2.3.1. 配置启动脚本
设置 JAVA_PATH
如果 JDK 没有安装在 jdk 目录,将如下的 “JAVA_PATH” 配置为实际的安装目录。
Linux 平台(startup.sh)
#JAVA 路径 JAVA_PATH=${BASE_PATH}"/jdk"
Windows 平台(startup.bat)
rem JAVA 路径 set "JAVA_PATH=%BASE_PATH%/jdk"
设置 Java 虚拟机内存
缺省的 Java 虚拟机内存设置的是 16G,根据需要调整如下的 “-Xms16G -Xmx16G” 中的 16G 为需要的值。
Linux 平台(startup.sh)
#======================================================= # JVM 参数设置 #======================================================= JAVA_OPT=" -server -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dcache_enable=true -Dconfig.path=${CONFIG_DIR} -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl --add-opens java.base/jdk.internal.loader=ALL-UNNAMED --add-opens jdk.zipfs/jdk.nio.zipfs=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED -Djava.security.properties=./lib/enableLegacyTLS.security -Duser.country=CN -Duser.language=zh -Xms16g -Xmx16g "
Windows 平台(startup.bat)
rem ======================================================= rem JVM 参数设置 rem ======================================================= set "JAVA_OPT=-server -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dcache_enable=true" set "JAVA_OPT=%JAVA_OPT% -Dconfig.path=%CONFIG_DIR% -Dloader.path=%LIB_DIR% -Dlog.path=%LOG_DIR% -Dmigration.name=%NOW_STR% -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl -Djava.security.properties=./lib/enableLegacyTLS.security -Duser.country=CN -Duser.language=zh" set "JAVA_OPT=%JAVA_OPT% --add-opens java.base/jdk.internal.loader=ALL-UNNAMED --add-opens jdk.zipfs/jdk.nio.zipfs=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED" set "JAVA_OPT=%JAVA_OPT% -XX:+UseG1GC -XX:G1ReservePercent=20 -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:G1HeapRegionSize=8M -XX:+SegmentedCodeCache -XX:+PrintCommandLineFlags -XX:+ExplicitGCInvokesConcurrent" set "JAVA_OPT=%JAVA_OPT% -Xms16G -Xmx16G"
注意:设置内存参数时 “-Xms” 和 “-Xmx” 应设置相同值,这样程序在启动时就会申请最大值的内存,如果内存不足可及时调整,避免在迁移过程中逐渐申请时内存不足导致迁移失败而浪费时间。
3.2.3.2. 执行启动脚本
Linux 平台
startup.sh
注意:
Linux 平台启动后程序在后台运行,如果需要查看运行日志,可使用 tail 命令:tail -f logs/kdts-app-console_2022-06-24_22-22-22.log
如果需要停止运行中的程序,可执行 shutdown.sh。
Windows 平台
startup.bat
使用谷歌浏览器进行访问
访问地址:http://localhost:8080/
默认用户名及密码:admin / 123456&*
会话保存策略:会话保存时间为一天,服务重启或登出失效
系统自动读取浏览器语言设置作为默认语言,支持中、英两种语言.
更换语言设置:谷歌浏览器打开设置,搜索语言,提示 “根据您的偏好设置对语言进行排序”,最顶部的语言即为当前浏览器所使用的语言。
执行启动脚本时,默认启动语言为中文,如果是英文环境,需要进行指定,命令如下:
# 指定中文环境 -Duser.country=CN -Duser.language=zh #指定英文环境 -Duser.country=EN -Duser.language=us
将迁移程序包 kdts-plus-xxx-bin.zip 解压到安装目录即可(其中 xxx 为版本号),程序包括如下目录:
bin: 启动脚本
conf: 配置文件(包括 manual_script(手工脚本)、mapping_rule(映射规则)等子目录,详见 readme.md)
doc: 使用指南
drivers: 数据库连接驱动(注意不同版本驱动的存放目录差异,详见 readme.md)
jdk: jdk 目录
kdms: kdms 程序
lib: 程序包
logs: 运行日志
result: 结果报告
迁移程序需要 JDK11 及以上的版本,如果计算机中已有可用的 JDK,配置迁移程序启动脚本(kdts-plus/bin/startup.sh 或 startup.bat)中 JAVA_PATH 即可。如果没有,可从 OpenJDK 网站 https://jdk.java.net/archive/ 上下载与计算机的操作系统和 CPU 架构相匹配的版本(如 Liunx/AArch64、Linux/x64、Windows/x64 等),然后将 JDK 安装包解压为 kdts-plus/jdk 目录。
注意:
应使用解压版本的 JDK,也不要把 JDK 设置到系统环境变量里,以免影响计算机上的其它应用。
下载时应选择最新更新的 JDK 版本,例如在下载页面上 Open JDK 11 有 “11 GA (build 11+28)、11.0.1 (build 11.0.1+13)、11.0.2 (build 11.0.2+9)” 等 3 个版本,应下载 11.0.2。
迁移程序的启动脚本在 kdts-plus/bin 目录下,Linux 平台为 startup.sh,Windows 平台为 startup.bat。
3.3.3.1. 配置启动脚本
设置 JAVA_PATH
如果 JDK 没有安装在 jdk 目录,将如下的 “JAVA_PATH” 配置为实际的安装目录。
Linux 平台(startup.sh)
#JAVA 路径 JAVA_PATH=${BASE_PATH}"/jdk"
Windows 平台(startup.bat)
rem JAVA 路径 set "JAVA_PATH=%BASE_PATH%/jdk"
设置 Java 虚拟机内存
缺省的 Java 虚拟机内存设置的是 16G,根据需要调整如下的 “-Xms16G -Xmx16G” 中的 16G 为需要的值。
Linux 平台(startup.sh)
#======================================================= # JVM 参数设置 #======================================================= JAVA_OPT=" -server -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dcache_enable=true -Dconfig.path=${CONFIG_DIR} -Dloader.path=${LIB_DIR} -Dlog.path=${LOG_DIR} -Dmigration.name=${NOW_STR} -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl --add-opens java.base/jdk.internal.loader=ALL-UNNAMED --add-opens jdk.zipfs/jdk.nio.zipfs=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED -Xms16g -Xmx16g "
Windows 平台(startup.bat)
rem ======================================================= rem JVM 参数设置 rem ======================================================= set "JAVA_OPT=-server -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dcache_enable=true" set "JAVA_OPT=%JAVA_OPT% -Dconfig.path=%CONFIG_DIR% -Dloader.path=%LIB_DIR% -Dlog.path=%LOG_DIR% -Dmigration.name=%NOW_STR% -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl" set "JAVA_OPT=%JAVA_OPT% --add-opens java.base/jdk.internal.loader=ALL-UNNAMED --add-opens jdk.zipfs/jdk.nio.zipfs=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED" set "JAVA_OPT=%JAVA_OPT% -XX:+UseG1GC -XX:G1ReservePercent=20 -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:G1HeapRegionSize=8M -XX:+SegmentedCodeCache -XX:+PrintCommandLineFlags -XX:+ExplicitGCInvokesConcurrent" set "JAVA_OPT=%JAVA_OPT% -Xms16G -Xmx16G"
注意:设置内存参数时 “-Xms” 和 “-Xmx” 应设置相同值,这样程序在启动时就会申请最大值的内存,如果内存不足可及时调整,避免在迁移过程中逐渐申请时内存不足导致迁移失败而浪费时间。
3.3.3.2. 执行启动脚本
Linux 平台
startup.sh
注意:
Linux 平台启动后程序在后台运行,如果需要查看运行日志,可使用 tail 命令:tail -f logs/kdts-app-console_2022-06-24_22-22-22.log
如果需要停止运行中的程序,可执行 shutdown.sh。
Windows 平台
startup.bat