728x90
반응형

Centos9 에 Oracle 컨테이너 구동

    # 필요한 버전을 -v 로 실행시키기
    ./buildContainerImage.sh -v 19.3.0 -e
  • docker-compose.yml
services:
    oracle-db:
        shm_size: 8g
        image: oracle/database:19.3.0-ee
        container_name: oracle19c
        ports:
            - "1521:1521" # Oracle Listener Port
            - "5500:5500" # EM Express Port
        environment:
            ORACLE_SID: "ORCLCDB" # Replace with your SID
            ORACLE_PDB: "ORCLPDB1" # Replace with your PDB name
            INIT_SGA_SIZE: "1024" # Replace with your desired SGA size in MB
            INIT_PGA_SIZE: "256" # Replace with your desired PGA size in MB    
            INIT_CPU_COUNT: "2" # Replace with desired CPU count
            INIT_PROCESSES: "300" # Replace with processes init parameter
            ORACLE_EDITION: "standard"
            ORACLE_CHARACTERSET: "AL32UTF8" # Character set for the database
            ENABLE_ARCHIVELOG: "true" # Enable archive log
            ENABLE_FORCE_LOGGING: "true" # Enable force logging    
            ENABLE_TCPS: "true" # Enable TCPS protocol
        volumes:
            - oradata:/opt/oracle/oradata
        ulimits:
            nofile:
                soft: 1024
                hard: 65536
            nproc:
                soft: 2047
                hard: 16384
            stack:
                soft: 10485760
                hard: 33554432
            memlock:
                soft: 3221225472
                hard: 3221225472

volumes:
    oradata:
        external: true
  • 이제 컨테이너 실행시키기
    • 생각보다 인스턴스 실행에 시간이 많이 소요됨
  • 계정 생성
    • 컨테이너 내부 접속하면 패스워드 세팅 스크립트가 있음
    • 그걸로 일단 디폴트 유저 세팅 한 다음이 sqlplus로 유저 생성
    sudo docker exec -it oracle19c bash

    # 컨테이너 내부에서 sqlplus 사용
    sqlplus / as sysdba
  • Identify Available Pluggable Databases (PDBs)

      SHOW PDBS;
      ALTER SESSION SET CONTAINER = <데이터베이스 명>;
  • 필요한 유저 생성은 sqlplus에서 아래 쿼리문으로

    • SYSTEM 계정으로 실행
-- Create a user
CREATE USER youruser IDENTIFIED BY yourpassword;

--Grant permissions
GRANT CONNECT, RESOURCE, DBA TO demo;
  • 유저 권한 부여를 위해서 세션 연결을 한 후에 하더라
  • 사용자가 이미 존재할 때 테이블 생성 명령문
-- 테이블 생성 권한 부여
GRANT CREATE TABLE FROM user;

-- 모든 권한 부여
GRANT ALL PRIVILEGES TO user;
  • 덤프는 뜬 거로 임포트 했는데 덤프 데이터에 대한 에러들이 발생함
imp userid=user/password file=./backup.dmp

imp user/password file=./backup.dmp

imp userid=user/password tables=TABLE1 file=./backup.dmp

imp user/password tables=TABLE1 file=./backup.dmp

imp userid=user/password tables=TABLE1,TABLE2,TABLE3 file=./backup.dmp

imp user/password tables=TABLE1,TABLE2,TABLE3  file=./backup.dmp
728x90
반응형

+ Recent posts