ホームページ  >  記事  >  データベース  >  Docker コンテナを Oracle から MySQL に移行する方法

Docker コンテナを Oracle から MySQL に移行する方法

王林
王林転載
2023-05-28 18:31:541346ブラウズ

⛳️ 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 に移行する方法

✨ 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.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. 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 に移行する方法#✨ 3.2パラメータ設定

cat > /etc/mysql/mysql8027/conf/my.cnf << “EOF”
[mysqld]
default-time-zone = ‘+8:00&#39;
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 に移行する方法⛳️ 4. OracleからMySQLへkettleを移行

✨4.1 kettleをデプロイする

Kettle は、純粋な Java で書かれた外国のオープン ソース ETL ツールであり、Windows、Linux、および Unix で実行できます。
Kettle の中国語名は Kettle です。プロジェクトのメイン プログラマである MATT は、データはポットに入れられ、指定された形式でストリーミング出力されます。 Kettle は、やりたいことをどうするかではなく、やりたいことを記述するためのグラフィカル ユーザー環境を提供することで、さまざまなデータベースのデータを管理できる ETL ツールセットです。 Kettle には、データの基本的な変換を完了するトランスフォーメーションと、ワークフロー全体の制御を完了するジョブの 2 種類のスクリプト ファイルがあります。


ケトルの構成

Docker コンテナを Oracle から MySQL に移行する方法

プロセス全体は 2 つのステップに分かれています: 1 つは JAVA 環境のインストールで、もう 1 つはインストールです。 kettle パッケージのインストールをダウンロードするには

AVA JDK をインストールします
#jdk インストール パッケージをダウンロードした後、ファイルを開いてインストールを開始します

Docker コンテナを Oracle から MySQL に移行する方法

##次の 3 つの変数を追加しますDocker コンテナを Oracle から MySQL に移行する方法[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 と入力し、Enter を押して実行します。
「java -version」と「javac」をそれぞれ入力してテストします。次の内容が表示されれば、設定は成功です



kettle インストール パッケージをダウンロードします。

Docker コンテナを Oracle から MySQL に移行する方法ここではバージョン 7.1 を選択します

#ダウンロードが完了したら、任意のパスに解凍し、フォルダーを開いて Spoon .bat を見つけ、デスクトップ ショートカットを作成し、

Docker コンテナを Oracle から MySQL に移行する方法

Docker コンテナを Oracle から MySQL に移行する方法データベース ドライバー パッケージのダウンロードを開きます。

mysql ドライバーと oracle ドライバーを kettle パッケージの lib パッケージの直下に配置します。 Docker コンテナを Oracle から MySQL に移行する方法MySQL JDBC ドライバーのダウンロード

ファイルのサフィックスが .tar.gz の場合は、Linux/IOS 用の圧縮パッケージです。サフィックスが .zip のファイルは、Windows では圧縮パッケージです。

システムの選択に従ってダウンロードします。

このバージョンをダウンロード: mysql-connector-java-5.1.49-bin.jar

Oracle JDBC ドライバーのダウンロード




データベース接続

A. 変換の作成Docker コンテナを Oracle から MySQL に移行する方法 [ファイル] -> [新しい変換] に移動し、新しい変換を作成した後、左側のメイン オブジェクト ツリーに DB 接続を作成してデータベースに接続します

## B. データベース接続 MySQL

Docker コンテナを Oracle から MySQL に移行する方法

C. データベース接続 Oracle 12C

Docker コンテナを Oracle から MySQL に移行する方法

✨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(&#39;dd&#39;);
--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=&#39;JEMMES&#39; ;
select object_type,count(*) from dba_objects where owner=&#39;JEMMES&#39; group by object_type;
select object_type,status,count(*) from dba_objects where owner=&#39;JEMMES&#39; group by object_type,status;
select sum(bytes)/1024/1024 from dba_segments where owner=&#39;JEMMES&#39;;

Docker コンテナを Oracle から MySQL に移行する方法

✨4.3 Oracle を MySQL に移行する

複数のテーブルをコピーする

Docker コンテナを Oracle から MySQL に移行する方法

Docker コンテナを Oracle から MySQL に移行する方法

Docker コンテナを Oracle から MySQL に移行する方法

Docker コンテナを Oracle から MySQL に移行する方法

完了後、次の実行ツリーが自動的に生成されます。

Docker コンテナを Oracle から MySQL に移行する方法

[実行] をクリックして実行を開始します:

Docker コンテナを Oracle から MySQL に移行する方法

Docker コンテナを Oracle から MySQL に移行する方法

Docker コンテナを Oracle から MySQL に移行する方法##✨4.4 移行後の MySQL データの検証

以上がDocker コンテナを Oracle から MySQL に移行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。