Maison  >  Article  >  base de données  >  Comment migrer les conteneurs Docker d'Oracle vers MySQL

Comment migrer les conteneurs Docker d'Oracle vers MySQL

王林
王林avant
2023-05-28 18:31:541295parcourir

⛳️ 1. Créer un réseau privé

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

Comment migrer les conteneurs Docker dOracle vers MySQL

⛳️ 2. Déploiement Oracle 12C

✨ 2.1 Téléchargement d'images

docker pull registry.cn-shanghai.aliyuncs.com/techerwang/oracle:ora12c_12201

Comment migrer les conteneurs Docker dOracle vers MySQL

✨ 2.2 Création de conteneurs

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

Comment migrer les conteneurs Docker dOracle vers MySQL

✨ 2.3 Créer un utilisateur professionnel

[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 Démarrage à l'écoute

[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

Comment migrer les conteneurs Docker dOracle vers MySQL

⛳️ 3. Déploiement MySQL8

✨ 3.1 Création de conteneur

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

Voir le conteneur

[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

Comment migrer les conteneurs Docker dOracle vers MySQL

✨ 3.2 Paramétrage

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 Connectez-vous à MySQL

mysql -uroot -pjeames -h 168.66.6.35
create database jemdb;

Comment migrer les conteneurs Docker dOracle vers MySQL

⛳️ 4 . kettle Migrer Oracle vers MySQL

✨4.1 Déployer kettle

Kettle est un outil ETL open source étranger écrit en Java pur et peut fonctionner sous Windows, Linux et Unix.
Le nom chinois de Kettle est Kettle, et le programmeur principal du projet, MATT, souhaite mettre diverses données dans un pot, puis les diffuser dans un format spécifié. Kettle est un ensemble d'outils ETL qui vous permet de gérer les données de différentes bases de données en fournissant un environnement utilisateur graphique pour décrire ce que vous voulez faire, plutôt que comment vous voulez le faire. Il existe deux types de fichiers de script dans Kettle, la transformation et le travail. La transformation complète la transformation de base des données, et le travail complète le contrôle de l'ensemble du flux de travail.

La composition de kettle

Comment migrer les conteneurs Docker dOracle vers MySQL

L'ensemble du processus est divisé en deux étapes : l'une consiste à installer l'environnement JAVA ; l'autre consiste à télécharger le package d'installation de kettle

Installer AVA JDK

Après avoir téléchargé le jdk, ouvrez le fichier et démarrez l'installation

Comment migrer les conteneurs Docker dOracle vers MySQL

Comment migrer les conteneurs Docker dOracle vers MySQL

Ajoutez les 3 variables suivantes
【1】JAVA_HOME : Le chemin d'installation de Java à l'instant, le mien est : C:Program FilesJavajdk1.8.0_231
【2】CLASSPATH : .;%JAVA_HOME%libdt. jar;%JAVA_HOME%libtools.jar;
【3】Configurer la variable d'environnement Path
Double-cliquez sur Path et ajoutez "%JAVA_HOME%bin" ; ".
La touche Win+R fait apparaître la fenêtre d'exécution, entrez cmd, appuyez sur Entrée pour exécuter
Entrez respectivement "java -version" et "javac" pour tester Si le contenu suivant est affiché, la configuration est réussie

Comment migrer les conteneurs Docker dOracle vers MySQL

. Téléchargez le package d'installation de la bouilloire

Nous y sommes Sélectionnez la version 7.1

Comment migrer les conteneurs Docker dOracle vers MySQL

Après le téléchargement, décompressez-le dans n'importe quel chemin, ouvrez le dossier, recherchez Spoon.bat, créez un raccourci sur le bureau, ouvrez

Comment migrer les conteneurs Docker dOracle vers MySQL

Comment migrer les conteneurs Docker dOracle vers MySQL

Téléchargement du package de pilote de base de données

Intégrez le pilote MySQL et le pilote Oracle. Placez-le simplement sous le package lib sous le package kettle.
Téléchargement du pilote MySQL JDBC
Le suffixe de fichier .tar.gz est un package compressé pour Linux/IOS ; le suffixe .zip est un package compressé pour Windows,
choisissez de télécharger en fonction du système.
Téléchargez cette version : mysql-connector-java-5.1.49-bin.jar
Téléchargement du pilote Oracle JDBC

Comment migrer les conteneurs Docker dOracle vers MySQL

Connexion à la base de données

A Créez une conversion
Dans Fichier->Nouvelle transformation, Nouvelle transformation Puis établissez. une connexion DB dans l'arborescence des objets principale à gauche pour se connecter à la base de données

Comment migrer les conteneurs Docker dOracle vers MySQL

B. Connexion à la base de données MySQL

Comment migrer les conteneurs Docker dOracle vers MySQL

C Connexion à la base de données Oracle 12C

Comment migrer les conteneurs Docker dOracle vers MySQL

✨4.2 Vérification des données côté 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;;
.

Comment migrer les conteneurs Docker dOracle vers MySQL

✨4.3 Migrer Oracle vers MySQL

Copier plusieurs tables

Comment migrer les conteneurs Docker dOracle vers MySQL

Comment migrer les conteneurs Docker dOracle vers MySQL

Comment migrer les conteneurs Docker dOracle vers MySQL

Comment migrer les conteneurs Docker dOracle vers MySQL

Une fois terminé, l'arborescence d'exécution suivante sera automatiquement générée :

Comment migrer les conteneurs Docker dOracle vers MySQL

Cliquez sur Exécuter pour démarrer l'exécution :

Comment migrer les conteneurs Docker dOracle vers MySQL

Comment migrer les conteneurs Docker dOracle vers MySQL

Comment migrer les conteneurs Docker dOracle vers MySQL

✨4.4 MySQL vérification des données après la migration

Comment migrer les conteneurs Docker dOracle vers MySQL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer