Oracle向YashanDB迁移的丝滑体验

来源:这里教程网 时间:2026-03-03 20:22:47 作者:

前言

首届YashanDB「迁移体验官」开放后,陆续收到「体验官」们的投稿,小崖在此把优秀的投稿文章分享给大家~今天分享的用户文章是《Oracle向YashanDB迁移的丝滑体验》(作者:IT邦德),满满干货,不要错过!

号外!新的征文活动已开启, 点击此处或戳一戳下方图片即可跳转活动链接,最高可获千元大奖!

1.YMP介绍

YashanDB提供一站式数据迁移平台YMP(Yashan Migration Platform),支持异构数据库和YashanDB之间的数据迁移,帮助用户便捷地将旧业务系统迁移至YashanDB。崖山数据迁移平台YMP(Yashan Migration Platform),主要覆盖业务场景:

  • 评估:分析评估YashanDB与现有数据库系统的兼容情况

  • 迁移:对象、数据一键快速迁移

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

    2.YMP下载

    从官网上下载YashanDB Personal 23.2.1及YMP 23.2.1安装包

    https://download.yashandb.com/download

    3.安装前准备

    3.1 服务器配置

    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/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

    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

    4.6 访问YMP

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

    http://192.168.3.10:8090

    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

    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;

    5.1 添加数据源

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

    5.2 创建任务

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

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

    5.3 迁移配置

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

    5.4 离线迁移

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

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

    5.5 一致性校验

    6.迁移后体验

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

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

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

  • 相关推荐