Oralce은 많은 기업이랑 개발자가 사용하는 강력한 관계형 데이터베이스 관리 시스템이다.
하지만 유로 버전이기 때문에 직장을 다니지 않는다면 접하지 않는 경우가 많고 입사 후에 처음 접하는 일이 많다.
처음 접하는 사람도 따라가기 쉽게 글을 작성해 보려고 한다.
요번 글에서 진행할 내용은 설치이다. 기본적인 설명 없이 설치에만 초첨을 맞춰서 진행하겠다.
docker로 진행을 할 거 기 때문에 기본적인 선수 지식이 필요하다. 설치 방법이 딱히 궁금하지 않으면 안 봐도 된다.
1. Dockerfile 생성
사전 준비 목록은 다음과 같다.
- Docker & Docker-Compose 설치
- 충분한 하드웨어 자원 (Ram 4GB 이상 권장)
- 네트워크 port (본글에서는 기본적인 port인 1521 사용)
# Oracle XE 11g 이미지를 기반으로 사용
FROM oracleinanutshell/oracle-xe-11g
# 루트 사용자로 실행
USER root
# 컨테이너의 시간대를 설정
RUN apt-get update && \
apt-get install -y tzdata && \
ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime && \
echo "Asia/Seoul" > /etc/timezone && \
apt-get clean
# 환경 변수로 시간대 설정
ENV TZ=Asia/Seoul
# Oracle 홈 경로를 환경 변수로 설정
ENV ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
# Oracle 실행 파일에 적절한 권한 부여
RUN chmod 6751 /u01/app/oracle/product/11.2.0/xe/bin/oracle
모든 명령어는 상황에 맞게 적용해야 하니 자신이 처한 상황에 맞는 설정을 해줘야 한다.
2. Docker-compose
version: "3"
services:
oracle:
build:
context: . # Dockerfile 경로 (필수)
dockerfile: ./dockerfile/Dockerfile-oracle # Dockerfile 이름 (필수)
container_name: oracle # 컨테이너 이름 (필수)
hostname: oracle # 컨테이너의 호스트 이름 (필수)
restart: always # 컨테이너 재시작 정책 (필수)
ports: # 포트 매핑 (필수)
- "1521:1521" # Oracle Listener 포트
- "8521:8080" # Oracle Application Express 포트
environment: # 환경 변수 설정
ORACLE_SID: XE # Oracle SID 설정 (필수)
ORACLE_PWD: oracle # Oracle SYS/SYSTEM 비밀번호 (필수)
ORACLE_USERNAME: system # 기본 사용자 이름 (필수)
ORACLE_ALLOW_REMOTE: true # 원격 연결 허용 여부 (필수)
TZ: Asia/Seoul # 시간대 설정 (필수)
volumes: # 데이터 보존을 위한 볼륨 설정
- oradata:/u01/app/oracle # Oracle 데이터 디렉토리 (필수)
volumes:
oradata: # Oracle 데이터 볼륨 (필수)
지금은 필수적인 설정만 포함했으므로 앞에서 설명한 바와 같이 자신의 상황에 맞게 설정을 진행해야 한다.
필자는 인텔리제이를 사용했기 떄문에 연결 및 추가 설정은 인텔리제이로 진행하겠다
sqlplus로 들어가서 진행하고싶은사람은 docker container안으로 들어가서 진행하면 된다.
3. User(schema 생성 & table space 생성)
빨간 줄이 그어진 부분을 입력하고 test connection을 누르면 된다.
User : system
Password : oracle
처음 설정한 내용에 따라서 달라질수도 있으나 필자 방식대로면 이렇게 입력하면 된다.
이렇게해서 연결했으면 sql문을 만들자
요런식으로 연결해서 사용하면된다.
create user practice identified by practice123;
grant connect,resource,dba to practice;
CREATE TABLESPACE MO_DEV_DAT DATAFILE
'/u01/app/oracle/mo_dev_dat01.dbf' size 2048M
DEFAULT STORAGE (
INITIAL 1024K--100K
NEXT 1024K--100K
PCTINCREASE 0
MINEXTENTS 1
);
CREATE TABLESPACE MO_DEV_IDX DATAFILE
'/u01/app/oracle/mo_dev_idx01.dbf' size 1024M
DEFAULT STORAGE (
INITIAL 512K--100K
NEXT 512K--100K
PCTINCREASE 0
MINEXTENTS 1
);
ALTER USER practice DEFAULT TABLESPACE MO_DEV_DAT;
ALTER USER practice TEMPORARY TABLESPACE TEMP;
COMMIT;
이렇게하면
index와 실제 데이터가 저장되는 테이블을 나눠서 사용할수 있다.
아까 system, oracle로 로그인한 부분을 이번에 생성한 practice로 변경하자
userane : pratice
password : practice123
으로 로그인하면된다.
'Database > Oracle' 카테고리의 다른 글
[DB/Oracle] Optimizer [5] (0) | 2024.12.10 |
---|---|
[DB/Oracle] INDEX [4] (1) | 2024.12.09 |
[DB/Oracle] SQL & PL/SQL 기초 완벽 정리 (11g) [3] (0) | 2024.12.09 |
[DB/Oracle] Oracle Architecture 이해하기 (11g) [2] (1) | 2024.12.09 |
Coding, Software, Computer Science 내가 공부한 것들 잘 이해했는지, 설명할 수 있는지 적는 공간