Oracle Database 실습 1

Oracle Database 실습 1입니다. Linux 설치 전 OS 점검, preinstall RPM, oracle 사용자, 커널 파라미터, limits, 디렉터리와 방화벽 준비를 정리했습니다.

Oracle Database 실습 1: Linux 설치 전 준비

Oracle Database 실습을 시작하기 전에 Linux 서버에서 준비해야 할 항목을 정리한다. 실습은 설치 전에는 Oracle Database XE 또는 단일 인스턴스 학습 환경을 만들기 전의 OS 점검, 패키지, 사용자, 커널 파라미터, 디렉터리 구성을 명령어 기준으로 함께 확인한다.

학습용으로는 Oracle Database XE가 접근성이 좋다. 운영용 Enterprise Edition 설치와는 디렉터리, 라이선스, 패치, Grid Infrastructure, ASM 구성이 다를 수 있지만, Linux에서 Oracle이 요구하는 기본 OS 준비 흐름을 익히기에는 충분하다.

실습 환경 기준

항목권장 기준비고
OSOracle Linux, RHEL 호환 LinuxOracle preinstall RPM 사용 가능 여부를 먼저 확인한다.
CPU2 vCPU 이상XE 학습은 2 vCPU로도 가능하다.
Memory2 GB 이상, 가능하면 4 GB 이상GUI installer나 추가 도구를 쓰면 더 필요하다.
Disk20 GB 이상소프트웨어 영역과 데이터 영역을 분리하면 좋다.
Hostname고정 hostnamelistener, local name resolution 문제를 줄인다.

1. OS와 자원 확인

cat /etc/os-release
hostnamectl
uname -r

nproc
free -h
df -h
lsblk
swapon --show

Oracle 설치 전에는 hostname과 /etc/hosts 매핑도 확인한다. hostname이 DNS에서 해석되지 않는 랩 환경이라면 local hosts 파일에 등록해 둔다.

hostname -f
getent hosts "$(hostname)"

sudo cp -a /etc/hosts /etc/hosts.bak.$(date +%Y%m%d%H%M%S)
echo "192.168.56.50 oracle-lab.example.local oracle-lab" | sudo tee -a /etc/hosts
getent hosts oracle-lab

2. preinstall RPM 사용 여부 결정

Oracle Linux에서는 oracle-database-preinstall-19c 또는 버전에 맞는 preinstall RPM이 패키지 의존성, 사용자, 그룹, 커널 파라미터 일부를 자동으로 맞춰준다. 가능하면 이 방식을 우선 사용한다.

sudo dnf search oracle-database-preinstall || sudo yum search oracle-database-preinstall

# Oracle Linux 8/9 계열 예시
sudo dnf install -y oracle-database-preinstall-19c

CentOS, Rocky, Alma, RHEL 환경에서 해당 RPM을 바로 쓸 수 없으면 필요한 패키지와 설정을 수동으로 맞춘다.

sudo dnf install -y \
 bc \
 binutils \
 elfutils-libelf \
 elfutils-libelf-devel \
 fontconfig-devel \
 glibc \
 glibc-devel \
 ksh \
 libaio \
 libaio-devel \
 libXrender \
 libXrender-devel \
 libX11 \
 libXau \
 libXi \
 libXtst \
 libgcc \
 libnsl \
 make \
 net-tools \
 smartmontools \
 sysstat \
 unzip

3. oracle 사용자와 그룹

preinstall RPM을 쓰면 보통 oracle, oinstall, dba가 생성된다. 수동 구성이라면 아래처럼 만든다.

getent group oinstall || sudo groupadd oinstall
getent group dba || sudo groupadd dba
id oracle || sudo useradd -g oinstall -G dba oracle

sudo passwd oracle
id oracle

비밀번호는 화면이나 문서에 남기지 않는다. 실습 기록에도 실제 비밀번호를 적지 말고 "설치 중 입력" 정도로만 남긴다.

4. 커널 파라미터 확인

Oracle Database는 shared memory, semaphore, file handle, ephemeral port range 같은 OS 설정에 민감하다. preinstall RPM이 있으면 대부분 자동 구성되지만, 수동 실습에서는 현재 값을 먼저 확인한다.

sysctl kernel.shmmax
sysctl kernel.shmall
sysctl kernel.sem
sysctl fs.file-max
sysctl net.ipv4.ip_local_port_range
sysctl net.core.rmem_default
sysctl net.core.rmem_max
sysctl net.core.wmem_default
sysctl net.core.wmem_max

수동 예시는 다음처럼 별도 파일로 관리한다. 값은 학습 환경 기준 예시이므로 운영에서는 Oracle 버전, 메모리, 설치 문서에 맞춰 조정한다.

sudo tee /etc/sysctl.d/99-oracle-database.conf >/dev/null <<'EOF'
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
EOF

sudo sysctl --system

5. 사용자 limits 설정

Oracle 프로세스가 열 수 있는 파일 수와 프로세스 수가 너무 낮으면 설치나 기동 중 문제가 날 수 있다.

sudo tee /etc/security/limits.d/oracle-database.conf >/dev/null <<'EOF'
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
EOF

su - oracle -c 'ulimit -n; ulimit -u; ulimit -s'

6. 설치 디렉터리 준비

일반적인 Oracle 설치는 소프트웨어 영역과 데이터 영역을 분리한다. XE는 기본 경로를 사용하는 경우가 많지만, 디렉터리 권한 개념을 익히기 위해 표준 경로도 같이 알아두는 것이 좋다.

sudo mkdir -p /u01/app/oracle
sudo mkdir -p /u02/oradata
sudo chown -R oracle:oinstall /u01 /u02
sudo chmod -R 775 /u01 /u02

ls -ld /u01 /u01/app /u01/app/oracle /u02 /u02/oradata

7. 방화벽과 포트 계획

Oracle listener 기본 포트는 보통 1521/tcp다. 외부 접속이 필요한 실습이면 방화벽을 열되, 관리망이나 랩 네트워크에서만 접근하게 제한한다.

sudo firewall-cmd --state || true
sudo firewall-cmd --permanent --add-port=1521/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports

8. 설치 전 점검표

  • OS 버전과 Oracle 버전의 지원 조합을 확인했다.
  • hostname이 고정되어 있고 local name resolution이 된다.
  • 메모리, swap, 디스크 여유 공간을 확인했다.
  • preinstall RPM 또는 수동 패키지 설치를 완료했다.
  • oracle, oinstall, dba 사용자/그룹이 준비되었다.
  • kernel parameter와 limits 설정을 적용했다.
  • 설치 파일과 데이터 파일 위치를 정했다.
  • listener 포트 접근 범위를 정했다.

정리

Oracle Database 설치에서 가장 많이 나는 문제는 설치 파일 자체보다 OS 준비 부족에서 나온다. hostname 해석, 의존 패키지, kernel parameter, limits, 디렉터리 권한, 방화벽을 먼저 정리하면 이후 설치와 listener 검증이 훨씬 단순해진다. 다음 실습에서는 준비된 Linux 서버에 Oracle Database XE를 설치하고, SQL*Plus와 listener 상태를 확인한다.

문서 링크

BGM EVER