【YashanDB迁移体验官】YMP迁移oracle数据库快速入门指南

1.YMP简介

YMP是一个由崖山提供的面向oracle、mysql、dm的数据库迁移工具。用户可以通过简单的界面化操作,轻松实现oracle到yashandb、mysql到yashandb、dm到yashandb的数据迁移操作。本文档介绍使用YMP迁移oracle到yashandb的完整过程。

2.环境准备

操作系统:CentOS 7

oracle(源端数据库):oracle19c
在这里插入图片描述

yashandb(目的端数据库):23.2.1.100
在这里插入图片描述

下载yashandb内置库包(和目标端版本相同):yashandb-personal-23.2.1.100-linux-x86_64.tar.gz
yashandb下载

下载并解压oci包(需要19.19.0.0.0版本以上):instantclient-basic-linux.x64-19.19.0.0.0dbru.el9.zip
oracle_oci下载

下载并解压YMP包:yashan-migrate-platform-v23.2.1.2-linux-x86-64.zip
YMP下载

解压后目录如下:
在这里插入图片描述




3.安装

YMP安装时,默认会安装部署一个内置yashandb数据库(简称内置库),用于评估数据库兼容性;同时YMP数据迁移过程会创建一些表,记录相关任务信息,这些表也保存在内置库中。
如果不使用默认安装的内置库,用户可以使用本地已有的数据库(注意:不能是目标端数据库)作为内置库,安装方法见使用已有数据库安装

3.1修改内置库的sys密码

[ymp@AchorBase YMP]$ cd yashan-migrate-platform
[ymp@AchorBase yashan-migrate-platform]$ ./bin/ymp.sh password --sys yasdb_123
Password has been changed successfully!

3.2修改配置文件

db.properties保存内置库的相关信息,可以根据实际需要进行修改。

YASDB_PASSWORD是内置库的sys用户密码(密文形式)
YASDB_PORT是内置库的端口,默认是8091
YASDB_CHARACTER_SET是内置库的字符集,默认是utf8

[ymp@AchorBase YMP]$ cat yashan-migrate-platform/conf/db.properties
YASDB_PASSWORD=3uplbtbnyZ5XFRtpg5F5JQ==
YASDB_PORT=8091
YASDB_CHARACTER_SET=UTF8
## character_set optional: UTF8, ASCII, ISO88591, GBK


application.properties保存YMP的相关信息,可以根据实际需要进行修改。

server.port是YMP的监听端口,默认是8090
spring.datasource.username是YMP访问内置库时使用的用户,YMP安装内置库时会自动创建YMP_DEFAULT用户
spring.datasource.username是YMP_DEFAULT用户的密码(密文形式,部署后可以通过alter user修改)

[ymp@AchorBase YMP]$ cat yashan-migrate-platform/conf/application.properties
# YMP服务端口
server.port=8090

# 用户登录后空闲过期时间,单位秒(s),默认15分钟
shiro.session.timeout=900
# YMP使用的最大堆内存,支持按绝对内存指定(如:4G)和按物理机实际内存的百分比指定(如:50%)
ymp_memory=50%
# YMP使用的堆外内存,单位: GB
ymp_direct_memory=2
# YMP使用的时区ID
time_zone_id=GMT+8:00

# ========================================YMP内置库=============================================
# YMP内置库连接信息
spring.datasource.url=jdbc:yasdb://127.0.0.1:8091/yashan
spring.datasource.username=YMP_DEFAULT
spring.datasource.password=BPZ0VmrxlFoUgfm1UOS2pg==
spring.datasource.largePoolSize=64M
spring.datasource.cursorPoolSize=64M

  • 注意:使用YMP安装内置库时,需要确保8091-8094端口不被占用

3.2安装YMP

# install
[ymp@AchorBase yashan-migrate-platform]$ ./bin/ymp.sh install --db ../yashandb-personal-23.2.1.100-linux-x86_64.tar.gz --path ../instantclient_19_19
checking install profile.toml...
install version: yashandb 23.2.1.100
update host to yasom...
YMP started successfully!

# 查看YMP状态
[ymp@AchorBase yashan-migrate-platform]$ ./bin/ymp.sh status
YMP is running, pid is 22420.
Built-in database is used, pid is 22289.
[ymp@AchorBase yashan-migrate-platform]$

# 环境变量生效
[ymp@AchorBase ~]$ source .bashrc


3.3修改ymp_default用户的密码

[ymp@AchorBase ~]$ yasboot sql -c ymp -u sys -p yasdb_123 -n 1-1 -s "alter user ymp_default identified by yasdb_123"

Succeed.



4.使用YMP迁移数据

4.1登录

http://YMP机器ip:8090/,初次登录的用户、密码都是admin
在这里插入图片描述


4.2添加数据源

填写oracle(源端数据库)连接信息,使用dba用户进行连接
填写yashdb(目标端数据库)连接信息,使用dba用户进行连接
在这里插入图片描述


4.3创建任务

在这里插入图片描述
在这里插入图片描述

选择需要的操作,可以全选也可以只选择其中一个

  • 评估:评估源端和目标端的数据是否兼容
  • 迁移:进行数据迁移
  • 校验:校验源端和目标端的数据是否一致

4.4评估

评估数据库选择内置库,评估对象全选,评估范围选择源端的两个schema:MAP001和MAP002,其他选项可以默认。
*注意:如果选择外置库,外置库不能是目标端数据库
在这里插入图片描述

点击下一步会得到评估结果,结果不是100%兼容则无法进行下一步,需要手动修改ddl或者选择忽略该对象,然后刷新报告
在这里插入图片描述


4.5迁移

迁移的对象:默认是全部迁移,可以手动修改成不迁移
在这里插入图片描述

表空间初始化:默认跳过表空间的初始化。如果目标端表空间不存在,无法进行下一步操作,需要手动改成不跳过
在这里插入图片描述

其他选项可以默认。点击下一步,开始迁移,得到迁移迁移报告。
在这里插入图片描述


4.6校验

选择需要校验的schema和对象,默认选择校验全部对象
在这里插入图片描述


点击下一步,开始校验,得到校验报告
在这里插入图片描述

其中,表TEST显示跳过,点击查看结果可以看到跳过原因是表中无主键
在这里插入图片描述

以下情况可能导致无法校验或校验失败:

  • 目标端表无主键、唯一键约束
  • 源端和目标端有不支持的数据类型
  • 目标端表不存在
  • 源端表和目标端表的结构不一致
  • 源端和目标端数据不一致



5.使用已有数据库安装

# 修改配置文件
[ymp@AchorBase yashan-migrate-platform]$ ./bin/ymp.sh connection --url 192.168.1.10:1688 --username regress --password regress
Connection information has been changed successfully!

# 安装installnodb
[ymp@AchorBase yashan-migrate-platform]$ ./bin/ymp.sh installnodb --db ../yashandb-personal-23.2.1.100-linux-x86_64.tar.gz --path ../instantclient_19_19
YMP started successfully!

# 检查状态
[ymp@AchorBase yashan-migrate-platform]$ ./bin/ymp.sh status
YMP is running, pid is 22744.
Built-in database is not used!




6.问题记录

1.迁移时报错目标端数据库被评估任务占用。
原因:评估时选择了目标端数据库作为外置库
修改:返回评估步骤,修改评估数据库后重新评估,重新迁移。如果评估任务是单独的,可以直接删除评估任务,然后重新迁移。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值