近日,我有幸参加了YashanDB首期YCP认证培训活动。作为一个初入此行的小白,这次活动对我而言无疑是一次极为宝贵的学习机会。
活动伊始,我就被YashanDB团队的专业与热情所打动。他们不仅为我们提供了详尽的课程内容,还通过生动的案例和实际操作,让我们更加深入地了解了数据库的相关知识。在这个过程中,我逐渐感受到了数据库技术的魅力,也对未来充满了期待。回顾这次培训活动,我收获满满,做下部分知识总结。
崖山迁移平台(Yashan Migration Platform,YMP)介绍
崖山迁移平台(Yashan Migration Platform,YMP)是YashanDB提供的数据库迁移产品,支持异构RDBMS与YashanDB之间进行迁移评估、离线迁移、数据校验的能力。
YMP提供可视化服务,用户只需通过简单的界面操作,即可完成从评估到迁移整个流程的执行与监控,实现低门槛、低成本、高效率的异构数据库迁移。
1、核心特性
- 精确评估
基于可插拔数据库最小内核,在评估阶段即精确验证SQL 兼容性,评估结果真实可信。
- SQL自动转换
支持SQL语句自动转换,全面适配YashanDB语法,解决大部分不兼容SQL的适配转换问题,大大减少人工适配工作量。
- 评估迁移无缝对接
评估结果自动作为迁移的基础,迁移时即按照评估阶段所做的对象DDL 自动/手动改写来执行,实现评估兼容即迁移成功。
- 对象一键迁移
一键整合所有对象元数据迁移,充分考虑对象依赖关系,及对数据迁移的影响,并采用端到端性能最优的执行策略,智能决策元数据对象创建顺序。
- 数据高性能迁移
基于数据库原生高性能导入导出能力,采用流水线多级并行架构,实现原厂级高性能数据迁移。
- 数据校验
通过数据库自身查询排序能力,并发抽取数据,对异构数据源数据统一格式处理,实现数据对比检验,确保数据一致性。
- 一站式服务
将包括迁移评估、离线迁移、数据校验在内的迁移方案全流程整合在一个平台上,为用户提供低门槛、可视化、可复制的一站式迁移服务。
2、产品架构
3、产品规格
1. 数据库版本支持
|
数据库 |
说明 |
|
YashanDB |
适配YashanDB数据库v23.2版本,形态支持单机、共享集群,并兼容YashanDB数据库v22.2版本。 |
|
Oracle |
支持的版本为 11g,12c,19c,21c,部署形态为单机和RAC。 |
|
MySQL |
支持的版本为 5.6,5.7,8.0。 |
|
DM |
支持的版本为 8。 |
2. 数据类型支持
|
数据库 |
支持数据类型 |
|
Oracle |
CHAR、NCHAR、VARCHAR2、NVARCHAR2、NUMBER、FLOAT、INT、INTEGER、SMALLINT、DEC、NUMBERIC、DECIMAL、DOUBLE PRECISION、DATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE、TIMESTAMP WITH LOCAL TIME ZONE、INTERVAL
YEAR TO MONTH、INTERVAL DAY TO SECOND、LONG、RAW、LONG RAW、CLOB、NCLOB、BLOB、JSON |
|
Mysql |
TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT、DECIMAL、FLOAT、DOUBLE、TINYINT
UNSGINED、SMALLINT UNSIGNED、MEDIUMINT
UNSIGNED、INT UNSIGNED、BIGINT
UNSIGNED、CHAR、VARCHAR、DATE、DATETIME、TIMESTAMP、TIME、YEAR、BINARY、VARBINARY、TINYBLOB、TINYTEXT、BLOB、TEXT、MEDIUMBLOB、MEDIUMTEXT、LONGBLOB、LONGTEXT、JSON、BIT、ENUM、SET |
|
DM |
TINYINT、SMALLINT、INT、INTEGER、BIGINT、DEC、DECIMAL、REAL、FLOAT、DOUBLE、DOUBLE PRECISION、NUMBER、NUMERIC、CHAR、CHARACTER、VARCHAR、VARCHAR2、NVARCHAR、NVARCHAR2、NCHAR、DATE、TIME、DATETIME、TIMESTAMP、TIME WITH TIME ZONE、TIMESTAMP WITH LOCAL
TIME ZONE、TIMESTAMP WITH TIME ZONE、DATETIME WITH TIME ZONE、INTERVAL DAY TO
SECOND、INTERVAL YEAR TO MONTH、BINARY、BLOB、CLOB、IMAGE、LONG、VARBINARY、LONGVARBINARY、LONGVARCHAR、RAW、TEXT |
YMP安装部署
1、安装规划
|
主机名称 |
操作系统版本 |
资源配置 |
操作系统服务IP |
安装功能包 |
功能说明 |
|
appnode1 |
Redhat7.8 |
4c/8G及以上 |
192.168.126.101 |
yashan-migrate-platform-v23.2.1.0-linux-x86-64.zip yashandb-personal-23.2.1.100-linux-x86_64.tar.gz instantclient-basic-linux.x64-19.23.0.0.0dbru.zip JDK8、libaio动态库 |
YMP(迁移工具服务器) |
|
dbnode1 |
Redhat7.8 |
2c/4G及以上 |
192.168.126.102 |
yashandb-personal-23.2.1.100-linux-x86_64.tar.gz |
yashanDB(目标库服务器) |
|
ora19c |
Redhat7.8 |
2c/4G及以上 |
192.168.126.129 |
Oracle Version 19.17.0.0.0 |
Oracle19c(源库) |
|
adminnode |
Redhat7.8 |
2c/4G及以上 |
192.168.126.110 |
yashandb-cloud-manager-23.2.1.103-linux-x86_64.tar.gz |
YCM(监控管理服务器) |
注意事项:
- 如需要使用Oracle到YashanDB的数据迁移功能,请进行OCI环境安装。目前YMP仅支持OCI Version 19.19.0.0.0及以上版本。本次下载使用instantclient-basic-linux.x64-19.23.0.0.0dbru.zip
- YMP需要配置内置库,本次采用默认方式自行安装YashanDB作为内置库。
- YMP仅支持在JDK8或JDK11的环境下安装。
2、操作系统环境准备
基础配置同YashanDB数据库环境类似。
- 操作系统参数调整
需确保操作系统max user processes最大用户线程数不小于65535。
\# 查看最大用户线程数
\# ulimit -u
\# 执行如下命令使最大用户线程数临时生效,重启后无效
\# ulimit -u 65536
\# 执行执行如下命令将最大用户线程数写入/etc/security/limits.conf文件,重启后参数永久生效
\# echo "
\# \* soft nproc 65536
\# \* hard nproc 65536
\# " >> /etc/security/limits.conf
- 目录划分
建议在服务器 新建用户以安装部署YMP,注意YMP安装路径不可包含英文句号,以使用新建YMP用户为例,安装路径为/home/ymp。
- 开放端口
安装默认端口号
端口列表请参考:端口列表。
|
YMP监听 |
数据库监听 |
主机间通信 |
yasom |
yasagent |
|
8090 |
8091 |
8092 |
8093 |
8094 |
- 关闭防火墙
# 关闭防火墙
# systemctl stop firewalld
# 关闭开机自启
# systemctl disable firewalld
- libaio环境准备
YMP运行需要libaio动态库。
# 查看是否已安装libaio动态库
# rpm -qa | grep libaio
# 若未有版本信息打印,安装libaio
# yum install -y libaio
- YMP用户及目录创建
#新建YMP用户
# useradd -d /home/ymp -m ymp
# passwd ymp
- 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
3、安装YMP
1. 安装包的解压及赋权
上传YMP安装包至/home/ymp目录下然后解压
# su - ymp
$ cd /home/ymp/
$unzip yashan-migrate-platform-v23.2.1.0-linux-x86-64.zip
$unzip instantclient-basic-linux.x64-19.23.0.0.0dbru.zip
2. 安装参数调整
依据实际需要对默认内置库安装及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.126.101: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
3. 执行安装命令
方式二:安装内置库和OCI客户端并启动YMP
# 进入安装目录执行安装命令
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh install --db /home/ymp/yashandb-personal-23.2.1.100-linux-x86_64.tar.gz --path /home/ymp/instantclient_19_23
[ymp@appnode1 yashan-migrate-platform]$ sh bin/ymp.sh install --db /home/ymp/yashandb-personal-23.2.1.100-linux-x86_64.tar.gz --path /home/ymp/instantclient_19_23
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 | e91fa5145940a573 | DeployYasdbCluster | - | ymp | SUCCESS | 0 | 100 | 10
------±-----------------±-------------------±-------±------±--------±------------±--------
task completed, status: SUCCESS
type | uuid | name | hostid | index | status | return_code | progress | cost
--------------------------------------------------------------------------------------------------
task | 632e451f6fdbdcca | StopYasdbCluster | - | ymp | SUCCESS | 0 | 100 | 2
------±-----------------±-----------------±-------±------±--------±------------±---------
task completed, status: SUCCESS
type | uuid | name | hostid | index | status | return_code | progress | cost
--------------------------------------------------------------------------------------------------
task | a4ed658a2b97ba09 | StartYasdbCluster | - | ymp | SUCCESS | 0 | 100 | 2
------±-----------------±------------------±-------±------±--------±------------±--------
task completed, status: SUCCESS
YMP started successfully!
4. 查看运行状态
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh status
5. 查看版本
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh -v
6. 访问YMP
访问方式:http://IP:PORT/,PORT默认8090,初始账户名和密码是(admin/admin)
4、YMP的启停命令
启动YMP
默认内置库启动YMP:
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh start
停止YMP
默认内置库停止YMP:
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh stop
启停案例:
迁移测试
1、场景描述:
本次迁移测试计划将Oracle19c数据库数据迁移到YashanDBV23.2数据库
YMP迁移要求:
2、数据源权限配置
源端、目标端的配置权限要求详细参考官方链接:
- ora19c(源数据库操作)
CREATE USER C##test identified by testpass;
GRANT DBA TO C##test;
GRANT RESOURCE TO C##test;
创建表等并导入测试数据。
2.yashanDB(目标数据库操作)
CREATE USER C##test identified by testpass;
GRANT DBA TO C##test;
3、登录YMP迁移平台
http:192.168.126.10:8090 (初始密码admin需要重新设置密码)
4、添加数据源
5、任务管理
1.创建任务

根据提示可以保存或者下一步
2.迁移评估
迁移评估完成,告知用户总体的迁移数据的兼容性、迁移量、预估的迁移时间等,本次测试用schema下对象等太少,仅示参考。
3.迁移配置
需要选择目标端数据库
可以单独查看DDL语句选择修改或者,不迁移。
下一步
4.离线迁移
可以查看迁移报告
5.校验初始化
选择校验范围
6.一致性校验
查看校验报告




