「YashanDB迁移体验官」Oracle向YashanDB迁移的丝滑体验

📢📢📢📣📣📣
作者:IT邦德
中国DBA联盟(ACDU)成员,10余年DBA工作经验,
Oracle、PostgreSQL ACE
CSDN博客专家及B站知名UP主,全网粉丝10万+
擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复,
安装迁移,性能优化、故障应急处理

文章目录

  • 前言
    • 📣 1.YMP介绍
    • 📣 2.YMP的下载
    • 📣 3.安装前准备
      • ✨ 3.1 服务器配置
      • ✨ 3.2 操作系统参数调整
      • ✨ 3.3 创建用户
      • ✨ 3.4 JDK环境准备
      • ✨ 3.5 libaio动态库
      • ✨ 3.6 OCI环境准备
      • ✨ 3.7 YashanDB准备
    • 📣 4.安装YMP
      • ✨ 4.1 解压安装包
      • ✨ 4.2 安装参数调整
      • ✨ 4.3 执行安装
      • ✨ 4.4 默认内置库安装YMP
      • ✨ 4.5 运行状态
      • ✨ 4.6 访问YMP
      • ✨ 4.7 启动与停止
    • 📣 5.Oracle迁移到yanshan
      • ✨ 5.1 添加数据源
      • ✨ 5.2 创建任务
      • ✨ 5.3 迁移配置
      • ✨ 5.4 离线迁移
      • ✨ 5.5 一致性校验
    • 📣 6.迁移后体验

前言

通过YMP平台将oracle数据库迁移到yashandb数据库的心得体会

📣 1.YMP介绍

YashanDB提供一站式数据迁移平台YMP(Yashan Migration Platform),支持异构数据库和YashanDB之间的数据迁移,帮助用户便捷地将旧业务系统迁移至YashanDB
崖山数据迁移平台YMP(Yashan Migration Platform),主要覆盖业务场景:
1.评估:分析评估YashanDB与现有数据库系统的兼容情况
2.迁移:对象、数据一键快速迁移

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

image.png

📣 2.YMP的下载

从官网上下载YashanDB Personal 23.2.1及YMP 23.2.1安装包
https://download.yashandb.com/download

image.png

📣 3.安装前准备

✨ 3.1 服务器配置

项目说明
系统CentOS 7.6以上、KylinOS V10
架构X86-64/ARM-64
CPU4核及以上
内存8G及以上
磁盘SSD(建议不小于待同步表中的最大单表数据量的三倍)

✨ 3.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

✨ 3.3 创建用户

创建一个用户用于安装YMP,以YMP为例,在用户创建和授权后,后续所有安装步骤均在该用户下操作。
新建YMP用户
useradd -d /home/ymp -m ymp
passwd ymp

✨ 3.4 JDK环境准备

YMP仅支持在JDK8或JDK11的环境下安装。
通过Java官方路径下载上述版本的JDK并安装成功后,还需配置如下环境变量:1.下载Linux环境下的jdk1.8
https://www.oracle.com/java/technologies/downloads/#java82.JDK压缩包解压
tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local3.环境变量导入
[root@localhost local]# vim /etc/profileexport JAVA_HOME=/usr/local/jdk1.8.0_181  #jdk安装目录
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}##环境变量生效
[root@localhost local]# source /etc/profile##确认安装是否成功
[root@localhost local]# javac
[root@localhost local]# java -version

✨ 3.5 libaio动态库

YMP运行需要libaio动态库。
# 查看是否已安装libaio动态库
[root@centos79 ~]# rpm -qa | grep libaio
libaio-0.3.109-13.el7.x86_64
#若未有版本信息打印,安装libaio
yum install -y libaio

✨ 3.6 OCI环境准备

如需要使用Oracle到YashanDB的数据迁移功能,请进行OCI环境安装。
准备OCI环境需从Oracle官网 (opens new window)下载OCI客户端并依据官网所列步骤进行安装。
https://www.oracle.com/cn/database/technologies/instant-client
https://www.oracle.com/cn/database/technologies/instant-client/linux-x86-64-downloads.html
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/路径。
#修改安装包所属用户及用户组为ymp用户
chown ymp:ymp instantclient*# 从root用户切换至ymp用户
su - ymp# 切换至安装路径
cd /home/ymp# 解压OCI安装包
unzip instantclient-basic-linux.x64-19.19.0.0.0dbru.el9.zip

✨ 3.7 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;

📣 4.安装YMP

✨ 4.1 解压安装包

上传YMP安装包至/home/ymp目录下然后解压:[root@centos79 opt]# cp yashan-migrate-platform-v23.2.1.0-linux-x86-64.zip /home/ymp
[root@centos79 opt]# chown ymp:ymp /home/ymp/yashan-migrate-platform-v23.2.1.0-linux-x86-64.zip# 切换至YMP安装目录
su - ymp
unzip yashan-migrate-platform-v23.2.1.0-linux-x86-64.zip

✨ 4.2 安装参数调整

依据实际需要对默认内置库安装及YMP启动参数进行调整。[ymp@centos79 conf]$ pwd
/home/ymp/yashan-migrate-platform/conf默认内置库安装配置文件:
# db.properties
YASDB_PASSWORD=ymppw602. # 默认内置库sys用户默认密码
YASDB_PORT=8091 # 默认内置库默认端口号
YASDB_CHARACTER_SET=UTF8 # 默认内置库字符集,还可选择ASCII, ISO88591, GBK#YMP配置文件
# conf/application.properties

✨ 4.3 执行安装

您可通过以下命令查看脚本参数及其使用方法:su - ypm
cd /home/ymp/yashan-migrate-platform/
sh bin/ymp.sh -h[ymp@centos79 yashan-migrate-platform]$ sh bin/ymp.sh -hUsages: ./ymp.sh [<flags>] <command>Yashan-migrate-platform version: Release v23.2.1.0Flags:-h,--help                   Show detailed help information-v,--version                Show Yashan-migrate-platform version informationCommonly used commands:install                     Initialize YMP with the built-in database and start--db <package path>       new yashandb and yasldr package path[ --path <oci path> ]       absolute path of the OCI installationrestart                     Restart YMP with the built-in database,status                      View status of YMP and built-in databaseuninstall [ param ]         Uninstall the built-in database,-f               force clean the environmentOther commands:start                       Start YMP with the built-in databasestop                        Stop YMP with the built-in databasestartnodb                   Start YMP with external databasestopnodb                    Stop YMP with external databaserestartnodb                 Restart YMP with external database,replace                     Replace yasldr version,--yasldr <package path>    new yasldr package pathinstallnodb                 Initialize YMP with external database and start--db <package path>        new yasldr package path[ --path <oci path> ]       absolute path of the OCI installation

✨ 4.4 默认内置库安装YMP

YMP安装时按默认方式自行安装YashanDB作为内置库。默认内置库相关信息:部署形态:单机
集群名称:ymp
安装目录:/home/ymp/yashan-migrate-platform/db安装内置库和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_19

image.png

✨ 4.5 运行状态

[ymp@centos79 yashan-migrate-platform]$  cd /home/ymp/yashan-migrate-platform/
[ymp@centos79 yashan-migrate-platform]$ sh bin/ymp.sh status
YMP is running, pid is 4353.
Built-in database is used, pid is 4260.查看版本
cd /home/ymp/yashan-migrate-platform/
sh bin/ymp.sh -v

image.png

✨ 4.6 访问YMP

访问方式:http://IP:PORT/,PORT默认8090,初始账户名和密码是(admin/admin)
http://192.168.3.10:8090

image.png

✨ 4.7 启动与停止

1.默认内置库启动YMP:
cd /home/ymp/yashan-migrate-platform/
sh bin/ymp.sh start2.默认内置库停止YMP:
cd /home/ymp/yashan-migrate-platform/
sh bin/ymp.sh stop3.默认内置库重启YMP:
cd /home/ymp/yashan-migrate-platform/
sh bin/ymp.sh restart

image.png

📣 5.Oracle迁移到yanshan

--模拟生成数据
/usr/local/swingbench/bin/oewizard  -s -create \
-c /usr/local/swingbench/wizardconfigs/oewizard.xml -create \
-version 2.0  -cs //192.168.3.10/orcl  \
-dba "sys as sysdba" -dbap oracle -dt thin \
-ts users -u rptadm -p oracle -allindexes  -scale 0.0001  -tc 1  -v -cl--Oracle查询数据
select object_type,count(*) from dba_objects where owner='RPTADM' 
group by object_type;

image.png

✨ 5.1 添加数据源

在创建任务之前,需要先添加数据源信息
在这里我们分别添加Oracle和yashaDB的数据源

image.png

image.png

✨ 5.2 创建任务

点击【+ 创建任务】,输入任务名称,选择源端数据库,选择是否评估及评估数据库。

image.png

下载评估报告,整个评估过程非常的详细,会详细的列出不兼容的对象,然后可以通过对象详请,进行DDL对比处理即可

image.png

image.png

✨ 5.3 迁移配置

源端数据源连接用户需要赋予迁移平台所需权限,目标端YashanDB数据源连接用户需要赋予DBA权限。
点击【下一步:迁移配置】,选择目标端数据库及选择需要迁移的步骤,有个预检查,会进行检查,最后提示确认

image.png

image.png

✨ 5.4 离线迁移

点击【下一步:离线迁移】,跳转至迁移动态界面,可查看、下载日志,迁移完成后可下载报告。在这个过程中,表,约束、索引等迁移进度我们随时可以跟踪,迁移是否OK都罗列的非常详细,还可以看到迁移到进度,本次迁移到数据量是300MB左右,首先会迁移元数据,然后在迁移数据

image.png

image.png

我们发现迁移失败都是一些索引及约束,是一些语法不兼容的问题,在目标库YashanDB重建即可,接下来校验初始化即可。

✨ 5.5 一致性校验

image.png

📣 6.迁移后体验

yashandb整个的官方文档写的还是蛮详细的,本次整个过程是也参考了官方,结合yashan的公众号有专家们的实战技能分享,才得以完成整个的一个迁移,在配置过程中,每一步有详细报告,如迁移评估报告,迁移报告,校验报告,这些报告详细的记录了迁移前的兼容情况,不兼容的可以根据实际情况修改,迁移失败的也可以根据日志解决错误,从而完成数据库的迁移工作。

我之前也体验过其他国产数据库的迁移,相比较而言,yashandb目前只有离线的全量迁移,目前生产的业务场景停机时间要求非常严格,希望能增加在线全量、增量迁移,如果能够做到实时同步,那就更完美了,迁移之后如果有问题,能够做到数据反向逃生也是很好的。

总体而言,YashanDB的这一款迁移工具YMP,界面功能齐全,简洁美观,是一款非常不错的跨平台的迁移工具,国产数据库缺的是用户和更多应用场景,YashanDB加油!国产数据库加油!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/833578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一起深度学习

CIFAR-10 卷积神经网络 下载数据集构建网络运行测试 下载数据集 batchsz 32cifar_train datasets.CIFAR10(data,trainTrue,transformtorchvision.transforms.Compose([torchvision.transforms.Resize((32,32)),torchvision.transforms.ToTensor()]),downloadTrue)cifar_train …

数据结构-线性表-应用题-2.2-6

从有序顺序表中删除所有其值重复的元素&#xff0c;使表中的元素的值均不同 有序顺序表&#xff0c;值相同的元素一定在连续的位置上&#xff0c;初始时将第一个元素是为非重复的有序表&#xff0c;之后依次判断后面的元素是否与前面的非重复表的最后一个元素相同&#xff0c;…

【北京迅为】《iTOP-3588开发板快速烧写手册》-第3章 烧录完整升级固件update.img

RK3588是一款低功耗、高性能的处理器&#xff0c;适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用&#xff0c;RK3588支持8K视频编解码&#xff0c;内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

STM32控制DS1302时钟模块获取实时时间

欢迎入群共同学习交流 时间记录&#xff1a;2024/4/30 一、知识点 &#xff08;1&#xff09;读写数据时序&#xff08;伪SPI协议&#xff09; 1.1 读写时序默认电平均为SCLK线低电平&#xff0c;CE线低电平 1.2 写数据&#xff0c;CE线拉高为高电平&#xff0c;开始传输数据…

Flutter笔记:美工设计.导出视频到RIVE

Flutter笔记 美工设计.导出视频到RIVE - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28…

华为eNSP中型企业局域网网络规划设计(上)

敲半天一个闪退全™给我干没了呜呜呜&#xff0c;eNSP&#xff0c;wcnm&#xff01;wcnm&#xff01;wcnm&#xff01; →b站传送门&#xff0c;感谢大佬← →华为eNSP中型企业局域网网络规划设计&#xff08;下&#xff09;← →拓扑图传送门&#xff0c;可以自己配置着玩←…

Vue从入门到实战Day01

一、Vue快速上手 1. vue概念 概念&#xff1a;Vue是一个用于 构建用户界面的 渐进式 框架 构建用户界面&#xff1a;基于数据动态渲染页面渐进式&#xff1a;循序渐进的学习框架&#xff1a;一套完整的项目解决方案&#xff0c;提升开发效率 优点&#xff1a;大大提升开发效…

【Debug日记】albumentations包安装失败解决方案

直接pip安装pip install albumentations 报错&#xff1a; ERROR: Command errored out with exit status 1:command: D:\anaconda3\envs\pytorch\python.exe D:\anaconda3\envs\pytorch\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py build_wheel C:\Users…

责任链模式和观察者模式

1、责任链模式 1.1 概述 在现实生活中&#xff0c;常常会出现这样的事例&#xff1a;一个请求有多个对象可以处理&#xff0c;但每个对象的处理条件或权限不同。例如&#xff0c;公司员工请假&#xff0c;可批假的领导有部门负责人、副总经理、总经理等&#xff0c;但每个领导…

C语言——每日一题(轮转数组)

一.前言 前不久学习了时间复杂度的概念&#xff0c;便在力扣上刷了一道需要参考时间复杂度的题——轮转数组 https://leetcode.cn/problems/rotate-array/submissions这道题不能使用暴力算法&#xff0c;因为这道题对时间复杂度的要求不能为O&#xff08;N^2&#xff09;。因…

Tansformer原理解读

什么是注意力机制 生物学中的注意力机制是指人类或动物能够选择性地将感知和认知资源集中到某些信息或任务上的能力。这种能力允许我们在众多信息的背景中过滤出重要的信息&#xff0c;并将这些信息传递给相应的神经元进行处理。 本质&#xff1a;能从中抓住重点&#xff0c;…

一个好用的短链接都需要具备哪些功能?

大家好&#xff0c;今天我们将会来聊聊一款优秀的短链接&#xff0c;都需要具备的功能&#xff0c;看看是不是你想要的呢&#xff1f; 1. 能够支持自定义域名 现在越来越多的用户都不会选择公用域名了&#xff0c;因为那样风险太大&#xff0c;而会选择用一个他们自己的专用域…

自动控制原理MATLAB:系统分析

控制系统时域分析 &#xff08;1&#xff09;稳定性分析 稳定是控制系统的重要性能&#xff0c;也是系统设计过程中的首要问题。线性系统稳定的充分必要条件是&#xff1a;闭环系统特征方程的所有根均具有负实部。在MATLAB中可以调用roots命令求取特征根&#xff0c;进而判别…

C#实战—代码实现收发文件智能化

在信息化的今天&#xff0c;收发电子文档几乎是每个朋友都要经历的事情。比如班级学委和班长需要收发作业&#xff0c;企业管理者需要收发工作文件。但是&#xff01;&#xff01;&#xff01; 每到要交结果时&#xff0c;往往会发现总会有一些人没有即使交上&#xff0c;50个…

8W 1.5KVDC 隔离宽电压输入 DC/DC 电源模块——TP08DA 系列

TP08DA系列电源模块额定输出功率为8W&#xff0c;外形尺寸为31.80*20.30*10.00&#xff0c;应用于2&#xff1a;1&#xff0c;4:1电压输入范围 9-18V,18-36V,36-72V9V-36V和18V-72VDC的输入电压环境&#xff0c;输出电压精度可达1%&#xff0c;具有输出短路保护等功能&#xff…

图卷积神经网络GCN

计算图 通过消息传递的框架构建一个局部邻域的计算图 每个节点分别构建自己的计算图 理论上任意深度&#xff0c;根据六度空间理论&#xff0c;层数一般不会超过六层 基本过程 数学形式 矩阵表示 代码表示 图计算改进 能够听见自己内心的声音 最终形式 如何训…

windows端口复用

1. 概述 使用 HTTP.sys 中的 Net.tcp Port Sharing 服务&#xff0c;配合 WinRM 实现端口复用。 优点&#xff1a; HTTP.sys 为 windows 原生机制&#xff0c; WinRM 为 windows 自带功能&#xff0c;动作较小&#xff0c;不易触发主 动防御。 需要管理员权限。 2. 原理 (…

鞋店小程序商城的作用是什么

鞋与服装一样其购买/复购属性都非常足&#xff0c;每个人生活所需无疑促进了品牌多样化、工厂/店铺商家/个人都有很多&#xff0c;其目的都是为了品牌宣传和将更多货卖给下游/客户。 对消费者来说&#xff0c;买鞋渠道线上线下选择比较多&#xff0c;普遍会以品牌为主&#xf…

✬ ✬ ✬ 宁波推进ISO14000认证:共创美好生态家园✬ ✬ ✬

&#x1f308;&#x1f308;宁波推进ISO14000认证&#xff0c;&#x1f349;共创美好生态家园&#x1f929; &#x1f603;哇&#xff01;宁波这个大都市&#x1f353;真的在努力推进&#x1f688;ISO14000认证啊&#xff01;&#x1f6b5;‍♀️作为一个环保爱好者&#xff0…

文本批量操作实例:如何实现文本批量拆分?实用方法与技巧分享

在文本处理和数据分析的过程中&#xff0c;我们经常会遇到需要批量拆分大量文本数据的情况。文本批量拆分能够大大提高工作效率&#xff0c;减少重复劳动。下面&#xff0c;我们将通过一个实例来介绍如何实现文本批量拆分&#xff0c;并分享一些实用方法与技巧。 一、实例背景 …