728x90
반응형
Centos9 에 Oracle 컨테이너 구동
- 공식 레포지토리 및 문서를 기본으로 진행
- Oracle 에서 파일 다운
- 19c - Oracle Database 19c for Linux x86-64 ZIP 으로 다운 받음
- https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#db_free
- 깃허브에서 다운로드
- 공식 깃허브
- https://github.com/oracle/docker-images/tree/main/OracleDatabase/SingleInstance/dockerfiles
- docker-images/OracleDatabase/SingleInstance/dockerfiles로 이동
- 19.3.0 가 오라클 버전의 도커 이미지
- 19.3.0 폴더 안에 위에서 받은 오라클 zip 파일 옮겨놓기
- buildContainerImage.sh 스크립트 실행시키기
- 공식 깃허브
# 필요한 버전을 -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
반응형
'백엔드 Backend > DB' 카테고리의 다른 글
[Neo4j] Neo4j Docker Compose로 구동시키기 (0) | 2024.12.10 |
---|---|
[GraphDB] Neo4j - Cypher 문법 (0) | 2024.12.04 |
[GraphDB] Neo4J 란? (0) | 2024.12.03 |
[GraphDB] 그래프 데이터베이스란? (0) | 2024.12.02 |
[GraphDB] 그래프 데이터베이스 오픈소스 정리 (1) | 2024.11.29 |