Docker容器怎么迁移Oracle到MySQL

网友投稿 470 2023-07-05

Docker容器怎么迁移***到MySQL

Docker容器怎么迁移***到MySQL

⛳️ 1. 创建专用网络

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

⛳️ 2. *** 12C部署

✨ 2.1 镜像下载

docker pull registry.cn-shanghai.aliyuncs.com/techerwang/***: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/***:ora12c_12201 init登录后复制

✨ 2.3 创建业务用户

[root@jeames ~]# docker exec -it jemora1221 bash[root@jemora1221 /]# su - ***[***@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 监听启动

[***@jemora1221 ~]$ cd $ORACLE_HOME/network[***@jemora1221 network]$ cd admin## 配置TNS,后续连接数据库[***@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 {{.ID}}\t{{.Names}}\t{{.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 登陆MySQL

mysql -uroot -pjeames -h 168.66.6.35create database jemdb;登录后复制

⛳️ 4. kettle迁移***到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驱动和***驱动放在kettle包下面的lib包下面即可。MySQL JDBC 驱动下载文件后缀名为 .tar.gz 的是Linux/IOS的压缩包;后缀为 .zip 的是Windows下的压缩包,根据系统选择下载。下载这个版本即可:mysql-connector-java-5.1.49-bin.jar*** JDBC 驱动下载

数据库连接

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

B.数据库连接MySQL

C.数据库连接*** 12C

✨4.2 ***端数据校验

## 创建测试表 SYS@jem> conn jemmes/jemmes@JEMPDB @/home/***/demo_ora_create.sql@/home/***/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');--***所有表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 迁移***到MySQL

复制多表

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

✨4.4 迁移后MySQL数据验证

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MySQL锁及分类有哪些
下一篇:mysql创建索引的方式有哪些
相关文章