데이터베이스 연구실.log

Grid Infrastructure와 DB 소프트웨어

Grid Infrastructure와 Database Home 설치 역할과 CVU 사전 점검, 수업 2노드 실습의 Grid 설치(cvuqdisk, SSH, SCAN, gridSetup)와 RAC DB 소프트웨어 설치 절차

sshUserSetup.shcvuqdiskgridSetup.shrunInstallerRAC설치 검증

#핵심 요약

실습에서는 Grid Home과 Database Home의 설치 소유자, 도구, 패치 확인을 구분함

CVU는 노드 연결, 시간 동기화, 공유 저장소 등 설치 전제조건을 점검함

설치 전 패치 README에서 대상 OS와 RU 조합을 확인해야 함

#개념과 동작 원리

단계 실습 역할
Grid 이미지 준비 Grid 소유자로 첫 노드의 빈 Grid Home에 이미지 해제
cvuqdisk 실제 RPM 확인 후 root가 모든 노드에 같은 패키지 설치
CVU 설치 소유자가 노드, 네트워크, 시간, 공유 디스크 검사
GI 설치 Standalone Cluster와 세 노드, 네트워크, OCR, ASM 구성을 선택
root 스크립트 설치 프로그램의 순서를 따르고 앞 노드 성공 후 다음 노드 진행
DB 소프트웨어 GI 사후 검사 후 DB 소유자가 RAC Software Only 설치
패치 점검 각 노드의 GI, DB Home inventory와 DB 생성 후 SQL registry 구분

Home 경로의 기반 버전 표기만으로 RU 적용 여부를 판정하지 않으며 각 Home의 패치 inventory를 확인함

#필수 명령어 또는 SQL

OS 셸 (Grid 소유자, Grid Home)조회만 함
./runcluvfy.sh stage -pre crsinst -n <HOST_1>,<HOST_2>,<HOST_3> -r 19 -verbose
./runcluvfy.sh comp nodecon -n <HOST_1>,<HOST_2>,<HOST_3> -verbose
./runcluvfy.sh comp clocksync -n <HOST_1>,<HOST_2>,<HOST_3> -verbose
./runcluvfy.sh comp ssa -n <HOST_1>,<HOST_2>,<HOST_3> -asm -asmdev '/dev/asm/*' -verbose

결과 해석: OS, 패키지, 커널, 네트워크, SSH, 시간, UID/GID, 공유 디스크와 권한이 점검 대상이며 실제 검사 결과는 기재 없음

#수업 2노드 실습: Grid Infrastructure 설치

root 셸 (각 노드)객체 또는 설정을 변경함
rpm -qi cvuqdisk
cd $GRID_HOME/cv/rpm
rpm -ivh cvuqdisk-*.rpm
oracle 계정 셸 (1번 노드)객체 또는 설정을 변경함
unzip LINUX.X64_193000_grid_home.zip -d "$GRID_HOME"
cd $GRID_HOME/oui/prov/resources/scripts
./sshUserSetup.sh -user oracle -hosts "<NODE1> <NODE2>" -noPromptPassphrase -advanced

for host in <NODE1> <NODE2> <NODE1>-priv <NODE2>-priv; do
  ssh -o BatchMode=yes -o ConnectTimeout=5 "$host" hostname
done
getent hosts <SCAN_NAME>
"$GRID_HOME"/runcluvfy.sh stage -pre crsinst -n <NODE1>,<NODE2> -verbose
cd $GRID_HOME && ./gridSetup.sh
root 셸조회만 함
crsctl status resource -t

결과 해석:

  1. Grid 이미지(LINUX.X64_193000_grid_home.zip)를 첫 노드의 Grid Home에 풀고, cvuqdisk RPM을 모든 노드에 같은 버전으로 설치함
  2. VirtualBox의 일반 NAT는 VM끼리 직접 통신이 막혀 있어, 두 노드의 Public 어댑터를 같은 NAT Network로 바꾸고 getent hosts, ping으로 Public과 Private 이름을 확인함
  3. sshUserSetup.sh로 비밀번호 없는 SSH를 맞추고, 양쪽에서 Public과 Private 이름 모두 BatchMode로 접속되는지 봄
    수업은 oracle 한 계정이 Grid와 DB를 모두 소유하는 구성이며, grid 계정을 따로 두면 -user grid로 실행함
  4. SCAN은 운영에서는 DNS로 Public IP 세 개로 풀리는 방식이 권장되고, /etc/hosts는 IP 하나로만 풀려 DNS 구성과 같지 않음
  5. gridSetup.sh에서 Standalone Cluster, 클러스터 이름, SCAN 이름(앞에서 확인한 이름), 2번 노드 추가와 SSH Connectivity 테스트, 네트워크 용도, CRS 디스크 그룹(Normal, ORCL:*, CRS1~3), SYSASM 비밀번호, IPMI 미사용, 권한 그룹(수업은 dba 하나), root 스크립트 실행 방식을 차례로 정함
  6. 설치 뒤 crsctl status resource -t에서 두 노드의 Local Resources와 ASM, CRS 디스크 그룹, 노드 VIP, SCAN VIP, 리스너가 기대 노드에서 ONLINE인지 봄

사전 요구사항 검사의 SCAN, DNS 실패(예: PRVG-01101)는 자동 무시하지 않고, nslookup과 DNS 등록값을 고친 뒤 Check Again으로 다시 검사함

수업 자료는 Oracle Linux 8에서 CV_ASSUME_DISTID=OEL8.4를 .bash_profile에 넣었지만, 같은 자료의 정정 메모는 OS 버전만으로 이 값이 필수인 것이 아니고 커널과 적용할 Grid RU 조합으로 판단하며 영구 설정하지 말라고 적었음

SSH Connectivity 테스트 실패를 피하려고 1번 노드의 /usr/bin/scp를 scp.orig로 바꾸고 -T 옵션을 붙인 대체 스크립트를 두는 방법이 수업 자료에 있으나, 시스템 전체에 영향을 주는 변경임
쓴 경우에는 DBCA까지 끝난 뒤 반드시 원래 scp(권한 755, file 결과가 ELF)로 되돌림

#수업 2노드 실습: RAC DB 소프트웨어 설치

oracle 계정 셸 (1번 노드, X 화면)객체 또는 설정을 변경함
mkdir -p $ORACLE_HOME
unzip -q /home/oracle/LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
cd $ORACLE_HOME
./runInstaller -applyRU <DB_RU_DIR>     # RU 없이 하라는 수업 지시가 있을 때만 ./runInstaller
oracle 계정 셸 (1번 노드)조회만 함
"$ORACLE_HOME/bin/sqlplus" -V
"$ORACLE_HOME/OPatch/opatch" version
"$ORACLE_HOME/OPatch/opatch" lspatches
ssh <NODE2> "test -x '$ORACLE_HOME/bin/oracle' && '$ORACLE_HOME/bin/sqlplus' -V"

결과 해석:

DB 이미지는 최종 ORACLE_HOME에 바로 풀고, ORACLE_HOME, ORACLE_BASE와 상위 경로에 심볼릭 링크를 쓰지 않음
DB Home은 Grid Home과 분리함

설치 유형은 Software Only, Oracle RAC를 고르고, 두 노드를 선택해 SSH Connectivity를 다시 확인함

권한 그룹은 수업처럼 dba 하나로 둘 수도 있고, 분리 구성이면 OSDBA, OSOPER, OSBACKUPDBA, OSDGDBA, OSKMDBA, OSRACDBA를 설계대로 고름

설치 뒤 두 노드의 ORACLE_HOME 경로와 적용 RU 목록이 같은지 확인하고 DBCA로 넘어감

#사용 조건과 주의사항

WARN, UNKNOWN도 원인을 조사하고 해결 또는 비대상 근거를 기록하며 무조건 Ignore All로 넘기지 않는 것이 실습의 기준임 사전 점검 실습에서는 Grid 이미지 해제 절의 계정 표지가 root지만 본문은 Grid 소유자로 명시함 실행 소유자는 본문 기준이며 계정 표지와 일치하지 않음

SEO_HKabsumveritas@gmail.comBuilt with Claude Code & Codex

마지막 갱신 개인 학습 기록이며 운영 환경 적용 전 공식 문서 확인 필요

두 글자 이상 입력, 위아래 화살표로 이동하고 Enter로 열기