Docker容器遷移Oracle到MySQL的實(shí)現(xiàn)方法
前言 Kettle是開(kāi)源的 【TEL】 工具,JVAV編寫(xiě),可以運(yùn)行在多個(gè)平臺(tái),使用時(shí)有圖形界面、命令腳本,還可以二次開(kāi)發(fā)。用于數(shù)據(jù)抽取、轉(zhuǎn)存等,非常方便
?? 1. 創(chuàng)建專(zhuān)用網(wǎng)絡(luò)
docker network create --subnet=168.66.6.0/24 db-network [root@docker ~]# docker network inspect db-network --查看網(wǎng)絡(luò)信息

?? 2. Oracle 12C部署
? 2.1 鏡像下載
docker pull registry.cn-shanghai.aliyuncs.com/techerwang/oracle:ora12c_12201

? 2.2 容器創(chuàng)建
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 創(chuàng)建業(yè)務(wù)用戶
[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 監(jiān)聽(tīng)啟動(dòng)
[oracle@jemora1221 ~]$ cd $ORACLE_HOME/network [oracle@jemora1221 network]$ cd admin ## 配置TNS,后續(xù)連接數(shù)據(jù)庫(kù) [oracle@jemora1221 admin]$ vi tnsnames.ora JEMPDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = jemora1221)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = JEMPDB) ) ) ## 監(jiān)聽(tīng)啟動(dòng) lsnrctl start lsnrctl status

?? 3. MySQL8部署
? 3.1 容器創(chuàng)建
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
? 3.2 參數(shù)設(shè)置
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是一款國(guó)外開(kāi)源的ETL工具,純java編寫(xiě),可以在Window、Linux、Unix上運(yùn)行.
Kettle 中文名稱(chēng)叫水壺,該項(xiàng)目的主程序員MATT 希望把各種數(shù)據(jù)放到一個(gè)壺里,然后以一種指定的格式流出。Kettle這個(gè)ETL工具集,它允許你管理來(lái)自不同數(shù)據(jù)庫(kù)的數(shù)據(jù),通過(guò)提供一個(gè)圖形化的用戶環(huán)境來(lái)描述你想做什么,而不是你想怎么做。Kettle中有兩種腳本文件,transformation和job,transformation完成針對(duì)數(shù)據(jù)的基礎(chǔ)轉(zhuǎn)換,job則完成整個(gè)工作流的控制。
?????? kettle的組成

整個(gè)流程一共分為兩步:一是安裝JAVA環(huán)境;二是下載kettle的安裝包
?????? 安裝AVA JDK
下載jdk安裝包后打開(kāi)文件開(kāi)始安裝


添加以下3個(gè)變量
【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】配置環(huán)境變量Path
雙擊Path,添加“%JAVA_HOME%\bin”;添加“%JAVA_HOME%\jre\bin”。
Win+R鍵彈出運(yùn)行窗口,輸入cmd,回車(chē)運(yùn)行
分別輸入“java -version”,“javac”進(jìn)行測(cè)試,顯示以下內(nèi)容說(shuō)明配置成功

?????? 下載kettle安裝包
這里我們選擇7.1版本

下載完成解壓到任意路徑,打開(kāi)文件夾,找到Spoon.bat,創(chuàng)建桌面快捷方式,打開(kāi)


?????? 數(shù)據(jù)庫(kù)驅(qū)動(dòng)包下載
將mysql驅(qū)動(dòng)和oracle驅(qū)動(dòng)放在kettle包下面的lib包下面即可。
MySQL JDBC 驅(qū)動(dòng)下載
文件后綴名為 .tar.gz 的是Linux/IOS的壓縮包;后綴為 .zip 的是Windows下的壓縮包,
根據(jù)系統(tǒng)選擇下載。
下載這個(gè)版本即可:mysql-connector-java-5.1.49-bin.jar
Oracle JDBC 驅(qū)動(dòng)下載

?????? 數(shù)據(jù)庫(kù)連接
A.建立轉(zhuǎn)換
在文件->新建裝換,新建轉(zhuǎn)換后在左邊的主對(duì)象樹(shù)中建立DB連接用以連接數(shù)據(jù)庫(kù)

B.數(shù)據(jù)庫(kù)連接MySQL

C.數(shù)據(jù)庫(kù)連接Oracle 12C

?4.2 Oracle端數(shù)據(jù)校驗(yàn)
## 創(chuàng)建測(cè)試表
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;
--遷移前相關(guān)檢查
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';

?4.3 遷移Oracle到MySQL
復(fù)制多表




完成后,會(huì)自動(dòng)生成如下的執(zhí)行樹(shù):

點(diǎn)擊run,開(kāi)始執(zhí)行即可:



?4.4 遷移后MySQL數(shù)據(jù)驗(yàn)證

到此這篇關(guān)于Docker容器遷移Oracle到MySQL的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)Docker遷移Oracle到MySQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 深入ORACLE遷移到MYSQL的總結(jié)分析
- mysql數(shù)據(jù)庫(kù)遷移至Oracle數(shù)據(jù)庫(kù)
- 數(shù)據(jù)從MySQL遷移到Oracle 需要注意什么
- mysql數(shù)據(jù)遷移到Oracle的正確方法
- oracle數(shù)據(jù)庫(kù)遷移到MySQL的方法總結(jié)
- Oracle數(shù)據(jù)遷移MySQL的三種簡(jiǎn)單方法
- MySQL遷移到Oracle數(shù)據(jù)庫(kù)的超詳細(xì)步驟和方法總結(jié)
- MySQL數(shù)據(jù)庫(kù)遷移到Oracle數(shù)據(jù)庫(kù)的完整步驟記錄
相關(guān)文章
Docker-compose的安裝和設(shè)定詳細(xì)步驟
這篇文章主要介紹了Docker-compose的安裝和設(shè)定的相關(guān)資料,需要的朋友可以參考下2017-03-03
IDEA中進(jìn)行Docker項(xiàng)目部署的實(shí)現(xiàn)步驟
這篇文章主要介紹了IDEA中進(jìn)行Docker項(xiàng)目部署的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
解決docker CMD/ENTRYPOINT執(zhí)行sh腳本報(bào): not found/run.sh:
這篇文章主要介紹了解決docker CMD/ENTRYPOINT執(zhí)行sh腳本報(bào): not found/run.sh:的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
如何使用 docker compose 搭建 fastDFS文件服務(wù)器
這篇文章主要介紹了如何使用 docker compose 搭建 fastDFS文件服務(wù)器,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10
pod調(diào)度將 Pod 指派給節(jié)點(diǎn)
這篇文章主要為大家介紹了pod調(diào)度將Pod指派給節(jié)點(diǎn) 示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Docker 中快速安裝tensorflow環(huán)境的方法步驟

