베어메탈 솔루션에 Oracle RAC 설치
이 페이지에서는 베어메탈 솔루션 서버에 Oracle Real Application Clusters(RAC)를 설치하는 방법을 보여줍니다.
배포
이 가이드에서는 베어메탈 솔루션 서버에 설치된 Oracle RAC 19c를 포함하는 배포를 만듭니다. 데이터베이스로 2개의 노드 RAC를 구축합니다.
시작하기 전에
- RAC에 필요한 인프라를 프로비저닝해야 합니다. 여기에는 2개의 노드, 공유 스토리지, Oracle 홈 디렉터리를 호스팅하는 전용 볼륨이 포함됩니다.
- 이 가이드에서는 GUI 설치 프로세스를 사용합니다. GUI 설치 프로세스를 사용하려면 Oracle VNC 설정 가이드에 따라 노드 중 하나에 가상 네트워크 컴퓨팅(VNC)을 구성합니다.
- Oracle 홈 및 그리드 홈 디렉터리를 호스팅할 로컬 마운트 지점
/apps
를 만듭니다.
RAC 설치
베어메탈 솔루션용 RAC 설치에는 다음 단계가 포함됩니다.
RAC 설치를 위한 노드 준비
달리 명시하지 않는 한 두 노드 모두에서 다음 단계를 수행합니다.
RAC의 다음 IP 주소로
/etc/hosts
파일을 업데이트합니다.- 공개 IP 주소
- 비공개 IP 주소
- 가상 IP 주소
- SCAN 가상 IP 주소
다음은 수정된
/etc/hosts
파일의 예시입니다.10.*.*.* bms-jumphost # public IP addresses for Oracle RAC 192.*.*.* at-2811641-svr001 at-2811641-svr001.localdomain 192.*.*.* at-2811641-svr002 at-2811641-svr002.localdomain # private IP addresses for Oracle RAC 172.*.*.* at-2811641-svr001-priv at-2811641-svr001-priv.localdomain 172.*.*.* at-2811641-svr002-priv at-2811641-svr002-priv.localdomain # virtual IP addresses for Oracle RAC 192.*.*.* at-2811641-svr001-vip at-2811641-svr001-vip.localdomain 192.*.*.* at-2811641-svr002-vip at-2811641-svr001-vip.localdomain # SCAN virtual IP addresses for Oracle RAC 192.*.*.* psoracle-scan psoracle-scan.localdomain 192.*.*.* psoracle-scann psoracle-scan.localdomain 192.*.*.* psoracle-scan psoracle-scan.localdomain
가상 IP 주소와 SCAN 가상 IP 주소에 대해 DNS 변환을 수행합니다.
Cloud DNS를 사용하여 가상 IP 주소와 SCAN 가상 IP 주소를 확인합니다. 자세한 내용은 Cloud DNS로 SCAN 구성을 참조하세요.
/etc/sysctl.conf
파일을 커널 매개변수로 업데이트합니다.vi /etc/sysctl.conf # Added for Oracle fs.file-max = 6815744 kernel.sem = 250 32000 100 128 kernel.shmmni = 4096 kernel.shmall = 1073741824 kernel.shmmax = 4398046511104 kernel.panic_on_oops = 1 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 net.ipv4.conf.all.rp_filter = 2 net.ipv4.conf.default.rp_filter = 2 fs.aio-max-nr = 1048576 net.ipv4.ip_local_port_range = 9000 65500
커널 매개변수 업데이트를 적용합니다.
/sbin/sysctl -p
/etc/security/limits.conf
파일에서 리소스 한도를 추가합니다.vi /etc/security/limits.conf ## Added for Oracle grid soft nofile 1024 grid hard nofile 65536 grid soft nproc 2047 grid hard nproc 16384 grid soft stack 10240 grid hard stack 32768 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft stack 10240 oracle hard stack 32768
필요한 사용자와 그룹을 추가합니다.
groupadd -g 54321 oinstall groupadd -g 54322 dba groupadd -g 54323 oper groupadd -g 54327 asmdba groupadd -g 54328 asmoper groupadd -g 54329 asmadmin useradd -u 54321 -g oinstall -G dba,oper,asmdba,asmoper,asmadmin,oracle
Oracle 사전 설치 패키지를 설치합니다.
이 가이드에서는 Oracle 저장소를 설정했다고 가정합니다.
yum install oracle-database-preinstall-19c
oracle-database-preinstall-19c
패키지는 필요한 패키지를 설치하고oracle
사용자와/etc/sysctl.conf
파일의 항목을 만듭니다.oracle
사용자의 비밀번호를 재설정합니다.passwd oracle
Oracle ASM용으로 다음 패키지를 설치합니다.
oracleasm-support
kmod-oracleasm
yum install oracleasm-support yum install kmod-oracleasm
/etc/selinux/config
파일을 업데이트하여SELinux
를 사용 중지합니다.vi /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
방화벽을 중지하고 사용 중지합니다.
systemctl stop firewalld.service systemctl disable firewalld
NTP를 구성합니다.
NTP 패키지를 설치합니다.
yum install ntp
ntpd
서비스를 시작합니다.systemctl start ntpd
/etc/ntp.conf
파일을 업데이트합니다.이 경우 배스천 호스트인
10.x.x.x
와 동기화됩니다. 내부 NTP 서버일 수도 있습니다.192.x.x.x
는 베어메탈 솔루션 서버의 IP 주소입니다.vi /etv/ntp.conf restrict 192.x.x.x mask 255.255.255.0 nomodify notrap server 10.x.x.x prefer
동기화를 시작하기 위해 NTP 서버를 업데이트합니다.
ntpdate -qu SERVER_NAME
avahi-daemon
이 실행 중이면 중지하고 사용 중지합니다.systemctl status avahi-daemon ● avahi-daemon.service - Avahi mDNS/DNS-SD Stack Loaded: loaded (/usr/lib/systemd/system/avahi-daemon.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2021-08-09 07:51:26 UTC; 23h ago Main PID: 2543 (avahi-daemon) Status: "avahi-daemon 0.6.31 starting up." Tasks: 2 CGroup: /system.slice/avahi-daemon.service ├─2543 avahi-daemon: running [at-2811641-svr001.local] └─2546 avahi-daemon: chroot helper systemctl stop avahi-daemon Warning: Stopping avahi-daemon.service, but it can still be activated by: avahi-daemon.socket [root@at-2811641-svr001 ~]# systemctl disable avahi-daemon Removed symlink /etc/systemd/system/multi-user.target.wants/avahi-daemon.service. Removed symlink /etc/systemd/system/sockets.target.wants/avahi-daemon.socket. Removed symlink /etc/systemd/system/dbus-org.freedesktop.Avahi.service. systemctl status avahi-daemon ● avahi-daemon.service - Avahi mDNS/DNS-SD Stack Loaded: loaded (/usr/lib/systemd/system/avahi-daemon.service; disabled; vendor preset: enabled) Active: inactive (dead) since Tue 2021-08-10 07:16:28 UTC; 36s ago Main PID: 2543 (code=exited, status=0/SUCCESS)
Oracle 홈 및 Grid 홈 디렉터리를 만듭니다.
mkdir -p /apps/grid/19.3.0/gridhome_1 mkdir -p /apps/grid/gridbase/ mkdir -p /apps/oracle/product/19.3.0/dbhome_1 chmod -R 775 /apps/ chown -R oracle:oinstall /apps/
첫 번째 노드에서 다음을 수행합니다.
- Oracle Grid Infrastructure 이미지 파일을 다운로드합니다.
Oracle
사용자로 다운로드한 파일을 Grid 홈 디렉터리에 복사합니다.Oracle
사용자로 Oracle Grid Infrastructure 이미지 파일을 추출합니다.
cp LINUX.X64_193000_grid_home.zip /apps/grid/19.3.0/gridhome_1/ cd /apps/grid/19.3.0/gridhome_1/ unzip LINUX.X64_193000_grid_home.zip
두 노드 중 하나에서 Oracle 사용자를 위한 비밀번호 없는 SSH를 설정합니다.
cd /apps/grid/19.3.0/gridhome_1/deinstall ./sshUserSetup.sh -user oracle -hosts "at-2811641-svr001 at-2811641-svr002" -noPromptPassphrase -confirm -advanced
두 노드 중 하나에서 루트 사용자로 Grid 홈 디렉터리에서
cvuqdisk
RPM 패키지를 설치합니다.rpm -qa cvuqdisk cd /apps/grid/19.3.0/gridhome_1/cv/rpm/ rpm -iv cvuqdisk-1.0.10-1.rpm Preparing packages... Using default group oinstall to install package cvuqdisk-1.0.10-1.x86_64 rpm -qa cvuqdisk cvuqdisk-1.0.10-1.x86_64
Oracle ASM 구성
Oracle ASM을 구성하려면 루트 사용자로 다음 단계를 수행합니다.
두 노드 중 하나에서 Oracle ASM에 사용할 모든 공유 LUN을 식별합니다.
multipath -ll
어느 노드에서나
fdisk
또는gdisk
를 사용하여 모든 공유 기기에서 파티션을 만듭니다.fdisk /dev/mapper/DISK_WWID
다음을 바꿉니다.
- DISK_WWID: 디스크의 WWID입니다.
샘플 출력은 다음과 같습니다.
fdisk /dev/mapper/3600a098038314343753f4f723154594e Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0xf7f8fd23. The device presents a logical sector size that is smaller than the physical sector size. Aligning to a physical sector (or optimal I/O) size boundary is recommended, or performance may be impacted. Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): First sector (2048-2147518463, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-2147518463, default 2147518463): Using default value 2147518463 Partition 1 of type Linux and of size 1 TiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 22: Invalid argument. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. fdisk -l /dev/mapper/3600a098038314343753f4f723154594e Disk /dev/mapper/3600a098038314343753f4f723154594e: 1099.5 GB, 1099529453568 bytes,2147518464 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 65536 bytes Disk label type: dos Disk identifier: 0xf7f8fd23 Device Boot Start End Blocks Id System /dev/mapper/3600a098038314343753f4f723154594e1 2048 2147518463 1073758208 83 Linux
partprobe
를 실행하여 모든 새 파티션을 표시합니다.partprobe
두 노드 모두에서 Oracle ASM을 구성합니다.
oracleasm configure -i Configuring the Oracle ASM library driver. This will configure the on-boot properties of the Oracle ASM library driver. The following questions will determine whether the driver is loaded on boot and what permissions it will have. The current values will be shown in brackets ('[]'). Hitting <ENTER> without typing an answer will keep that current value. Ctrl-C will abort. Default user to own the driver interface []: oracle Default group to own the driver interface []: oinstall Start Oracle ASM library driver on boot (y/n) [n]: y Scan for Oracle ASM disks on boot (y/n) [y]: y Writing Oracle ASM library driver configuration: done
베어메탈 솔루션 서버가 멀티 경로 기기를 사용하므로 두 노드 모두에서
ORACLEASM_SCANORDER
매개변수 값을dm
으로,ORACLEASM_SCANEXCLUDE
값을sd
로 설정합니다.vi /etc/sysconfig/oracleasm ORACLEASM_SCANORDER="dm" ORACLEASM_SCANEXCLUDE="sd"
두 노드 모두에서 Oracle ASM 구성을 확인합니다.
oracleasm configure ORACLEASM_ENABLED=true ORACLEASM_UID=oracle ORACLEASM_GID=oinstall ORACLEASM_SCANBOOT=true ORACLEASM_SCANORDER="dm" ORACLEASM_SCANEXCLUDE="sd" ORACLEASM_SCAN_DIRECTORIES="" ORACLEASM_USE_LOGICAL_BLOCK_SIZE="false"
두 노드 모두에서
oracleasm
을 시작합니다.oracleasm init Creating /dev/oracleasm mount point: /dev/oracleasm Loading module "oracleasm": oracleasm Configuring "oracleasm" to use device physical block size Mounting ASMlib driver filesystem: /dev/oracleasm
두 노드 모두에서
oracleasm
상태를 확인합니다.oracleasm status Checking if ASM is loaded: yes Checking if /dev/oracleasm is mounted: yes
두 노드 중 하나에서 다중 경로로 파티션을 나눈 기기에 Oracle ASM 디스크를 만듭니다.
oracleasm createdisk OCR /dev/mapper/DISK_WWID
다음을 바꿉니다.
- DISK_WWID: 디스크의 WWID입니다.
샘플 출력은 다음과 같습니다.
oracleasm createdisk OCR /dev/mapper/3600a098038314343753f4f723154594e1 Writing disk header: done Instantiating disk: done
첫 번째 노드에서 디스크 이름을 나열합니다.
oracleasm listdisks
샘플 출력은 다음과 같습니다.
DATA01 DATA02 DATA03 DATA04 DATA05 DATA06 FRA01 FRA02 FRA03 OCR
두 번째 노드에서 첫 번째 노드에 ASMLIB 디스크로 표시된 디스크를 나열합니다.
oracleasm scandisks
샘플 출력은 다음과 같습니다.
Reloading disk partitions: done Cleaning any stale ASM disks... Scanning system for ASM disks... Instantiating disk "DATA01" Instantiating disk "DATA06" Instantiating disk "DATA04" Instantiating disk "OCR" Instantiating disk "DATA05" Instantiating disk "FRA01" Instantiating disk "DATA03" Instantiating disk "FRA03" Instantiating disk "FRA02" Instantiating disk "DATA02"
두 번째 노드에서 디스크 이름을 나열합니다.
oracleasm listdisks
샘플 출력은 다음과 같습니다.
oracleasm listdisks DATA01 DATA02 DATA03 DATA04 DATA05 DATA06 FRA01 FRA02 FRA03 OCR
스캔 후 디스크가 두 번째 노드에 표시되지 않으면
partprobe
명령어를 실행하여 파티션을 표시합니다.
설치 전 검사 수행
Oracle Grid Infrastructure 설치를 위한 모든 기본 요건이 충족되는지 확인합니다. 첫 번째 노드에서 runcluvfy.sh
스크립트를 실행합니다.
./runcluvfy.sh stage -pre crsinst -n at-2811641-svr001,at-2811641-svr002 -verbose
기본 요건 중 하나라도 실패하면 설치를 진행하기 전에 문제를 해결합니다.
Oracle RAC 설치
Oracle Grid Infrastructure 이미지 파일을 다운로드하고 추출한 첫 번째 노드에서 다음 단계를 실행합니다.
- VNC 뷰어를 통해 베어메탈 솔루션 서버에 연결합니다.
gridSetup.sh
스크립트를 실행합니다.- Select configuration option(구성 옵션 선택) 페이지에서 Oracle Grid Infrastructure for a new cluster(새 클러스터의 Oracle Grid Infrastructure)를 선택한 후 Next(다음)를 클릭합니다.
- Select cluster configuration(클러스터 구성 선택) 페이지에서 Configure an Oracle standalone cluster(Oracle 독립형 클러스터 구성)을 선택한 후 Next(다음)을 클릭합니다.
Grid plug and play information(그리드 플러그 앤 플레이 정보) 페이지에서 다음을 수행합니다.
- Create local SCAN(로컬 SCAN 만들기)를 선택합니다.
- 클러스터 이름을 입력합니다. 15자(영문 기준) 미만이어야 합니다.
- SCAN 이름을 입력합니다.
- SCAN 포트를 입력합니다.
- 다음을 클릭합니다.
두 번째 노드를 추가하려면 Add(추가)를 클릭하고 다음을 수행합니다.
- 두 번째 노드의 공개 호스트 이름을 입력합니다.
- 두 번째 노드의 가상 호스트 이름을 입력합니다.
- 확인을 클릭합니다.
Specify network interface usage(네트워크 인터페이스 사용량 지정) 페이지에서 다음을 수행합니다.
- 각 인터페이스의 Use for(사용 대상) 열에서 사용 유형을 선택합니다. 비공개 인터페이스의 경우 ASM & Private(ASM 및 비공개)를 선택합니다.
- 다음을 클릭합니다.
Storage option information(스토리지 옵션 정보) 페이지의 Oracle ASM에서 OCR 파일과 투표 디스크 파일을 저장하기 위해 Oracle Flex ASM for storage(스토리지용 Oracle Flex ASM)를 선택한 후 Next(다음)를 클릭하세요.
Create Grid Infrastructure Management Repository(Grid Infrastructure Management Repository 만들기)에서 Yes(예)를 선택한 후 Next(다음)를 클릭합니다.
이 단계에서는 Grid Infrastructure Management Repository(GIMR)를 만듭니다.
Grid Infrastructure Management Repository option(Grid Infrastructure Management Repository 옵션) 페이지에서 별도의 GIMR용 디스크 그룹을 만들지 않으므로 No(아니요)를 선택합니다.
Create ASM disk group(ASM 디스크 그룹 만들기) 페이지에서 다음을 수행합니다.
- 디스크 그룹의 이름을 입력합니다.
Change discovery path(검색 경로 변경)을 클릭하고 Oracle ASM 디스크에 대한 올바른 검색 경로를 입력합니다.
기기가 다중 경로에 매핑되어 하나의 경로가 다운된 후에도 Oracle ASM 디스크가 작동되도록 합니다.
Specify ASM password(ASM 비밀번호 지정) 페이지에서 다음을 수행합니다.
- Use same passwords for these accounts(이 계정에 동일한 비밀번호 사용)을 선택합니다.
- 비밀번호를 입력하고 확인합니다.
- 다음을 클릭합니다.
Failure isolation support(장애 격리 지원) 페이지에서 Do not use Intelligent Platform Management Interface(IPMI)(지능형 플랫폼 관리 인터페이스(IPMI)를 사용하지 마세요)를 선택하고 Next(다음)를 클릭합니다.
Oracle Enterprise Manager에서 Oracle Grid Infrastructure를 구성하지 않으므로 Specify management options(관리 옵션 지정) 페이지에서 Next(다음)를 클릭합니다.
Privileged operating system groups(권한이 있는 운영체제 그룹) 페이지에서 다음을 수행합니다.
- 모든 Oracle ASM 권한에 대해 oinstall을 선택합니다. asmdba 및 asmoper를 사용할 수도 있습니다.
- 다음을 클릭합니다.
Specify installation location(설치 위치 지정) 페이지에서 Oracle 베이스를 지정하고 Next(다음)를 클릭합니다.
루트 비밀번호가 있거나
oracle
사용자에게 sudo 권한이 있으면 루트 스크립트를 자동으로 실행할 수 있습니다. 하지만 이 가이드에서는 스크립트를 수동으로 실행합니다. 따라서 Root script execution(루트 스크립트 실행) 페이지에서 Next(다음)를 클릭합니다.Perform prerequisite checks(기본 요건 확인 수행) 페이지에서 다음을 수행합니다.
표시된 모든 오류를 수정합니다.
Perform pre-installation checks(사전 설치 검사 수행) 섹션의 설명대로
runcluvfy.sh
스크립트를 실행할 때 발견된 모든 실패를 해결한 경우 정상적인 설치를 예상할 수 있습니다.실패를 해결한 후 Check again(다시 확인)을 클릭하여 실패 상태를 Succeeded(성공)으로 업데이트합니다.
다음을 클릭합니다.
요약을 검토하고 Install(설치)을 클릭합니다.
설치 프롬프트에서 두 노드 모두에서 루트 스크립트를 실행하라는 메시지가 표시됩니다. 먼저 첫 번째 노드에서 스크립트를 실행한 다음 두 번째 노드에서 실행합니다.
/apps/grid/oraInventory/orainstRoot.sh /apps/grid/19.3.0/gridhome_11/grid/root.sh
Finish(마침) 창이 나타나면 Close(닫기)를 클릭합니다.
설치 후 단계 수행
Oracle Grid Infrastructure 설치가 완료되면 다음 단계를 수행합니다.
Oracle 데이터베이스 소프트웨어를 설치하고 구성합니다.
RAC 설치의 경우 Software only(소프트웨어만) 설치 옵션을 선택합니다.
Oracle 데이터베이스 소프트웨어 설치에 대한 안내는 블로그: 단계별 RAC 데이터베이스용 Oracle 19c Binaries 설치 및 구성을 참조합니다.
Oracle ASM 디스크 그룹을 만듭니다.
/etc/oratab
파일에서 Oracle ASM 인스턴스 항목을 만듭니다.vi /etc/oratab +ASM1:/apps/grid/19.3.0/gridhome_1:N
Oracle ASM 인스턴스의
ORACLE_SID
및ORACLE_HOME
변수를 설정하고 연결합니다.. oraenv ORACLE_SID = [oracle] ? +ASM1 The Oracle base has been set to /apps/grid/gridbase sqlplus / as sysasm SQL> select INSTANCE_NAME,STATUS from v$instance; INSTANCE_NAME STATUS ---------------- ------------ +ASM1 STARTED
추가할 디스크의
HEADER_STATUS
가PROVISIONED
인지 확인합니다.SQL> select HEADER_STATUS,STATE,TOTAL_MB/1024,path from v$asm_disk; HEADER_STATUS. STATE PATH ------------ -------- ------------- ------------------------- PROVISIONED NORMAL /dev/oracleasm/disks/DAT01 PROVISIONED NORMAL /dev/oracleasm/disks/DATA02 MEMBER NORMAL /dev/oracleasm/disks/OCR
한 노드에서 디스크 그룹을 만듭니다.
SQL> create diskgroup DATA external redundancy disk '/dev/oracleasm/disks/DATA01','/dev/oracleasm/disks/DATA02'; Diskgroup created. SQL> select name, state, type from v$asm_diskgroup; NAME STATE TYPE ------------------------------ OCR MOUNTED EXTERN DATA MOUNTED EXTERN
다른 노드에서 Oracle ASM 인스턴스에 로그인하고 디스크 그룹을 마운트합니다.
SQL> select name, state, type from v$asm_diskgroup; NAME STATE TYPE -------------------- ----------- ------ DATA DISMOUNTED OCR MOUNTED EXTERN SQL> alter diskgroup DATA mount; Diskgroup altered. SQL> select name, state, type from v$asm_diskgroup; NAME STATE TYPE ------------------------------ ----------- ------ OCR MOUNTED EXTERN DATA MOUNTED EXTERN
Oracle Database Configuration Assistant(DBCA)를 사용하여 RAC 데이터베이스를 만듭니다.
Database type(데이터베이스 유형)을 Real Application Cluster Database(실제 애플리케이션 클러스터 데이터베이스)로 선택해야 합니다.
자세한 내용은 Oracle 문서를 참조하세요.
RAC 데이터베이스 설치가 완료되었고 사용할 준비가 되었습니다.