我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【云原生】-Docker容器迁移Oracle到MySQL

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【云原生】-Docker容器迁移Oracle到MySQL

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

前言

Kettle是开源的 【TEL】 工具,JVAV编写,可以运行在多个平台,使用时有图形界面、命令脚本,还可以二次开发。用于数据抽取、转存等,非常方便

⛳️ 1. 创建专用网络

docker network create --subnet=168.66.6.0/24 db-network
[root@docker ~]# docker network inspect db-network --查看网络信息

在这里插入图片描述

⛳️ 2. Oracle 12C部署

✨ 2.1 镜像下载

docker pull registry.cn-shanghai.aliyuncs.com/techerwang/oracle:ora12c_12201

在这里插入图片描述

✨ 2.2 容器创建

docker run -itd --name jemora1221 -h jemora1221
–net=db-network --ip 168.66.6.34
-p 1526:1521 -p 3396:3389
–privileged=true
registry.cn-shanghai.aliyuncs.com/techerwang/oracle:ora12c_12201 init

在这里插入图片描述

✨ 2.3 创建业务用户

[root@jeames ~]# docker exec -it jemora1221 bash[root@jemora1221 /]# su - oracle[oracle@jemora1221 ~]$ sqlplus / as sysdbaSYS@jem> startupSYS@jem> show pdbs    CON_ID CON_NAME                       OPEN MODE  RESTRICTED---------- ------------------------------ ---------- ----------         2 PDB$SEED                       READ ONLY  NO         3 JEMPDB                         MOUNTEDalter pluggable database JEMPDB open;SYS@jem> select con_id,dbid,NAME,OPEN_MODE from v$pdbs;SYS@jem> alter session set container=JEMPDB;SYS@jem> create user jemmes identified by jemmesSYS@jem> GRANT DBA to jemmes ;

✨ 2.4 监听启动

[oracle@jemora1221 ~]$ cd $ORACLE_HOME/network[oracle@jemora1221 network]$ cd admin## 配置TNS,后续连接数据库[oracle@jemora1221 admin]$ vi tnsnames.oraJEMPDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = jemora1221)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = JEMPDB) ) )  ## 监听启动lsnrctl startlsnrctl status

在这里插入图片描述

⛳️ 3. MySQL8部署

✨ 3.1 容器创建

docker run -d --name mysql8027 -h mysql8027 -p 3418:3306
–net=db-network --ip 168.66.6.35
-v /etc/mysql/mysql8027/conf:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=jeames -e TZ=Asia/Shanghai
mysql:8.0.27

查看容器
[root@jeames ~]# docker ps --format “table {{.ID}}\t{{.Names}}\t{{.Status}}”
CONTAINER ID NAMES STATUS
043d1652404d jemora1221 Up 7 minutes
dc2989508b67 mysql8027 Up 23 seconds
7e6a53d71017 centos7.8 Up 20 minutes

在这里插入图片描述

✨ 3.2 参数设置

cat > /etc/mysql/mysql8027/conf/my.cnf << “EOF”
[mysqld]
default-time-zone = ‘+8:00’
log_timestamps = SYSTEM
skip-name-resolve
log-bin
server_id=80273418
character_set_server=utf8mb4
default_authentication_plugin=mysql_native_password
EOF

✨ 3.3 登陆MySQL

mysql -uroot -pjeames -h 168.66.6.35
create database jemdb;

在这里插入图片描述

⛳️ 4. kettle迁移Oracle到MySQL

✨4.1 部署kettle

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行.
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

📢📢📢 kettle的组成
在这里插入图片描述

整个流程一共分为两步:一是安装JAVA环境;二是下载kettle的安装包

📢📢📢 安装AVA JDK

下载jdk安装包后打开文件开始安装
在这里插入图片描述
在这里插入图片描述

添加以下3个变量
【1】JAVA_HOME:刚刚Java安装的路径,我的是:C:\Program Files\Java\jdk1.8.0_231
【2】CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
【3】配置环境变量Path
双击Path,添加“%JAVA_HOME%\bin”;添加“%JAVA_HOME%\jre\bin”。
Win+R键弹出运行窗口,输入cmd,回车运行
分别输入“java -version”,“javac”进行测试,显示以下内容说明配置成功

在这里插入图片描述
📢📢📢 下载kettle安装包

这里我们选择7.1版本
在这里插入图片描述
下载完成解压到任意路径,打开文件夹,找到Spoon.bat,创建桌面快捷方式,打开
在这里插入图片描述
在这里插入图片描述
📢📢📢 数据库驱动包下载

将mysql驱动和oracle驱动放在kettle包下面的lib包下面即可。
MySQL JDBC 驱动下载
文件后缀名为 .tar.gz 的是Linux/IOS的压缩包;后缀为 .zip 的是Windows下的压缩包,
根据系统选择下载。
下载这个版本即可:mysql-connector-java-5.1.49-bin.jar
Oracle JDBC 驱动下载
在这里插入图片描述
📢📢📢 数据库连接

A.建立转换
在文件->新建装换,新建转换后在左边的主对象树中建立DB连接用以连接数据库

在这里插入图片描述
B.数据库连接MySQL
在这里插入图片描述
C.数据库连接Oracle 12C
在这里插入图片描述

✨4.2 Oracle端数据校验

## 创建测试表 SYS@jem> conn jemmes/jemmes@JEMPDB    @/home/oracle/demo_ora_create.sql@/home/oracle/demo_ora_insert.sqlcreate table flower(           id varchar2(32)  default sys_guid() primary key,           flower_name varchar2(200),           color varchar2(100),           origin varchar2(200),           moral varchar2(200),           create_time timestamp default sysdate,           update_time timestamp    ); JEMMES@JEMPDB> insert into flower(flower_name) values('dd');--oracle所有表JEMMES@JEMPDB> select * from tab;--迁移前相关检查col TABLE_NAME format a30SELECT a.table_name,a.num_rows FROM dba_tables a where a.OWNER='JEMMES' ;select object_type,count(*) from dba_objects where owner='JEMMES' group by object_type;select object_type,status,count(*) from dba_objects where owner='JEMMES' group by object_type,status;select sum(bytes)/1024/1024 from dba_segments where owner='JEMMES';

在这里插入图片描述

✨4.3 迁移Oracle到MySQL

复制多表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完成后,会自动生成如下的执行树:
在这里插入图片描述
点击run,开始执行即可:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

✨4.4 迁移后MySQL数据验证

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

来源地址:https://blog.csdn.net/weixin_41645135/article/details/125830177

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【云原生】-Docker容器迁移Oracle到MySQL

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Docker容器迁移Oracle到MySQL的实现方法

目录⛳️ 1. 创建专用网络⛳️ 2. oracle 12C部署✨ 2.1 镜像下载✨ 2.2 容器创建✨ 2.3 创建业务用户✨ 2.4 监听启动⛳️ 3. mysql8部署✨ 3.1 容器创建✨ 3.2 参数设置✨ 3.3 登陆MySQ
2022-07-20

【云原生】Docker之创建并进入mysql容器

文章目录 前言拉取镜像创建容器进入mysql容器登录mysql创建数据库创建表 相关文章 前言   本文主要讲解的是创建mysql的容器,大家都知道,在外面进入mysql都很容易,“mysql -u用户名 -
2023-08-24

云原生Docker容器自定义DNS解析

Docker没有为每个容器专门定制镜像,那么怎么自定义配置容器的DNS配置呢?这篇文章主要给大家介绍了关于云原生Docker容器自定义DNS的相关资料,需要的朋友可以参考下
2023-02-21

云原生Docker创建并进入mysql容器的全过程

目录前言拉取镜像创建容器进入mysql容器登录mysql创建数据库创建表总结前言本文主要讲解的是创建mysql的容器,大家都知道,在外面进入mysql都很容易,“mysql -u用户名 -p密码”就可以,但是是容器
2023-02-21

云原生Docker容器自定义DNS解析的方法是什么

这篇文章主要讲解了“云原生Docker容器自定义DNS解析的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“云原生Docker容器自定义DNS解析的方法是什么”吧!描述在特定的情况下
2023-07-05

编程热搜

目录