I. 개요
1. 사용 Software
2. 서버
3. 스토리지
4. 네트워크
II. VM 구성
1. VM 생성
2. VM 설정 변경
III. Oracle Linux 7 설치
1. 호스트키 설정
2. 부팅
3. 설치 요약
4. 사용자 설정
5. 재부팅
IV. 리눅스 환경 설정
1. GUI 접속 환경 설정
2. 리눅스 환경 설정
V. 공유 환경 및 2번 노드 구성
1. 공유 스토리지 구성
2. ASM 환경 구성
3. 2번 노드 구성
VI. Grid Infrastructure 설치
1. 준비 작업
2. Grid Infrastructure 설치
VII. ASM 디스크 그룹 추가
1. ASMCA 실행
2. ASM 작업
VIII. Database 소프트웨어 설치
1. 준비 작업
2. Database 소프트웨어 설치
IX. 데이터베이스 생성
1. 데이터베이스 생성
I. 개요
1. 사용 software
제품 | 버전 | 배포 사이트 |
VirtualBox | 7.X | https://www.virtualbox.org |
Oracle Linux | 7.7 | https://yum.oracle.com/oracle-linux-isos.html |
Database | 19.3 | https://www.oracle.com/kr/database/technologies/oracle19c-windows-downloads.html |
2. 서버
Vitual Machin | Host Name | Memory | Net Adapter 1 | Net Adapter 2 | 구성 방법 |
19c_RAC1 | rac1 | 8G | NAT Network | Host Only | 리눅스 설치 |
19c_RAC2 | rac2 | 8G | NAT Network | Host Only | RAC1 복제 |
3. 스토리지
파일 이름 | 용량 | 타입 | 용도 |
19c_rac1.vid | 100GB | Dynamic / Normal | RAC1 노드 스토리지 |
19c_rac2.vid | 100GB | Dynamic / Normal | RAC2 노드 스토리지 |
CRS001.vid | 2GB | Fixed / Shareable | OCR/Vote 저장 영역 |
CRS002.vid | 2GB | Fixed / Shareable | |
CRS003.vid | 2GB | Fixed / Shareable | |
DATA001.vid | 20GB | Fixed / Shareable | DATA 영역 |
FRA001.vid | 15GB | Fixed / Shareable | FRA 영역 |
4. 네트워크
Virtual Machin | Public IP | Private IP | Virtual IP | Netmask | Gateway | DNS Server | SCAN IP |
19c_RAC1 | 10.0.20.101 | 192.168.20.101 | 10.0.20.151 | 255.255.255.0 | 10.0.20.1 | 127.0.0.1 | 10.0.20.201 10.0.20. 202 10.0.20. 203 |
19c_RAC2 | 10.0.20.102 | 192.168.20.102 | 10.0.20.152 | 255.255.255.0 | 10.0.20.1 | 127.0.0.1 |
II. VM 구성
1. VM 생성
• VirtualBox에서 Virtual Machine(이하 VM)을 만들기 위해 새로 만들기를 클릭합니다.
• 생성할 VM의 이름을 입력합니다. 사용할 목적이나 설치될 프로그램에 맞게 정한 후 이름 항목에 입력합니다.
• VM을 저장할 경로를 변경하기 위해 폴더에서 기타를 선택합니다.
• 설치할 운영 체제의 종류와 버전을 선택합니다.
• 일반적으로 테스트를 위해 Linux가 많이 사용되게 되며, 그 외에도 VirtualBox가 지원하는 운영 체제를 선택할 수 있습니다.
• Linux에도 다양한 계열의 제품이 존재하며, 동일 제품 내에서도 32bit와 64bit를 지정할 수 있습니다.
• 기본적인 VM의 이름과 저장경로, 운영 체제에 대한 선택이 완료되었으면 <다음>을 클릭합니다.
• VM에서 사용할 메모리 크와 프로세서의 수를 입력하고 다음을 클릭합니다.
• VM의 Disk를 새로 만들기 위해서 '지금 새 가상 하드 디스크 만들기'를 클릭합니다.
• 기존에 설치된 VM파일(vdi, vhd, vmdk 등)이 있을 경우에는 '기존 가상 하드 디스크 파일 사용'을 선택하여 파일이
저장된 경로에 찾아가 등록할 수 있습니다.
• 가상 디스크 파일의 할당 방식은 '동적 할당'을 기본으로 해서 디스크 파일을 생성합니다.
• 사전에 저장 영역을 미리 할당해야 경우 ' 미리 전체 크기 할당 ' 을 체크하여 생성하면 됩니다.
• Disk 설정이 완료되었으면 다음을 클릭합니다.
• VM 설정을 확인하고 문제가 없다면 Finish를 클릭하여 VM을 생합니다.
2. VM 설정 변경
• NAT 네트워크 와 Host Only 네트워크 사용을 위해 네트워크 어댑터를 생성하기 위해 Virtual Box의
파일 --> 도구 --> 네트워크 관리자를 선택합니다.
• 호스트 전용 네트워크 탭에서 만들기를 클릭하여 세로운 네트워크 어뎁터를 생성합니다.
• 새로 만들어진 어뎁터를 클릭하고 하단에 있는 어댑터 탭에서 수동으로 어댑터 설정을 선택합니다
• 포트포워딩을 진행할 Private IP의 gateway ip를 입력하고 넷마스크를 입력합니다.
• DHCP 탭을 선택하여 서버 활성화의 체크를 해제합니다.
• NAT 네트워크 탭으로 이동하여 만들기를 클릭합니다.
• 새로 만들어진 어댑터를 선택합니다.
• 아래에 있는 일반 옵션 탭에서 IP를 입력호가 DHCP 활성화의 체크를 해제합니다.
• 포트포워딩 탭으로 이동하여 오른쪽에 엤는 초록색 플러스 버튼을 클릭합니다
• 호스트 IP는 버추얼박스가 설치되어 있는 윈도우의 IP를 입력합니다.
• 호스트포트는 임의로 지정하여 입력합니다.
• 게스트 IP는 VM에 설치할 Public IP를입력합니다.
• 게스트 포트는 22 를 입력합니다.
• 설정이 완료되었다면 적용 버튼을 클릭합니다.
• 위에서 생성한 VM을 선택하고 설정을 클릭합니다.
• 왼쪽에 항목 중에서 일반으로 이동한 후, 고급 탭으로 이동합니다.
• 클립보드 공유와 드래그 앤 드롭에서 <양뱡향>을 선택합니다.
• 왼쪽에 있는 항목들 중 저장소를 클릭합니다.
• 컨트롤러:IDE 밑에 있는 비어있음을 클릭합니다.
• 오른쪽 광학드라이브의 CD 아이을 클릭하고 디스크 파일 선택을 클릭합니다.
• 윈도우 탐색창이 뜨면 Oracle Linux를 다운로드한 폴더로 이동합니다.
• 다운로드한 Oracle Linux iso 파일을 선택하고 열기를 클릭합니다.
• 윈도우 탐색창이 뜨면 Oracle Linux를 다운로드한 폴더로 이동합니다.
• 다운로드한 Oracle Linux iso 파일을 선택하고 열기를 클릭합니다.
• 왼쪽에 있는 항목들 중 오디오를 클릭합니다.
• 오디오 활성화의 체크를 해제합니다.
• 왼쪽에 있는 항목들 중 네트워크를 클릭합니다.
• 어뎁터 1번을 선택하고 다음에 연결됨을 NAT 네트워크로 선택합니다.
• 이름은 위에서 생성한 NAT 네트워크 어댑터를 선택합니다.
• 어뎁터 2번 탭을 클릭합니다,
• 네트워크 어뎁터 활성화를 체크합니다.
• 다음에 연결됨은 호스트 전용 어댑터로 변경합니다.
• 이름은 위에서 생성한 Host only의 어댑터를 선택합니다.
• 설정이 완료되었다면 확인 버튼을 누릅니다.
• 왼쪽 VM들중 위에서 생성한 VM을 선택하고 시작을 클릭합니다.
III. Oracle Linux 7 설치
1. 호스트키 설정
• VM에서 윈도우로 마우스를 빠져나오게 할 수 있는 호스트키를 설정합니다.
• 호스트키의 기본값은 Right Control입니다.
• 호스트키의 변경을 원할경우 아래쪽에 있는 화살표가 그려진 네모 아이을 우클릭하고 키보드 설정을 클릭합니다.
• 환경 설정 창이 뜨면 호스트 키 조합 옆에 있는 Right Control을 클릭하면 지우개 아이콘이 보입니다
• 지우개 아이콘을 클릭하고 원하는 키를 설정한 후 확인을 클릭합니다.
2. 부팅
• 방향키로 이동하여 Install Oracle Linux 7.7을 선택하도 Enter 를 누릅니다.
• 설치 시 사용하는 언어는 기본값인 English로 놔두고 Continue 를 클릭합니다.
3. 설치 요약
• Date & Time을 클릭합니다.
• Regione에서 Asia를 선택하고 City에서 Seoul을 선택합니다.
• 선택을 다 했다면 Done을 클릭합니다.
• Software Selection을 클릭합니다.
• Base Environment의 항목 중 Server with GUI를 선택합니다.
• Additional software for Selected Environment 항목에서 아래의 항목들을 선택합니다.
- Hardware Monitoring Utilities
- KDE
- Performance Tools
- Compaibility Libraries
- System Administration Tools
• 위 항목들을 모두 선택하였다면 <Done> 버튼을 클릭합니다.
• Installation Destination을 선택합니다.
• Other Storage Options 항목에서 I will configure partitioning 을 선택하고 Done을 클릭합니다.
• 좌측 하단에 + 버튼을 클릭합니다.
• ADD A NEW MOUNT POINT 설정 창이 뜨면 아래와 같은 크기로 설정합니다.
• Mount Point와 Desired Capacity를 입력하고 <Add mount point >를 클릭합니다.
• swap의 경우 물리 메모리와 동일한 크기로 최대 16GB 이내로 할당합니다.
• / 는 /boot와 swap의 공간을 제외한 나머지 모든 공간을 할당합니다.
Mount Point | Desired Capacity |
/boot | 500M |
swap | 8G |
/ | 나머지 공간 할당 |
• /boot, swpa, / 세 개의 공간을 모두 할당하였으면 Done을 클릭합니다
• SUMMARY OF CHANGES 창이 뜨면 Accept Changes 버튼을 클릭합니다.
• KDUMP를 클릭합니다.
• Enable kdump의 체크를 해제하고 Done을 클릭합니다.
• SECURITY POLICY를 선택합니다.
• Apply security policy를 off 로 하고 Done을 클릭합니다.
• Network & Host Name을을 클릭합니다.
• 왼쪽에 있는 어댑터 항목 중 enp0s3을 선택합니다
• 우측 상단의 OFF를 눌러 ON으로 변경하고 Configure 버튼을 클릭합니다.
• General 탭으로 이동하여 Autimatically connect to this network when it is available를 체크합니다.
• IPv4 Settings 탭으로 이동하여 Method를 Manual로 변경합니다.
• Addresses 항목에서 add를 클릭하여 Address, Netmask, Gateway를 입력합니다.
• DNS servers는 기본 서버인 127.0.0.1을 입력합니다
• Search domains는 localdomain을 입력합니다.
• IPv6 Settings 탭으로 이동하여 Method를 Ignore로 변경하고 Save 버튼을 클릭합니다.
• 왼쪽에 있는 어댑터 항목 중 enp0s8을 선택합니다
• 우측 상단의 OFF를 눌러 ON으로 변경하고 Configure 버튼을 클릭합니다.
• General 탭으로 이동하여 Autimatically connect to this network when it is available를 체크합니다.
• IPv4 Settings 탭으로 이동하여 Method를 Manual로 변경합니다.
• Addresses 항목에서 add를 클릭하여 Address, Netmask를 입력합니다.
• IPv6 Settings 탭으로 이동하여 Method를 Ignore로 변경하고 Save 버튼을 클릭합니다.
• Host Name을 변경하고 Apply 버튼을 클릭합니다.
• 설정을 완료하였으면 Done 버튼을 클릭합니다.
• 리눅스 설치를 위해 Begin Installation 버튼을 클릭합니다.
4. 사용자 설정
• Root Password를 클릭합니다.
• Root 계정의 Password를 입력하고 Done 버튼을 클릭합니다.
• User Creation을 클릭합니다.
• 새로 생성할 User와 Password를 입력하고 Done 버튼을 클릭합니다.
5. 재부팅
• 설치가 완료되면 오른쪽 하단에 있는 Reboot 버튼을 클릭합니다.
• VM이 재부팅 되고 나면 LICENSE INFORMATION을 클릭합니다.
• 하단에 있는 I accept the license agreement를 체크하고 Done 버튼을 클릭합니다.
• FINISH CONFIGURATION 버튼을 클릭합니다.
IV. 리눅스 환경 설정
1. GUI 접속 환경 설정
• root 계정으로 접속하기 위해 Not listed 를 클릭합니다.
• Username에 root를 입력합니다.
• root 계정의 password 를 입력하고 Sign In 버튼을 클릭합니다.
• 언어 설정창이 뜨면 English 를 선택하고 Next 버튼을 클릭합니다.
• Typing 설정창이 뜨면 아래의 ⋮ 표시를 클릭합니다.
• 검색창이 나오면 hangul을 검색하여 선택하고 Next 버튼을 클릭합니다.
• Privacy 설정창이 나요면 Next 버튼을 클릭합니다.
• Online Accounts 설정창이 나요면 Skip 버튼을 클릭합니다.
• Ready to Go 창이 나오면 Start Using Oracle Linux Server 버튼을 클릭합니다.
2. 리눅스 환경 설정
• 사용하지 않은 서비스 들을 정리합니다.
### 방화벽 중지
systemctl stop firewalld
systemctl disable firewalld
### 블루투스 중지
systemctl stop bluetooth
systemctl disable bluetooth
### 시간 동기화 중지
systemctl stop chronyd
systemctl disable chronyd
mv /etc/chrony.conf /etc/chrony.conf.bak
### NTP 중지
systemctl stop ntpdate
systemctl disable ntpdate
### AVAHI 중지
systemctl stop avahi-daemon.socket
systemctl disable avahi-daemon.socket
systemctl stop avahi-daemon
systemctl disable avahi-daemon
### 가상 시스템 관리 중지
systemctl stop libvirtd
systemctl disable libvirtd
### 방화벽 중지
[root@rac1 ~]# systemctl stop firewalld
[root@rac1 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
### 블루투스 중지
[root@rac1 ~]# systemctl stop bluetooth
[root@rac1 ~]# systemctl disable bluetooth
Removed symlink /etc/systemd/system/dbus-org.bluez.service.
Removed symlink /etc/systemd/system/bluetooth.target.wants/bluetooth.service.
### 시간 동기화 중지
[root@rac1 ~]# systemctl stop chronyd
[root@rac1 ~]# systemctl disable chronyd
[root@rac1 ~]# mv /etc/chrony.conf /etc/chrony.conf.bak
### NTP 중지
[root@rac1 ~]# systemctl stop ntpdate
[root@rac1 ~]# systemctl disable ntpdate
### AVAHI 중지
[root@rac1 ~]# systemctl stop avahi-daemon.socket
[root@rac1 ~]# systemctl disable avahi-daemon.socket
Removed symlink /etc/systemd/system/sockets.target.wants/avahi-daemon.socket.
[root@rac1 ~]# systemctl stop avahi-daemon
[root@rac1 ~]# systemctl disable avahi-daemon
Removed symlink /etc/systemd/system/multi-user.target.wants/avahi-daemon.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.Avahi.service.
### 가상 시스템 관리 중지
[root@rac1 ~]# systemctl stop libvirtd
[root@rac1 ~]# systemctl disable libvirtd
Removed symlink /etc/systemd/system/multi-user.target.wants/libvirtd.service.
Removed symlink /etc/systemd/system/sockets.target.wants/virtlogd.socket.
Removed symlink /etc/systemd/system/sockets.target.wants/virtlockd.socket.
• Oracle Database 설치에 필요한 필수 패키지 들이 설치되어 있는지 확인합니다.
rpm -q bc
rpm -q binutils
rpm -q compat-libcap1
rpm -q compat-libstdc++-33
rpm -q elfutils-libelf
rpm -q elfutils-libelf-devel
rpm -q fontconfig-devel
rpm -q glibc
rpm -q glibc-devel
rpm -q kmod-20
rpm -q kmod-libs-20
rpm -q ksh
rpm -q libaio
rpm -q libaio-devel
rpm -q libgcc
rpm -q libstdc++
rpm -q libstdc++-devel
rpm -q libX11
rpm -q libXau
rpm -q libxcb
rpm -q libXi
rpm -q libXtst
rpm -q libXrender
rpm -q libXrender-devel
rpm -q make
rpm -q net-tools
rpm -q nfs-utils
rpm -q policycoreutils
rpm -q policycoreutils-python
rpm -q smartmontools
rpm -q sysstat
[root@rac1 ~]# rpm -q bc
bc-1.06.95-13.el7.x86_64
[root@rac1 ~]# rpm -q binutils
binutils-2.27-41.base.0.1.el7.x86_64
[root@rac1 ~]# rpm -q compat-libcap1
compat-libcap1-1.10-7.el7.x86_64
[root@rac1 ~]# rpm -q compat-libstdc++-33
compat-libstdc++-33-3.2.3-72.el7.x86_64
[root@rac1 ~]# rpm -q elfutils-libelf
elfutils-libelf-0.176-2.el7.x86_64
[root@rac1 ~]# rpm -q elfutils-libelf-devel
package elfutils-libelf-devel is not installed
[root@rac1 ~]# rpm -q fontconfig-devel
package fontconfig-devel is not installed
[root@rac1 ~]# rpm -q glibc
glibc-2.17-292.0.1.el7.x86_64
[root@rac1 ~]# rpm -q glibc-devel
package glibc-devel is not installed
[root@rac1 ~]# rpm -q kmod-20
kmod-20-25.0.1.el7.x86_64
[root@rac1 ~]# rpm -q kmod-libs-20
kmod-libs-20-25.0.1.el7.x86_64
[root@rac1 ~]# rpm -q ksh
package ksh is not installed
[root@rac1 ~]# rpm -q libaio
libaio-0.3.109-13.el7.x86_64
[root@rac1 ~]# rpm -q libaio-devel
package libaio-devel is not installed
[root@rac1 ~]# rpm -q libgcc
libgcc-4.8.5-39.0.1.el7.x86_64
[root@rac1 ~]# rpm -q libstdc++
libstdc++-4.8.5-39.0.1.el7.x86_64
[root@rac1 ~]# rpm -q libstdc++-devel
package libstdc++-devel is not installed
[root@rac1 ~]# rpm -q libX11
libX11-1.6.7-2.el7.x86_64
[root@rac1 ~]# rpm -q libXau
libXau-1.0.8-2.1.el7.x86_64
[root@rac1 ~]# rpm -q libxcb
libxcb-1.13-1.el7.x86_64
[root@rac1 ~]# rpm -q libXi
libXi-1.7.9-1.el7.x86_64
[root@rac1 ~]# rpm -q libXtst
libXtst-1.2.3-1.el7.x86_64
[root@rac1 ~]# rpm -q libXrender
libXrender-0.9.10-1.el7.x86_64
[root@rac1 ~]# rpm -q libXrender-devel
package libXrender-devel is not installed
[root@rac1 ~]# rpm -q make
make-3.82-24.el7.x86_64
[root@rac1 ~]# rpm -q net-tools
net-tools-2.0-0.25.20131004git.el7.x86_64
[root@rac1 ~]# rpm -q nfs-utils
nfs-utils-1.3.0-0.65.0.1.el7.x86_64
[root@rac1 ~]# rpm -q policycoreutils
policycoreutils-2.5-33.0.1.el7.x86_64
[root@rac1 ~]# rpm -q policycoreutils-python
policycoreutils-python-2.5-33.0.1.el7.x86_64
[root@rac1 ~]# rpm -q smartmontools
smartmontools-7.0-1.el7.x86_64
[root@rac1 ~]# rpm -q sysstat
sysstat-10.1.5-18.el7.x86_64
• Oracle Database 설치에 필요한 필수 패키지들 중 설치되지 않은 패키지를 설치합니다.
• 필수 패키지 설치를 위해 Linux ios 파일을 마운트 합니다.
• VM에서 장치 → 광학 드라이브 → IDE → Linux iso 파일을 선택합니다.
• iso 파일이 마운트 되면 Packages 폴더로 이동하여 필요한 패키지를 설치합니다.
• 패키지 설치가 완료되면 마운트된 iso 파일 에서 다른 경로로 이동한 후 eject 명령어로 iso 파일의 마운트를 해제합니다.
[root@rac1 ~]# cd /run/media/root/OL-7.7\ Server.x86_64/Packages/
[root@rac1 Packages]# rpm -ivh elfutils-libelf-devel-0.176-2.el7.x86_64.rpm --nodeps
[root@rac1 Packages]# rpm -ivh fontconfig-devel-2.13.0-4.3.el7.x86_64.rpm --nodeps
[root@rac1 Packages]# rpm -ivh libXrender-devel-0.9.10-1.el7.x86_64.rpm
[root@rac1 Packages]# rpm -ivh libstdc++-devel-4.8.5-39.0.1.el7.x86_64.rpm
[root@rac1 Packages]# rpm -ivh glibc-headers-2.17-292.0.1.el7.x86_64.rpm
[root@rac1 Packages]# rpm -ivh glibc-devel-2.17-292.0.1.el7.x86_64.rpm
[root@rac1 Packages]# rpm -ivh ksh-20120801-139.0.1.el7.x86_64.rpm
[root@rac1 Packages]# rpm -ivh libaio-devel-0.3.109-13.el7.x86_64.rpm
[root@rac1 Packages]# rpm -ivh oracleasm-support-2.1.11-2.el7.x86_64.rpm
[root@rac1 Packages]# rpm -ivh oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
[root@rac1 Packages]# cd
[root@rac1 ~]# eject
[root@rac1 Packages]# rpm -ivh elfutils-libelf-devel-0.176-2.el7.x86_64.rpm --nodeps
warning: elfutils-libelf-devel-0.176-2.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:elfutils-libelf-devel-0.176-2.el7################################# [100%]
[root@rac1 Packages]# rpm -ivh fontconfig-devel-2.13.0-4.3.el7.x86_64.rpm --nodeps
warning: fontconfig-devel-2.13.0-4.3.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:fontconfig-devel-2.13.0-4.3.el7 ################################# [100%]
[root@rac1 Packages]# rpm -ivh libXrender-devel-0.9.10-1.el7.x86_64.rpm
warning: libXrender-devel-0.9.10-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:libXrender-devel-0.9.10-1.el7 ################################# [100%]
[root@rac1 Packages]# rpm -ivh libstdc++-devel-4.8.5-39.0.1.el7.x86_64.rpm
warning: libstdc++-devel-4.8.5-39.0.1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:libstdc++-devel-4.8.5-39.0.1.el7 ################################# [100%]
[root@rac1 Packages]# rpm -ivh glibc-headers-2.17-292.0.1.el7.x86_64.rpm
warning: glibc-headers-2.17-292.0.1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:glibc-headers-2.17-292.0.1.el7 ################################# [100%]
[root@rac1 Packages]# rpm -ivh glibc-devel-2.17-292.0.1.el7.x86_64.rpm
warning: glibc-devel-2.17-292.0.1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:glibc-devel-2.17-292.0.1.el7 ################################# [100%]
[root@rac1 Packages]# rpm -ivh ksh-20120801-139.0.1.el7.x86_64.rpm
warning: ksh-20120801-139.0.1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:ksh-20120801-139.0.1.el7 ################################# [100%]
[root@rac1 Packages]# rpm -ivh libaio-devel-0.3.109-13.el7.x86_64.rpm
warning: libaio-devel-0.3.109-13.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:libaio-devel-0.3.109-13.el7 ################################# [100%]
[root@rac1 Packages]# rpm -ivh oracleasm-support-2.1.11-2.el7.x86_64.rpm
warning: oracleasm-support-2.1.11-2.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ############ [100%]
Updating / installing...
1: oracleasm-support-2.1.11-2.el7 #################### [100%]
Note: Forwarding request to 'systemctl enable oracleasm.service'.
Created symlink from /etc/systemd/system/multi-user.target.wants/oracleasm.service to /usr/lib/systemd/system/oracleasm.service.
[root@rac1 Packages]# rpm -ivh oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
warning: oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:oracle-database-preinstall-19c-1.################################# [100%]
• 필수 패키지 중 ASMLib 패키지는 아래의 경로에서 다운로드 받아 설치합니다.
https://www.oracle.com/technetwork/server-storage/linux/asmlib/rhel7-2773795.html
• 윈도우의 CMD 창에서 scp를 이용하여 다운로드 받은 파일을 리눅스 서버에 옮겨 설치를 합니다.
<윈도우에서 진행>
cd Downloads
scp oracleasmlib-2.0.12-1.el7.x86_64.rpm root@192.168.20.101:/media
↓ ↓ ↓
<리눅스 유저명> <리눅스 IP> <리눅스에서 파일을 받을 경로>
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
root@192.168.20.101's password: <리눅스 root 유저의 password 입력>
<리눅스에서 진행>
rpm -ivh /media/oracleasmlib-2.0.12-1.el7.x86_64.rpm
<윈도에서 진행>
C:\Users\<사용자 계정 이름> >cd Downloads
C:\Users\<사용자 계정 이름>\Downloads>scp oracleasmlib-2.0.12-1.el7.x86_64.rpm root@192.168.20.101:/media
The authenticity of host '192.168.20.101 (192.168.20.101)' can't be established.
ED25519 key fingerprint is SHA256:/ICWC/S1HrNywff31jS1+J0OVwFwlWlEkmYpnh4dlEw.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.20.101' (ED25519) to the list of known hosts.
root@192.168.20.101's password: < Linux root 유저의 password >
oracleasmlib-2.0.12-1.el7.x86_64.rpm 100% 19KB 6.3MB/s 00:00
<리눅스에서 진행>
[root@rac1 ~]# rpm -ivh /media/oracleasmlib-2.0.12-1.el7.x86_64.rpm
warning: /media/oracleasmlib-2.0.12-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:oracleasmlib-2.0.12-1.el7 ################################# [100%]
• hosts 파일을 수정합니다.
vi /etc/hosts
### Public
10.0.20.101 rac1 rac1.localdomain
10.0.20.102 rac2 rac2.localdomain
### Private
192.168.20.101 rac1-priv rac1-priv.localdomain
192.168.20.102 rac2-priv rac2-priv.localdomain
### Virtual
10.0.20.151 rac1-vip rac1-vip.localdomain
10.0.20.152 rac2-vip rac2-vip.localdomain
### SCAN
10.0.20.201 rac-scan rac-scan.localdomain
10.0.20.202 rac-scan rac-scan.localdomain
10.0.20.203 rac-scan rac-scan.localdomain
[root@rac1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
### Public
10.0.20.101 rac1 rac1.localdomain
10.0.20.102 rac2 rac2.localdomain
### Private
192.168.20.101 rac1-priv rac1-priv.localdomain
192.168.20.102 rac2-priv rac2-priv.localdomain
### Virtual
10.0.20.151 rac1-vip rac1-vip.localdomain
10.0.20.152 rac2-vip rac2-vip.localdomain
### SCAN
10.0.20.201 rac-scan rac-scan.localdomain
10.0.20.202 rac-scan rac-scan.localdomain
10.0.20.203 rac-scan rac-scan.localdomain
• 보안 설정을 변경합니다.
• Selinux 모드를 permissive로 변경합니다.
vi /etc/selinux/config
SELINUX=permissive
[root@rac1 ~]# cat /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=enforcing
SELINUX=permissive
# 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
• dnsmasq를 활성화 합니다.
• dnsmasq 서비스의 환경 설정 파일에 로컬 도메인에 대한 정보를 입력합니다.
vi /etc/dnsmasq.conf
local=/localdomain/
• DNS 설정 파일(resolv.conf)에는 "nameserver 127.0.0.1"가 입력되어 있어야 합니다.
• 별도의 DNS 서비스 없이 SCAN을 사용하기 위해 dnsmasq 서비스를 활성화합니다.
cat /etc/resolv.conf
systemctl start dnsmasq
systemctl enable dnsmasq
reboot
nslookup rac-scan.localdomain
[root@rac1 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 127.0.0.1
[root@rac1 ~]# systemctl start dnsmasq
[root@rac1 ~]# systemctl enable dnsmasq
[root@rac1 ~]# reboot
[root@rac1 ~]# nslookup rac-scan.localdomain
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: rac-scan.localdomain
Address: 10.0.20.203
Name: rac-scan.localdomain
Address: 10.0.20.201
Name: rac-scan.localdomain
Address: 10.0.20.202
• 가상 메모리 파일 시스템값을 설정합니다.
vi /etc/fstab
tmpfs /dev/shm tmpfs size=8g 0 0
[root@rac1 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Oct 23 20:19:41 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/ol-root / xfs defaults 0 0
UUID=5ba71408-cd04-4981-b17b-1dba006c58f2 /boot xfs defaults 0 0
/dev/mapper/ol-swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs size=8g 0 0
• remount하여 가상 메모리 파일 시스템값을 적용 시킵니다.
mount -o remount /dev/shm
df -h | grep shm
[root@rac1 ~]# mount -o remount /dev/shm
[root@rac1 ~]# df -h | grep shm
tmpfs 8.0G 0 8.0G 0% /dev/shm
• 소프트웨어를 설치할 사용자 계정과 그룹을 생성 또는 추가합니다.
### 그룹 등록
groupadd asmadmin
groupadd asmdba
groupadd asmoper
### 유저 그룹 설정 변경
usermod -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba,asmadmin,asmdba,asmoper oracle
### 계정 암호 변경
passwd oracle
[root@rac1 ~]# groupadd asmadmin
[root@rac1 ~]# groupadd asmdba
[root@rac1 ~]# groupadd asmoper
[root@rac1 ~]# usermod -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba,asmadmin,asmdba,asmoper oracle
[root@rac1 ~]# passwd oracle
Changing password for user oracle.
New password: < 변경할 oracl 유저의 비밀번호 >
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: < 변경할 oracl 유저의 비밀번호 >
passwd: all authentication tokens updated successfully.
• 오라클 소프트웨어 설치를 위한 경로를 생성하고 해당 경루에 대한 권한과 소유권을 수정합니다.
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01
[root@rac1 ~]# mkdir -p /u01/app/oracle
[root@rac1 ~]# chown -R oracle:oinstall /u01
[root@rac1 ~]# chmod -R 775 /u01
• oracle 유저의 .bash_profile 을 수정합니다.
• root 계정에서 해당 파일을 직접 수정할 수 있습니다.
<oracle의 .bash_profile 수정>
[root@rac1 ~]# vi ~oracle/.bash_profile
export TMP=/tmp
export TMPDIR=$TMP
export EDITOR=vi
export ORACLE_HOSTNAME=rac1 # 호스트명에 맞게 변경
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/19c/grid
export DB_HOME=$ORACLE_BASE/product/19c/db_1
export ORACLE_HOME=$DB_HOME
export ORACLE_SID=racdb1 # 2번 노드 racdb2
export ORACLE_TERM=xterm
export BASE_PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=AMERICAN_KOREA.AL32UTF8
PS1='[$ORACLE_SID:$PWD]> '
alias grid_env='export ORACLE_HOME=$GRID_HOME;export ORACLE_SID=+ASM1;export ORACLE_HOME=$GRID_HOME;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH'
alias db_env='export ORACLE_HOME=$DB_HOME;export ORACLE_SID=racdb1;export ORACLE_HOME=$DB_HOME;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH'
[root@rac1 ~]# source ~oracle/.bash_profile
[racdb1:/root]> cat ~oracle/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export TMP=/tmp
export TMPDIR=$TMP
export EDITOR=vi
export ORACLE_HOSTNAME=rac1 # 호스트명에 맞게 변경
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/19c/grid
export DB_HOME=$ORACLE_BASE/product/19c/db_1
export ORACLE_HOME=$DB_HOME
export ORACLE_SID=racdb1 # 2번 노드 racdb2
export ORACLE_TERM=xterm
export BASE_PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=AMERICAN_KOREA.AL32UTF8
PS1='[$ORACLE_SID:$PWD]> '
alias grid_env='export ORACLE_HOME=$GRID_HOME;export ORACLE_SID=+ASM1;export ORACLE_HOME=$GRID_HOME;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH'
alias db_env='export ORACLE_HOME=$DB_HOME;export ORACLE_SID=racdb1;export ORACLE_HOME=$DB_HOME;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH'
• root 계정의 .bash_profile에도 경로 정보를 입력합니다.
<root의 .bash_profile 수정>
[racdb1:/root]> vi ~/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/19c/grid
export DB_HOME=$ORACLE_BASE/product/19c/db_1
export PATH=$PATH:$GRID_HOME/bin
[racdb1:/root]> source ~/.bash_profile
[racdb1:/root]> cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/19c/grid
export DB_HOME=$ORACLE_BASE/product/19c/db_1
export PATH=$PATH:$GRID_HOME/bin
V. 공유 환경 및 2번 노드 구성
1. 공유 스토리지 구성
• 아래 표에 보이는 5개의 공유 스토리지를 생성합니다.
• 아래에 설명되어 있는 방식과 동일한 방식으로 5개의 공유 스토리지를 모두 생성합니다.
파일 이름 | 용량 | 타입 | 용도 |
CRS001.vid | 2GB | Fixed / Shareable | OCR/Vote 저장 영역 |
CRS002.vid | 2GB | Fixed / Shareable | |
CRS003.vid | 2GB | Fixed / Shareable | |
DATA001.vid | 20GB | Fixed / Shareable | DATA 영역 |
FRA001.vid | 15GB | Fixed / Shareable | FRA 영역 |
• 공유 스토리지 구성을 위해 VM을 종료합니다.
[racdb1:/root]> init 0
• 공유 스토리지 생성을 위해 Virtual Box에서 파일 → 도구 → 가상미디어 관리자를 클릭합니다.
• 만들기를 클릭합니다.
• VDI ( VirtualBox 디스크 이미지) 를 선택하고 다음을 클릭합니다.
• 미리 전체 크기 할당을 체크하고 다음을 클릭합니다.
• 폴더 아이콘을 클릭하여 공유스토리지를 생성할 위치를 지정합니다.
• 윈도우 탐색기 창이 뜨면 공유 스토리지를 생성할 위치로 이동합니다
• 공유 스토리지를 생성할 폴더로 이동하였으면 파일 이름에 생성할 공유 스토리지의 이름을 작성하고 저장을 클릭합니다.
• 공유 스토리지의 Size를 지정하고 완료를 클릭하면 공유 스토리지가 생성됩니다.
• 생성된 공유 스토리지를 선택하고 속성을 클릭합니다.
• 하단에 있는 속성 탭에서 종류를 공유가능으로 변경하고 적용 버튼을 클릭합니다.
• 좌측에 있는 VM을 선택하고 설정을 클릭합니다.
• 위에서 생성한 공유 스토리지를 아래의 설명과 동일한 방식으로 모두 추가합니다.
• 좌측에 있는 항목들 중 저장소로 이동하고 컨트롤러:SATA 에서 우측에 있는 아이콘을 클릭합니다.
• 위에서 만들어 두었던 공유스토리지인 CRS001을 클릭하고 선택 버튼을 클릭합니다.
• 위에서 생성한 5개의 공유 스토리지를 모두 추가하였으면 확인 버튼을 클릭합니다.
• 좌측에서 VM을 선택하고 시작을 클릭합니다.
2. ASM 환경 구성
• ASM library에 대한 추가적인 환경 설정(사용자, 그룹, 부팅시 활성화, 부팅시 스캔 여부)을 수행하고 적용 여부를 검증합니다.
oracleasm configure -i # "oracle" "asmadmin" "y" "y" 순서로 입력
oracleasm init
oracleasm status
oracleasm configure
[root@rac1 ~]# 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 []: asmadmin
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
[root@rac1 ~]# 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
[root@rac1 ~]# oracleasm status
Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes
[root@rac1 ~]# oracleasm configure
ORACLEASM_ENABLED=true
ORACLEASM_UID=oracle
ORACLEASM_GID=asmadmin
ORACLEASM_SCANBOOT=true
ORACLEASM_SCANORDER=""
ORACLEASM_SCANEXCLUDE=""
ORACLEASM_SCAN_DIRECTORIES=""
ORACLEASM_USE_LOGICAL_BLOCK_SIZE="false"
• VM에 연결된 디스크에 fdisk 명령어로 파티션 분할 작업을 수행 합니다.
• Enter는 값을 입력하지 않고 Enter를 눌러 넘어갑니다.
ls /dev/sd*
fdisk /dev/sdb # "n", "p", "1", "Enter", "Enter", "w" 입력
fdisk /dev/sdc # "n", "p", "1", "Enter", "Enter", "w" 입력
fdisk /dev/sdd # "n", "p", "1", "Enter", "Enter", "w" 입력
fdisk /dev/sde # "n", "p", "1", "Enter", "Enter", "w" 입력
fdisk /dev/sdf # "n", "p", "1", "Enter", "Enter", "w" 입력
ls /dev/sd*
[root@rac1 ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
[root@rac1 ~]# fdisk /dev/sdb
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 0x93bfbed2.
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): 1
First sector (2048-4194303, default 2048): <Enter>
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): <Enter>
Using default value 4194303
Partition 1 of type Linux and of size 2 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac1 ~]# fdisk /dev/sdc
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 0x3182e2da.
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): 1
First sector (2048-4194303, default 2048): <Enter>
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): <Enter>
Using default value 4194303
Partition 1 of type Linux and of size 2 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac1 ~]# fdisk /dev/sdd
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 0x153e3f11.
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): 1
First sector (2048-4194303, default 2048): <Enter>
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): <Enter>
Using default value 4194303
Partition 1 of type Linux and of size 2 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac1 ~]# fdisk /dev/sde
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 0x47f04501.
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): 1
First sector (2048-41943039, default 2048): <Enter>
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): <Enter>
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac1 ~]# fdisk /dev/sdf
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 0x52b924b4.
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): 1
First sector (2048-31457279, default 2048): <Enter>
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-31457279, default 31457279): <Enter>
Using default value 31457279
Partition 1 of type Linux and of size 15 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac1 ~]# ls /dev/sd*
/dev/sda /dev/sda2 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1
/dev/sda1 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
• VM에 마운트된 공유 스토리를 각각 ASM Disk로 할당해줍니다.
• 공유 스토리지가 순서대로 마운트가 되었다면, 디바이스 명의 알파벳 순으로 ASM Disk를 생성하면 됩니다.
oracleasm createdisk CRS001 /dev/sdb1
oracleasm createdisk CRS002 /dev/sdc1
oracleasm createdisk CRS003 /dev/sdd1
oracleasm createdisk DATA001 /dev/sde1
oracleasm createdisk FRA001 /dev/sdf1
oracleasm scandisks
oracleasm listdisks
[root@rac1 ~]# oracleasm createdisk CRS001 /dev/sdb1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk CRS002 /dev/sdc1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk CRS003 /dev/sdd1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk DATA001 /dev/sde1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm createdisk FRA001 /dev/sdf1
Writing disk header: done
Instantiating disk: done
[root@rac1 ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
[root@rac1 ~]# oracleasm listdisks
CRS001
CRS002
CRS003
DATA001
FRA001
3. 2번 노드 구성
• VM을 종료합니다.
init 0
• 2번 노드 복제를 위해서 VM에 마운된 공유 스토리지를 해제합니다.
• VM을 선택하고 설정을 클릭합니다.
• 설정창의 왼쪽 항목 중 저장소를 클릭하고 CRS001을 우클릭하여 연결 삭제를 클릭합니다.
• 남아있는 CRS002, CRS003, DATA001, FRA001도 모두 연결해제 합니다.
• CRS002를 우클릭하여 연결 삭제를 클릭합니다.
• CRS003을 우클릭하여 연결 삭제를 클릭합니다.
• DATA001을 우클릭하여 연결 삭제를 클릭합니다.
• FRA001을 우클릭하여 연결 삭제를 클릭합니다.
• 공유 스토리지를 모두 제거하였으면 확인 버튼을 클릭합니다.
• 1번 노드로 사용할 VM을 우클릭하여 복제를 클릭합니다.
• 2번노드로 사용할 VM의 이름을 설정합니다.
• 경로에서 기타를 선택하여 2번 노드의 VM을 생성할 위치를 지정합니다.
• 윈도우 탐색기 창에서 2번 노드 VM을 생성할 위치로 이동하여 폴더 선택 버튼을 클릭합니다.
• 2번 노드의 이름과 경로가 제대로 설정되었으면 다음 버튼을 클릭합니다.
• 완전한 복제를 선택하고 다음 버튼을 클릭합니다.
• 현재 머신 상태를 선택하고 완료 버튼을 클릭합니다.
• 1번 노드로 사용할 VM을 선택하고 설정을 클릭합니다.
• 저장소를 선택하고 컨트롤러:SATA에서 오른쪽에 있는 CD 아이콘을 클릭합니다.
• 디스크를 선택할 수 있는 창이 뜨면 위에서 생성한 공유 스토리지를 추가합니다.
• 공유 스토리지를 추가할 떄 2번 노드를 복제하기 전과 동일한 순서로 공유 스토리지를 추가합니다.
• CRS001을 클릭하고 선택 버튼을 클릭합니다.
• CRS002, CRS003, DATA001, FRA001도 동일한 방식으로 모두 추가합니다.
• 저장소를 선택하고 컨트롤러:SATA에서 오른쪽에 있는 CD 아이콘을 클릭합니다.
• CRS002을 클릭하고 선택 버튼을 클릭합니다.
• 저장소를 선택하고 컨트롤러:SATA에서 오른쪽에 있는 CD 아이콘을 클릭합니다.
• CRS003을 클릭하고 선택 버튼을 클릭합니다.
• 저장소를 선택하고 컨트롤러:SATA에서 오른쪽에 있는 CD 아이콘을 클릭합니다.
• DATA001을 클릭하고 선택 버튼을 클릭합니다.
• 저장소를 선택하고 컨트롤러:SATA에서 오른쪽에 있는 CD 아이콘을 클릭합니다.
• FRA001을 클릭하고 선택 버튼을 클릭합니다.
• 공유 스토리지를 모두 선택하였으면 확인 버튼을 클릭합니다.
• 2번 노드로 사용할 VM을 선택하고 설정 버튼을 클릭합니다.
• 저장소를 선택하고 컨트롤러:SATA에서 오른쪽에 있는 CD 아이콘을 클릭합니다.
• 디스크를 선택할 수 있는 창이 뜨면 위에서 생성한 공유 스토리지를 추가합니다.
• 공유 스토리지를 추가할 떄 1번 노드와 동일한 순서로 공유 스토리지를 추가합니다.
• CRS001을 클릭하고 선택 버튼을 클릭합니다.
• CRS002, CRS003, DATA001, FRA001도 동일한 방식으로 모두 추가합니다.
• 저장소를 선택하고 컨트롤러:SATA에서 오른쪽에 있는 CD 아이콘을 클릭합니다.
• CRS002을 클릭하고 선택 버튼을 클릭합니다.
• 저장소를 선택하고 컨트롤러:SATA에서 오른쪽에 있는 CD 아이콘을 클릭합니다.
• CRS003을 클릭하고 선택 버튼을 클릭합니다.
• 저장소를 선택하고 컨트롤러:SATA에서 오른쪽에 있는 CD 아이콘을 클릭합니다.
• DATA001을 클릭하고 선택 버튼을 클릭합니다.
• 저장소를 선택하고 컨트롤러:SATA에서 오른쪽에 있는 CD 아이콘을 클릭합니다.
• FRA001을 클릭하고 선택 버튼을 클릭합니다.
• 공유 스토리지를 모두 추가하였으면 왼쪽에 있는 항목중 네트워크를 클릭합니다.
• 어댑터 1번을 클릭하고 고급을 클릭하여 MAC주소의 새로고침 아이콘을 클릭하여 MAC 주소를 변경합니다.
• 어댑터 2번을 클릭하고 고급을 클릭하여 MAC주소의 새로고침 아이콘을 클릭하여 MAC 주소를 변경합니다.
• MAC 주소를 변경하였으면 확인 버튼을 클릭합니다.
• 2번 노드로 사용할 VM을 선택하고 시작 버튼을 클릭합니다.
• root 유저로 로그인 하기 위해 Not listed를 클릭합니다.
• Username에 root 를 입력하고 Next 버튼을 클릭합니다.
• root 유저의 password를 입력하고 Sign In을 클릭합니다.
• 오른쪽 상단에 있는 아이콘을 클릭합니다.
• 설정창이 뜨면 왼쪽 하단에 있는 설정 아이콘을 클릭합니다.
• Settings 항목 중 Network를 선택하고 enp0s3의 톱니바퀴 아이콘을 클릭합니다.
• IPv4 탭으로 이동하고 Address를 2번노드의 Public IP로 변경하고 Apply 버튼을 클릭합니다.
• enp0s8의 톱니바퀴 아이콘을 클릭합니다.
• IPv4 탭으로 이동하고 Address를 2번노드의 Private IP로 변경하고 Apply 버튼을 클릭합니다.
• 오른쪽 상단의 X 버튼을 클릭하여 설정창을 닫습니다.
• 변경한 IP를 적용하기 위해 network를 재시작합니다.
service network restart
[root@rac1 ~]# service network restart
Restarting network (via systemctl): [ OK ]
• 2번 노드의 hostname을 rac2로 변경합니다.
• hostname을 변경한 후에 새로운 세션으로 접속을 해야 변경된 hostname으로 보입니다.
hostname
hostnamectl set-hostname rac2
hostname
[root@rac1 ~]# hostname
rac1
[root@rac1 ~]# hostnamectl set-hostname rac2
[root@rac1 ~]# hostname
rac2
• oracle 유저의 .bash_profile을 변경하고 적용 시켜줍니다.
vi ~oracle/.bash_profile
export ORACLE_HOSTNAME=rac2
export ORACLE_SID=racdb2
alias grid_env='export ORACLE_HOME=$GRID_HOME;export ORACLE_SID=+ASM2;export ORACLE_HOME=$GRID_HOME;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH'
alias db_env='export ORACLE_HOME=$DB_HOME;export ORACLE_SID=racdb2;export ORACLE_HOME=$DB_HOME;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH'
source ~oracle/.bash_profile
[root@rac1 ~]# vi ~oracle/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export TMP=/tmp
export TMPDIR=$TMP
export EDITOR=vi
export ORACLE_HOSTNAME=rac2 # 호스트명에 맞게 변경
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/19c/grid
export DB_HOME=$ORACLE_BASE/product/19c/db_1
export ORACLE_HOME=$DB_HOME
export ORACLE_SID=racdb2 # 2번 노드 racdb2
export ORACLE_TERM=xterm
export BASE_PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=AMERICAN_KOREA.AL32UTF8
PS1='[$ORACLE_SID:$PWD]> '
alias grid_env='export ORACLE_HOME=$GRID_HOME;export ORACLE_SID=+ASM2;export ORACLE_HOME=$GRID_HOME;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH'
alias db_env='export ORACLE_HOME=$DB_HOME;export ORACLE_SID=racdb2;export ORACLE_HOME=$DB_HOME;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH'
[root@rac1 ~]# source ~oracle/.bash_profile
VI. Grid Infrastructure 설치
1. 준비 작업
• 1번 노드로 사용할 VM을 선택하고 시작을 클릭합니다.
• 1번 노드에 oracle 유저로 접속한 후 $GRID_HOME 디렉토리를 생성합니다.
[root@rac1 ~]# su - oracle
[racdb1:/home/oracle]> grid_env
[+ASM1:/home/oracle]> mkdir -p $GRID_HOME
[root@rac1 ~]# su - oracle
Last login: Wed Oct 25 23:20:04 KST 2023 from 192.168.20.1 on pts/0
[racdb1:/home/oracle]> grid_env
[+ASM1:/home/oracle]> mkdir -p $GRID_HOME
• 윈도우에서 다운로드 받은 grid 파일을 리눅스 서버의 $GRID_HOME의 경로로 옮김니다.
<윈도우 CMD 창에서 진행>
cd Downloads
C:\Users\<사용자 계정 이름>\Downloads>scp LINUX.X64_193000_grid_home.zip oracle@192.168.20.101:/u01/app/19c/grid/
C:\Users\<사용자 계정 이름>>cd Downloads
C:\Users\<사용자 계정 이름>\Downloads>scp LINUX.X64_193000_grid_home.zip oracle@192.168.20.101:/u01/app/19c/grid/
oracle@192.168.20.101's password: < oracle 유저의 password 입력>
LINUX.X64_193000_grid_home.zip 100% 2755MB 74.8MB/s 00:36
• grid 파일의 압축을 해제합니다.
• root 계정으로 접속하여 cvuqdisk 패키지를 모든 노드에 설치합니다.
# grid zip 파일 압축 해제
unzip LINUX.X64_193000_grid_home.zip
# cvuqdisk 패키지 설치 (1번 노드 root 유저로 실행)
cd $GRID_HOME/cv/rpm
rpm -ivh cvuqdisk-*.rpm
# 2번 노드로 rpm 파일 전송 후 접속
scp cvuqdisk-*.rpm rac2:/tmp
ssh root@rac2
# cvuqdisk 패키지 설치 (2번 노드 root 유저로 실행)
cd /tmp
rpm -ivh cvuqdisk-*.rpm
exit
# grid zip 파일 압축 해제
[+ASM1:/u01/app/19c/grid]> unzip LINUX.X64_193000_grid_home.zip
### cvuqdisk 패키지 설치 (1번 노드 root 유저로 실행)
[root@rac1 ~]# cd $GRID_HOME/cv/rpm
[root@rac1 rpm]# rpm -ivh cvuqdisk-1.0.10-1.rpm
Preparing... ################################# [100%]
Using default group oinstall to install package
Updating / installing...
1:cvuqdisk-1.0.10-1 ################################# [100%]
### 2번 노드로 rpm 파일 전송 후 접속
[root@rac1 rpm]# scp cvuqdisk-1.0.10-1.rpm rac2:/tmp
The authenticity of host 'rac2 (10.0.20.102)' can't be established.
ECDSA key fingerprint is SHA256:/9wzYYRQ9IEQJ0I6QMtxg7cE5zFdGWKFgWi84vuS12I.
ECDSA key fingerprint is MD5:7a:a0:e8:71:73:96:b2:70:f6:d7:b7:44:0f:9f:88:55.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac2,10.0.20.102' (ECDSA) to the list of known hosts.
root@rac2's password: < rac2번 노드의 root 의 password 입력>
cvuqdisk-1.0.10-1.rpm 100% 11KB 3.2MB/s 00:00
[root@rac1 rpm]# ssh root@rac2
root@rac2's password: < rac2번 노드의 root 의 password 입력>
Last login: Wed Oct 25 23:09:21 2023 from 192.168.20.1
### cvuqdisk 패키지 설치 (2번 노드 root 유저로 실행)
[root@rac2 ~]# cd /tmp
[root@rac2 tmp]# rpm -ivh cvuqdisk-1.0.10-1.rpm
Preparing... ################################# [100%]
Using default group oinstall to install package
Updating / installing...
1:cvuqdisk-1.0.10-1 ################################# [100%]
[root@rac2 tmp]# exit
• oracle 유저에 대한 비밀번호 없는 SSH 접속 설정을 위해 sshUserSetup.sh 스크립트를 수행합니다.
[root@rac1 rpm]# su - oracle
[racdb1:/home/oracle]> grid_env
[+ASM1:/home/oracle]> cd $GRID_HOME/oui/prov/resources/scripts
[+ASM1:/u01/app/19c/grid/oui/prov/resources/scripts]> ./sshUserSetup.sh -user oracle -hosts "rac1 rac2" -noPromptPassphrase -advanced
[root@rac1 rpm]# su - oracle
Last login: Wed Oct 25 23:42:59 KST 2023 on pts/1
[racdb1:/home/oracle]> grid_env
[+ASM1:/home/oracle]> cd $GRID_HOME/oui/prov/resources/scripts
[+ASM1:/u01/app/19c/grid/oui/prov/resources/scripts]> ./sshUserSetup.sh -user oracle -hosts "rac1 rac2" -noPromptPassphrase -advanced
The output of this script is also logged into /tmp/sshUserSetup_2023-10-26-00-06-41.log
Hosts are rac1 rac2
user is oracle
Platform:- Linux
Checking if the remote hosts are reachable
PING rac1 (10.0.20.101) 56(84) bytes of data.
64 bytes from rac1 (10.0.20.101): icmp_seq=1 ttl=64 time=0.017 ms
64 bytes from rac1 (10.0.20.101): icmp_seq=2 ttl=64 time=0.065 ms
64 bytes from rac1 (10.0.20.101): icmp_seq=3 ttl=64 time=0.066 ms
64 bytes from rac1 (10.0.20.101): icmp_seq=4 ttl=64 time=0.066 ms
64 bytes from rac1 (10.0.20.101): icmp_seq=5 ttl=64 time=0.068 ms
--- rac1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4179ms
rtt min/avg/max/mdev = 0.017/0.056/0.068/0.020 ms
PING rac2 (10.0.20.102) 56(84) bytes of data.
64 bytes from rac2 (10.0.20.102): icmp_seq=1 ttl=64 time=0.836 ms
64 bytes from rac2 (10.0.20.102): icmp_seq=2 ttl=64 time=0.253 ms
64 bytes from rac2 (10.0.20.102): icmp_seq=3 ttl=64 time=0.886 ms
64 bytes from rac2 (10.0.20.102): icmp_seq=4 ttl=64 time=0.333 ms
64 bytes from rac2 (10.0.20.102): icmp_seq=5 ttl=64 time=0.869 ms
--- rac2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4080ms
rtt min/avg/max/mdev = 0.253/0.635/0.886/0.282 ms
Remote host reachability check succeeded.
The following hosts are reachable: rac1 rac2.
The following hosts are not reachable: .
All hosts are reachable. Proceeding further...
firsthost rac1
numhosts 2
The script will setup SSH connectivity from the host rac1 to all
the remote hosts. After the script is executed, the user can use SSH to run
commands on the remote hosts or copy files between this host rac1
and the remote hosts without being prompted for passwords or confirmations.
NOTE 1:
As part of the setup procedure, this script will use ssh and scp to copy
files between the local host and the remote hosts. Since the script does not
store passwords, you may be prompted for the passwords during the execution of
the script whenever ssh or scp is invoked.
NOTE 2:
AS PER SSH REQUIREMENTS, THIS SCRIPT WILL SECURE THE USER HOME DIRECTORY
AND THE .ssh DIRECTORY BY REVOKING GROUP AND WORLD WRITE PRIVILEGES TO THESE
directories.
Do you want to continue and let the script make the above mentioned changes (yes/no)?
yes
The user chose yes
User chose to skip passphrase related questions.
Creating .ssh directory on local host, if not present already
Creating authorized_keys file on local host
Changing permissions on authorized_keys to 644 on local host
Creating known_hosts file on local host
Changing permissions on known_hosts to 644 on local host
Creating config file on local host
If a config file exists already at /home/oracle/.ssh/config, it would be backed up to /home/oracle/.ssh/config.backup.
Removing old private/public keys on local host
Running SSH keygen on local host with empty passphrase
Generating public/private rsa key pair.
Your identification has been saved in /home/oracle/.ssh/id_rsa.
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:FMIguwUjGDMZqi9NVjBGFDn4qOkEymhj2gnVOekZDIU oracle@rac1
The key's randomart image is:
+---[RSA 1024]----+
|BB@=oo. . |
|==EB .. . |
|.o.=oo . |
|+ o+B . |
|Bo+. + S |
|*@ o |
|Bo+. |
|.oo |
| |
+----[SHA256]-----+
Creating .ssh directory and setting permissions on remote host rac1
THE SCRIPT WOULD ALSO BE REVOKING WRITE PERMISSIONS FOR group AND others ON THE HOME DIRECTORY FOR oracle. THIS IS AN SSH REQUIREMENT.
The script would create ~oracle/.ssh/config file on remote host rac1. If a config file exists already at ~oracle/.ssh/config, it would be backed up to ~oracle/.ssh/config.backup.
The user may be prompted for a password here since the script would be running SSH on host rac1.
Warning: Permanently added 'rac1,10.0.20.101' (ECDSA) to the list of known hosts.
oracle@rac1's password: <1번 노드의 oracle 유저의 password 입력 >
Done with creating .ssh directory and setting permissions on remote host rac1.
Creating .ssh directory and setting permissions on remote host rac2
THE SCRIPT WOULD ALSO BE REVOKING WRITE PERMISSIONS FOR group AND others ON THE HOME DIRECTORY FOR oracle. THIS IS AN SSH REQUIREMENT.
The script would create ~oracle/.ssh/config file on remote host rac2. If a config file exists already at ~oracle/.ssh/config, it would be backed up to ~oracle/.ssh/config.backup.
The user may be prompted for a password here since the script would be running SSH on host rac2.
Warning: Permanently added 'rac2,10.0.20.102' (ECDSA) to the list of known hosts.
oracle@rac2's password: <2번 노드의 oracle 유저의 password 입력 >
Done with creating .ssh directory and setting permissions on remote host rac2.
Copying local host public key to the remote host rac1
The user may be prompted for a password or passphrase here since the script would be using SCP for host rac1.
oracle@rac1's password: <1번 노드의 oracle 유저의 password 입력 >
Done copying local host public key to the remote host rac1
Copying local host public key to the remote host rac2
The user may be prompted for a password or passphrase here since the script would be using SCP for host rac2.
oracle@rac2's password: <2번 노드의 oracle 유저의 password 입력 >
Done copying local host public key to the remote host rac2
Creating keys on remote host rac1 if they do not exist already. This is required to setup SSH on host rac1.
Creating keys on remote host rac2 if they do not exist already. This is required to setup SSH on host rac2.
Generating public/private rsa key pair.
Your identification has been saved in .ssh/id_rsa.
Your public key has been saved in .ssh/id_rsa.pub.
The key fingerprint is:
SHA256:yG75VJcaHUYHaeQbwvKL9Z02VNxg/Bt1Ubfs+5zz1yA oracle@rac2
The key's randomart image is:
+---[RSA 1024]----+
| .+++.=|
| . ooooo*|
| . o.= +*|
| . . o + =.o.|
| o S = = ..o|
| . . + *Eo.o.|
| + o o ..=o.|
| . o . +=|
| . .B|
+----[SHA256]-----+
Updating authorized_keys file on remote host rac1
Updating known_hosts file on remote host rac1
Updating authorized_keys file on remote host rac2
Updating known_hosts file on remote host rac2
cat: /home/oracle/.ssh/known_hosts.tmp: No such file or directory
cat: /home/oracle/.ssh/authorized_keys.tmp: No such file or directory
SSH setup is complete.
------------------------------------------------------------------------
Verifying SSH setup
===================
The script will now run the date command on the remote nodes using ssh
to verify if ssh is setup correctly. IF THE SETUP IS CORRECTLY SETUP,
THERE SHOULD BE NO OUTPUT OTHER THAN THE DATE AND SSH SHOULD NOT ASK FOR
PASSWORDS. If you see any output other than date or are prompted for the
password, ssh is not setup correctly and you will need to resolve the
issue and set up ssh again.
The possible causes for failure could be:
1. The server settings in /etc/ssh/sshd_config file do not allow ssh
for user oracle.
2. The server may have disabled public key based authentication.
3. The client public key on the server may be outdated.
4. ~oracle or ~oracle/.ssh on the remote host may not be owned by oracle.
5. User may not have passed -shared option for shared remote users or
may be passing the -shared option for non-shared remote users.
6. If there is output in addition to the date, but no password is asked,
it may be a security alert shown as part of company policy. Append the
additional text to the /sysman/prov/resources/ignoreMessages.txt file.</oms home>
------------------------------------------------------------------------
--rac1:--
Running /usr/bin/ssh -x -l oracle rac1 date to verify SSH connectivity has been setup from local host to rac1.
IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR.
Thu Oct 26 00:07:11 KST 2023
------------------------------------------------------------------------
--rac2:--
Running /usr/bin/ssh -x -l oracle rac2 date to verify SSH connectivity has been setup from local host to rac2.
IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR.
Thu Oct 26 00:07:11 KST 2023
------------------------------------------------------------------------
------------------------------------------------------------------------
Verifying SSH connectivity has been setup from rac1 to rac1
IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL.
Thu Oct 26 00:07:11 KST 2023
------------------------------------------------------------------------
------------------------------------------------------------------------
Verifying SSH connectivity has been setup from rac1 to rac2
IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL.
Thu Oct 26 00:07:12 KST 2023
------------------------------------------------------------------------
-Verification from complete-
SSH verification complete.
• 설치를 진행하기에 앞서 모든 노드의 클러스터 구성 환경을 사전 검증하는 스크립트를 fixup 모드로 실행합니다.
• 수정이 가능한 항목이 있을 경우, 자동으로 환경 설정을 수정하는 runfixup.sh 스크립트가 생성되며, 해당 스크립트는 root 유저로 실행이 필요한 노드에서 실행하면 됩니다.
• 설치에 앞서 수정할 부분이나 문제가 될 부분이 있는지 사전에 확인하고, 반드시 이를 해결하고 진행하도록 합니다.
[+ASM1:/u01/app/19c/grid/oui/prov/resources/scripts]> cd $GRID_HOME
[+ASM1:/u01/app/19c/grid]> ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -osdba dba -orainv oinstall -fixup -method root -networks enp0s3/enp0s8 -verbose
[+ASM1:/u01/app/19c/grid/oui/prov/resources/scripts]> cd $GRID_HOME
[+ASM1:/u01/app/19c/grid]> ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -osdba dba -orainv oinstall -fixup -method root -networks enp0s3/enp0s8 -verbose
Enter "ROOT" password: < root 유저의 password 입력>
Verifying Physical Memory ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 7.7789GB (8156756.0KB) 8GB (8388608.0KB) passed
rac1 7.7789GB (8156768.0KB) 8GB (8388608.0KB) passed
Verifying Physical Memory ...PASSED
Verifying Available Physical Memory ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 7.1414GB (7488304.0KB) 50MB (51200.0KB) passed
rac1 6.9639GB (7302140.0KB) 50MB (51200.0KB) passed
Verifying Available Physical Memory ...PASSED
Verifying Swap Size ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 8GB (8388604.0KB) 7.7789GB (8156756.0KB) passed
rac1 8GB (8388604.0KB) 7.7789GB (8156768.0KB) passed
Verifying Swap Size ...PASSED
Verifying Free Space: rac2:/usr,rac2:/var,rac2:/etc,rac2:/sbin,rac2:/tmp ...
Path Node Name Mount point Available Required Status
---------------- ------------ ------------ ------------ ------------ ------------
/usr rac2 / 91.0156GB 25MB passed
/var rac2 / 91.0156GB 5MB passed
/etc rac2 / 91.0156GB 25MB passed
/sbin rac2 / 91.0156GB 10MB passed
/tmp rac2 / 91.0156GB 1GB passed
Verifying Free Space: rac2:/usr,rac2:/var,rac2:/etc,rac2:/sbin,rac2:/tmp ...PASSED
Verifying Free Space: rac1:/usr,rac1:/var,rac1:/etc,rac1:/sbin,rac1:/tmp ...
Path Node Name Mount point Available Required Status
---------------- ------------ ------------ ------------ ------------ ------------
/usr rac1 / 81.9625GB 25MB passed
/var rac1 / 81.9625GB 5MB passed
/etc rac1 / 81.9625GB 25MB passed
/sbin rac1 / 81.9625GB 10MB passed
/tmp rac1 / 81.9625GB 1GB passed
Verifying Free Space: rac1:/usr,rac1:/var,rac1:/etc,rac1:/sbin,rac1:/tmp ...PASSED
Verifying User Existence: oracle ...
Node Name Status Comment
------------ ------------------------ ------------------------
rac2 passed exists(1000)
rac1 passed exists(1000)
Verifying Users With Same UID: 1000 ...PASSED
Verifying User Existence: oracle ...PASSED
Verifying Group Existence: asmadmin ...
Node Name Status Comment
------------ ------------------------ ------------------------
rac2 passed exists
rac1 passed exists
Verifying Group Existence: asmadmin ...PASSED
Verifying Group Existence: dba ...
Node Name Status Comment
------------ ------------------------ ------------------------
rac2 passed exists
rac1 passed exists
Verifying Group Existence: dba ...PASSED
Verifying Group Existence: oinstall ...
Node Name Status Comment
------------ ------------------------ ------------------------
rac2 passed exists
rac1 passed exists
Verifying Group Existence: oinstall ...PASSED
Verifying Group Membership: asmadmin ...
Node Name User Exists Group Exists User in Group Status
---------------- ------------ ------------ ------------ ----------------
rac2 yes yes yes passed
rac1 yes yes yes passed
Verifying Group Membership: asmadmin ...PASSED
Verifying Group Membership: oinstall(Primary) ...
Node Name User Exists Group Exists User in Group Primary Status
---------------- ------------ ------------ ------------ ------------ ------------
rac2 yes yes yes yes passed
rac1 yes yes yes yes passed
Verifying Group Membership: oinstall(Primary) ...PASSED
Verifying Group Membership: dba ...
Node Name User Exists Group Exists User in Group Status
---------------- ------------ ------------ ------------ ----------------
rac2 yes yes yes passed
rac1 yes yes yes passed
Verifying Group Membership: dba ...PASSED
Verifying Run Level ...
Node Name run level Required Status
------------ ------------------------ ------------------------ ----------
rac2 5 3,5 passed
rac1 5 3,5 passed
Verifying Run Level ...PASSED
Verifying Hard Limit: maximum open file descriptors ...
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
rac2 hard 65536 65536 passed
rac1 hard 65536 65536 passed
Verifying Hard Limit: maximum open file descriptors ...PASSED
Verifying Soft Limit: maximum open file descriptors ...
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
rac2 soft 1024 1024 passed
rac1 soft 1024 1024 passed
Verifying Soft Limit: maximum open file descriptors ...PASSED
Verifying Hard Limit: maximum user processes ...
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
rac2 hard 16384 16384 passed
rac1 hard 16384 16384 passed
Verifying Hard Limit: maximum user processes ...PASSED
Verifying Soft Limit: maximum user processes ...
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
rac2 soft 16384 2047 passed
rac1 soft 16384 2047 passed
Verifying Soft Limit: maximum user processes ...PASSED
Verifying Soft Limit: maximum stack size ...
Node Name Type Available Required Status
---------------- ------------ ------------ ------------ ----------------
rac2 soft 10240 10240 passed
rac1 soft 10240 10240 passed
Verifying Soft Limit: maximum stack size ...PASSED
Verifying Architecture ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 x86_64 x86_64 passed
rac1 x86_64 x86_64 passed
Verifying Architecture ...PASSED
Verifying OS Kernel Version ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 4.14.35-1902.3.2.el7uek.x86_64 4.1.12 passed
rac1 4.14.35-1902.3.2.el7uek.x86_64 4.1.12 passed
Verifying OS Kernel Version ...PASSED
Verifying OS Kernel Parameter: semmsl ...
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac1 250 250 250 passed
rac2 250 250 250 passed
Verifying OS Kernel Parameter: semmsl ...PASSED
Verifying OS Kernel Parameter: semmns ...
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac1 32000 32000 32000 passed
rac2 32000 32000 32000 passed
Verifying OS Kernel Parameter: semmns ...PASSED
Verifying OS Kernel Parameter: semopm ...
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac1 100 100 100 passed
rac2 100 100 100 passed
Verifying OS Kernel Parameter: semopm ...PASSED
Verifying OS Kernel Parameter: semmni ...
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac1 128 128 128 passed
rac2 128 128 128 passed
Verifying OS Kernel Parameter: semmni ...PASSED
Verifying OS Kernel Parameter: shmmax ...
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac1 4398046511104 4398046511104 4176265216 passed
rac2 4398046511104 4398046511104 4176259072 passed
Verifying OS Kernel Parameter: shmmax ...PASSED
Verifying OS Kernel Parameter: shmmni ...
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac1 4096 4096 4096 passed
rac2 4096 4096 4096 passed
Verifying OS Kernel Parameter: shmmni ...PASSED
Verifying OS Kernel Parameter: shmall ...
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac1 1073741824 1073741824 1073741824 passed
rac2 1073741824 1073741824 1073741824 passed
Verifying OS Kernel Parameter: shmall ...PASSED
Verifying OS Kernel Parameter: file-max ...
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac1 6815744 6815744 6815744 passed
rac2 6815744 6815744 6815744 passed
Verifying OS Kernel Parameter: file-max ...PASSED
Verifying OS Kernel Parameter: ip_local_port_range ...
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac1 between 9000 & 65500 between 9000 & 65500 between 9000 & 65535 passed
rac2 between 9000 & 65500 between 9000 & 65500 between 9000 & 65535 passed
Verifying OS Kernel Parameter: ip_local_port_range ...PASSED
Verifying OS Kernel Parameter: rmem_default ...
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac1 262144 262144 262144 passed
rac2 262144 262144 262144 passed
Verifying OS Kernel Parameter: rmem_default ...PASSED
Verifying OS Kernel Parameter: rmem_max ...
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac1 4194304 4194304 4194304 passed
rac2 4194304 4194304 4194304 passed
Verifying OS Kernel Parameter: rmem_max ...PASSED
Verifying OS Kernel Parameter: wmem_default ...
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac1 262144 262144 262144 passed
rac2 262144 262144 262144 passed
Verifying OS Kernel Parameter: wmem_default ...PASSED
Verifying OS Kernel Parameter: wmem_max ...
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac1 1048576 1048576 1048576 passed
rac2 1048576 1048576 1048576 passed
Verifying OS Kernel Parameter: wmem_max ...PASSED
Verifying OS Kernel Parameter: aio-max-nr ...
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac1 1048576 1048576 1048576 passed
rac2 1048576 1048576 1048576 passed
Verifying OS Kernel Parameter: aio-max-nr ...PASSED
Verifying OS Kernel Parameter: panic_on_oops ...
Node Name Current Configured Required Status Comment
---------------- ------------ ------------ ------------ ------------ ------------
rac1 1 1 1 passed
rac2 1 1 1 passed
Verifying OS Kernel Parameter: panic_on_oops ...PASSED
Verifying Package: kmod-20-21 (x86_64) ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 kmod(x86_64)-20-25.0.1.el7 kmod(x86_64)-20-21 passed
rac1 kmod(x86_64)-20-25.0.1.el7 kmod(x86_64)-20-21 passed
Verifying Package: kmod-20-21 (x86_64) ...PASSED
Verifying Package: kmod-libs-20-21 (x86_64) ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 kmod-libs(x86_64)-20-25.0.1.el7 kmod-libs(x86_64)-20-21 passed
rac1 kmod-libs(x86_64)-20-25.0.1.el7 kmod-libs(x86_64)-20-21 passed
Verifying Package: kmod-libs-20-21 (x86_64) ...PASSED
Verifying Package: binutils-2.23.52.0.1 ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 binutils-2.27-41.base.0.1.el7 binutils-2.23.52.0.1 passed
rac1 binutils-2.27-41.base.0.1.el7 binutils-2.23.52.0.1 passed
Verifying Package: binutils-2.23.52.0.1 ...PASSED
Verifying Package: compat-libcap1-1.10 ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 compat-libcap1-1.10-7.el7 compat-libcap1-1.10 passed
rac1 compat-libcap1-1.10-7.el7 compat-libcap1-1.10 passed
Verifying Package: compat-libcap1-1.10 ...PASSED
Verifying Package: libgcc-4.8.2 (x86_64) ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 libgcc(x86_64)-4.8.5-39.0.1.el7 libgcc(x86_64)-4.8.2 passed
rac1 libgcc(x86_64)-4.8.5-39.0.1.el7 libgcc(x86_64)-4.8.2 passed
Verifying Package: libgcc-4.8.2 (x86_64) ...PASSED
Verifying Package: libstdc++-4.8.2 (x86_64) ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 libstdc++(x86_64)-4.8.5-39.0.1.el7 libstdc++(x86_64)-4.8.2 passed
rac1 libstdc++(x86_64)-4.8.5-39.0.1.el7 libstdc++(x86_64)-4.8.2 passed
Verifying Package: libstdc++-4.8.2 (x86_64) ...PASSED
Verifying Package: libstdc++-devel-4.8.2 (x86_64) ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 libstdc++-devel(x86_64)-4.8.5-39.0.1.el7 libstdc++-devel(x86_64)-4.8.2 passed
rac1 libstdc++-devel(x86_64)-4.8.5-39.0.1.el7 libstdc++-devel(x86_64)-4.8.2 passed
Verifying Package: libstdc++-devel-4.8.2 (x86_64) ...PASSED
Verifying Package: sysstat-10.1.5 ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 sysstat-10.1.5-18.el7 sysstat-10.1.5 passed
rac1 sysstat-10.1.5-18.el7 sysstat-10.1.5 passed
Verifying Package: sysstat-10.1.5 ...PASSED
Verifying Package: ksh ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 ksh ksh passed
rac1 ksh ksh passed
Verifying Package: ksh ...PASSED
Verifying Package: make-3.82 ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 make-3.82-24.el7 make-3.82 passed
rac1 make-3.82-24.el7 make-3.82 passed
Verifying Package: make-3.82 ...PASSED
Verifying Package: glibc-2.17 (x86_64) ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 glibc(x86_64)-2.17-292.0.1.el7 glibc(x86_64)-2.17 passed
rac1 glibc(x86_64)-2.17-292.0.1.el7 glibc(x86_64)-2.17 passed
Verifying Package: glibc-2.17 (x86_64) ...PASSED
Verifying Package: glibc-devel-2.17 (x86_64) ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 glibc-devel(x86_64)-2.17-292.0.1.el7 glibc-devel(x86_64)-2.17 passed
rac1 glibc-devel(x86_64)-2.17-292.0.1.el7 glibc-devel(x86_64)-2.17 passed
Verifying Package: glibc-devel-2.17 (x86_64) ...PASSED
Verifying Package: libaio-0.3.109 (x86_64) ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 libaio(x86_64)-0.3.109-13.el7 libaio(x86_64)-0.3.109 passed
rac1 libaio(x86_64)-0.3.109-13.el7 libaio(x86_64)-0.3.109 passed
Verifying Package: libaio-0.3.109 (x86_64) ...PASSED
Verifying Package: libaio-devel-0.3.109 (x86_64) ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 libaio-devel(x86_64)-0.3.109-13.el7 libaio-devel(x86_64)-0.3.109 passed
rac1 libaio-devel(x86_64)-0.3.109-13.el7 libaio-devel(x86_64)-0.3.109 passed
Verifying Package: libaio-devel-0.3.109 (x86_64) ...PASSED
Verifying Package: nfs-utils-1.2.3-15 ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 nfs-utils-1.3.0-0.65.0.1.el7 nfs-utils-1.2.3-15 passed
rac1 nfs-utils-1.3.0-0.65.0.1.el7 nfs-utils-1.2.3-15 passed
Verifying Package: nfs-utils-1.2.3-15 ...PASSED
Verifying Package: smartmontools-6.2-4 ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 smartmontools-7.0-1.el7 smartmontools-6.2-4 passed
rac1 smartmontools-7.0-1.el7 smartmontools-6.2-4 passed
Verifying Package: smartmontools-6.2-4 ...PASSED
Verifying Package: net-tools-2.0-0.17 ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 net-tools-2.0-0.25.20131004git.el7 net-tools-2.0-0.17 passed
rac1 net-tools-2.0-0.25.20131004git.el7 net-tools-2.0-0.17 passed
Verifying Package: net-tools-2.0-0.17 ...PASSED
Verifying Port Availability for component "Oracle Notification Service (ONS)" ...
Node Name Port Number Protocol Available Status
---------------- ------------ ------------ ------------ ----------------
rac2 6200 TCP yes successful
rac1 6200 TCP yes successful
rac2 6100 TCP yes successful
rac1 6100 TCP yes successful
Verifying Port Availability for component "Oracle Notification Service (ONS)" ...PASSED
Verifying Port Availability for component "Oracle Cluster Synchronization Services (CSSD)" ...
Node Name Port Number Protocol Available Status
---------------- ------------ ------------ ------------ ----------------
rac2 42424 TCP yes successful
rac1 42424 TCP yes successful
Verifying Port Availability for component "Oracle Cluster Synchronization Services (CSSD)" ...PASSED
Verifying Users With Same UID: 0 ...PASSED
Verifying Current Group ID ...PASSED
Verifying Root user consistency ...
Node Name Status
------------------------------------ ------------------------
rac2 passed
rac1 passed
Verifying Root user consistency ...PASSED
Verifying Package: cvuqdisk-1.0.10-1 ...
Node Name Available Required Status
------------ ------------------------ ------------------------ ----------
rac2 cvuqdisk-1.0.10-1 cvuqdisk-1.0.10-1 passed
rac1 cvuqdisk-1.0.10-1 cvuqdisk-1.0.10-1 passed
Verifying Package: cvuqdisk-1.0.10-1 ...PASSED
Verifying Host name ...PASSED
Verifying Node Connectivity ...
Verifying Hosts File ...
Node Name Status
------------------------------------ ------------------------
rac1 passed
rac2 passed
Verifying Hosts File ...PASSED
Interface information for node "rac1"
Name IP Address Subnet Gateway Def. Gateway HW Address MTU
------ --------------- --------------- --------------- --------------- ----------------- ------
enp0s3 10.0.20.101 10.0.20.0 0.0.0.0 10.0.20.2 08:00:27:31:B0:41 1500
enp0s8 192.168.20.101 192.168.20.0 0.0.0.0 10.0.20.2 08:00:27:56:A0:F8 1500
Interface information for node "rac2"
Name IP Address Subnet Gateway Def. Gateway HW Address MTU
------ --------------- --------------- --------------- --------------- ----------------- ------
enp0s3 10.0.20.102 10.0.20.0 0.0.0.0 10.0.20.2 08:00:27:D6:AC:05 1500
enp0s8 192.168.20.102 192.168.20.0 0.0.0.0 10.0.20.2 08:00:27:63:66:E3 1500
Check: MTU consistency of the subnet "10.0.20.0".
Node Name IP Address Subnet MTU
---------------- ------------ ------------ ------------ ----------------
rac1 enp0s3 10.0.20.101 10.0.20.0 1500
rac2 enp0s3 10.0.20.102 10.0.20.0 1500
Check: MTU consistency of the subnet "192.168.20.0".
Node Name IP Address Subnet MTU
---------------- ------------ ------------ ------------ ----------------
rac1 enp0s8 192.168.20.101 192.168.20.0 1500
rac2 enp0s8 192.168.20.102 192.168.20.0 1500
Source Destination Connected?
------------------------------ ------------------------------ ----------------
rac1[enp0s3:10.0.20.101] rac2[enp0s3:10.0.20.102] yes
Source Destination Connected?
------------------------------ ------------------------------ ----------------
rac1[enp0s8:192.168.20.101] rac2[enp0s8:192.168.20.102] yes
Verifying Check that maximum (MTU) size packet goes through subnet ...PASSED
Verifying subnet mask consistency for subnet "10.0.20.0" ...PASSED
Verifying subnet mask consistency for subnet "192.168.20.0" ...PASSED
Verifying Node Connectivity ...PASSED
Verifying Multicast or broadcast check ...
Checking subnet "10.0.20.0" for multicast communication with multicast group "224.0.0.251"
Verifying Multicast or broadcast check ...PASSED
Verifying ASMLib installation and configuration verification. ...
Verifying '/etc/init.d/oracleasm' ...PASSED
Verifying '/dev/oracleasm' ...PASSED
Verifying '/etc/sysconfig/oracleasm' ...PASSED
Node Name Status
------------------------------------ ------------------------
rac1 passed
rac2 passed
Verifying ASMLib installation and configuration verification. ...PASSED
Verifying Network Time Protocol (NTP) ...PASSED
Verifying Same core file name pattern ...PASSED
Verifying User Mask ...
Node Name Available Required Comment
------------ ------------------------ ------------------------ ----------
rac2 0022 0022 passed
rac1 0022 0022 passed
Verifying User Mask ...PASSED
Verifying User Not In Group "root": oracle ...
Node Name Status Comment
------------ ------------------------ ------------------------
rac2 passed does not exist
rac1 passed does not exist
Verifying User Not In Group "root": oracle ...PASSED
Verifying Time zone consistency ...PASSED
Verifying Time offset between nodes ...PASSED
Verifying resolv.conf Integrity ...
Node Name Status
------------------------------------ ------------------------
rac1 passed
rac2 passed
checking response for name "rac1" from each of the name servers specified in
"/etc/resolv.conf"
Node Name Source Comment Status
------------ ------------------------ ------------------------ ----------
rac1 127.0.0.1 IPv4 passed
checking response for name "rac2" from each of the name servers specified in
"/etc/resolv.conf"
Node Name Source Comment Status
------------ ------------------------ ------------------------ ----------
rac2 127.0.0.1 IPv4 passed
Verifying resolv.conf Integrity ...PASSED
Verifying DNS/NIS name service ...PASSED
Verifying Domain Sockets ...PASSED
Verifying /boot mount ...PASSED
Verifying Daemon "avahi-daemon" not configured and running ...
Node Name Configured Status
------------ ------------------------ ------------------------
rac2 no passed
rac1 no passed
Node Name Running? Status
------------ ------------------------ ------------------------
rac2 no passed
rac1 no passed
Verifying Daemon "avahi-daemon" not configured and running ...PASSED
Verifying Daemon "proxyt" not configured and running ...
Node Name Configured Status
------------ ------------------------ ------------------------
rac2 no passed
rac1 no passed
Node Name Running? Status
------------ ------------------------ ------------------------
rac2 no passed
rac1 no passed
Verifying Daemon "proxyt" not configured and running ...PASSED
Verifying loopback network interface address ...PASSED
Verifying User Equivalence ...PASSED
Verifying RPM Package Manager database ...PASSED
Verifying /dev/shm mounted as temporary file system ...PASSED
Verifying File system mount options for path /var ...PASSED
Verifying DefaultTasksMax parameter ...PASSED
Verifying zeroconf check ...PASSED
Verifying ASM Filter Driver configuration ...PASSED
Verifying Systemd login manager IPC parameter ...PASSED
Pre-check for cluster services setup was successful.
CVU operation performed: stage -pre crsinst
Date: Oct 26, 2023 12:14:44 AM
CVU home: /u01/app/19c/grid/
User: oracle
2. Grid Infrastructure 설치
• GRID_HOME 디렉토리로 이동하여 gridSetup.sh을 실행합니다.
grid_env
cd $GRID_HOME
./gridSetup.sh
• 소프트웨어를 구성할 옵션을 선택합니다.
• Configure Oracle Grid Infrastructure for a New Cluster를 선택한 후 Next 버튼을 클릭합니다.
• 클러스터의 구성을 선택합니다.
• Configure an Oracle Standalone Cluster를 선택한 후 Next 버튼을 클릭합니다.
• Grid 플러그 앤 플레이 정보를 입력합니다.
• SCAN 이름은 /etc/hosts에 정의한 이름, 그리고 nslookup에서 테스트한 이름과 동일하게 도메인을 포함하여 입력합니다.
• 클러스터 이름, SCAN 이름과 SCAN 포트 번호를 입력한 후에 Next 버튼을 클릭합니다.
• 클러스터 노드 정보를 설정합니다.
• 기본적으로 구성 스크립트를 실행한 노드의 정보가 클러스터 노드 목록에 표시됩니다.
• 다른 노드를 추가하기 위해 Add 버튼을 클릭합니다
• 하나의 노드만 추가할 것이므로 Add a Single mode를 선택한 상태에서 2번 노드의 Public Host 이름과 Virtual Host 이름을 입력하고 OK 버튼을 클릭합니다.
• 클러스터 노드 간의 비밀번호 없는 SSH 환경 구성을 위해 SSH connectivity 버튼을 클릭합니다.
• oracle 유저에 대한 비밀번호 없는 SSH 환경 구성이 되어 있다면, oracle 유저의 비밀번호를 입력하고 Test 버튼을 클릭합니다.
• oracle 유저에 대한 비밀번호 없는 SSH 환경 구성이 되어 있지 않다면, oracle 유저의 OS 비밀번호를 입력하고 Setup 버튼을 클릭하면 노드간의 비빌번호 없는 SSH 접속 설정이 완료됩니다.
• 정상적으로 설정이 되었다면 다음과 같은 안내 메시지가 출력되고, OK 버튼을 클릭합니다.
• 설정이 완료되었으면 Next 버튼을 클릭합니다.
• 노드간의 네트워크 인터페이스를 확인하는 단계입니다.
• Public 인터페이스는 Public IP와 VIP로 외부와 통신하는데 사용되며 ASM & Private 인터페이스는 ASM과 RAC 노드간의 통신에만 사용됩니다.
• 노드간의 인터페이스 이름과 서브넷은 Public과 Private를 구분하여 동일하게 설정이 되어야 합니다.
• 설정이 완료되었으면 Next 버튼을 클릭합니다.
• 저장영역 옵션 정보를 선택합니다.
• OCR과 Voting disk를 ASM에 구성할 것이므로 Use Oracle Flex ASM for storatge를 선택하고 Next 버튼을 클릭합니다.
• Grid Infrastructure 관리 저장소 옵션을 선택합니다.
• 기본값인 No를 선택한 후 Next 버튼을 클릭합니다.
• OCR과 Voting을 저장하기 위한 ASM 디스크 그룹을 생성합니다.
• ASMLib로 등록된 디스크 목록을 검색하기 위해 Change Discovery Path 버튼을 클릭합니다.
• 디스크 검색 경로에 /dev/oracleasm/disks/* 를 입력하고 Next 버튼을 클릭합니다.
• Disk group name 을 CRS로 변경하고, Redundancy는 기본값인 Normal을 유지합니다.
• 검색된 디스크 선택 목록에서 CRS001, CRS002, CRS003을 선택한 후 Next 버튼을 클릭합니다.
• SYSASM 권한 사용자의 비밀번호를 설정합니다.
• 실습을 위해 하나의 패스워드로 SYS와 ASMSNMP 계정의 비밀번호를 사용할 것이므로 Use same passwords for these accounts를 선택하고 비밀번호를 입력합니다.
• 비밀번호를 입력하였으면 Next 버튼을 클릭합니다.
• 암호 복잡도 규칙에 맞는 않는 비밀번호를 입력하면 아래와 같은 안내 메시지가 출력됩니다.
• 설치 Test를 위한 것이므로 Yes 버튼을 클릭합니다.
• 실패 분리 지원을 설정합니다.
• Do not use Intelligent Platform Management Interface (IPMI)를 선택하고 Next 버튼을 클릭합니다.
• 관리 옵션을 지정합니다.
• 별도의 EM 시스템에 등록하지 않는다면, Register with Enterprise Manager(EM) Cloud Control이 해제된 기본 상태에서 Next 버튼을 클릭합니다.
• ASM 권한 관련 OS 인증에 사용할 OS 그룹을 선택하는 단계입니다.
• 정상적으로 지정되었는지 확인하고 Next 버튼을 클릭합니다.
• Oracle base 경로를 확인합니다.
• 정상적으로 지정되었는지 확인하고 Next 버튼을 클릭합니다.
• OracleInventory의 경로와 그룹을 확인하고 Next 버튼틀 클릭합니다.
• OracleInventory에는 오라클 소프트웨어의 설치 정보가 저장됩니다.
• 클러스터 구성 과정 중에 root 권한으로 스크립트를 실행하는 과정이 있습니다.
• 자동으로 구성 스크립트를 실행하기 위해서는 모든 노드의 root 계정 비밀번호가 동일해야 합니다.
• Automaticalluy run configuration scripts 를 체크합니다
• Use "root" user credetial을 선택한 후 root 계정의 비밀번호를 입력하고 Next 버튼을 클릭합니다.
• 만약 노드간에 root 계정의 암호가 다르거나, 수동으로 설치를 진행하고자 할 경우에는 아무 것도 선택하지 않고 다음 단계로 진행하면 수동으로 스크립트 실행을 할 수 있습니다.
• 설치에 앞서 서버에 대한 필요 조건 검사가 실행됩니다.
• 이 단계에서 누락되거나 잘못된 설정을 반드시 수정하고 설치를 진행해야 합니다
• 특이사항이 없을 경우에는 자동으로 다음 단계로 넘어갑니다.
• 본격적인 설치에 앞서 구성될 환경에 대한 요약 정보를 검토합니다.
• 수정할 사항이 있으면 해당 항목 옆에 Edit을 클릭하여 변경하면 됩니다.
• 정확하게 모든 사항이 설정되었으면 Install 버튼을 클릭합니다.
• 로컬 노드와 원격 노드에 grid 설치가 진행됩니다.
• 로컬 노드에는 GRID_HOME 디렉토리에 설치 파일의 압축이 이미 풀려 있으므로, 파일 복제 과정은 생략됩니다.
• 원격 노드에는 Private 망의 SSH 연결을 통해 설치 파일이 전송되며 GRID_HOME 디렉토리에 파일 복제가 진행됩니다
• 클러스터 구성 스크립트를 자동으로 실행할 것인지 뭍는 창이 뜨면 Yes를 클릭합니다.
• 설치 과정 중에 입력한 root 사용자의 비밀번호를 이용하여 자동으로 스크립트가 실행됩니다
• Details 버튼을 클릭하면 설치 과정을 확인할 수 있습니다.
• grid 설치와 구성이 완료되면 Close 버튼을 클릭하여 설치 프로그램을 종료합니다.
• crsctl stat res -t 명령을 통해 정상적으로 클러스터가 구성되었는지 확인할 수 있습니다.
crsctl stat res -t
[+ASM1:/u01/app/19c/grid]> crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.chad
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.net1.network
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.ons
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 OFFLINE OFFLINE STABLE
ora.CRS.dg(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 OFFLINE OFFLINE STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE rac2 STABLE
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE rac1 STABLE
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE rac1 STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 Started,STABLE
3 OFFLINE OFFLINE STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 OFFLINE OFFLINE STABLE
ora.cvu
1 ONLINE ONLINE rac1 STABLE
ora.qosmserver
1 ONLINE ONLINE rac1 STABLE
ora.rac1.vip
1 ONLINE ONLINE rac1 STABLE
ora.rac2.vip
1 ONLINE ONLINE rac2 STABLE
ora.scan1.vip
1 ONLINE ONLINE rac2 STABLE
ora.scan2.vip
1 ONLINE ONLINE rac1 STABLE
ora.scan3.vip
1 ONLINE ONLINE rac1 STABLE
--------------------------------------------------------------------------------
VII. ASM 디스크 그룹 추가
1. ASMCA 실행
• ASM 디스크 그룹을 추가로 생성하기 위해 grid 유저에서 ASMCA를 실행합니다.
grid_env
asmca
• GUI 모드에서 ASMCA에서 Disk Groups를 추가합니다.
• DATA 그룹을 추가하기 위해 Disk groups 창에서 Create버튼을 클릭합니다.
• Disk Group Name에 DATA를 입력하고 Redundancy는 Extermal(Nome)으로 지정합니다.
• DATA001 디스크를 체크하고 OK 버튼을 클릭합니다.
• FRA 그룹을 추가하기 위해 Disk groups 창에서 Create버튼을 클릭합니다.
• Disk Group Name에 FRA를 입력하고 Redundancy는 Extermal(Nome)으로 지정합니다.
• FRA001 디스크를 체크하고 OK 버튼을 클릭합니다.
• 디스크 그룹 추가 작업이 완료되었으면 Exit 버튼을 클릭합니다.
• 종료 확인 창에 Yes를 클릭하여 ASMCA를 닫습니다.
• 클러스터 리소스에 DATA와 FRA 디스크 그룹이 추가된 것을 확인할 수 있습니다.
crsctl stat res -t
[+ASM1:/u01/app/19c/grid]> crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.chad
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.net1.network
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.ons
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 OFFLINE OFFLINE STABLE
ora.CRS.dg(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 OFFLINE OFFLINE STABLE
ora.DATA.dg(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 ONLINE OFFLINE STABLE
ora.FRA.dg(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 ONLINE OFFLINE STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE rac2 STABLE
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE rac1 STABLE
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE rac1 STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 Started,STABLE
3 OFFLINE OFFLINE STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 OFFLINE OFFLINE STABLE
ora.cvu
1 ONLINE ONLINE rac1 STABLE
ora.qosmserver
1 ONLINE ONLINE rac1 STABLE
ora.rac1.vip
1 ONLINE ONLINE rac1 STABLE
ora.rac2.vip
1 ONLINE ONLINE rac2 STABLE
ora.scan1.vip
1 ONLINE ONLINE rac2 STABLE
ora.scan2.vip
1 ONLINE ONLINE rac1 STABLE
ora.scan3.vip
1 ONLINE ONLINE rac1 STABLE
--------------------------------------------------------------------------------
VIII. Database 소프트웨어 설치
1. 준비 작업
• oracle 유저로 1번 노드에 접속해서 $DB_HOME 디렉토리를 생성합니다.
su - oracle
mkdir -p $DB_HOME
• 윈도우에서 다운로드 받은 DB 설치파일을 1번노드의 DB_HOME 경로로 옮깁니다.
<윈도우 CMD 창에서 진행>
cd Downloads
scp LINUX.X64_193000_db_home.zip oracle@192.168.20.101:/u01/app/oracle/product/19c/db_1/
C:\Users\<사용자 계정 이름>>cd Downloads
C:\Users\<사용자 계정 이름>\Downloads>scp LINUX.X64_193000_db_home.zip oracle@192.168.20.101:/u01/app/oracle/product/19c/db_1/
oracle@192.168.20.101's password: <oracle 계정 password>
LINUX.X64_193000_db_home.zip 100% 2918MB 53.0MB/s 00:55
• 1번노드의 DB_HOME 경로에서 DB 압축파일의 압축을 해제합니다.
• grid 설치와 동일하게 1번에 압축을 해제하고, 설치를 진행하면 됩니다.
cd $DB_HOME
unzip LINUX.X64_193000_db_home.zip
2. Database 소프트웨어 설치
• 설치 파일의 압축을 해제한 디렉토리에서 runInstaller를 실행합니다.
cd $DB_HOME
./runInstaller
• 소프트웨어만 설치한 후에 별도로 데이터베이스를 생성할 예정이므로 Set Up Software Only 를 선택하고 Next 버튼을 클릭합니다.
• 설치 옵션은 Oracle Real Application Clusters database installation을 선택하고 Next 버튼을 클릭합니다.
• RAC 모든 노드에 설치할 것이므로 rac1과 rac2가 모두 체크되었는지 확인합니다.
• oracle 유저에 대한 비밀번호 없는 SSH 접속 설정을 위해 SSH connectivity 버튼을 클릭합니다.
• grid와 Database를 동일한 유저로 설치한다면 grid 설치 시점에 이미 비밀번호 없는 SSH 접속이 설정되어 있으므로 다음 단계로 진행해도 됩니다.
• OS 비밀번호에 oracle 유저의 비밀번호를 입력하고 Test 버튼을 클릭합니다.
• grid와 Database를 다른 유저로 설치하게 되면 Setup 버튼을 클릭하여 반드시 SSH 접속 설정 진행해야 합니다.
• 다음과 같은 안내 메시지가 출력되면 OK 버튼을 클릭합니다.
• SSH 설정이 완료되었으면 Next 버튼을 클릭합니다.
• RAC는 Enterprise Edition만 설치 가능하므로 Enterprise Edition 선택합니다.
• 버전 선택 후 Next 버튼을 클릭합니다.
• 소프트웨어 설치 위치인 Oracle Base와 Software location 경로인 DB_HOME의 경로가 정상적으로 인식되었는지 확인하고 Next 버튼을 클릭합니다.
• OS 인증을 위한 OS 그룹을 설정하는 단계입니다.
• 적절한 OS 그룹과 맵핑이 된다면 Next 버튼을 클릭합니다.
• 오라클의 권고사항에 따라 그룹을 세분화하였지만, 정책에 따라 관리 편의상 1개의 그룹(대부분 dba)으로 운영하는 경우가 많습니다.
• 소프트웨어 구성 과정 중에 root 권한으로 스크립트를 실행하는 과정이 있습니다.
• 자동으로 구성 스크립트를 실행하기 위해서는 모든 노드의 root 계정 비밀번호가 동일해야 합니다.
• Automaticalluy run configuration scripts 를 체크합니다
• Use "root" user credetial을 선택한 후 root 계정의 비밀번호를 입력하고 Next 버튼을 클릭합니다.
• 만약 노드간에 root 계정의 암호가 다르거나, 수동으로 설치를 진행하고자 할 경우에는 아무 것도 선택하지 않고 다음 단계로 진행하면 수동으로 스크립트 실행을 할 수 있습니다.
• 설치에 앞서 서버에 대한 필요 조건 검사가 실행됩니다.
• grid 설치를 하면서 검증 및 수정이 완료되었다면, 자동으로 다음 단계로 넘어갑니다.
• 본격적인 설치에 앞서 구성될 환경에 대한 요약 정보를 검토합니다.
• 수정할 사항이 있으면 해당 항목 옆에 Edit을 클릭하여 변경하면 됩니다.
• 정확하게 모든 사항이 설정되었으면 Install 버튼을 클릭합니다.
• 로컬 노드에 database의 설치가 진행됩니다.
• 설치 과정의 마지막 단계로 루트 스크립트를 자동으로 실행할 것인지 뭍는 메시지가 나오면 Yes 버튼을 클릭합니다.
• Database 설치가 완료되면 Close 버튼을 클릭하여 설치 프로그램을 종료합니다.
IX. 데이터베이스 생성
1. 데이터베이스 생성
• oracle 유저로 접속해서 DBCA (Database Configuration Assistant)를 실행합니다.
dbca
• Create a database 을 체크하고 Next 버튼을 클릭합니다.
• Advanced configureation을 선택하고 Next 버튼을 클릭합니다.
• Database type을 Oracle Real Application Clusters (RAC) database(기본값)를 선택 합니다.
• Configuration type은 Admin Managed (기본값)를 선택합니다.
• General Purpose or Transaction Processing을 선택하고 Next 버튼을 클릭합니다.
• 전체 노드에서 데이터베이스를 생성해야 하므로 모든 노드를 선택하고 Next 버튼을 클릭합니다.
• Global database name과 SID Prefix 입력합니다.
• 컨테이너 데이터베이스(이하 CDB) 생성 여부를 선택할 수 있습니다.
• Multitenant database를 생성하려면 Create as Container database를 체크해야 합니다.
• Container database의 체크를 해제하고 Next 버튼을 클릭합니다.
• 데이터베이스의 저장영역을 선택합니다.
• Use following for the database storabe attributes (기본값)을 선택합니다.
• Database file storage type을 ASM (기본값)을 선택합니다.
• Database files location은 +DATA/{DB_UNIQUE_NAME}을 유지하고 Use Oracle-Managed Files(OMF)을 체크합니다.
• 리두 로그 및 제어 파일을 여러 ASM 디스크 그룹에 저장하려면, Multiplex redo logs and control files 버튼을 클릭합니다.
• ASM 디스크 그룹 +DATA와 +FRA를 입력한 후 OK 버튼을 클릭합니다.
• File location variables 버튼을 클릭하면 Database 소프트웨어가 설치된 경로나 SID 등의 정보를 확인할 수 있습니다.
• 설정이 완료되면 Next 버튼을 클릭합니다.
• Fast Recovery Area 사용을 위해 Specify Fast Recovery Area를 체크합니다.
• Recovery files storage type은 Automatic Storage Management (ASM)를 선택합니다.
• Fast Recovery Area 는 +FRA 디스크 그룹으로 선택합니다.
• Fast Recovery Area를 변경할 경우에는 우측의 Browse 버튼을 클릭하여 디스크 그룹 목록에서 선택합니다.
• 적당한 크기의 Fast Recovery Area Size를 입력합니다.
• 아카이브 모드로 데이터베이스를 초기에 생성하려면 Enable archiving을 체크합니다.
• Edit archive mode parameters 버튼을 클릭하여 데이터 파일과 혼동되지 않도록, 아카이브 로그의 확장자를 dbf에서 arc로 변경합니다.
• Fast Recovery Area에 대한 설정이 완료되었으면 Next 버튼을 클릭합니다.
• 데이터 보안을 위해 Database Vault 및 Label Security 설치를 선택할 수 있습니다.
• 따로 구성할 계획이 없으면 Next 버튼을 클릭합니다.
• 인스턴스 메모리 사이즈와 관리 방법을 선택하는 화면입니다.
• 기본값으로는Use Automatic Shared Memory Management가 선택되어, 물리 메모리의 40% 가량이 SGA와 PGA에 할당되어 있습니다.
• 사용하려는 환경에 맞게 SGA와 PGA를 조정하면 됩니다.
• 다른 탭에서 데이터베이스의 세부적인 환경을 변경할 수 있습니다.
• 데이터 블록의 크기는 탬플리트를 사용할 경우 이미 지정된 크기로 할당되어 변경이 불가능합니다.
• 프로세스의 갯수는 데이터베이스를 생성한 후에도 변경이 가능합니다.
• 데이터베이스 생성 후에 문자 집합을 변경하는 것은 많은 리스크가 따르므로 신중하게 검토하고 선택해야 합니다.
• 디버깅의 목적을 위해서 Default language는 American을 주로 사용합니다.
• 서버의 접속 모드는 데이터베이스 생성 후에도 변경이 가능합니다.
• 기본값인 Dedicated server mode를 유지합니다.
• 샘플 스키마 설치 여부를 선택할 수 있습니다.
• 일반적으로 운영 환경에서는 설치하지 않는 경우가 대부분입니다.
• 특이사항이 없을 경우 Next 버튼을 클릭합니다.
• 데이터베이스 관리 옵션을 지정합니다.
• 모든 옵션을 해제하고 Next 버튼을 클릭합니다.
• 데이터베이스 관리 계정의 비밀번호를 지정 합니다.
• 보안상의 이유로 운영 환경에서는 사용자별로 다른 관리 비밀번호를 지정하는 것을 권장합니다.
• 편의를 위해 Use the same administrative password for all accounts를 선택하고 비밀 번호를 입력한 후 Next 버튼을 클릭합니다.
• 오라클이 요구하는 암호 복잡도를 충족하지 못했을 경우에는 이를 무시하고 데이터베이스 생성을 계속 진행할지를 묻는 메시지가 출력됩니다.
• Yes 버튼을 클릭하여 데이터베이스 생성을 계속합니다.
• 데이터베이스 생성 옵션을 선택합니다.
• All Initialization Parameters 버튼을 클릭하여 데이터베이스 초기 파라미터를 변경할 수 있습니다.
• 리두 그룹 추가나 컨트롤 파일 옵션은 Customize Storage Locations 버튼을 클릭하여 수정합니다.
• Customize Storage 창이 열리면 redo log groups를 추가합니다.
• 왼쪽 하단에 있는 Add 버튼틀 클릭하여 redo log group을 추가합니다.
• File Size와 Thread 를 설정하고 Apply 버튼을 클릭합니다.
• 리두 그룹이 추가된 것을 확인하였으면 OK 버튼을 클릭합니다.
• Create database를 체크합니다.
• 별도의 스크립트 저장을 위해서 Generate database creation scripts를 체크하고 Next버튼을 클릭합니다.
• 본격적인 설치에 앞서 시스템의 필요 조건을 검사하는 단계입니다.
• 이상이 없을 경우 자동으로 다음 단계로 넘어갑니다.
• 데이터베이스 생성에 앞서, 지금까지 선택한 옵션에 대한 요약 정보를 보여주는 단계입니다.
• 요구사항대로 선택이 되었는지 확인하고, 이상이 없으면 Finish 버튼을 클릭합니다.
• 본격적인 데이터베이스 생성에 앞서 먼저 데이터베이스 생성 스크립트가 만들어집니다.
• 스크립트 생성 후 자동으로 데이터베이스 생성이 진행됩니다.
• 메뉴 하단에 있는 로그를 통해 설치 진행 상황을 확인할 수 있습니다.
• 데이터베이스 생성이 완료되면, 데이터베이스 정보와 함께 작업 로그 위치를 표시하는 화면이 나옵니다.
• Password Management 버튼을 클릭하면 생성된 계정의 비밀번호를 변경할 수 있습니다.
• 작업이 완료되면 Close 버튼을 클릭합니다.
• DB가 제대로 설치되었는지 확인합니다.
crsctl stat res -t
[root@rac1 ~]# crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.chad
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.net1.network
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.ons
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 ONLINE OFFLINE STABLE
ora.CRS.dg(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 OFFLINE OFFLINE STABLE
ora.DATA.dg(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 OFFLINE OFFLINE STABLE
ora.FRA.dg(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 OFFLINE OFFLINE STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE rac2 STABLE
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE rac1 STABLE
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE rac1 STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE rac1 Started,STABLE
2 ONLINE ONLINE rac2 Started,STABLE
3 OFFLINE OFFLINE STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE ONLINE rac1 STABLE
2 ONLINE ONLINE rac2 STABLE
3 OFFLINE OFFLINE STABLE
ora.cvu
1 ONLINE ONLINE rac1 STABLE
ora.qosmserver
1 ONLINE ONLINE rac1 STABLE
ora.rac1.vip
1 ONLINE ONLINE rac1 STABLE
ora.rac2.vip
1 ONLINE ONLINE rac2 STABLE
ora.racdb.db
1 ONLINE ONLINE rac1 Open,HOME=/u01/app/o
racle/product/19c/db
_1,STABLE
2 ONLINE ONLINE rac2 Open,HOME=/u01/app/o
racle/product/19c/db
_1,STABLE
ora.scan1.vip
1 ONLINE ONLINE rac2 STABLE
ora.scan2.vip
1 ONLINE ONLINE rac1 STABLE
ora.scan3.vip
1 ONLINE ONLINE rac1 STABLE
--------------------------------------------------------------------------------
• RAC 환경이 제대로 구성되었는지 확인합니다.
sqlplus "/ as sysdba"
select instance_name, status
from gv$instance;
[racdb1:/home/oracle]> sqlplus "/ as sysdba"
SQL> select instance_name, status
2 from gv$instance;
INSTANCE_NAME STATUS
---------------- ------------
racdb1 OPEN
racdb2 OPEN
참고 : https://dataforum.io/display/ORCL/Oracle+Database+19c+Real+Application+Cluster
'ORACLE > 설치' 카테고리의 다른 글
Oracle 19c File system (0) | 2023.10.09 |
---|