暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

YashanDB YCP 培训笔记之YMP安装及数据迁移【YashanDB迁移体验官】

原创 virvle 2024-04-24
894

崖山迁移平台(Yashan Migration Platform,YMP)是YashanDB提供的数据库迁移产品,支持异构RDBMS与YashanDB之间进行迁移评估、离线迁移、数据校验的能力。 YMP提供可视化服务,用户只需通过简单的界面操作,即可完成从评估到迁移整个流程的执行与监控,实现低门槛、低成本、高效率的异构数据库迁移。

1. 部署环境

服务器配置:不少于4c8g,100G数据盘

类型 服务器IP 操作系统 工具 安装包
源库 10.10.10.160 centos7.9 Oracle 19C 现有测试库,版本19.3.0.0.0
迁移工具 10.10.10.235 centos7.9 YMP yashan-migrate-platform-v23.2.1.0-linux-x86-64.zip
中间件 10.10.10.235 centos7.9 OCI instantclient-basic-linux.x64-19.22.0.0.0dbru.zip
中间件 10.10.10.235 centos7.9 JDK jdk-8u381-linux-x64.tar.gz
目标库 10.10.10.236 centos7.9 YashanDB yashandb-personal-23.2.1.100-linux-x86_64.tar.gz

2. 下载地址

2.1 YMP的参考文档手册:

https://doc.yashandb.com/ymp/23.2/zh/%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2/%E5%AE%89%E8%A3%85%E4%B8%8E%E5%8D%B8%E8%BD%BD.html

2.2YashanDB 相关安装包下载地址

https://download.yashandb.com/download

2.3 OCI下载地址

https://www.oracle.com/cn/database/technologies/instant-client/linux-x86-64-downloads.html

2.4 JDK下载地址(获取最新或旧版本)

https://www.oracle.com/java/technologies/downloads/#java8
https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html

3. 安装前准备

3.1 修改资源限制(root用户下)

# 查看最大用户线程数
ulimit -u

# 执行如下命令使最大用户线程数临时生效,重启后无效
ulimit -u 65536

# 执行执行如下命令将最大用户线程数写入/etc/security/limits.conf文件,重启后参数永久生效
echo "
* soft nproc 65536
* hard nproc 65536
" >> /etc/security/limits.conf
复制

3.2 开放端口

ymp安装的默认端口如下:

YMP监听 数据库监听 主机间通信 yasom yasagent
8090 8091 8092 8093 8094

方式一:关闭防火墙(测试环境,可以考虑关闭)

# 查看是否关闭
[root@dba236 mnt]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2024-04-10 10:25:50 EDT; 1 weeks 5 days ago
     Docs: man:firewalld(1)
 Main PID: 871 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─871 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

Apr 10 10:25:49 dba236 systemd[1]: Starting firewalld - dynamic firewall daemon...
Apr 10 10:25:50 dba236 systemd[1]: Started firewalld - dynamic firewall daemon.
[root@dba236 mnt]# firewall-cmd --add-port=1688/tcp --permanent
success
[root@dba236 mnt]# firewall-cmd --reload
success


# 关闭防火墙
systemctl stop firewalld 

# 关闭开机自启
systemctl disable firewalld
复制

方式二:添加防火墙白名单(建议生产环境,按需开启,安全有放心)

# 查看防火墙已开放端口
firewall-cmd --zone=public --list-ports

# 添加端口到防火墙(以8090为例)
firewall-cmd --zone=public --add-port=8090/tcp --permanent

# 重新加载防火墙策略
firewall-cmd --reload

# 若需删除白名单中的端口,执行
firewall-cmd --zone=public --remove-port=8090/tcp --permanent
复制

3.3 创建用户,用于部署ymp

方式一:不指定参数,默认是/home/ymp

useradd ymp
复制

方式二: 添加用户并指定home目录

useradd -d /home/ymp -m ymp
复制

参数说明:
-d 指定用户的home目录
-m 用户名

设置密码,这个要记住,后续会用到

passwd ymp
复制

3.4 中间件JDK设置

# 解压jdk
[root@vir235 tools]# ll
total 566436
-rw-r--r--. 1 root root  75001234 Apr 22 09:55 instantclient-basic-linux.x64-19.22.0.0.0dbru.zip
-rw-r--r--. 1 root root 139273048 Apr 22 09:41 jdk-8u381-linux-x64.tar.gz
-rw-r--r--. 1 root root  197559542 Apr 23 01:25 yashandb-personal-23.2.1.100-linux-x86_64.tar.gz
-rw-r--r--. 1 root root 168188485 Apr 22 09:34 yashan-migrate-platform-v23.2.1.0-linux-x86-64.zip
[root@vir235 tools]# tar xf jdk-8u381-linux-x64.tar.gz

# 设置环境变量,加入/etc/profile到末尾
echo "
export JAVA_HOME=/mnt/tools/jdk8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
" >> /etc/profile

# 重新加载配置文件
source /etc/profile

# 验证
[root@vir235 bin]# java -version
java version "1.8.0_381"
Java(TM) SE Runtime Environment (build 1.8.0_381-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.381-b09, mixed mode)

复制

3.5 OCI环境设置(oracle迁移到yashanDB必备)

PS: ymp仅支持OCI 19.19.0.0及以上版本

mv instantclient-basic-linux.x64-19.22.0.0.0dbru.zip /mnt/
cd /mnt
unzip instantclient-basic-linux.x64-19.22.0.0.0dbru.zip

修改安装包及目录
chown -R ymp:ymp instantclient_19_22
复制

3.6 安装依赖包 libaio

# 查看是否已安装libaio动态库
 rpm -qa | grep libaio

# 若未有版本信息打印,安装libaio
 yum install -y libaio
复制

4. 安装ymp(使用内置库方式)

内置库:安装ymp的同时,安装yashanDB作为ymp的业务库(应用+数据库)

4.1 安装包的权限及解压

# 修改安装包所属用户及组
chown -R ymp:ymp  yashan-migrate-platform-v23.2.1.0-linux-x86-64.zip

# 却换用户及解压
su - ymp

# 解压
unzip yashan-migrate-platform-v23.2.1.0-linux-x86-64.zip
复制

4.2 安装配置文件说明(本次按默认参数安装)

[root@vir235 mnt]# ll yashan-migrate-platform/conf/
total 12
-rw-r--r--. 1 ymp ymp 6344 Apr  8 06:37 application.properties
-rw-r--r--. 1 ymp ymp  120 Apr  8 06:37 db.properties
复制

db.properties:内置库配置信息,包含端口,内置库密码,字符集
application.properties:ymp 的配置信息,端口,连接数据库信息等等

4.3 安装内置库和OCI客户端并启动YMP

cd /mnt/yashan-migrate-platform
sh bin/ymp.sh install --db /mnt/yashandb-personal-23.2.1.100-linux-x86_64.tar.gz --path /mnt/instantclient_19_22/
复制

image.png

4.4 查看ymp状态

[ymp@vir235 yashan-migrate-platform]$ sh bin/ymp.sh status
YMP is running, pid is 29191.
Built-in database is used, pid is 28964.
复制

4.5 查看ymp的版本

[ymp@vir235 yashan-migrate-platform]$ sh bin/ymp.sh -v
Yashan-migrate-platform version: Release v23.2.1.0
YashanDB SQL Personal Edition Release 23.2.1.100 x86_64
YashanDB Loader Personal Edition Release 23.2.1.100 x86_64 2d13f1d
复制

5. 从Oracle 迁移数据到YashanDB

登录

登录YMP平台,地址IP:PORT,默认端口8090,默认账号密码admin/admin
输入默认密码登录,提示修改账号密码,密码强度要求:密码长度范围8~32个字符,必须包含大小写字母、数字和特殊字符
(安全!安心)
image.png

登录进来,2个页签:任务管理和数据源管理

5.1【数据源管理】-> 添加数据源

PS: 配置完后,顺手做下“测试连接”,确定连通性

1、源端配置(配置连接、端口、账号密码信息)
image.png

目标端配置
image.png

5.2 任务管理

5.2.1 创建任务

定义任务名称,选择源端数据库,勾选 “评估建议”,并选择“内置库”,全选“评估对象”
有此也可以知道,当前版本支持12种对象包含:
表、约束、索引、视图、序列、物化视图、同义词、触发器、自定义类型、自定义函数、包、存储过程

image.png

选择评估的范围(这里是选择需要迁移的schema),及其他设置
image.png

5.2.2 迁移评估

评估很快,大概一分钟的时间,具体依据源库的大小
评估中:
image.png

评估完成,有此可见兼容性100%,点击下一步
image.png

5.2.3 迁移配置

(1)全选所有对象类型,并配置初始化配置

image.png

image.png

(2)点击下一步,预检查,发现有版本及表空间红色提示“检查未通过”,这类是必须解决的;黄色“警告”自我评估后,可以忽略

image.png

(3)点击“查看详细”,提示“目标端表空间容量符合迁移要求。目标端表空间TS_BG不存在,可能导致迁移失败。”

-- 需要手动创建 SQL> create tablespace TS_BG; create tablespace TS_BG;
复制

(4)警告:OCI版本不一致,这个可以忽略
image.png

(5)数据类型不一致(影响不大)
image.png

数据类型不匹配提示,点击详细,会下载具体的内容到本地,打开详细如下:

TIMESTAMP类型:Oracle范围'-4712-01-01 00:00:00.000000000' ~ '9999-12-31 23:59:59.999999999',YashanDB范围'0001-01-01 00:00:00.000000' ~ '9999-12-31 23:59:59.999999',超范围数据迁移时可能有风险。
DATE类型:Oracle范围'-4712-01-01 00:00:00' ~ '9999-12-31 23:59:59',YashanDB范围'0001-01-01 00:00:00' ~ '9999-12-31 23:59:59',超范围数据迁移时可能有风险。
不存在有风险的自定义类型。
复制

5.2.4 离线迁移

迁移很快速度很快,点赞
image.png

5.2.5 校验初始化

没啥好说的,全选对象,点击校验

5.2.6 一致性校验(一致占比占比还是很高的)

image.png

(1)【忽略】跳过的表3张,由于表中存在clob字段,不支持校验
66c5d2be571f5b6fc58d1ff3f196bd1.png

(2)【关注】不一致表数据,字段类型为:DOUBLE,查看详细,有一行记录(手工比对了源表及目标端表,其实是5条记录)

image.png
如下图,左边是源端,右边是目标端
image.png
问题解决:手动更新;并求小崖老师关注

6. 常见问题处理

6.1 数据配置测试连接不通的问题

数据源测试连接失败 2024-04-23 13:50:00
YASHANDB数据源[yahandb]获取连接异常:The connection attempt failed.
复制

image.png
问题处理:
1)确认账号密码是否正确,在原服务器上登录测试
2)确认端口是否开放,若防火墙已开,开放数据库端口

6.2 版本不一致问题

85ed74d67b78f193c643850db339199.png
(1)OCI版本不一致告警,可忽略
(2)数据库版本检查:评估数据库版本(23.2.1.100)与目标端数据库版本(23.1.1.100)不一致,这个必须解决

7. 问题反馈(看是否优化)

7.1 【迁移配置】“距上次评估” 时间不太准

image.png

实际是应该是 3分21秒,而提供的是12时3分21秒;
可能与服务器的时区有关,本地时区北京时间,而服务器上是 EDT 2024

7.2 数据类型DOUBLE 的精度问题

如上 5.2.6 (2)所示。
接下来我们做个double数据类型的测试,发现直接插入的数据是没有问题的,数据对double支持这个精度

SQL> create table t(id int,b double); Succeed. SQL> insert into t values(1,116.395438068289); 1 row affected. SQL> insert into t values(2,5.123456789123456); 1 row affected. SQL> commit; Succeed. SQL> select id,to_char(b) from t; ID TO_CHAR(B) ------------ --------------------------------------------- 1 1.16395438068289E+002 2 5.1234567891234564E+000 2 rows fetched.
复制

写在最后的话:整个ymp的安装和迁移还是很顺利的,迁移的结果也很喜人。

更多ycp的文章,请关注:
YashanDB YCP 培训笔记之内置函数

最后修改时间:2024-08-19 20:06:01
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

慢慢
关注
暂无图片
获得了14次点赞
暂无图片
获得了1次收藏
TA的专栏
目录
  • 1. 部署环境
  • 2. 下载地址
    • 2.1 YMP的参考文档手册:
    • 2.2YashanDB 相关安装包下载地址
    • 2.3 OCI下载地址
    • 2.4 JDK下载地址(获取最新或旧版本)
  • 3. 安装前准备
    • 3.1 修改资源限制(root用户下)
    • 3.2 开放端口
    • 3.3 创建用户,用于部署ymp
    • 3.4 中间件JDK设置
    • 3.5 OCI环境设置(oracle迁移到yashanDB必备)
    • 3.6 安装依赖包 libaio
  • 4. 安装ymp(使用内置库方式)
    • 4.1 安装包的权限及解压
    • 4.2 安装配置文件说明(本次按默认参数安装)
    • 4.3 安装内置库和OCI客户端并启动YMP
    • 4.4 查看ymp状态
    • 4.5 查看ymp的版本
  • 5. 从Oracle 迁移数据到YashanDB
    • 登录
    • 5.1【数据源管理】-> 添加数据源
    • 5.2 任务管理
      • 5.2.1 创建任务
      • 5.2.2 迁移评估
      • 5.2.3 迁移配置
      • 5.2.4 离线迁移
      • 5.2.5 校验初始化
      • 5.2.6 一致性校验(一致占比占比还是很高的)
  • 6. 常见问题处理
    • 6.1 数据配置测试连接不通的问题
    • 6.2 版本不一致问题
  • 7. 问题反馈(看是否优化)
    • 7.1 【迁移配置】“距上次评估” 时间不太准
    • 7.2 数据类型DOUBLE 的精度问题