Oracle Linux 소개

Oracle Linux 소개와 기본 운영 가이드입니다. RHEL 호환성, UEK/RHCK 커널 선택, dnf 패키지 관리, systemd, firewalld, SELinux 점검 기준을 정리했습니다.

Oracle Linux는 Oracle이 제공하는 enterprise Linux 배포판입니다. RHEL 계열 운영 방식과 유사하고, Oracle Database/미들웨어와 함께 쓰는 환경에서 자주 선택됩니다. 특징으로는 UEK(Unbreakable Enterprise Kernel)와 RHCK(Red Hat Compatible Kernel) 선택, Ksplice, Oracle Linux yum/dnf repository 등이 있습니다.

운영 관점에서는 “RHEL과 비슷하다”에서 멈추면 안 됩니다. 커널 계열, 저장소 구성, SELinux/firewalld 기본값, Oracle 제품 인증 조합을 같이 봐야 나중에 DB나 미들웨어 설치 중 원인을 찾기 쉬워집니다.

버전과 커널 확인

cat /etc/oracle-release
cat /etc/os-release
uname -r
uname -m
dnf repolist 2>/dev/null || yum repolist

Oracle Linux 8/9 계열은 dnf를 기본으로 쓰고, 구버전 호환으로 yum 명령이 남아 있는 경우가 많습니다. 커널 이름에 uek가 보이면 UEK 계열이고, 일반 el8/el9 형태면 RHCK 계열일 가능성이 큽니다.

Oracle Database, ASM, 특정 HBA/NIC 드라이버가 얽힌 서버는 커널을 단순 최신으로 올리지 말고 인증표와 벤더 드라이버 지원을 먼저 확인합니다.

패키지 관리

sudo dnf update -y
sudo dnf install -y httpd vim tar
sudo dnf module list
sudo dnf history
sudo dnf history info last

저장소가 꼬였을 때는 어떤 repo가 enable 되어 있는지 먼저 봅니다. 외부 repo를 섞을수록 의존성 충돌 가능성이 커지므로, DB 서버는 필요한 repo만 최소로 유지하는 편이 안전합니다.

sudo dnf repolist --enabled
sudo dnf repolist --disabled
sudo dnf clean all
sudo dnf makecache

서비스 관리

sudo systemctl enable --now httpd
sudo systemctl status httpd --no-pager
sudo journalctl -u httpd -n 100 --no-pager
sudo systemctl list-units --failed

firewalld

Oracle Linux도 RHEL 계열처럼 firewalld를 많이 사용합니다. runtime과 permanent 설정이 나뉘므로 운영 반영 시 둘을 구분해야 합니다.

sudo systemctl enable --now firewalld
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --list-all
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

접속 장애를 볼 때는 서비스 listen, 로컬 방화벽, 외부 경로를 분리합니다.

sudo ss -lntp
sudo firewall-cmd --query-service=http
curl -I http://127.0.0.1/

SELinux

SELinux는 문제가 생긴다고 바로 끄는 대상이 아닙니다. 먼저 상태와 audit log를 확인하고 필요한 context나 boolean을 조정합니다.

getenforce
sestatus
sudo ausearch -m AVC -ts recent 2>/dev/null | tail -n 40
sudo restorecon -Rv /var/www/html

테스트 중 일시적으로 permissive로 바꿀 수는 있지만, 운영 기준은 enforcing을 유지하고 원인을 해결하는 것입니다.

sudo setenforce 0
sudo setenforce 1

웹 루트나 업로드 경로를 바꾼 경우에는 context가 실제 문제인 경우가 많습니다.

sudo semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?"
sudo restorecon -Rv /srv/www
sudo getsebool -a | grep httpd

사용자 관리

sudo useradd testuser
sudo passwd testuser
sudo usermod -aG wheel testuser
id testuser
sudo passwd -S testuser

Oracle 제품 설치 전 확인

Oracle Database나 WebLogic 같은 제품을 올릴 서버라면 OS만 설치했다고 끝이 아닙니다. 커널 파라미터, hugepage, 파일 descriptor, 사용자 limit, swap, hostname 해석, 시간 동기화 상태를 설치 전에 고정해 두는 것이 좋습니다.

hostnamectl
timedatectl
free -h
swapon --show
ulimit -n
sysctl kernel.sem fs.file-max vm.swappiness
getent hosts "$(hostname -f)"

설치 스크립트가 안내하는 값을 그대로 넣기보다, 현재 서버의 메모리/DB 용도/ASM 사용 여부에 맞게 계산하고 변경 기록을 남깁니다.

장애 시 빠른 수집

cat /etc/oracle-release
uname -r
sudo dnf history | head
sudo systemctl list-units --failed --no-pager
sudo journalctl -p warning -S -2h --no-pager
sudo ausearch -m AVC -ts recent 2>/dev/null | tail -n 30
sudo firewall-cmd --list-all

운영 기준

  • Oracle Database 설치 전에는 해당 DB 버전의 지원 OS와 kernel 요구사항을 확인합니다.
  • UEK/RHCK 선택은 드라이버, 스토리지, DB 인증 기준과 함께 결정합니다.
  • SELinux와 firewalld를 기본 보안 계층으로 유지합니다.
  • 패키지 업데이트 전에는 dnf history와 rollback 계획을 남깁니다.
  • 외부 repo 추가, 커널 변경, 보안 기능 비활성화는 변경 사유와 복구 절차를 같이 기록합니다.

공식 문서

BGM EVER