小知识:Docker容器迁移Oracle到MySQL的实现方法

前言

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

1. 创建专用网络

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

%小知识:Docker容器迁移Oracle到MySQL的实现方法-猿站网-插图

2. Oracle 12C部署

2.1 镜像下载 docker pull registry.cn-shanghai.aliyuncs.com/techerwang/oracle:ora12c_12201

%小知识:Docker容器迁移Oracle到MySQL的实现方法-1猿站网-插图

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

%小知识:Docker容器迁移Oracle到MySQL的实现方法-2猿站网-插图

2.3 创建业务用户 [root@jeames ~]# docker exec -it jemora1221 bash [root@jemora1221 /]# su – oracle [oracle@jemora1221 ~]$ sqlplus / as sysdba SYS@jem> startup SYS@jem> show pdbs     CON_ID CON_NAME                       OPEN MODE  RESTRICTED ———- —————————— ———- ———-          2 PDB$SEED                       READ ONLY  NO          3 JEMPDB                         MOUNTED alter 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 jemmes SYS@jem> GRANT DBA to jemmes ; 2.4 监听启动 [oracle@jemora1221 ~]$ cd $ORACLE_HOME/network [oracle@jemora1221 network]$ cd admin ## 配置TNS,后续连接数据库 [oracle@jemora1221 admin]$ vi tnsnames.ora JEMPDB =  (DESCRIPTION =  (ADDRESS = (PROTOCOL = TCP)(HOST = jemora1221)(PORT = 1521))  (CONNECT_DATA =  (SERVER = DEDICATED)  (SERVICE_NAME = JEMPDB)  )  )    ## 监听启动 lsnrctl start lsnrctl status

%小知识:Docker容器迁移Oracle到MySQL的实现方法-3猿站网-插图

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 {<!–{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E–>{.ID}}\t{<!–{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E–>{.Names}}\t{<!–{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E–>{.Status}}” CONTAINER ID NAMES STATUS 043d1652404d jemora1221 Up 7 minutes dc2989508b67 mysql8027 Up 23 seconds 7e6a53d71017 centos7.8 Up 20 minutes

%小知识:Docker容器迁移Oracle到MySQL的实现方法-4猿站网-插图

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;

%小知识:Docker容器迁移Oracle到MySQL的实现方法-5猿站网-插图

4. kettle迁移Oracle到MySQL

4.1 部署kettle

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行.

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

kettle的组成

%小知识:Docker容器迁移Oracle到MySQL的实现方法-6猿站网-插图

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

安装AVA JDK

下载jdk安装包后打开文件开始安装

%小知识:Docker容器迁移Oracle到MySQL的实现方法-7猿站网-插图

%小知识:Docker容器迁移Oracle到MySQL的实现方法-8猿站网-插图

添加以下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”进行测试,显示以下内容说明配置成功

%小知识:Docker容器迁移Oracle到MySQL的实现方法-9猿站网-插图

下载kettle安装包

这里我们选择7.1版本

%小知识:Docker容器迁移Oracle到MySQL的实现方法-10猿站网-插图

下载完成解压到任意路径,打开文件夹,找到Spoon.bat,创建桌面快捷方式,打开

%小知识:Docker容器迁移Oracle到MySQL的实现方法-11猿站网-插图

%小知识:Docker容器迁移Oracle到MySQL的实现方法-12猿站网-插图

数据库驱动包下载

将mysql驱动和oracle驱动放在kettle包下面的lib包下面即可。

MySQL JDBC 驱动下载

文件后缀名为 .tar.gz 的是Linux/IOS的压缩包;后缀为 .zip 的是Windows下的压缩包,

根据系统选择下载。

下载这个版本即可:mysql-connector-java-5.1.49-bin.jar

Oracle JDBC 驱动下载

%小知识:Docker容器迁移Oracle到MySQL的实现方法-13猿站网-插图

数据库连接

A.建立转换

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

%小知识:Docker容器迁移Oracle到MySQL的实现方法-14猿站网-插图

B.数据库连接MySQL

%小知识:Docker容器迁移Oracle到MySQL的实现方法-15猿站网-插图

C.数据库连接Oracle 12C

%小知识:Docker容器迁移Oracle到MySQL的实现方法-16猿站网-插图

4.2 Oracle端数据校验 ## 创建测试表  SYS@jem> conn jemmes/jemmes@JEMPDB     @/home/oracle/demo_ora_create.sql @/home/oracle/demo_ora_insert.sql create 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 a30 SELECT 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;

%小知识:Docker容器迁移Oracle到MySQL的实现方法-17猿站网-插图

4.3 迁移Oracle到MySQL

复制多表

%小知识:Docker容器迁移Oracle到MySQL的实现方法-18猿站网-插图

%小知识:Docker容器迁移Oracle到MySQL的实现方法-19猿站网-插图

%小知识:Docker容器迁移Oracle到MySQL的实现方法-20猿站网-插图

%小知识:Docker容器迁移Oracle到MySQL的实现方法-21猿站网-插图

完成后,会自动生成如下的执行树:

%小知识:Docker容器迁移Oracle到MySQL的实现方法-22猿站网-插图

点击run,开始执行即可:

%小知识:Docker容器迁移Oracle到MySQL的实现方法-23猿站网-插图

%小知识:Docker容器迁移Oracle到MySQL的实现方法-24猿站网-插图

%小知识:Docker容器迁移Oracle到MySQL的实现方法-25猿站网-插图

4.4 迁移后MySQL数据验证

%小知识:Docker容器迁移Oracle到MySQL的实现方法-26猿站网-插图

到此这篇关于Docker容器迁移Oracle到MySQL的实现方法的文章就介绍到这了,更多相关Docker迁移Oracle到MySQL内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_41645135/article/details/125830177

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:少儿编程学什么

2023-3-4 14:21:48

建站知识

小知识:Docker快速部署国产达梦数据库的实现示例

2023-3-4 14:25:33

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索