官方文档:
产品概述 | YashanDB Doc
1、安装前准备
| 项目 | 说明 |
|---|---|
| 系统 | CentOS7.6以上、KylinOS V10 |
| 架构 | X86-64/ARM-64 |
| CPU | 4核以上 |
| 内存 | 8G以上 |
| 磁盘 | SSD(建议不小于待同步表中的最大单表数据量的三倍) |
1.1 新建用户
disaster-backup01 :: ~ # useradd ymp
disaster-backup01 :: ~ # passwd ymp ymp
Changing password for user ymp.
New password:
BAD PASSWORD: The password is shorter than 9 characters
Retype new password:
passwd: all authentication tokens updated successfully.
1.2 操作系统参数调整
需确保操作系统max user processes最大用户线程数不小于65535
# 查看最大用户线程数
ulimit -u
# 执行如下命令使最大用户线程数临时生效,重启后无效
ulimit -u 65536
# 执行执行如下命令将最大用户线程数写入/etc/security/limits.conf文件,重启后参数永久生效
echo "
* soft nproc 65536
* hard nproc 65536
" >> /etc/security/limits.conf
1.3 目录划分
建议在服务器新建用户以安装部署YMP,注意YMP安装路径不可包含英文句号,以使用新建YMP用户为例,安装路径为/home/ymp。
如安装路径下已存在db目录与bin/yasldr目录(例如/home/ymp/yashan-migrate-platform/db与/home/ymp/yashan-migrate-platform/bin/yashandb_client),需先清空目录。
安装默认端口号
端口列表请参考:端口列表。
| YMP监听 | 数据库监听 | 主机间通信 | yasom | yasagent |
|---|---|---|---|---|
| 8090 | 8091 | 8092 | 8093 | 8094 |
1.4 防火墙设置
方式一:关闭防火墙
在主机上执行如下命令关闭防火墙:
# 关闭防火墙
# systemctl stop firewalld
# 关闭开机自启
# systemctl disable firewalld
Copied!
方式二:添加白名单
如果防火墙不能关闭,则需按如下步骤添加端口到白名单中:
1.查看防火墙端口开放情况:
# firewall-cmd --zone=public --list-ports
2.添加端口到防火墙(Firewall):
这里以8090为例演示如何添加端口到防火墙中,其他端口操作方法相同。
# 添加(--permanent 永久生效,没有此参数重启后失效)
# firewall-cmd --zone=public --add-port=8090/tcp --permanent
# 重新载入
# firewall-cmd --reload
# 查看
# firewall-cmd --zone=public --query-port=8090/tcp
如需从白名单中删除已添加的端口,使用如下命令:
# 删除已添加的端口
# firewall-cmd --zone=public --remove-port=8090/tcp --permanent
1.5 应用环境准备
JDK配置:
YMP仅支持在JDK8和JDK11环境下安装
通过Java官方路径下载上述版本的JDK并安装成功后,还需配置如下环境变量:
# 以JDK安装路径为/usr/tools/jdk8为例
# vi /etc/profile
# 在文件结尾添加如下
# export JAVA_HOME=/usr/tools/jdk8
# export PATH=$JAVA_HOME/bin:$PATH
# export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 重新载入配置文件
# source /etc/profile
# 安装成功后查看JDK版本信息
# java -version
Libaio配置:
YMP运行需要libaio动态库。
# 查看是否已安装libaio动态库
# rpm -qa | grep libaio
# 若未有版本信息打印,安装libaio
# yum install -y libaio
OCI环境准备(可选):
如需要使用Oracle到YashanDB的数据迁移功能,请进行OCI环境安装。
准备OCI环境需从Oracle官网 (opens new window)下载OCI客户端并依据官网所列步骤进行安装。
YMP现仅支持OCI Version 19.19.0.0.0及以上版本。建议下载和安装的版本信息如下:
- instantclient-basic-linux.x64-19.19.0.0.0dbru.el9.zip
- instantclient-basic-linux.arm64-19.10.0.0.0dbru-2.zip
上传安装包至YMP用户/home/ymp/路径。
# wget https://download.oracle.com/otn_software/linux/instantclient/1919000/instantclient-basic-linux.x64-19.19.0.0.0dbru.el9.zip
--2024-04-18 15:54:47-- https://download.oracle.com/otn_software/linux/instantclient/1919000/instantclient-basic-linux.x64-19.19.0.0.0dbru.el9.zip
Resolving download.oracle.com (download.oracle.com)... 23.213.224.84
Connecting to download.oracle.com (download.oracle.com)|23.213.224.84|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 75001671 (72M) [application/zip]
Saving to: ‘instantclient-basic-linux.x64-19.19.0.0.0dbru.el9.zip’
100%[=================================>] 75,001,671 6.96MB/s in 12s
2024-04-18 15:55:00 (6.11 MB/s) - ‘instantclient-basic-linux.x64-19.19.0.0.0dbru.el9.zip’ saved [75001671/75001671]
# 修改安装包所属用户及用户组为ymp用户
# chown ymp:ymp instantclient-xxx
# 从root用户切换至ymp用户
# su - ymp
# 切换至安装路径
$ cd /home/ymp
# 解压OCI安装包
$ unzip instantclient-xxx
1.6 YashanDB环境准备
使用默认内置库时,本步骤可省略。
用以迁移校验兼容性
使用外部内置库时:
-
如需一个全新的YashanDB单机环境,参考YashanDB官网文档进行安装部署。
-
如为一个已有的YashanDB单机环境,则需由DBA在该环境中执行如下脚本:
--创建一个ymp用户(以YMP_DEFAULT为例)并为其授权
create user YMP_DEFAULT IDENTIFIED BY ymppw602 DEFAULT TABLESPACE users;
GRANT ALL PRIVILEGES TO YMP_DEFAULT;
GRANT DBA TO YMP_DEFAULT;
2、软件安装
2.1 软件包下载
$ wget https://linked.yashandb.com/resource/yashan-migrate-platform-v23.2.1.0-linux-x86-64.zip
--2024-04-18 15:05:22-- https://linked.yashandb.com/resource/yashan-migrate-platform-v23.2.1.0-linux-x86-64.zip
Resolving linked.yashandb.com (linked.yashandb.com)... 119.23.210.86
Connecting to linked.yashandb.com (linked.yashandb.com)|119.23.210.86|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 168188485 (160M) [application/zip]
Saving to: ‘yashan-migrate-platform-v23.2.1.0-linux-x86-64.zip’
100%[===============================================================>] 168,188,485 13.3MB/s in 12s
2024-04-18 15:05:35 (13.1 MB/s) - ‘yashan-migrate-platform-v23.2.1.0-linux-x86-64.zip’ saved [168188485/168188485]
从本步骤开始的后续所有服务端安装步骤,将由YMP安装用户来进行操作,请先切换至YMP用户,或以YMP用户登录至服务器。
上传安装包至YMP用户/home/ymp/路径。
#修改安装包所属用户及用户组为ymp用户
# chown ymp:ymp yashandb-xx.xx-linux-x86_64.tar.gz
# 从root用户切换至ymp用户
# su - ymp
# 切换至安装路径
$ cd /home/ymp
2.2 解压
上传YMP安装包至/home/ymp目录下然后解压:
# 切换至YMP安装目录
$ cd /home/ymp/
$ unzip yashan-migrate-platform-x86-64.zip
2.3 安装参数调整
依据实际需要对默认内置库安装及YMP启动参数进行调整。
默认内置库安装配置文件
# db.properties
YASDB_PASSWORD=ymppw602. # 默认内置库sys用户默认密码
YASDB_PORT=8091 # 默认内置库默认端口号
YASDB_CHARACTER_SET=UTF8 # 默认内置库字符集,还可选择ASCII, ISO88591, GBK
YMP配置文件
# conf/application.properties
# YMP服务端口
server.port=8090
# 用户登录后空闲过期时间,单位秒(s),默认15分钟
shiro.session.timeout=900
# YMP使用的最大堆内存,单位: GB
ymp_memory=4
# YMP使用的堆外内存,单位: GB
ymp_direct_memory=2
# ========================================YMP业务数据库=============================================
# YMP业务数据库连接信息
spring.datasource.url=jdbc:yasdb://192.168.8.201:1688/yashan
spring.datasource.username=YMP_DEFAULT
spring.datasource.password=ymppw602
spring.datasource.largePoolSize=64M
spring.datasource.cursorPoolSize=64M
# 默认内置库表类型,默认HEAP,可选HEAP,TAC,LSC
spring.datasource.defaultTableType=HEAP
spring.datasource.openCursors=3000
spring.datasource.sharePoolSize=2G
spring.datasource.dateFormat=yyyy-mm-dd hh24:mi:ss
spring.datasource.ddlLockTimeout=2
# ========================================评估=============================================
# YMP的最大并行任务数
task.parallel.max-num=500
# 预计数据迁移速度,KB/s。修改会影响评估结果预计迁移时间的大小
commons.dataMigrateSpeed=51200
# 预计对象迁移速度,number/s。修改会影响评估结果预计迁移时间的大小
commons.objMigrateSpeed=200
# 评估任务单个会话获取DDL的数量,如果Oracle性能较差,则需要降低该值
assessment.ddlCount=50
# 评估任务最多同时拥有的会话数,如果Oracle性能较差,则需要降低该值
assessment.maxThreadCount=20
# 内置库表类型是否为LSC,默认为false
isLscTable=false
# 拦截的Oracle数据源db/schema黑名单
schemaBlackList.oracle=ANONYMOUS,APEX_030200,APEX_PUBLIC_USER,APPQOSSYS,BI,CTXSYS,DBSNMP,DIP,EXFSYS,FLOWS_FILES,HR,IX,MDDATA,MDSYS,MGMT_VIEW,OE,OLAPSYS,ORACLE_OCM,ORDDATA,ORDPLUGINS,ORDSYS,OUTLN,OWBSYS,OWBSYS_AUDIT,PM,SCOTT,SH,SI_INFORMTN_SCHEMA,SPATIAL_CSW_ADMIN_USR,SPATIAL_WFS_ADMIN_USR,SYS,SYSMAN,SYSTEM,WMSYS,XDB,XS$NULL
# 拦截的MySQL数据源db/schema黑名单
schemaBlackList.mysql=information_schema,mysql,performance_schema,sys
# 拦截的dm数据源db/schema黑名单
schemaBlackList.dm=SYS,SYSDBA,SYSSSO,SYSAUDITOR,CTISYS
# ========================================迁移=============================================
# 元数据迁移过程中源端、目标端查询视图连接数。在元数据迁移过程中会有分批量的查询的动作, 需要开启多个查询连接并行查询。该参数配置元数据迁移的源端、目标端查询的并行线程数,决定了对数据库的查询最大连接数,不设置默认20
migration.parallel.query=20
# 元数据迁移过程中目标端执行创建连接数。在元数据迁移过程中会并行把对象在目标端的执行,以提升迁移效率。该参数配置元数据迁移的目标端DDL执行的并行线程数,决定了连接数据库的执行最大连接数,不设置默认20。migration.parallel.query和migration.parallel.execute的连接总和,是最终迁移过程中所有的目标端数据库连接数。
migration.parallel.execute=20
# 创建索引是否使用并行参数,true/TRUE:使用,false/FALSE:不使用
migration.parallel.createIndexUseParallel=true
# 索引创建的并行度,需要考虑migration.parallel.execute。例:migration.parallel.execute:10,migration.parallel.index: 5,表示,同时10个连接在并行建索引,每个索引的并行度是5(CREATE INDEX XXX PARALLEL 5)。不填默认CPU核数。
migration.parallel.index=5
# 数据迁移前是否将表设为nologging,默认为false
setNoLogging=false
# 导出时每个csv文件的行数
export.csv.exportRowsEveryFile=2000000
# 迁移成功时候是否删除csv文件
export.csv.isRemoveCsvFileInSuccess=true
# csv文件存储路径包含对schema和table的拼接,schema名或table名中包含以上字符时,将会被替换,以避免被操作系统识别错误导致迁移失败;不过这可能会使某些表(比如AA$与AA.)在替换后使用的csv文件存储路径相同,导致迁移失败(No such file or directory),可以通过重新迁移失败表来解决
export.csv.path.replacement.from=\ /'."*$
# 发生csv文件存储路径字符替换时(详见export.csv.path.replacement.from),指定替换的目标字符或字符串
export.csv.path.replacement.to=_
# 导出时大表拆分的个数
export.table.splitCount=5
# 导出时触发大表拆分的行数
export.table.splitConditionCount=10000000
# 导出时触发大表拆分的表大小(G)
export.table.splitConditionSize=5
# 导出时带lob字段大表拆分的个数
export.lobTable.splitCount=5
# 导出时触发带lob字段大表拆分的行数
export.lobTable.splitConditionCount=1000000
# 导出时触发带lob字段大表拆分的表大小(G)
export.lobTable.splitConditionSize=5
# 使用jdbc导出时每个csv文件的最大行数
export.jdbc.thresholdForSplittingFileLines=5000000
# 使用jdbc导出时每个csv文件的最大大小(M)
export.jdbc.thresholdForSplittingFileSize=3072
# #yasldr More References: http://doc.yashandb.com/yashandb/22.2/zh/%E5%B7%A5%E5%85%B7%E6%89%8B%E5%86%8C/yasldr/yasldr%E4%BD%BF%E7%94%A8%E6%8C%87%E5%AF%BC.html
# yasldr导入时的并行度
import.degree_of_parallelism=16
# yasldr导入时每批次的CSV数据行数
import.batch_size=2048
# yasldr导入方式,包括BASIC方式和BATCH方式
import.mode=BATCH
# ========================================校验=============================================
# 校验任务限制每个数据源支持的最大连接数
checkTask.datasource.max-connection=500
# 校验任务获取连接超时时间,单位:ms
checkTask.datasource.connection-timeout=300000
# 校验任务获取的连接池中维持的最小连接数
checkTask.datasource.minimum-idle=1
# 校验任务的最大并行任务数
checkTask.task.parallel.max-num=20
# 校验任务的子任务的最大并行任务数,即一个任务多少个表在同时校验
checkTask.subTask.parallel.max-num=200
# 校验任务的全量校验对FLOAT数据类型的校验精度
checkTask.checkFloatPrecision=6
# 校验任务的数据类型映射有一边是char数据类型就移除数据右侧空格进行对比
checkTask.charRightTrim=true
2.4 执行安装命令
您可通过以下命令查看脚本参数及其使用方法:
# 进入安装目录查看帮助
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh -h
默认内置库安装YMP
YMP安装时按默认方式自行安装YashanDB作为内置库。
默认内置库相关信息:
- 部署形态:单机
- 集群名称:ymp
- 安装目录:/home/ymp/yashan-migrate-platform/db
执行安装
方式一:安装内置库并启动YMP
# 进入安装目录执行安装命令
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh install --db /home/ymp/yashandb-23.2.1.0-linux-x86_64.tar.gz
方式二:安装内置库和OCI客户端并启动YMP
# 进入安装目录执行安装命令
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh install --db /home/ymp/yashandb-23.2.1.0-linux-x86_64.tar.gz --path /home/ymp/instantclient_xxx
sh bin/ymp.sh install --db /home/ymp/yashandb-personal-23.2.1.100-linux-x86_64.tar.gz --path /home/ymp/instantclient_19_19/
checking install profile.toml...
install version: yashandb 23.2.1.100
update host to yasom...
type | uuid | name | hostid | index | status | return_code | progress | cost
---------------------------------------------------------------------------------------------------------
task | 27209354f2786cc1 | DeployYasdbCluster | - | ymp | SUCCESS | 0 | 100 | 94
------+------------------+--------------------+--------+-------+---------+-------------+----------+------
task completed, status: SUCCESS
type | uuid | name | hostid | index | status | return_code | progress | cost
-------------------------------------------------------------------------------------------------------
task | aaad39430f55d579 | StopYasdbCluster | - | ymp | SUCCESS | 0 | 100 | 3
------+------------------+------------------+--------+-------+---------+-------------+----------+------
task completed, status: SUCCESS
type | uuid | name | hostid | index | status | return_code | progress | cost
--------------------------------------------------------------------------------------------------------
task | 628ba4ff71b7a910 | StartYasdbCluster | - | ymp | SUCCESS | 0 | 100 | 7
------+------------------+-------------------+--------+-------+---------+-------------+----------+------
task completed, status: SUCCESS
YMP started successfully!
自定义内置库安装YMP
使用自定义内置库指使用外部的YashanDB数据库作为YMP的业务库使用,YMP安装时不再安装YashanDB数据库。
不能使用迁移的目标库作为自定义内置库。
修改配置文件
# 修改工具yashan-migration-platform/conf/application.properties文件
# YMP业务数据库连接信息
# url改为自定义内置库的url,格式为 url: jdbc:yasdb://IP:PORT/yashan
spring.datasource.url=jdbc:yasdb://127.0.0.1:8091/yashan # 自定义内置库的地址和端口
spring.datasource.username=YMP_DEFAULT # 自定义内置库的用户名
spring.datasource.password=ymppw602 # 自定义内置库的用户名密码
执行安装
方式一:安装Yasldr依赖库并启动YMP
如无需使用Oracle到YashanDB的数据迁移功能,可通过这种方式部署。
# 进入安装目录执行卸载命令
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh installnodb --db /home/ymp/yashandb-23.2.1.0-linux-x86_64.tar.gz
方式二:安装Yasldr依赖库和OCI客户端并启动YMP
# 进入安装目录执行安装命令
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh installnodb --db /home/ymp/yashandb-23.2.1.0-linux-x86_64.tar.gz --path /home/ymp/instantclient_xxx
查看运行状态
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh status
YMP is running, pid is 24116.
Built-in database is used, pid is 23940.
查看版本
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh -v
Yashan-migrate-platform version: Release v23.2.1.0
YashanDB SQL Enterprise Edition Release v23.2.1.0 x86_64
YashanDB Loader Enterprise Edition Release v23.2.1.0 x86_64 faec879
3、访问YMP
访问方式:http://IP:PORT/,PORT默认8090,初始账户名和密码是(admin/admin)
admin/Greentown@123
[[08-Database/010-YashanDB/001-安装部署/IMAGE/e8f7e31d57fdc2868d8868a768173cbc_MD5.jpeg|Open: Pasted image 20240418161025.png]]
![[08-Database/010-YashanDB/001-安装部署/IMAGE/e8f7e31d57fdc2868d8868a768173cbc_MD5.jpeg]]
4、YMP启动与停止
启动YMP
默认内置库启动YMP:
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh start
自定义内置库启动YMP:
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh startnodb
停止YMP
默认内置库停止YMP:
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh stop
自定义内置库停止YMP:
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh stopnodb
重启YMP
默认内置库重启YMP:
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh restart
自定义内置库重启YMP:
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh restartnodb
Caution:
在任务运行过程中停止或重启YMP会造成当前阶段任务运行失败,需重新开始当前阶段任务。
5、卸载YMP
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh uninstall
# 使用uninstall功能时可携带-f参数,强制清理环境
$ sh bin/ymp.sh uninstall -f
# 验证
$ ps -ef | grep yas
ymp 20840 6322 0 10:02 pts/14 00:00:00 grep --color=auto yas
- 卸载YMP时,会删除默认内置库(自定义内置库不受影响)并清空db和yashan_client文件夹,若想替换数据库版本,请在卸载后重新部署。
- 强制清理功能会使用kill -9强制清理当前用户下YMP启动的所有进程,并删除内置库及yasldr文件夹下所有内容,请谨慎使用,建议在专用的YMP用户下使用。
- 最后还需要手动删除~/.bashrc中与YashanDB有关的环境变量。




