-
19c Grid Infrastructure Linux OS 구성DB 스터디/Database Documentation 2026. 7. 6. 17:26
최소 또는 기본 Linux 설치 완료하기
최소 또는 기본 Linux 설치를 수행해야 한다.
최소 Linux 설치를 완료하려면 최소 설치 옵션 중 하나를 선택한다.
최소 Linux 설치 옵션은 패키지 그룹 선택에서 Minimal 옵션을 선택하는 사용자 정의 설치이거나, Base pack을 제외한 모든 패키지를 선택 해제하는 경우다.
최소 Linux 설치에는 데이터베이스 설치에 필요한 많은 RPM이 포함되지 않으므로, Oracle Linux 릴리스에 맞는 RPM 패키지를 사용하여 필요한 패키지를 설치해야 한다. 사용하는 패키지는 Linux 릴리스와 Unbreakable Linux Network(ULN) 지원 상태에 따라 달라진다.
Oracle Database Preinstallation RPM을 설치하지 않는 경우, Oracle은 Linux 운영체제를 기본 소프트웨어 패키지(RPM)로 설치할 것을 권장한다. 기본 Linux 설치에는 대부분의 필요한 패키지가 포함되어 있어 패키지 종속성을 수동으로 확인하는 작업을 줄일 수 있다. Oracle은 설치 중 RPM을 사용자 정의하지 말 것을 권장한다.
자세한 내용은 Oracle Linux 공식 문서를 참조한다.
Linux에서 HugePages 구성하기
HugePages는 Linux 커널에 통합된 기능이다. Oracle Database에서 HugePages를 사용하면 운영체제가 페이지 상태를 관리하는 부담을 줄이고 Translation Lookaside Buffer(TLB) 히트율을 높일 수 있다.
주의: HugePages 지원은 CONFIG_HUGETLBFS 및 CONFIG_HUGETLB_PAGE 옵션으로 빌드된 커널에서 사용할 수 있다.
Oracle은 전체 메모리의 최소 30%를 표준 페이지로 예약하고, HugePages에는 전체 메모리의 최대 70%만 할당할 것을 권장한다.
Oracle Database 소프트웨어 소유자(oracle) 사용자 계정과 모든 그룹을 생성해야 한다.
HugePages 활성화 절차
1. 커널이 HugePages를 지원하는지 확인한다.
$ grep Huge /proc/meminfo2. /etc/security/limits.conf 파일에서 memlock 설정을 편집한다.
- memlock 설정은 KB 단위로 지정한다.
- HugePages 메모리를 활성화할 경우 현재 RAM의 최소 90%를, 비활성화할 경우 최소 3145728 KB(3 GB)를 설정한다.
- 예: RAM이 64 GB인 경우 다음 항목을 추가한다.
oracle soft memlock 60397977 oracle hard memlock 60397977 - memlock 값은 SGA 요구 사항보다 크게 설정할 수도 있다.
- Exadata 시스템에서는 memlock을 unlimited로 지정한다.
3. oracle 사용자로 다시 로그인하고 ulimit -l 명령으로 새로운 memlock 설정을 확인한다.
ulimit -l 603979774. HugePages 크기를 확인한다.
grep Hugepagesize /proc/meminfo5. oracle 사용자 그룹 ID(gid) 값을 확인한다.
id oracle출력 예:
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba), ...6. 커널 매개변수 vm.hugetlb_shm_group 값을 gid로 설정한다.sysctl -w vm.hugetlb_shm_group=gid시스템 재시작 후에도 값이 유지되도록 /etc/sysctl.d/99-hugetlb-shm-group.conf 파일에 다음 항목을 추가한다.vm.hugetlb_shm_group=gidHugePages 용량 구성
Oracle Database 설치 및 데이터베이스 생성 후 HugePages 용량을 구성한다.
1. HugePages 권장 값을 계산하는 스크립트를 작성한다.
- hugepages_settings.sh 파일을 생성한다. (My Oracle Support 문서 401749.1 참조)
- 권한을 변경한다.
chmod +x hugepages_settings.sh2. 스크립트를 실행하여 HugePages 구성 값을 계산한다.
./hugepages_settings.sh스크립트를 실행하기 전에 HugePages를 사용하는 모든 데이터베이스가 실행 중이어야 한다.
3. 커널 매개변수 vm.nr_hugepages 값을 설정한다.
sysctl -w vm.nr_hugepages=value4. 시스템 재시작 후에도 HugePages가 할당되도록 /etc/sysctl.d/99-nr_hugepages.conf 파일에 다음 항목을 추가한다.
vm.nr_hugepages=valuenr_hugepages로 HugePages 할당이 되지 않으면 메모리가 조각화되었을 수 있다. 이 경우 서버를 재시작해야 한다.
5. HugePages 사용 가능 여부를 확인한다.
grep Huge /proc/meminfo6. 인스턴스를 재시작한다.
7. HugePages가 1~2 페이지 남아 있는지 다시 확인한다.
grep Huge /proc/meminfo
HugePages 및 Transparent HugePages 구성 제한 사항
이 절에서는 HugePages와 Transparent HugePages에 대한 지침을 검토한다.
Oracle은 Transparent HugePages를 비활성화할 것을 권장한다. Transparent HugePages는 메모리 접근 지연을 유발하여 Oracle RAC 환경에서 노드 재시작을 초래하거나, Oracle Database 단일 인스턴스에서 성능 문제나 지연을 발생시킬 수 있기 때문이다. Oracle은 Linux에서 표준 HugePages 사용을 계속 권장한다.
Transparent HugePages 메모리는 Oracle Linux 6 이후, Red Hat Enterprise Linux 6 이후, SUSE 11 이후 커널에서 기본적으로 활성화되어 있다.
Oracle Database Preinstallation RPM을 설치하면 Transparent HugePages가 자동으로 비활성화된다.
Transparent HugePages는 표준 HugePages와 유사하다. 그러나 표준 HugePages는 시작 시 메모리를 할당하는 반면, Transparent HugePages는 커널의 khugepaged 스레드를 사용하여 런타임 중 동적으로 메모리를 할당하며, 스왑 가능한 HugePages를 사용한다.
HugePages는 메모리 매핑 파일을 사용하여 대형 페이지 테이블에 대해 스왑 불가능한 메모리를 할당한다. HugePages는 기본적으로 활성화되어 있지 않다. HugePages를 활성화하면, 스왑 공간을 계산하기 전에 HugePages에 할당된 메모리를 사용 가능한 RAM에서 차감해야 한다. 자세한 내용은 배포판 문서와 Oracle Technology Network 및 My Oracle Support를 참조한다.
Oracle Grid Infrastructure 설치 중 Grid Infrastructure Management Repository(GIMR)는 HugePages를 사용하도록 구성된다. GIMR 데이터베이스는 클러스터에 설치된 다른 모든 데이터베이스보다 먼저 시작되므로, HugePages에 할당된 공간이 부족하면 하나 이상의 데이터베이스의 SG)가 HugePages 대신 일반 페이지에 매핑되어 성능에 악영향을 줄 수 있다. 따라서 HugePages 메모리 할당은 클러스터에 설치하려는 모든 데이터베이스의 SGA 크기 합과 Grid Infrastructure Management Repository를 수용할 수 있을 만큼 충분히 크게 설정해야 한다.
설치 Fixup 스크립트에 대하여
Oracle Universal Installer(OUI)는 설치 최소 요구 사항이 충족되지 않았을 때 이를 감지하고, 불완전한 시스템 구성 단계를 완료하기 위해 Fixup 스크립트라 불리는 셸 스크립트를 생성한다.
OUI가 불완전한 작업을 감지하면 runfixup.sh 스크립트를 생성한다. 사용자는 Fixup 스크립트를 실행한 후 Fix and Check Again을 클릭할 수 있다. Fixup 스크립트는 지속적인 매개변수 설정과 메모리 내 매개변수를 모두 수정하므로 시스템을 재시작할 필요가 없다.
Fixup 스크립트가 수행하는 작업
- 필요한 경우 커널 매개변수를 성공적인 설치에 필요한 값으로 설정한다.
- 공유 메모리 매개변수
- 열린 파일 디스크립터 및 UDP 송수신 매개변수
- Oracle Inventory(중앙 인벤토리) 디렉터리를 생성하고 권한을 설정한다.
- 설치 소유자에 대해 Oracle Inventory 디렉터리와 운영체제 권한 그룹에 필요한 경우 기본 및 보조 그룹 멤버십을 생성하거나 재구성한다.
- 필요한 경우 셸 제한을 요구되는 값으로 설정한다.
주의: Fixup 스크립트를 사용한다고 해서 Oracle Database 설치에 필요한 모든 사전 요구 사항이 충족되는 것은 아니다. 성공적인 설치를 위해서는 여전히 모든 사전 설치 요구 사항을 확인해야 한다.
Oracle Universal Installer는 Cluster Verification Utility(CVU)와 완전히 통합되어 있어 Oracle Grid Infrastructure 또는 Oracle Real Application Clusters(Oracle RAC) 설치를 위한 많은 사전 요구 사항 검사를 자동화한다. 또한 cluvfy 명령을 실행하여 다양한 CVU 검증을 수동으로 수행할 수도 있다.
운영체제 요구 사항
설치하려는 제품에 따라 필요한 운영체제 커널과 패키지가 설치되어 있는지 확인해야 한다.
이 문서에 나열된 요구 사항은 표지에 명시된 날짜 기준으로 최신이다. OUI는 시스템이 나열된 운영체제 패키지 요구 사항을 충족하는지 확인한다. 이러한 검사가 성공적으로 완료되도록 OUI를 시작하기 전에 요구 사항을 반드시 확인해야 한다.
주의: Oracle은 클러스터 멤버에서 서로 다른 운영체제 버전을 실행하는 것을 지원하지 않는다. 운영체제를 업그레이드하는 경우를 제외하고, 동일한 클러스터 멤버에서 서로 다른 운영체제 버전 바이너리를 실행할 수 없다.
x86-64용 Oracle Linux 8 지원 배포판
이 정보를 사용하여 지원되는 Oracle Linux 8 배포판을 확인한다.
SSH 요구 사항
서버에 OpenSSH가 설치되어 있어야 한다. OpenSSH는 필수 SSH 소프트웨어다.
Oracle Linux 8 최소 지원 버전
- Oracle Linux 8.1, Unbreakable Enterprise Kernel 6: 5.4.17-2011.0.7.el8uek.x86_64 이상
- Oracle Linux 8, Red Hat Compatible Kernel: 4.18.0-80.el8.x86_64 이상
- Oracle Database 19c Release 19.21부터 지원되는 최소 버전: Oracle Linux 8.8, Unbreakable Enterprise Kernel 7: 5.15.0-202.135.2.el8uek.x86_64 이상
- Oracle Grid Infrastructure 19c Release 19.23부터 지원되는 최소 버전: Oracle Linux 8.8, Unbreakable Enterprise Kernel 7: 5.15.0-202.135.2.el8uek.x86_64 이상
Oracle은 Oracle Linux를 최신 버전과 릴리스 수준으로 업데이트할 것을 권장한다.
Oracle Linux 8 패키지 요구 사항
- ULN(Unbreakable Linux Network)에서 Oracle Linux 8 채널을 구독하거나 Oracle Linux yum 서버 웹사이트에서 yum 저장소를 구성한 후, oracle-database-preinstall-19c RPM을 설치한다.
- 이 RPM은 Oracle Grid Infrastructure 및 Oracle Database 설치에 필요한 모든 패키지와 종속성을 자동으로 설치하고, 시스템 구성을 수행한다.
- RPM을 설치하면 아래 패키지를 별도로 설치할 필요가 없다.
필수 패키지:
bc
binutils
compat-libcap1
compat-libstdc++-33
elfutils-libelf
elfutils-libelf-devel
fontconfig-devel
glibc
glibc-devel
ksh
libaio
libaio-devel
libXrender
libXrender-devel
libX11
libXau
libXi
libXtst
libgcc
libstdc++
libstdc++-devel
libxcb
make
policycoreutils
policycoreutils-python
smartmontools
sysstat
64비트 서버에 32비트 클라이언트 애플리케이션을 사용할 경우, 해당 패키지의 최신 32비트 버전도 설치해야 한다.
Oracle Linux 8 선택적 패키지
요구 사항에 따라 최신 버전을 설치한다.
- ipmiutil (IPMI용)
- libnsl2, libnsl2-devel (Oracle Database Client용)
- libvirt-libs (KVM용)
- net-tools (Oracle RAC 및 Oracle Clusterware용)
- nfs-utils (Oracle ACFS용)
패치 및 알려진 문제
- Oracle Linux 8 및 Red Hat Enterprise Linux 8용 최신 Oracle Database Release Updates(RU) 및 Release Update Revisions(RUR) 패치는 My Oracle Support에서 확인한다.
- 알려진 문제와 버그는 Oracle Database 릴리스 노트를 참조한다.
Linux 커널 및 패키지 요구 사항 확인하기
설치 최소 요구 사항을 충족하는지 확인하기 위해 커널과 패키지를 검증해야 한다.
절차
1. Linux 배포판 및 버전 확인
다음 명령 중 하나를 입력한다.
cat /etc/oracle-release cat /etc/redhat-release cat /etc/os-release lsb_release -id2. 필수 커널 에라타 설치 여부 확인
uname -r예: Oracle Linux 7 시스템에서 출력 예시는 다음과 같다.
4.14.35-1902.0.18.el7uek.x86_64배포판에 필요한 에라타 수준을 검토한다. 요구되는 최소 에라타 업데이트보다 낮으면, Linux 배포판에서 최신 커널 업데이트를 받아 설치해야 한다.
필수 패키지 설치 여부 확인rpm -q package_name특정 시스템 아키텍처 정보를 확인하려면 다음 명령을 입력한다.rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep package_name여러 패키지를 동시에 확인할 수도 있다.예:rpm -q binutils compat-libstdc++ gcc glibc libaio libgcc libstdc++ \ make sysstat unixodbc패키지가 설치되어 있지 않으면, Linux 배포판 미디어에서 설치하거나 배포판 웹사이트에서 필요한 버전을 다운로드하여 설치해야 한다.
Linux에서 cvuqdisk RPM 설치하기
공유 디스크 환경에서 Cluster Verification Utility(CVU)가 디스크 검사를 수행할 수 있도록 하려면 cvuqdisk RPM을 설치해야 한다.
cvuqdisk가 없으면 CVU는 공유 디스크를 인식할 수 없으며, CVU 실행 시 "Package cvuqdisk not installed" 오류 메시지를 받게 된다.
설치 절차
1. cvuqdisk RPM 패키지 찾기
- Grid_home/cv/rpm 디렉터리에 위치한다.
- 여기서 Grid_home은 Oracle Grid Infrastructure 홈 디렉터리다.
2. 클러스터 각 노드에 패키지 복사
- 모든 노드가 동일한 Linux 버전을 실행하고 있는지 확인한다.
3. root 사용자로 로그인한다.
4. 기존 cvuqdisk 버전 확인
rpm -qi cvuqdisk기존 버전이 있으면 제거한다.
rpm -e cvuqdisk5. 환경 변수 CVUQDISK_GRP 설정- Oracle Inventory 그룹을 가리키도록 설정한다.
예:CVUQDISK_GRP=oinstall; export CVUQDISK_GRP6. cvuqdisk RPM 설치
RPM이 저장된 디렉터리에서 다음 명령을 실행한다.
예:
rpm -iv cvuqdisk-1.0.10-1.rpm
Transparent HugePages 비활성화
UEK7 이전 버전을 실행하는 Oracle Database 서버에서는 설치를 시작하기 전에 Transparent HugePages를 비활성화할 것을 Oracle은 권장한다.
Transparent HugePages 메모리는 표준 HugePages 메모리와 다르다.
커널의 khugepaged 스레드가 런타임 중 동적으로 메모리를 할당하는 반면, 표준 HugePages 메모리는 시작 시 미리 할당되며 런타임 동안 변경되지 않는다.
주의: Transparent HugePages는 UEK2 이후 커널에서는 기본적으로 비활성화되어 있지만, Linux 시스템에서는 기본적으로 활성화되어 있을 수 있다. Transparent HugePages는 Oracle Linux 6 이후, Red Hat Enterprise Linux 6 이후, SUSE 11 이후 커널에서 기본적으로 활성화된다.
Transparent HugePages는 런타임 중 메모리 할당 지연을 유발할 수 있다. 성능 문제를 피하기 위해 Oracle은 모든 Oracle Database 서버에서 Transparent HugePages를 비활성화할 것을 권장한다. 대신 표준 HugePages를 사용해야 성능이 향상된다.
Transparent HugePages 활성 여부 확인
root 사용자로 다음 명령을 실행한다.
- Red Hat Enterprise Linux 커널:
cat /sys/kernel/mm/redhat_transparent_hugepage/enabled - 기타 커널:
cat /sys/kernel/mm/transparent_hugepage/enabled
출력 예시:
[always] never여기서 [always] 플래그가 활성화되어 있으면 Transparent HugePages가 사용 중임을 의미한다.
- Transparent HugePages가 커널에서 제거된 경우 /sys/kernel/mm/transparent_hugepage 또는 /sys/kernel/mm/redhat_transparent_hugepage 파일이 존재하지 않는다.
Transparent HugePages 비활성화 방법
Oracle Linux 7, Oracle Linux 8, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 8에서는
/etc/default/grub 파일에 transparent_hugepage=never 매개변수를 추가하거나 수정한다.
transparent_hugepage=never예:
GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet transparent_hugepage=never" GRUB_DISABLE_RECOVERY="true"- 운영체제에 따라 파일 이름이 다를 수 있다. 정확한 파일 이름과 비활성화 방법은 운영체제 문서를 참조한다.
2. grub.cfg 파일을 다시 생성한다.grub2-mkconfig -o /boot/grub2/grub.cfg3. 시스템을 재시작하여 변경 사항을 영구적으로 적용한다.
클러스터 시간 동기화를 위한 NTP(Network Time Protocol) 설정
클러스터 시간 동기화를 위해 Oracle Cluster Time Synchronization 또는 네트워크 시간 프로토콜(NTP) 옵션을 사용할 수 있다.
- Cluster Time Synchronization Service(CTSS)는 Oracle Database 19c에서 사용 중단되었다.
- 클러스터 멤버 노드 간 시간 동기화를 위해 운영체제에 구성된 NTP(ntp, chrony) 또는 Microsoft Windows Time 서비스를 사용해야 한다.
- 네트워크 시간 동기화가 구성되었는지 확인하려면 다음 명령을 실행한다.
cluvfy comp clocksync -n all
Oracle Clusterware는 모든 클러스터 노드에서 동일한 시간대 환경 변수 설정을 요구한다. 설치 중 OUI는 Grid 설치 소유자의 노드에서 TZ 환경 변수를 가져와 모든 노드에 기본 TZ 환경 변수로 설정한다. 이 기본 시간대는 데이터베이스, Oracle ASM 및 기타 관리 프로세스에 사용된다.
시간 동기화 옵션
- 운영체제에 구성된 NTP(chronyd 또는 ntpd)
- Oracle Cluster Time Synchronization Service(CTSS)
- NTP를 사용하는 경우 ctssd는 observer 모드로 시작한다.
- NTP 데몬이 없으면 ctssd는 active 모드로 시작하여 외부 시간 서버 없이 클러스터 멤버 간 시간을 동기화한다.
설치 전 모든 노드의 시계가 동일한 시간으로 설정되어 있는지 확인해야 한다.
(출처: Oracle® Grid Infrastructure Installation and Upgrade Guide)
'DB 스터디 > Database Documentation' 카테고리의 다른 글
19c Grid Infrastructure 및 Oracle Database 사용자, 그룹 및 환경 구성 (0) 2026.07.07 19c Grid Infrastructure 및 RAC 네트워크 구성 (0) 2026.07.07 Oracle Database Preinstallation RPM을 이용한 Linux 자동 구성 (0) 2026.07.06 19c Grid Infrastructure 서버 하드웨어 체크 및 구성 (0) 2026.07.06 19c Grid Infrastructure 설치 체크리스트 (0) 2026.07.06