您好,欢迎访问一九零五行业门户网

Docker容器怎么迁移Oracle到MySQL

⛳️ 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=trueregistry.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/shanghaimysql: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 status043d1652404d jemora1221 up 7 minutesdc2989508b67 mysql8027 up 23 seconds7e6a53d71017 centos7.8 up 20 minutes
✨ 3.2 参数设置cat > /etc/mysql/mysql8027/conf/my.cnf << “eof”[mysqld]default-time-zone = ‘+8:00'log_timestamps = systemskip-name-resolvelog-binserver_id=80273418character_set_server=utf8mb4default_authentication_plugin=mysql_native_passwordeof
✨ 3.3 登陆mysqlmysql -uroot -pjeames -h 168.66.6.35create database jemdb;
⛳️ 4. kettle迁移oracle到mysql✨4.1 部署kettlekettle是一款国外开源的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数据验证
以上就是docker容器怎么迁移oracle到mysql的详细内容。
其它类似信息

推荐信息