暂无图片
暂无图片
3
暂无图片
暂无图片
1
暂无图片

迁移Oracle数据表到磐维数据库

原创 拨开乌云见阳光 2023-11-26
1760

磐维数据库,全称是“中国移动磐维数据库”(ChinaMobileDB),简称“磐维数据库”(CMDB)。是中国移动信息技术中心(China Mobile Information Technology,简称CMIT)首个基于中国本土开源数据库打造的面向ICT基础设施的自研数据库产品。其产品内核能力基于华为 OpenGauss 开源软件,并进一步提升了系统稳定性。
为了能顺利地将其他类型数据库向磐维数据库迁移,中国移动信息技术中心自研开发了数据库迁移工具CDTT(CMIT Database Transfer Toolkit)。它可以将Oracle、MySQL、PG等类型的数据库迁移到磐维数据库。
之前测试验证了通过CDTT将MySQL和PG向磐维数据库的迁移。在上周五下午接到省公司同事关于Oracle19c向磐维数据库迁移的咨询,随后借此机会在测试环境验证了CDTT迁移Oracle到磐维数据库,并帮助省公司同事完成了迁移。正好借今天休息的时间,把这个测试验证过程整理一下:

一、测试思路:

1、在虚机A上搭建Oracle19c容器数据库,并创建可插拔数据库,做为源数据库。

2、在虚机B上搭建磐维数据库(CMDB),做为目标数据库。

3、在虚机C上部署并配置迁移工具CDTT。

4、执行迁移(Oracle->CMDB)

5、验证迁移结果

二、测试环境:

1、源数据库:

IP:192.168.20.20
OS:CentOS 7.9
版本: Oracle 19.3

2、目标数据库:

IP:192.168.20.105
OS:CentOS 7.6
版本:PanWeiDB(openGauss) 1.0.0 build 9a7e96bc

3、迁移工具CDTT部署在第三台虚机上:

IP:192.168.20.200
OS:CentOS 7.6
版本:CDTT v2.8.3+beta

三、测试过程:

1、在虚机A上搭建Oracle19c容器数据库,并创建可插拔数据库,做为源数据库。

Oracle19c的搭建过程(略),以下是搭建后的结果:
image.png
tnsnames.ora中的相关配置如下:
image.png
在可插拔数据库中的测试表如下:
image.png

2、在虚机B上搭建磐维数据库(CMDB),做为目标数据库。

由于本机资源有限,并且为了提升搭建效率,采用容器化部署磐维数据库,过程简述如下:
(1)安装docker
yum install -y docker-ce
(2)启动 docker
systemctl start docker
(3)创建网段
docker network create --subnet=192.168.1.0/24 my_network
(4)上传、解压并加载磐维镜像
unzip pwdbtest.tar.zip
docker load -i pwdbtest.tar
(5)创建磐维容器
docker run --privileged=true -it --net my_network --ip=192.168.1.10 -d
-v /opt/panweidb:/opt/panweidb -p 5432:5432
–hostname pw1 --name=panwei_container2 pwdbtest:v1 /usr/sbin/init
(6)进入容器
docker exec -it panwei_container2 /bin/bash
(7)在容器内创建磐维数据库的安装运维用户:
groupadd dbgrp
useradd -g dbgrp omm
(8)解压磐维安装包
cd /opt/software
mkdir omm
mv PanWeiDB_1.0.0_CentOS7_x86_docker.tar.gz /opt/software/omm/
cd omm
tar -zxvf PanWeiDB_1.0.0_CentOS7_x86_docker.tar.gz
tar -zxvf PanWeiDB-1.0.0-CentOS-64bit-om.tar.gz
(9)设置磐维安装配置文件:
vi /opt/software/cluster_config.xml
image.png
(10)执行磐维预安装:
chown -R omm:dbgrp /home/omm/
chmod 755 -R /home/omm/
cd /opt/software/omm/script
./gs_preinstall -U omm -G dbgrp -X /opt/software/cluster_config.xml
(11)执行磐维正式安装:
su - omm
gs_install -X /opt/software/cluster_config.xml
(12)完成磐维安装后,查看磐维数据库的运行状态:
image.png
(13)登录磐维数据库,创建迁移用户和目标库
gsql -d postgres -r
create user test with password ‘Test@123’;
grant all privileges to test;
create database db01 dbCompatibility=‘A’;
说明:dbCompatibility参数用于指定兼容数据库的类型:
A:兼容Oracle数据库
B:兼容MySQL数据库
PG:兼容PG数据库
(14)设置可访问磐维数据库的白名单
gs_guc reload -I all -N all -h “host all all 192.168.20.0/24 sha256”

3、为CDTT所在主机安装Oracle客户端

由于要访问源端的Oracle数据库,因此需要先确认安装Oracle客户端,这样CDTT才能访问Oracle数据库。
安装方法参见:https://odpi-c.readthedocs.io/en/latest/user_guide/installation.html
具体安装过程如下:
(1)创建安装目录
mkdir -p /opt/oracle
(2)下载并上传Oracle客户端压缩包,并解压
cd /opt/oracle
unzip instantclient-basic-linux.x64-19.21.0.0.0dbru.zip
(3)确认安装libaio
如未安装,则执行:yum install libaio
(4)设置相关库的路径
export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_21:$LD_LIBRARY_PATH

4、在虚机C上部署并配置迁移工具CDTT。

(1)上传CDTT程序文件并设置为可执行
chmod +x cdtt_linux_amd64
(2)启动CDTT服务
nohup ./cdtt_linux_amd64 --httpAddr=:8080 --dbName=cdtt --dbHost=192.168.20.105 --dbPort=5432 --dbType=panwei --dbUser=test --dbUserPwd=Test@123 &
(3)登录CDTT的Web管理界面
在浏览器的地址栏中输入:192.168.20.200:8080
(4)创建迁移项目
在CDTT的Web管理界面上,点击“创建项目”按钮,如下:
image.png
(5)设置迁移配置文件
设置源数据库和目标数据库的相关信息,如下:
image.png
设置要迁移的schema,如下:
image.png

5、执行迁移

保存CDTT的迁移配置文件后,点击“启动”按钮,开始执行数据库迁移。
在此过程中,在CDTT的Web管理界面上可以看到相关的迁移日志输出,如果有报错,则可以根据报错信息进行相关的问题排查。如果顺利的话,则显示迁移成功完成。

6、验证迁移结果

(1)登录磐维数据库
gsql -d postgres -r
(2)查看有哪些库
image.png
由上面结果可以看到,新增了cdtt库,此库用于存在CDTT的相关控制信息和元数据;
(3)进行入目标库
image.png
(4)查看有哪些schema
image.png
查看以上结果可以看到,新增了scott这个模式
(5)查看scott模式下有哪些表
image.png
(6)抽查其中的一个表(当然也可以逐一检查)
image.png

至此,完成了对CDTT工具从Oracle到磐维数据库的迁移测试验证。

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

评论

Aurora
暂无图片
8月前
评论
暂无图片 0
从oracle迁移到磐维数据库之后,所有的字段都是和在oracle中是一致的吗?如果是其他程序语言调用的话,有什么区别呢
8月前
暂无图片 点赞
评论
百分
关注
暂无图片
获得了1060次点赞
暂无图片
内容获得409次评论
暂无图片
获得了233次收藏
目录
  • 一、测试思路:
    • 1、在虚机A上搭建Oracle19c容器数据库,并创建可插拔数据库,做为源数据库。
    • 2、在虚机B上搭建磐维数据库(CMDB),做为目标数据库。
    • 3、在虚机C上部署并配置迁移工具CDTT。
    • 4、执行迁移(Oracle->CMDB)
    • 5、验证迁移结果
  • 二、测试环境:
    • 1、源数据库:
    • 2、目标数据库:
    • 3、迁移工具CDTT部署在第三台虚机上:
  • 三、测试过程:
    • 1、在虚机A上搭建Oracle19c容器数据库,并创建可插拔数据库,做为源数据库。
    • 2、在虚机B上搭建磐维数据库(CMDB),做为目标数据库。
    • 3、为CDTT所在主机安装Oracle客户端
    • 4、在虚机C上部署并配置迁移工具CDTT。
    • 5、执行迁移
    • 6、验证迁移结果