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

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/
目录⛳️ 1. 创建专用网络⛳️ 2. Oracle 12C部署✨ 2.1 镜像下载✨ 2.2 容器创建✨ 2.3 创建业务用户✨ 2.4 监听启⛳️ 3. MySQL8部署✨ 3.1 容器创建✨ 3.2 参数设置✨ 3.3 登陆MySQL⛳️ 4. kettle迁移Oracle到MySQL✨4.1 部署kettle✨4.2 Oracle端数据校验✨4.3 迁移Oracle到MySQL✨4.4 迁移后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则完成整个工作流的控制。
免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容