docker network create --subnet=168.66.6.0/24 db-network [root@docker ~]# docker network inspect db-network --查看网络信息
docker pull registry.cn-shanghai.aliyuncs.com/techerwang/oracle:ora12c_12201
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
[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 ;
[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 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
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
Kettle은 순수 Java로 작성된 외국 오픈 소스 ETL 도구이며 Window, Linux 및 Unix에서 실행할 수 있습니다.
Kettle의 중국어 이름은 Kettle입니다. 메인 프로젝트 소유자인 프로그래머 MATT는 다양한 데이터를 포트에 넣은 다음 지정된 형식으로 스트리밍하려고 합니다. Kettle은 원하는 작업을 수행하는 방식이 아닌 수행하려는 작업을 설명하는 그래픽 사용자 환경을 제공하여 다양한 데이터베이스의 데이터를 관리할 수 있는 ETL 도구 세트입니다. Kettle에는 변환(Transformation)과 작업(Job)이라는 두 가지 종류의 스크립트 파일이 있습니다. 변환(Transformation)은 데이터의 기본 변환을 완료하고 작업(Job)은 전체 워크플로우에 대한 제어를 완료합니다.
Kettle 구성
전체 프로세스는 두 단계로 나누어집니다. 하나는 JAVA 환경을 설치하는 것이고, 다른 하나는 Kettle 설치 패키지를 다운로드하는 것입니다.
AVA JDK를 설치합니다
jdk 설치 패키지, 파일을 열고 설치를 시작하세요
다음 3개 변수를 추가하세요
【1】JAVA_HOME: 지금 막 설치된 Java 경로는 C:Program FilesJavajdk1.8.0_231입니다.
【2】CLASSPATH: .;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;
【3】환경 변수 Path를 구성합니다.
Path를 두 번 클릭하고 "%JAVA_HOME%bin"을 추가합니다. ".
Win+R 키가 실행창을 띄우고, cmd를 입력하고 Enter를 눌러 실행하세요.
"java -version"과 "javac"를 각각 입력하여 테스트해 보세요. 다음 내용이 표시되면 구성에 성공한 것입니다
주전자 설치 패키지를 다운로드하세요
버전 7.1을 선택하세요
다운로드한 후 원하는 경로에 압축을 풀고 폴더를 열고 Spoon.bat를 찾아 바탕화면 바로가기를 만들고 open
데이터베이스 드라이버 패키지 다운로드
mysql 드라이버와 oracle 드라이버 통합kettle 패키지 아래 lib 패키지 아래에 넣기만 하면 됩니다.
MySQL JDBC 드라이버 다운로드
파일 접미사 .tar.gz는 Linux/IOS용 압축 패키지입니다. 접미사 .zip은 Windows용 압축 패키지입니다.
시스템에 따라 다운로드하도록 선택하세요.
이 버전을 다운로드하세요: mysql-connector-java-5.1.49-bin.jar
Oracle JDBC 드라이버 다운로드
데이터베이스 연결
A 변환 만들기
파일->새 설치, 새 변환 그런 다음 데이터베이스에 연결하기 위한 왼쪽의 기본 개체 트리에 있는 DB 연결
B. 데이터베이스 연결 MySQL
C 데이터베이스 연결 Oracle 12C
mysql -uroot -pjeames -h 168.66.6.35 create database jemdb;
여러 테이블 복사
완료 후 다음 실행 트리가 자동으로 생성됩니다.
실행을 시작하려면 실행을 클릭하세요.
위 내용은 Docker 컨테이너를 Oracle에서 MySQL로 마이그레이션하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!