본문 바로가기

PostgreSQL

PostgreSQL에 oracle_fdw 설정하기- 1/2

다른 DBMS에도 존재하지만 PostgreSQL에서 종종 필요한 부분들은 DBLINK로, 다른 종류의 DBMS와 연결을 통해

원하는 정보를 가져오는 것이다.

이번 글에서는 Docker로 Oracle DBMS 컨테이너를 생성, PostgreSQL에서 oracle_fdw를 설치, 외부 테이블을 만들어

조회하는 것을 2개의 글로 나누어 구성해 볼 것이다.

첫번째 글은 Oracle DBMS 12버전을 docker 컨테이너로 올리는 부분이다.

두번째 글에서는 postgreSQL 12버전에서 oracle_fdw 확장 프로그램을 설치하여 Oracle에 있는 테이블을 조회하는 것을 다뤄보겠다.



Docker 환경에서 Oracle 사용하기

  • Migrator나 DBLINK 등의 연결방식의 환경 테스트가 필요한 경우에 유용할듯

  • Migration Test 진행할 때에 개인적으로 사용 가능할듯.

  • oracle docker 이용을 위해서는 최소 30기가 정도의 디스크 공간이 필요하다.

docker image pull을 위한 작업들

  1. Docker Hub에서 login 후 진행해야 한다
  2. https://hub.docker.com/_/oracle-database-enterprise-edition (2020.03)
  3. 접속하여 Proceed to checkout 버튼 클릭 후 정보 입력
  4. 사용하고자 하는 Docker 환경에 터미널 연결
  5. docker login 명령어로 docker hub 아이디/암호 입력
  6. docker pull store/oracle/database-enterprise:12.2.0.1 명령으로 image 다운로드

 

Oracle Docker Container 실행

  1. oracle.env 파일 생성(유저,암호 등 설정파일)

     TZ=Asia/Seoul
     ORACLE_SID=ORCL
     ORACLE_PDB=MYORCL
     ORACLE_PWD=oracle
     ORACLE_CHARACTERSET=UTF8
  1. env 파일 load 하는 방식으로 컨테이너 생성.

    docker run -d --name sean_ora12c --env-file ./oracle.env -p 1521:1521 -it store/oracle/database-enterprise:12.2.0.1 
    ## volume 사용시
    ##docker run -d --name sean_ora12c --env-file ./oracle.env -p 1521:1521 -it -name sean_ora12c -v /root/:/ORCL store/oracle/database-enterprise:12.1.0.1
    ## slim 버전
    ##docker run -d --env-file ./oracle.env -p 1521:1521 -it -name sean_ora12c -v /root/:/ORCL store/oracle/database-enterprise:12.2.0.1-slim
    
    ## 컨테이너 내려갔을때 올리기
    docker start sean_ora12c
    # 별도 작업 필요없음
  1. docker logs -f sean_ora12c 명령어로 진행상황 확인

     The command completed successfully
    
     DONE!
     Remove password info
     Docker DB configuration is complete !
     configDB.sh is done at 297 sec
    
     Done ! The database is ready for use .

 

User 생성 및 권한 설정

  • 도커 환경에서 exec로 컨테이너 접근
$ docker exec -it sean_ora12c bash -c "source /home/oracle/.bashrc; sqlplus sys/Oradoc_db1@ORCLCDB as sysdba"
  • 유저 생성 및 암호 설정, 권한 설정
alter session set "_ORACLE_SCRIPT"=true;

## 유저 oracle, 암호 orapass
create user oracle identified by orapass;

grant connect, resource, dba to oracle;
  • sysdba로 접근 후 DB, SID 확인
docker exec -it sean_ora12c bash -c "source /home/oracle/.bashrc; sqlplus sys/Oradoc_db1@ORCLCDB as sysdba"

SELECT NAME, DB_UNIQUE_NAME FROM v$database;
SELECT instance FROM v$thread;

 

DBeaver Oracle 접속

  1. 필요한 드라이버 다운로드 후 DBeaver에 위치 등록.
  1. 접속 정보 입력 후 접속 테스트(SID = ORCLCDB, 아이디, 암호는 위에서 생성한 대로)

 

https://hub.docker.com/u/dosroad/content/sub-79223df5-6a1f-4c40-a3b2-96d36ff84172

http://1004lucifer.blogspot.com/2019/11/docker-oracle-12c-oracle.html

oracle xe 18c 설치

https://emflant.tistory.com/237

'PostgreSQL' 카테고리의 다른 글

bloat postgresql check query  (0) 2021.07.18
PostgreSQL에 oracle_fdw 설정하기- 2/2  (0) 2021.01.20
PostgreSQL 13(1편 Index size)  (0) 2020.09.27
PostgreSQL Toast에 관한 정리  (0) 2020.09.26