「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/#java8

2.JDK压缩包解压
tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local

3.环境变量导入
[root@localhost local]# vim /etc/profile

export 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 -h

Usages: ./ymp.sh [<flags>] <command>

Yashan-migrate-platform version: Release v23.2.1.0

Flags:
    -h,--help                   Show detailed help information
    -v,--version                Show Yashan-migrate-platform version information

Commonly 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 installation
    restart                     Restart YMP with the built-in database,
    status                      View status of YMP and built-in database
    uninstall [ param ]         Uninstall the built-in database,
                 -f               force clean the environment


Other commands:
    start                       Start YMP with the built-in database
    stop                        Stop YMP with the built-in database
    startnodb                   Start YMP with external database
    stopnodb                    Stop YMP with external database
    restartnodb                 Restart YMP with external database,
    replace                     Replace yasldr version,
       --yasldr <package path>    new yasldr package path
    installnodb                 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 start


2.默认内置库停止YMP:
cd /home/ymp/yashan-migrate-platform/
sh bin/ymp.sh stop

3.默认内置库重启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加油!国产数据库加油!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据可视化-01】Matplotlib图形实战宝典

在数据分析领域&#xff0c;图形化展示数据是非常重要的环节。Python中的matplotlib库是绘制各类图形的强大工具。本文将介绍如何使用matplotlib绘制折线图、直方图、饼图、散点图和柱状图等数据分析中常见的图形&#xff0c;并附上相应的代码示例&#xff0c;可以当初matplotl…

GD32F103RCT6/GD32F303RCT6(9)高级定时器互补PWM波输出实验

本文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发 后续项目主要在下面该专栏中发布&#xff1a; 手把手教你嵌入式国产化_不及你的温柔的博客-CSDN博客 感兴趣的点个关注收藏一下吧! 电机驱动开发可以跳转&#xff1a; 手把手教你嵌入式国产化-实战项目-无刷电机驱动&am…

第 8 章 电机测速(自学二刷笔记)

重要参考&#xff1a; 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 8.3.3 电机测速01_理论 测速实现是调速实现的前提&#xff0c;本节主要介绍AB相增量式编码器测速原理。 1.概…

深度学习——前馈全连接神经网络

前馈全连接神经网络 1.导入需要的工具包2.数据导入与数据观察&#xff08;1&#xff09;读取csv的文件信息&#xff1a;&#xff08;2&#xff09;训练数据前5行&#xff08;3&#xff09;打印第一个图&#xff08;4&#xff09;观察数据中的信息&#xff08;5&#xff09;查看…

浏览器输入URL到页面展示的过程详解

重点面试题&#xff1a;当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来&#xff0c;经历了什么&#xff1f; step 1、URL解析 URL&#xff1a;internet上的每一个网页都具有一个唯一的名称标识&#xff0c;通常称之为URL&#xff08;Uniform Resource Locator…

2024蓝桥杯网络安全部分赛题wp

爬虫协议 题目给了提示访问robots.txt 会出三个目录 访问最后一个 点进去就flag{22560c15-577c-4c8b-9944-815473758bad} packet 下载附件&#xff0c;这个是流量包 放wireshark流量分析 搜http协议 发现有cat flag命令&#xff0c;直接看他返回的流量 最后base64解码即可…

C++|多态(虚函数、抽象类、多态原理)

目录 一、多态的概念及构成 1.1概念 1.2多态的构成条件(继承虚函数) 二、虚函数和虚函数重写 2.1虚函数和虚函数重写的概念 2.2虚函数的"异变"(协变析构重写) 2.3虚函数的扩展(overridefinal) 2.4重载、重写(覆盖)、隐藏(重定义)的对比 三、抽象类 3.1概念…

43.乐理基础-拍号-常见的拍号与强弱关系

首先拍号的定义&#xff1a;39.认识音符、40.什么是一拍、41.小节、小节线、终止线、42.看懂拍号的意义 通过 39.认识音符、40.什么是一拍、41.小节、小节线、终止线、42.看懂拍号的意义 应该可以知道 Y的取值只能是2、4、8、16、32、64。。。。因为Y指的是Y分音符&#xff0c;…

树莓派4b测量PM2.5

1.GP2Y1010AU0F粉尘传感器连接图 2. GP2Y1010AU0F工作原理 工作原理 传感器中心有个洞可以让空气自由流过,定向发射LED光,通过检测经过空气中灰尘折射过后的光线来判断灰尘的含量。 3.源代码 main.py # coding=UTF-8 import RPi.GPIO as GPIO from ADC import ADS1015…

【进程等待】是什么 | 为什么 | 怎么办 | wait阻塞等待

目录 进程等待是什么&#xff1f; 为什么要进程等待&#xff1f; 如何进程等待&#xff1f; wait 阻塞等待 进程等待是什么&#xff1f; 进程终止会把进程退出的数据&#xff08;退出码和退出信号&#xff09;存放到进程的PCB中保存下来&#xff0c;让父进程进行等待。…

OpenHarmony 实战开发 - 如何在源码中编译复杂应用(4.0-Release)

文档环境 开发环境&#xff1a;Windows 11 编译环境&#xff1a;Ubuntu 22.04 开发板型号&#xff1a;DAYU 200&#xff08;RK3568&#xff09; 系统版本&#xff1a;OpenHarmony-4.0-Release 功能简介 在 OpenHarmony 系统中预安装应用的 hap 包会随系统编译打包到镜像中&a…

Java毕业设计 基于SpringBoot vue社区智慧养老监护管理平台

Java毕业设计 基于SpringBoot vue社区智慧养老监护管理平台 SpringBoot 社区智慧养老监护管理平台 功能介绍 登录注册 个人中心 修改密码 个人信息 房间信息管理 房间入住信息管理 反馈信息管理 留言管理 老人信息管理 公告管理 物资申请管理 管理员管理 护工管理 体检员管理…

浅谈Windows 上的线程亲和性(Thread affinity)

​ 前言 线程属性包括是否分离、亲和性、调度策略和优先级等。Linux默认的调度策略是CFS(完全公平调度算法),而 Windows 是基于优先级抢占式的策略。 在这些方面,Windows 和 Linux 差异巨大。本文仅针对 Windows 系统的线程亲和性进行探讨。 线程亲和性(Thread affinity) 什…

解锁AI的神秘力量:LangChain4j带你步入智能化实践之门

关注微信公众号 “程序员小胖” 每日技术干货&#xff0c;第一时间送达&#xff01; 引言 在数字化转型的浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;正逐渐成为推动企业创新和增长的关键力量。然而&#xff0c;将AI技术融入到日常业务流程并非易事&#xff0c;它…

谷歌月球模型

收费产品&#xff0c;白嫖党勿扰 收费金额500元 1 概述 前些时间&#xff0c;有个客户&#xff0c;想fight TAIWAN&#xff0c;于是乎&#xff0c;我把谷歌地球整个台湾的模型都下载下来了&#xff0c;大约300GB。今天&#xff0c;又有个客户&#xff0c;提出一个过分要求&…

【第14章】spring-mvc之ajax

文章目录 前言一、准备二、单个值1.前端2.后端3. 结果 三、对象1.前端2.后端3. 结果 四、JSON对象1.前端2.后端3. 结果 五、JSON数组1.前端2.后端3. 结果 总结 前言 AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;是一种用于创建快速动态网页的技术&#xff0c…

STM32:GPIO输入输出

文章目录 1、GPIO介绍1.1 GPIO的基本结构1.1 GPIO的位结构 2、 GPIO工作模式3、GPIO标准外设库接口函数3.1 RCC接口函数3.2 GPIO接口函数3.2.1 GPIO的读取函数3.2.1 GPIO的写入函数 4、GPIO的初始化 1、GPIO介绍 GPIO&#xff08;General Purpose Input Output&#xff09;通用…

深入大模型量化技术,大模型端侧落地已Ready?

揭秘未来&#xff1a;大模型量化技术如何革新移动AI应用 ©作者|饮水机 来源|神州问学 前言 最近&#xff0c;苹果发布了OpenELM系列模型&#xff0c;参数规模分别为270M、450M、1.1B和3B。与此同时&#xff0c;微软也推出了Phi-3系列模型&#xff0c;其中mini版本的参数…

支付时,中国网联结算与中国银联结算的区别与联系

随着电子商务和互联网支付的快速发展&#xff0c;中国的支付清算市场也呈现出前所未有的繁荣景象。在这个大背景下&#xff0c;中国网联与中国银联作为两大支付清算机构&#xff0c;各自扮演着重要的角色。本文将对两者的区别和联系进行深入探讨&#xff0c;以期对读者有更全面…

【北京迅为】《iTOP-3588开发板快速烧写手册》-第9章ubuntu系统下升级固件

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