I. 개요
1. 사용 Software
제품명 | 버전 | 아키텍쳐 | 배포 사이트 |
---|---|---|---|
VirtualBox | 6.0.x | 호스트 환경에 따름 | https://www.virtualbox.org |
Oracle Enterprise Linux | 7 (Update 5 이상 권장) | x86 64bit | |
Clusterware, Database | 19.3 | x86 64bit | http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html |
Oracle Database 19.3은 http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 에서 받을 수 있습니다.
2. 구성 계획
A) 서버
VM | Host Name | Memory | Net Adapter 1 | Net Adapter 2 | 구성 방법 | 비고 |
---|---|---|---|---|---|---|
RAC1 | rac1 | 10GB | 브리지 어댑터 | 호스트 전용 어댑터 | 리눅스 설치 | dnsmasq를 사용하여 DNS 구성 |
RAC2 | rac2 | 10GB | 브리지 어댑터 | 호스트 전용 어댑터 | RAC1 복제 | dnsmasq를 사용하여 DNS 구성 |
리눅스 기반의 2 node RAC로 구성합니다.
B) 스토리지
파일 이름 | 용량 | 타입 | 용도 | 비고 |
---|---|---|---|---|
rac1.vdi | 100GB | Dynamic / Normal | RAC1 노드 스토리지 | 디스크 사용량을 최소화하기 위해 Dynamic으로 생성합니다. |
rac2.vdi | 100GB | Dynamic / Normal | RAC2 노드 스토리지 | vboxmanage clonemedium을 이용하여 rac1.vdi 파일을 복제합니다. |
CRS1.vdi | 1GB | Fixed / Shareable | OCR / Vote 저장 영역 | 공유(shareable) 디스크로 사용하기 위해서는 Fixed Size로 생성해야 합니다. |
CRS2.vdi | 1GB | Fixed / Shareable | ||
CRS3.vdi | 1GB | Fixed / Shareable | ||
MGMT.vdi | 40GB | Fixed / Shareable | Grid Infrastructure Management Repository | |
DATA.vdi | 30GB | Fixed / Shareable | DATA 영역 | |
FRA.vdi | 20GB | Fixed / Shareable | Fast Recovery Area |
Automatic Storage Management를 이용하여 Data 공간과 Grid Infrastructure Management Repository, Fast Recovery Area를 구성합니다.
테스트를 위한 VM이므로 디스크 공간을 절약하기 위해 파일을 업로드 없이 VirtualBox의 게스트 확장 기능으로 VM에서 불러와 사용합니다.
C) 네트워크
VM | Public IP | Private IP | Virtual IP | Netmask | Gateway | DNS Server | SCAN IP |
---|---|---|---|---|---|---|---|
RAC1 | 10.0.1.101 | 10.0.5.101 | 10.0.1.201 | 255.255.255.0 | 10.0.1.1 | 127.0.0.1 | 10.0.1.191, 10.0.1.192, 10.0.1.193 |
RAC2 | 10.0.1.102 | 10.0.5.102 | 10.0.1.202 | 255.255.255.0 | 10.0.1.1 | 127.0.0.1 |
Netmask의 경우 Public과 Private 모두 24bit(255.255.255.0)을 사용합니다.
인터넷 공유기 또는 Gateway의 IP에 맞춰 Public IP와 Virtual IP를 설정하기 바랍니다.
별도의 DNS 서버 구성 없이 dnsmasq를 사용하여 RAC를 구축할 계획이므로 DNS는 Loopback IP로 지정합니다.
3. 호스트 환경
A) 시스템
12c부터는 64비트의 운영체제만을 지원하므로, 호스트 장비 또한 64비트 운영체제를 사용하여 구축해야 합니다.
메모리는 오라클의 권고에 따라 VM 노드당 8GB 이상이 필요하므로, 가능하면 20GB 이상의 메모리가 장착된 환경에서 작업하는 것을 권합니다.
(구축 테스트를 위해 임시적으로 설치하는 것이라면 경고 메시지를 무시하고 8GB 이하로 구성할 수도 있으나, 운영 환경에서는 권고하지 않습니다.)
B) 스토리지
디스크 I/O에 의한 지연을 최소화하기 위해 호스트의 OS가 설치되지 않은 별도의 내장 디스크를 사용하거나 SSD의 사용을 권합니다.
ESATA 또는 USB 3.0 이상의 빠른 속도를 보장하는 외장 디스크를 사용하는 것도 방법일 수 있습니다만 지속적인 연결이 보장되어야 합니다.
사실상 디스크의 속도에 따라 설치에 소요되는 시간이 크게 좌우되므로, 가급적이면 안정적이고 빠른 스토리지를 사용하기 바랍니다.
II. VM 구성
1. VM 생성
RAC 1번 노드 구성을 위한 VM을 생성합니다.
<새로 만들기> 버튼을 클릭합니다.
OS의 종류는 'Linux'로 하고 설치될 버전은 'Oracle (64-bit)'를 선택합니다.
Oracle Database은 12c R1 버전부터 64bit만을 지원하고 있습니다.
Client 소프트웨어만 32bit 프로그램을 제공합니다.
기본 메모리는 "10240MB"(최소 8GB 이상)로 지정합니다.
새로운 디스크를 생성해야 하므로 '지금 새 가상 하드 디스크 만들기'를 선택하고 <만들기>를 클릭합니다.
가상 하드 디스크 파일의 종류는 'VDI(VirtualBox 디스크 이미지)'를 선택한 후 <다음>을 클릭합니다.
물리적 하드 드라이브 저장 방식은 '동적 할당'으로 하고 <다음>을 클릭합니다.
디스크 파일의 크기는 "100GB"로 한 후 <만들기>를 클릭하면 VM이 생성됩니다.
2. VM 설정 변경
생성된 가상 머신의 설정값을 변경해야 하므로, 가상 머신을 선택하고 <설정>을 클릭합니다.
선택한 OS 종류와 버전이 정확하게 지정되었는지 확인합니다.
부팅 순서에서 "플로피 디스크"를 해제하고, "광 디스크"가 우선권을 갖도록 합니다.
오디오는 사용하지 않을 것이므로 '오디오 사용하기'는 해제합니다.
1번 네트워크 카드를 설치될 환경에 맞게 적절한 장치에 연결합니다.
일반적으로 외부와 통신을 하기 위해서 '브리지 어댑터'를 선택합니다.
RAC 노드간의 통신을 위해 2번 어댑터를 활성화시켜줘야 합니다.
어댑터 2번 항목에 가서 '네트워크 어댑터 사용하기'를 체크합니다.
그리고, RAC 노드 내부에서만 사용할 것이므로 '호스트 전용 어댑터'를 클릭합니다.
사전에 VirtualBox의 호스트 전용 네트워크가 생성되어 있어야 합니다.
VirtualBox 상에서 설치를 효율적으로 진행하기 위해 공유 폴더를 설정합니다.
공유 폴더를 설정할 경우, 호스트 서버에 저장된 설치 파일을 업로드 없이 바로 사용할 수 있습니다.
오른쪽에 폴더 모양의 아이콘을 클릭합니다.
공유할 폴더를 인식시키기 위해 폴더 경로에 '기타'를 선택합니다.
공유할 폴더의 위치를 선택하고 <폴더 선택>를 클릭합니다.
폴더 이름을 "oracle"로 지정하고 '자동 마운트'를 선택한 후 <OK>를 클릭합니다.
설정 변경이 모두 완료되었으므로 <OK>를 클릭합니다.
III. Oracle Linux 7 설치
설치 미디어에 대한 테스트 없이 바로 설치를 진행하려면 'Install Oracle Linux 7.x'를 키보드로 선택하고 "엔터"를 입력합니다.
실습의 편의를 위해 설치 언어는 '한국어'를 선택하고 <계속 진행>을 클릭합니다.
운영 환경에서는 이슈 발생시의 문제 해결이나 디버깅 등을 위해 영어로 설치하는 것을 권합니다.
설치 요약 화면입니다.
이 화면에서 각 항목별로 필요한 옵션을 수정한 후에 설치를 진행할 예정입니다.
먼저 '소프트웨어 선택' 항목을 편집합니다.
서버에서 직접 GUI 모드로 설치하기 위해 '서버 - GUI 사용'을 선택하고, 다음의 두 기능을 추가합니다.
- 호환성 라이브러리
- 개발용 도구
그리고 <완료>를 클릭합니다.
다음으로 '설치 대상'을 수정합니다.
설치할 디스크를 체크하고 '파티션을 설정합니다'를 선택한 후에 <완료> 버튼을 클릭합니다.
수동으로 파티션 설정 화면으로 전환됩니다.
좌측 하단에 '+' 버튼을 클릭하여 마운트 지점을 생성합니다.
각각의 마운트 지점을 아래와 같은 크기로 할당합니다.
영역 | 크기 |
---|---|
/boot | 200MB |
swap | 10GB |
/ | 나머지 공간 할당 |
적용된 내용을 확인한 후에 <완료> 버튼을 클릭합니다.
변경 요약 화면이 나오면 <변경 사항 적용> 버튼을 클릭합니다.
실습을 위한 구축이므로 'KDUMP' 항목에서 'kdump 활성화'를 해제합니다.
운영 환경에서는 문제 해결 등의 이유로 활성화된 상태로 사용할 수 있으며, 운영 정책에 따라 지정해야 합니다.
필요한 옵션을 선택하였으면 <완료>를 클릭합니다.
네트워크와 호스트 이름을 설정해야 합니다.
좌측에서 Public 네트워크와 연결될 이더넷을 선택하고 우측 하단의 <설정> 버튼을 클릭합니다.
참고로 리눅스 7버전부터 이더넷 이름 규칙이 기존의 방식과 달라졌습니다.
BIOS나 firmware를 기준으로 이더넷 이름이 자동적으로 생성됩니다.
RAC를 구성하는데 있어서, 모든 노드의 public 이더넷과 private 이더넷의 이름이 각 그룹내에서 동일해야 경고없이 설치나 패치를 진행할 수 있습니다.
좌측의 이미지는 VirtualBox에서 캡쳐한 이미지이며, 이후 일부 이미지는 VMware vSphere에서 캡쳐하였으므로 MAC 주소나 이더넷 이름이 다를 수도 있습니다.
일반 탭에서 '사용 가능하면 자동으로 이 네트워크에 연결'을 체크합니다.
IPv4 설정 탭으로 이동하여 방식에 '수동'을 선택합니다.
'Add' 버튼을 클릭하고 다음의 정보를 입력합니다.
- 주소 : 192.168.0.111 (1번 노드 Public IP 주소)
- 넷마스크 : 255.255.255.0 (또는 24)
- 게이트웨이 : 192.168.0.1 (Public 망의 게이트웨이)
실습을 위한 환경이므로 DNS는 "127.0.0.1"을 입력하였으나, 운영 환경에서는 적절한 DNS 주소 입력이 필요합니다.
IPv6는 사용하지 않을 것이므로 방식에 '무시'를 선택하고, <저장>을 클릭합니다.
이번에는 Public 네트워크와 연결될 이더넷을 선택하고 우측 하단의 <설정> 버튼을 클릭합니다
일반 탭에서 '사용 가능하면 자동으로 이 네트워크에 연결'을 체크합니다.
IPv4 설정 탭으로 이동하여 방식에 '수동'을 선택합니다.
'Add' 버튼을 클릭하고 다음의 정보를 입력합니다.
- 주소 : 192.168.5.111 (1번 노드 Private IP 주소)
- 넷마스크 : 255.255.255.0 (또는 24)
노드 간의 연결에만 사용될 것이므로 게이트웨이나 DNS를 입력하지는 않습니다.
실습에서는 Private 연결에 별도의 장치를 구성하지는 않았지만, 운영 환경에서는 노드 간의 통신은 L2 이상의 장비를 통해 연결되어야 합니다. (오라클 권고)
마찬가지로 IPv6는 사용하지 않을 것이므로 방식에 '무시'를 선택하고, <저장>을 클릭합니다.
좌측 하단에 서버에 사용될 호스트명을 입력하고 <적용>을 클릭합니다.
실습 환경에서는 1번 노드는 "rac1"을 사용할 것입니다.
네트워크 구성이 완료되었으므로 <완료> 버튼을 클릭합니다.
실습에서는 'SECURITY POLICY'의 모든 내용을 끄고 진행하겠습니다.
'Apply security policy'를 끄고 <완료>를 클릭합니다.
설치를 위한 사전 준비가 모두 완료되었으므로 <설치 시작>을 클릭합니다.
설치가 진행되는 중간에 root 계정의 암호와 추가 사용자를 생성할 수 있습니다.
먼저 'ROOT 암호'를 선택합니다.
적당한 암호를 입력하고 <완료> 버튼을 클릭합니다.
취약한 암호를 입력한 경우에는 <완료> 버튼을 2번 클릭해야 합니다.
'사용자 생성'에서는 root와는 별개의 관리자 권한을 생성하겠습니다.
이 단계를 건너 뛰어도 설치 진행이나 원격 접속에는 영향이 없습니다.
하지만, 리눅스 7버전부터 GUI 모드에서 root 계정으로 접속하는 것이 기본적으로 제한되므로, 가능하면 별도의 관리자 계정을 생성하는 것을 권합니다.
추가할 관리자 계정의 정보를 입력하고 <완료> 버튼을 클릭합니다.
설치가 완료되면 <재부팅> 버튼을 클릭합니다.
재부팅 화면에서 'LICENSE INFORMATION'을 클릭하여 라이센스 동의를 진행합니다.
'약관에 동의합니다'를 체크하고 <완료>를 클릭합니다.
모든 구성이 완료되었으므로 본격적인 사용을 위해 <설정 완료>를 클릭합니다.
IV. 리눅스 환경 설정
1. VirtualBox Addition 설치
VirtualBox를 사용할 경우에는 실습의 편의를 위해 VBOXADDITIONS (이하 Guest Addition)를 설치하는 것이 좋습니다.
리눅스 설치 시 생성한 관리자 유저로 접속하기 위해 화면에 보이는 유저명을 마우스로 클릭합니다.
실제 운영 환경에서는 설치할 필요가 없습니다.
해당 유저의 암호를 입력하고 <로그인>을 클릭합니다.
호스트 머신의 VirtualBox 메뉴에서 '장치' > '게스트 확장 CD 이미지 삽입'을 클릭하여, Guest Addition CD를 mount 시켜줍니다.
설치 미디어가 인식되면 자동 시작 프로그램에 대한 안내 창이 뜹니다.
설치를 진행하기 위해 <실행>을 클릭합니다.
설치를 진행하기 위해 계정의 암호를 입력하고 <인증>을 클릭합니다.
자동 설치 스크립트가 실행되며, VM에 Guest Addition이 설치됩니다.
설치가 완료되면 "엔터"를 입력하여 실행 창을 닫아줍니다.
2. 리눅스 환경 구성
cd <리눅스 설치 디스크 경로>/Packages rpm -ivh ksh-20120801-26.el7.x86_64.rpm rpm -ivh libaio-devel-0.3.109-13.el7.x86_64.rpm
[root@rac1 ~]# cd /run/media/admin/OL-7.3\ Server.x86_64/Packages [root@rac1 Packages]# rpm -ivh ksh-20120801-26.el7.x86_64.rpm 경고: ksh-20120801-26.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY 준비 중... ################################# [100%] Updating / installing... 1:ksh-20120801-26.el7 ################################# [100%] [root@rac1 Packages]# rpm -ivh libaio-devel-0.3.109-13.el7.x86_64.rpm 경고: libaio-devel-0.3.109-13.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY 준비 중... ################################# [100%] Updating / installing... 1:libaio-devel-0.3.109-13.el7 ################################# [100%]
리눅스 설치시에 기본적으로 설치된 패키지 외에 추가로 2개의 패키지를 설치해야 합니다.
설치 CD를 mount한 후에 Package 디렉토리로 이동하여 패키지를 설치합니다.
rpm -q binutils rpm -q compat-libcap1 rpm -q compat-libstdc++-33 rpm -q glibc rpm -q glibc-devel 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 make rpm -q net-tools rpm -q nfs-utils rpm -q smartmontools rpm -q sysstat
[root@rac1 oracle]# rpm -q binutils
rpm -q sysstatbinutils-2.25.1-22.base.el7.x86_64
[root@rac1 oracle]# rpm -q compat-libcap1
compat-libcap1-1.10-7.el7.x86_64
[root@rac1 oracle]# rpm -q compat-libstdc++-33
compat-libstdc++-33-3.2.3-72.el7.x86_64
[root@rac1 oracle]# rpm -q glibc
glibc-2.17-157.el7.x86_64
[root@rac1 oracle]# rpm -q glibc-devel
glibc-devel-2.17-157.el7.x86_64
[root@rac1 oracle]# rpm -q ksh
ksh-20120801-26.el7.x86_64
[root@rac1 oracle]# rpm -q libaio
libaio-0.3.109-13.el7.x86_64
[root@rac1 oracle]# rpm -q libaio-devel
libaio-devel-0.3.109-13.el7.x86_64
[root@rac1 oracle]# rpm -q libgcc
libgcc-4.8.5-11.el7.x86_64
[root@rac1 oracle]# rpm -q libstdc++
libstdc++-4.8.5-11.el7.x86_64
[root@rac1 oracle]# rpm -q libstdc++-devel
libstdc++-devel-4.8.5-11.el7.x86_64
[root@rac1 oracle]# rpm -q libX11
libX11-1.6.3-3.el7.x86_64
[root@rac1 oracle]# rpm -q libXau
libXau-1.0.8-2.1.el7.x86_64
[root@rac1 oracle]# rpm -q libxcb
libxcb-1.11-4.el7.x86_64
[root@rac1 oracle]# rpm -q libXi
libXi-1.7.4-2.el7.x86_64
[root@rac1 oracle]# rpm -q libXtst
libXtst-1.2.2-2.1.el7.x86_64
[root@rac1 oracle]# rpm -q make
make-3.82-23.el7.x86_64
[root@rac1 oracle]# rpm -q net-tools
net-tools-2.0-0.17.20131004git.el7.x86_64
[root@rac1 oracle]# rpm -q nfs-utils
nfs-utils-1.3.0-0.33.0.1.el7.x86_64
[root@rac1 oracle]# rpm -q smartmontools
smartmontools-6.2-7.el7.x86_64
[root@rac1 oracle]# rpm -q sysstat
sysstat-10.1.5-11.el7.x86_64
오라클 설치에 필요한 리눅스 패키지들이 모두 설치되어 있는지 검증합니다.
누락된 패키지가 있다면 반드시 설치해야 합니다.
패키지 파일은 yum을 이용하여 직접 설치하거나 Oracle Linux Repository에서 다운로드 할 수 있습니다.
https://public-yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/index.html
rpm -ivh oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
[root@rac1 ~]# rpm -ivh oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm 경고: oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY 준비 중... ################################# [100%] Updating / installing... 1:oracle-database-preinstall-18c-1.################################# [100%]
추가로 Oracle Database 설치를 위한 preinstall 패키지를 설치합니다.
패키지 파일은 위에서 안내한 Oracle Linux Repository에서 다운로드 가능합니다.
### Public 192.168.0.111 rac1 192.168.0.112 rac2 ### Private 192.168.5.111 rac1-priv 192.168.5.112 rac2-priv ### Virtual 192.168.0.121 rac1-vip 192.168.0.122 rac2-vip ### DNS 192.168.0.181 rac-scan 192.168.0.182 rac-scan 192.168.0.183 rac-scan
[root@rac1 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 ### Public 192.168.0.111 rac1 192.168.0.112 rac2 ### Private 192.168.5.111 rac1-priv 192.168.5.112 rac2-priv ### Virtual 192.168.0.121 rac1-vip 192.168.0.122 rac2-vip ### DNS 192.168.0.181 rac-scan 192.168.0.182 rac-scan 192.168.0.183 rac-scan
/etc/hosts 파일에 설치할 모든 서버의 IP와 호스트명을 추가합니다.
오라클 소프트웨어 설치를 정상적으로 진행하기 위해 로컬 노드와 원격 노드에 대한 정보를 정확히 입력해야 합니다.
SCAN IP는 1개만 할당해도 설치에 지장은 없습니다. 다만, 18c부터는 3개를 할당하지 않을 경우, 필요 조건 검사 과정에서 검증 실패 메시지가 출력됩니다.
SELINUX=permissive
setenforce 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=permissive #SELINUX=enforcing # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
[root@rac1 ~]# setenforce permissive
Selinux 모드를 permissive로 변경합니다.
### 방화벽 중지 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 ### DNS 중지 systemctl stop avahi-daemon.socket systemctl stop avahi-daemon systemctl disable avahi-daemon ### 가상 시스템 관리 중지 virsh net-destroy default virsh net-undefine default systemctl stop libvirtd systemctl disable libvirtd
[root@rac1 ~]# systemctl stop firewalld [root@rac1 ~]# systemctl disable firewalld Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. Removed symlink /etc/systemd/system/basic.target.wants/firewalld.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 Removed symlink /etc/systemd/system/multi-user.target.wants/chronyd.service. [root@rac1 ~]# mv /etc/chrony.conf /etc/chrony.conf.bak [root@rac1 ~]# systemctl stop ntpdate [root@rac1 ~]# systemctl disable ntpdate [root@rac1 ~]# systemctl stop avahi-daemon.soket [root@rac1 ~]# systemctl stop avahi-daemon Warning: Stopping avahi-daemon.service, but it can still be activated by: avahi-daemon.socket [root@rac1 ~]# 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. [root@rac1 ~]# virsh net-destroy default default 네트워크 강제 종료 [root@rac1 ~]# virsh net-undefine default default 네트워크가 정의되지 않음 [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.
테스트 환경에서 불필요한 서비스를 정리합니다.
실습 환경에서는 CTSS를 활성화 모드로 운영할 것이므로 NTP나 chrony 등의 시간 동기화 서비스를 중지할 것입니다.
그러나 실제 운영환경에서는 구성 환경을 고려하여 사용 여부를 결정해야하며, 가급적 NTP를 설정(-x 포함)하여 사용하는 것이 좋습니다.
cat /etc/resolv.conf systemctl start dnsmasq systemctl enable dnsmasq nslookup rac-scan
[root@rac1 ~]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 127.0.0.1 [root@rac1 ~]# systemctl start dnsmasq [root@rac1 ~]# systemctl enable dnsmasq Created symlink from /etc/systemd/system/multi-user.target.wants/dnsmasq.service to /usr/lib/systemd/system/dnsmasq.service. [root@rac1 ~]# nslookup rac-scan Server: 127.0.0.1 Address: 127.0.0.1#53 Name: rac-scan Address: 192.168.0.181 Name: rac-scan Address: 192.168.0.182 Name: rac-scan Address: 192.168.0.183
별도의 DNS 서비스 없이 SCAN을 DNS에 등록된 것처럼 처리하기 위해 DNSMASQ 프로세스를 활성화합니다.
resolv.conf 파일에는 "nameserver 127.0.0.1"가 입력되어 있어야 합니다.
### 그룹 등록 (필요에 따라 생략 가능) groupadd oper groupadd backupdba groupadd dgdba groupadd kmdba groupadd racdba groupadd asmadmin groupadd asmdba groupadd asmoper #groupadd vboxsf ### 유저 그룹 설정 변경 useradd -g oinstall -G dba,racdba,asmadmin,asmdba,asmoper,vboxsf grid #useradd -g oinstall -G dba,racdba,asmadmin,asmdba,asmoper grid usermod -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba,asmadmin,asmdba,vboxsf oracle #usermod -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba,asmadmin,asmdba oracle ### 유저 암호 변경 passwd grid passwd oracle
[root@rac1 ~]# groupadd oper [root@rac1 ~]# groupadd backupdba [root@rac1 ~]# groupadd dgdba [root@rac1 ~]# groupadd kmdba [root@rac1 ~]# groupadd racdba [root@rac1 ~]# groupadd asmadmin [root@rac1 ~]# groupadd asmdba [root@rac1 ~]# groupadd asmoper [root@rac1 ~]# useradd -g oinstall -G dba,racdba,asmadmin,asmdba,asmoper,vboxsf grid [root@rac1 ~]# usermod -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba,asmadmin,asmdba,asmoper,vboxsf oracle [root@rac1 ~]# passwd grid grid 사용자의 비밀 번호 변경 중 새 암호: 잘못된 암호: 암호는 8 개의 문자 보다 짧습니다 새 암호 재입력: passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다. [root@rac1 ~]# passwd oracle oracle 사용자의 비밀 번호 변경 중 새 암호: 잘못된 암호: 암호는 8 개의 문자 보다 짧습니다 새 암호 재입력: passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
소프트웨어를 설치할 사용자 계정과 그룹을 생성 또는 추가합니다.
preinstall 패키지가 설치되었다면 oracle 유저와 oinstall, dba 그룹은 이미 생성되어 있습니다.
grid 유저로 Grid Infrastructure(이하 GI)를 설치할 것이므로 grid 유저를 별도로 생성합니다. (oracle 유저로 모두 설치시에는 생략합니다.)
vboxsf 그룹은 VirtualBox의 Guest Addition을 사용하기 위한 그룹으로, 실제 운영 환경에서 Guest Addition을 사용하지 않는다면 추가하지 않습니다.
passwd 명령어로 각 계정의 암호를 지정해주면 됩니다.
mkdir -p /u01/app/18.3.0/grid mkdir -p /u01/app/oracle/product/18.3.0/db_1 chown -R grid:oinstall /u01 chown -R oracle:oinstall /u01/app/oracle/product chmod -R 775 /u01
[root@rac1 ~]# mkdir -p /u01/app/18.3.0/grid [root@rac1 ~]# mkdir -p /u01/app/oracle/product/18.3.0/db_1 [root@rac1 ~]# chown -R grid:oinstall /u01 [root@rac1 ~]# chown -R oracle:oinstall /u01/app/oracle/product [root@rac1 ~]# chmod -R 775 /u01
오라클 소프트웨어 설치를 위한 경로를 생성하고, 해당 경로에 대한 권한과 소유권을 수정합니다.
grid hard nofile 65536 grid soft stack 10240
/etc/security/limits.d/oracle-database-preinstall-18c.conf 내용
[root@rac1 limits.d]# cat oracle-database-preinstall-18c.conf # oracle-database-preinstall-18c setting for nofile soft limit is 1024 oracle soft nofile 1024 # oracle-database-preinstall-18c setting for nofile hard limit is 65536 oracle hard nofile 65536 # oracle-database-preinstall-18c setting for nproc soft limit is 16384 # refer orabug15971421 for more info. oracle soft nproc 16384 # oracle-database-preinstall-18c setting for nproc hard limit is 16384 oracle hard nproc 16384 # oracle-database-preinstall-18c setting for stack soft limit is 10240KB oracle soft stack 10240 # oracle-database-preinstall-18c setting for stack hard limit is 32768KB oracle hard stack 32768 # oracle-database-preinstall-18c setting for memlock hard limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90 % of RAM oracle hard memlock 134217728 # oracle-database-preinstall-18c setting for memlock soft limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90% of RAM oracle soft memlock 134217728
grid 유저로 GI를 설치하기 위해 grid 유저에 대한 리소스 설정값을 입력합니다.
oracle 유저는 preinstall 패키지를 설치하면 /etc/security/limits.d/oracle-database-preinstall-18c.conf 파일이 자동으로 생성됩니다.
export TMP=/tmp export TMPDIR=$TMP export EDITOR=vi export ORACLE_HOSTNAME=rac1 # 호스트명에 맞게 변경 export ORACLE_BASE=/u01/app/oracle export GRID_HOME=/u01/app/18.3.0/grid export DB_HOME=$ORACLE_BASE/product/18.3.0/db_1 export ORACLE_HOME=$GRID_HOME export ORACLE_SID=+ASM1 # 2번 노드 +ASM2 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]> '
grid 계정으로 접속한 후에 .bash_profile을 수정합니다.
root계정에서 grid 유저로 접속하려면 아래와 같이 su 명령을 입력하면 됩니다
su - grid
수정이 완료되고 root 유저로 돌아오려면 exit 명령을 grid 유저에서 실행하면 됩니다.
exit
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/18.3.0/grid export DB_HOME=$ORACLE_BASE/product/18.3.0/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]> '
마찬가지로 oracle 계정으로 접속하여 .bash_profile을 수정합니다.
oracle 유저로 변경하려면 아래와 같이 su 명령을 입력하면 됩니다
su - oracle
V. 공유 환경 및 2번 노드 구성
VirtualBox의 디스크 공유 방식을 사용하는 방식입니다.
vboxmanage createmedium --filename CRS1.vdi --size 1024 --format VDI --variant Fixed vboxmanage createmedium --filename CRS2.vdi --size 1024 --format VDI --variant Fixed vboxmanage createmedium --filename CRS3.vdi --size 1024 --format VDI --variant Fixed vboxmanage createmedium --filename GIMR1.vdi --size 40960 --format VDI --variant Fixed vboxmanage createmedium --filename GIMR2.vdi --size 40960 --format VDI --variant Fixed vboxmanage createmedium --filename GIMR3.vdi --size 40960 --format VDI --variant Fixed vboxmanage createmedium --filename DATA1.vdi --size 51200 --format VDI --variant Fixed vboxmanage createmedium --filename DATA2.vdi --size 51200 --format VDI --variant Fixed vboxmanage createmedium --filename FRA1.vdi --size 51200 --format VDI --variant Fixed
Host 컴퓨터에서 VM에 연결시킬 CRS, GIMR, DATA와 FRA 디스크를 생성합니다.
디스크는 2개 이상의 노드에서 공유할 것이므로 반드시 Fixed 모드로 디스크 공간을 할당하여 생성해야 합니다
vboxmanage modifymedium CRS1.vdi --type shareable vboxmanage modifymedium CRS2.vdi --type shareable vboxmanage modifymedium CRS3.vdi --type shareable vboxmanage modifymedium GIMR1.vdi --type shareable vboxmanage modifymedium GIMR2.vdi --type shareable vboxmanage modifymedium GIMR3.vdi --type shareable vboxmanage modifymedium DATA1.vdi --type shareable vboxmanage modifymedium DATA2.vdi --type shareable vboxmanage modifymedium FRA1.vdi --type shareable
생성된 디스크들은 모두 shareable 디스크로 속성 변경이 필요합니다.
VirtualBox의 GUI 툴을 사용하여 생성해도 됩니다.
정지된 1번 노드의 설정 모드로 들어가서 디스크 파일을 추가합니다.
SATA 콘트롤러의 오른쪽에 하드디스크 모양의 아이콘을 클릭합니다.
vboxmanage 명령으로 이미 생성된 디스크 파일을 추가할 것이므로 <기존 디스크 선택하기>를 클릭합니다.
디스크 파일이 생성된 경로로 이동하여, 해당 파일을 선택하고 <열기>를 클릭합니다.
정상적으로 스토리지가 추가된 것을 확인할 수 있습니다.
다른 공유 디스크들도 같은 방법으로 추가해줍니다.
나머지 디스크 파일 모두 순서에 맞게 SATA 컨트롤러에 등록시켜줍니다.
반드시 동일한 순서대로 다른 노드에도 등록시켜야 합니다.
실제 운영환경에서는 스토리지 복제가 아닌 개별 설치로 노드를 생성할 수 있습니다. 클러스터로 추가될 노드의 환경(그룹, 사용자, 네트워크 설정, OS 파라미터 등)이 일치하도록 주의가 필요합니다.
vboxmanage clonemedium RAC1.vdi ..\RAC2.vdi
1번 노드를 먼저 정지하고, 1번 노드에 대한 복제본을 생성합니다.
1번 노드의 UUID값과 다른 디스크가 생성되도록 반드시 VirtualBox에서 제공하는 방식으로 복제합니다.
2번 노드를 생성하기 위해 VirtualBox에서 <새로 만들기>를 클릭합니다.
1번 노드와 동일하게 OS의 종류는 'Linux'로 하고 설치될 버전은 'Oracle (64-bit)'를 선택합니다.
기본 메모리는 "10240MB"(최소 8GB 이상)로 지정합니다.
복제한 디스크 파일을 사용할 것이므로 '기존 가상 하드 디스크 파일 사용'을 선택하고, 폴더 모양의 아이콘을 클릭합니다.
복제된 디스크 파일(vdi 파일)이 있는 폴더로 이동하여 해당 파일을선택한 후 <열기>를 클릭합니다.
복제된 디스크 파일을 선택하였으면 <만들기>를 클릭합니다.
2번 노드에 대한 설정을 변경해야 하므로, 2번 노드를 선택하고 <설정>을 클릭합니다.
부팅 순서에서 플로피 디스크를 해제하고, '광 디스크'가 우선으로 부팅되도록 합니다
1번 노드와 동일한 순서로 디스크를 추가시켜줍니다.
반드시 같은 순서대로 SATA 컨트롤러에 연결시켜야 합니다.
오디오는 사용하지 않을 것이므로 '오디오 사용하기'를 해제합니다.
1번 네트워크 카드를 1번 노드와 동일한 설정으로 구성합니다.
RAC 노드간의 통신을 위해 2번 어댑터를 활성화시킵니다.
어댑터 2번 항목에 가서 '네트워크 어댑터 사용하기'를 체크하고, 1번 노드와 동일하게 '호스트 전용 어댑터'로 구성합니다.
gnome-control-center
2번 노드의 네트워크 설정을 변경합니다.
GUI 모드에서 변경하는 방식을 먼저 소개하겠습니다.
전체 설정에서 '네트워크'를 클릭합니다.
Private 망에 연결될 네트워크 카드의 IPv4 설정을 2번 노드에 맞는 정보로 수정합니다.
- 주소 : 192.168.5.112 (2번 노드 Private IP 주소)
- 넷마스크 : 255.255.255.0 (또는 24)
노드 간의 연결에만 사용될 것이므로 게이트웨이나 DNS를 입력하지는 않습니다.
IPv6는 사용하지 않을 것이므로 '끔'으로 설정하고 <적용>을 클릭합니다.
Private 네트워크 카드의 설정 정보가 변경된 것을 확인할 수 있습니다.
이더넷 이름은 구성하는 VM 환경에 따라 자동적으로 설정됩니다.
마찬가지로 public 망에 연결될 네트워크 카드의 IPv4 설정도 2번 노드에 맞는 정보로 수정합니다.
- 주소 : 192.168.0.112 (2번 노드 Public IP 주소)
- 넷마스크 : 255.255.255.0 (또는 24)
- 게이트웨이 : 192.168.0.1 (Public 망의 게이트웨이)
실습을 위한 환경이므로 DNS는 "127.0.0.1"을 입력합니다.
마찬가지로 public 이더넷의 IPv6도 사용하지 않을 것이므로 '끔'으로 설정하고 <적용>을 클릭합니다.
Private 네트워크 카드의 설정 정보가 변경된 것을 확인할 수 있습니다.
이더넷 이름은 구성하는 VM 환경에 따라 자동적으로 설정됩니다.
ip addr show vi /etc/sysconfig/network-scripts/ifcfg-<public 인터페이스명> # IPADDR=XXX.XXX.XXX.XXX 부분 변경 vi /etc/sysconfig/network-scripts/ifcfg-<private 인터페이스명> # IPADDR=XXX.XXX.XXX.XXX 부분 변경 systemctl restart network ip addr show
리눅스 7부터는 이더넷 이름이 자동으로 부여되며, 관련된 내용은 아래 링크를 참고하기 바랍니다.
[root@rac1 ~]# ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:a5:dc:d9 brd ff:ff:ff:ff:ff:ff inet 192.168.0.111/24 brd 192.168.0.255 scope global enp0s3 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fea5:dcd9/64 scope link valid_lft forever preferred_lft forever 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:9c:ef:eb brd ff:ff:ff:ff:ff:ff inet 192.168.5.111/24 brd 192.168.5.255 scope global enp0s8 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe9c:efeb/64 scope link valid_lft forever preferred_lft forever
[root@rac1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 ... IPADDR=192.168.0.112 ... [root@rac1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s8 ... IPADDR=192.168.5.112 ...
[root@rac1 ~]# ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:a5:dc:d9 brd ff:ff:ff:ff:ff:ff inet 192.168.0.112/24 brd 192.168.0.255 scope global enp0s3 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fea5:dcd9/64 scope link valid_lft forever preferred_lft forever 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:9c:ef:eb brd ff:ff:ff:ff:ff:ff inet 192.168.5.112/24 brd 192.168.5.255 scope global enp0s8 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe9c:efeb/64 scope link valid_lft forever preferred_lft forever
위의 GUI 방식보다 간단하게 CLI 모드에서는 vi 편집기를 사용하여 IP를 수정할 수 있습니다.
다만 public과 private 이더넷을 혼동하여 잘못 설정할 수 있으므로 주의가 필요합니다.
hostnamectl status hostnamectl set-hostname rac2 hostnamectl status
[root@rac1 ~]# hostnamectl status Static hostname: rac1 Icon name: computer-vm Chassis: vm Machine ID: 6e0c8926c41e4a20a84865657d99c26a Boot ID: 7850cbb5f1d448c5979582672ff7490a Virtualization: kvm Operating System: Oracle Linux Server 7.3 CPE OS Name: cpe:/o:oracle:linux:7:3:server Kernel: Linux 4.1.12-61.1.18.el7uek.x86_64 Architecture: x86-64 [root@rac1 ~]# hostnamectl set-hostname rac2 [root@rac1 ~]# hostnamectl status Static hostname: rac2 Icon name: computer-vm Chassis: vm Machine ID: 6e0c8926c41e4a20a84865657d99c26a Boot ID: 7850cbb5f1d448c5979582672ff7490a Virtualization: kvm Operating System: Oracle Linux Server 7.3 CPE OS Name: cpe:/o:oracle:linux:7:3:server Kernel: Linux 4.1.12-61.1.18.el7uek.x86_64 Architecture: x86-64
호스트 명은 CLI 모드에서 간단한 명령어로 변경할 수 있습니다.
systemctl set-default multi-user.target
[root@rac2 ~]# systemctl set-default multi-user.target Removed symlink /etc/systemd/system/default.target. Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
리소스를 절약하기 위해 2번 노드는 텍스트 모드로 실행되도록 수정합니다.
VI. Grid Infrastructure 설치
1. 설치 파일 압축 해제
mkdir -p $GRID_HOME cd <LINUX.X64_180000_grid_home.zip 파일이 있는 경로> unzip LINUX.X64_180000_grid_home.zip -d $GRID_HOME
실행 예제는 첨부 파일 참조 : unzip_grid.txt
$GRID_HOME 디렉토리를 생성하고, 해당 경로에 grid 설치 파일의 압축을 해제합니다.
2. ASM Filter Driver 설정 (Only Linux)
### 경로 설정 export ORACLE_HOME=/u01/app/18.3.0/grid export ORACLE_BASE=/tmp ### 디스크 라벨 등록 $ORACLE_HOME/bin/asmcmd afd_label CRS1 /dev/sdb --init $ORACLE_HOME/bin/asmcmd afd_label CRS2 /dev/sdc --init $ORACLE_HOME/bin/asmcmd afd_label CRS3 /dev/sdd --init $ORACLE_HOME/bin/asmcmd afd_label GIMR1 /dev/sde --init $ORACLE_HOME/bin/asmcmd afd_label GIMR2 /dev/sdf --init $ORACLE_HOME/bin/asmcmd afd_label GIMR3 /dev/sdg --init $ORACLE_HOME/bin/asmcmd afd_label DATA1 /dev/sdh --init $ORACLE_HOME/bin/asmcmd afd_label DATA2 /dev/sdi --init $ORACLE_HOME/bin/asmcmd afd_label FRA1 /dev/sdj --init ### 등록 결과 확인 $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sdb $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sdc $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sdd $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sde $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sdf $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sdg $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sdh $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sdi $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sdj
[root@rac1 ~]# export ORACLE_HOME=/u01/app/18.3.0/grid [root@rac1 ~]# export ORACLE_BASE=/tmp [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_label CRS1 /dev/sdb --init [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_label CRS2 /dev/sdc --init [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_label CRS3 /dev/sdd --init [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_label GIMR1 /dev/sde --init [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_label GIMR2 /dev/sdf --init [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_label GIMR3 /dev/sdg --init [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_label DATA1 /dev/sdh --init [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_label DATA2 /dev/sdi --init [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_label FRA1 /dev/sdj --init [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sdb -------------------------------------------------------------------------------- Label Duplicate Path ================================================================================ CRS1 /dev/sdb [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sdc -------------------------------------------------------------------------------- Label Duplicate Path ================================================================================ CRS2 /dev/sdc [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sdd -------------------------------------------------------------------------------- Label Duplicate Path ================================================================================ CRS3 /dev/sdd [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sde -------------------------------------------------------------------------------- Label Duplicate Path ================================================================================ GIMR1 /dev/sde [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sdf -------------------------------------------------------------------------------- Label Duplicate Path ================================================================================ GIMR2 /dev/sdf [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sdg -------------------------------------------------------------------------------- Label Duplicate Path ================================================================================ GIMR3 /dev/sdg [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sdh -------------------------------------------------------------------------------- Label Duplicate Path ================================================================================ DATA1 /dev/sdh [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sdi -------------------------------------------------------------------------------- Label Duplicate Path ================================================================================ DATA2 /dev/sdi [root@rac1 ~]# $ORACLE_HOME/bin/asmcmd afd_lslbl /dev/sdj -------------------------------------------------------------------------------- Label Duplicate Path ================================================================================ FRA1 /dev/sdj
ASM에서 사용될 디스크에 대하여 ASM Filter Driver 구성을 위한 라벨 등록을 합니다.
현재 Oracle Linux 또는 Red Hat Enterprise Linux에서만 가능하며, 다른 Linux에서는 기존의 ASMLiB 방식으로 설치를 진행해야 합니다.
참고로 같은 Red Hat 계열의 Linux인 CentOS는 오라클에서 기술지원을 하지 않습니다. (테스트 목적의 설치는 가능)
3. cvuqdisk 패키지 설치
### cvuqdisk 패키지 설치 (1번 노드) cd $ORACLE_HOME/cv/rpm rpm -ivh cvuqdisk-1.0.10-1.rpm ### 2번 노드로 rpm 파일 전송 후 접속 scp cvuqdisk-1.0.10-1.rpm rac2:/tmp ssh root@rac2 ### cvuqdisk 패키지 설치 (2번 노드) cd /tmp rpm -ivh cvuqdisk-1.0.10-1.rpm exit
[root@rac1 ~]# cd $ORACLE_HOME/cv/rpm [root@rac1 rpm]# ls cvuqdisk-1.0.10-1.rpm [root@rac1 rpm]# rpm -ivh cvuqdisk-1.0.10-1.rpm 준비 중... ################################# [100%] Using default group oinstall to install package Updating / installing... 1:cvuqdisk-1.0.10-1 ################################# [100%] [root@rac1 rpm]# scp cvuqdisk-1.0.10-1.rpm rac2:/tmp The authenticity of host 'rac2 (10.0.3.102)' can't be established. ECDSA key fingerprint is SHA256:ThRI2nSR1DlNRwHBWrZV/tBJ9H+6y2SVwTIeiAQM98o. ECDSA key fingerprint is MD5:67:1f:a3:0a:cf:4f:76:58:49:b8:77:5b:03:4e:07:ed. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'rac2,10.0.3.102' (ECDSA) to the list of known hosts. root@rac2's password: <2번 노드 root 암호 입력> cvuqdisk-1.0.10-1.rpm 100% 8860 9.3MB/s 00:00 [root@rac1 rpm]# ssh root@rac2 root@rac2's password: <2번 노드 root 암호 입력> Last login: Fri Jul 27 21:48:20 2018 from gateway [root@rac2 ~]# cd /tmp [root@rac2 tmp]# rpm -ivh cvuqdisk-1.0.10-1.rpm 준비 중... ################################# [100%] Using default group oinstall to install package Updating / installing... 1:cvuqdisk-1.0.10-1 ################################# [100%] [root@rac2 tmp]# exit logout Connection to rac2 closed.
cvuqdisk 패키지를 모든 노드에 설치합니다.
이 단계에서 설치하지 않더라도, 중간에 runcluvfy.sh로 필요 조건을 조사하거나 자동으로 필요 조건을 확인하는 과정에서 runfixup.sh을 실행하는 중에 필요 변경 사항과 함께 자동으로 설치가 됩니다.
4. grid 설치 스크립트 실행
cd $GRID_HOME ./gridSetup.sh
[+ASM1:/home/grid]> cd $GRID_HOME [+ASM1:/u01/app/18.3.0/grid]> ./gridSetup.sh
GRID_HOME 디렉토리로 이동하여 gridSetup.sh을 실행합니다.
새로운 RAC 서비스를 구성하기 위해 '새 클러스터에 대한 Oracle Grid Infrastructure 구성'을 선택한 후 <다음>을 클릭합니다.
독립 클러스터를 구성할 것이므로 'Oracle 독립형 클러스터 구성'을 선택하고 <다음>을 클릭합니다.
클러스터 이름, SCAN 이름과 SCAN 포트 번호를 입력한 후에 <다음>을 클릭합니다.
SCAN 이름은 /etc/hosts에 정의한 이름, 그리고 nslookup에서 테스트한 이름과 동일하게 지정해야 합니다.
기본적으로 구성 스크립트를 실행한 노드의 정보가 클러스터 노드 목록에 표시됩니다.
다른 노드를 추가하기 위해 <추가> 버튼을 클릭합니다.
하나의 노드만 추가할 것이므로 '단일 노드 추가'를 선택한 상태에서 추가하려는 노드의 공용 호스트 이름과 가상 호스트 이름을 입력하고 <확인>을 클릭합니다.
마찬가지로 /etc/hosts 파일에 등록된 이름과 동일하게 오타없이 2번 노드의 정보를 입력해야 합니다.
클러스터 노드 간의 비밀번호 없는 SSH 환경 구성을 위해 <SSH 접속> 버튼을 클릭합니다.
grid 유저의 OS 비밀번호를 입력하고 <설정> 버튼을 클릭하면 노드간의 비빌번호 없는 SSH 접속 설정이 완료됩니다.
5. 클러스터 환경 검증 스크립트 실행
cd $GRID_HOME ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose
[+ASM1:/home/grid]> cd $GRID_HOME [+ASM1:/u01/app/18.3.0/grid]> ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose ERROR: PRVG-10467 : 기본 Oracle 인벤토리 그룹을 확인할 수 없습니다. 물리적 메모리 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 8.0414GB (8432000.0KB) 8GB (8388608.0KB) 성공 rac1 8.0414GB (8432000.0KB) 8GB (8388608.0KB) 성공 물리적 메모리 확인 중...성공 사용 가능한 물리적 메모리 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 7.8886GB (8271756.0KB) 50MB (51200.0KB) 성공 rac1 6.957GB (7294936.0KB) 50MB (51200.0KB) 성공 사용 가능한 물리적 메모리 확인 중...성공 교체 크기 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 10GB (1.0485756E7KB) 8.0414GB (8432000.0KB) 성공 rac1 10GB (1.0485756E7KB) 8.0414GB (8432000.0KB) 성공 교체 크기 확인 중...성공 사용 가능한 공간: rac2:/usr,rac2:/var,rac2:/etc,rac2:/sbin,rac2:/tmp 확인 중... 경로 노드 이름 마운트 위치 사용 가능 필수 상태 ---------------- ------------ ------------ ------------ ------------ ------------ /usr rac2 / 58.1113GB 25MB 성공 /var rac2 / 58.1113GB 5MB 성공 /etc rac2 / 58.1113GB 25MB 성공 /sbin rac2 / 58.1113GB 10MB 성공 /tmp rac2 / 58.1113GB 1GB 성공 사용 가능한 공간: rac2:/usr,rac2:/var,rac2:/etc,rac2:/sbin,rac2:/tmp 확인 중...성공 사용 가능한 공간: rac1:/usr,rac1:/var,rac1:/etc,rac1:/sbin,rac1:/tmp 확인 중... 경로 노드 이름 마운트 위치 사용 가능 필수 상태 ---------------- ------------ ------------ ------------ ------------ ------------ /usr rac1 / 48.2767GB 25MB 성공 /var rac1 / 48.2767GB 5MB 성공 /etc rac1 / 48.2767GB 25MB 성공 /sbin rac1 / 48.2767GB 10MB 성공 /tmp rac1 / 48.2767GB 1GB 성공 사용 가능한 공간: rac1:/usr,rac1:/var,rac1:/etc,rac1:/sbin,rac1:/tmp 확인 중...성공 사용자 존재 여부: grid 확인 중... 노드 이름 상태 설명 ------------ ------------------------ ------------------------ rac2 성공 존재함(54322) rac1 성공 존재함(54322) UID가 동일한 사용자입니다.: 54322 확인 중...성공 사용자 존재 여부: grid 확인 중...성공 그룹 존재 여부: asmadmin 확인 중... 노드 이름 상태 설명 ------------ ------------------------ ------------------------ rac2 성공 존재함 rac1 성공 존재함 그룹 존재 여부: asmadmin 확인 중...성공 그룹 존재 여부: asmdba 확인 중... 노드 이름 상태 설명 ------------ ------------------------ ------------------------ rac2 성공 존재함 rac1 성공 존재함 그룹 존재 여부: asmdba 확인 중...성공 그룹 멤버쉽: asmdba 확인 중... 노드 이름 사용자가 존재함 그룹이 존재함 그룹의 사용자 상태 ---------------- ------------ ------------ ------------ ---------------- rac2 예 예 예 성공 rac1 예 예 예 성공 그룹 멤버쉽: asmdba 확인 중...성공 그룹 멤버쉽: asmadmin 확인 중... 노드 이름 사용자가 존재함 그룹이 존재함 그룹의 사용자 상태 ---------------- ------------ ------------ ------------ ---------------- rac2 예 예 예 성공 rac1 예 예 예 성공 그룹 멤버쉽: asmadmin 확인 중...성공 실행 레벨 확인 중... 노드 이름 실행 레벨 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 3 3,5 성공 rac1 5 3,5 성공 실행 레벨 확인 중...성공 완전 제한: 최대 열린 파일 기술자 확인 중... 노드 이름 유형 사용 가능 필수 상태 ---------------- ------------ ------------ ------------ ---------------- rac2 완전 65536 65536 성공 rac1 완전 65536 65536 성공 완전 제한: 최대 열린 파일 기술자 확인 중...성공 부분 제한: 최대 열린 파일 기술자 확인 중... 노드 이름 유형 사용 가능 필수 상태 ---------------- ------------ ------------ ------------ ---------------- rac2 부분 1024 1024 성공 rac1 부분 1024 1024 성공 부분 제한: 최대 열린 파일 기술자 확인 중...성공 완전 제한: 최대 사용자 프로세스 확인 중... 노드 이름 유형 사용 가능 필수 상태 ---------------- ------------ ------------ ------------ ---------------- rac2 완전 32747 16384 성공 rac1 완전 32747 16384 성공 완전 제한: 최대 사용자 프로세스 확인 중...성공 부분 제한: 최대 사용자 프로세스 확인 중... 노드 이름 유형 사용 가능 필수 상태 ---------------- ------------ ------------ ------------ ---------------- rac2 부분 4096 2047 성공 rac1 부분 4096 2047 성공 부분 제한: 최대 사용자 프로세스 확인 중...성공 부분 제한: 최대 스택 크기 확인 중... 노드 이름 유형 사용 가능 필수 상태 ---------------- ------------ ------------ ------------ ---------------- rac2 부분 10240 10240 성공 rac1 부분 10240 10240 성공 부분 제한: 최대 스택 크기 확인 중...성공 구조 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 x86_64 x86_64 성공 rac1 x86_64 x86_64 성공 구조 확인 중...성공 OS 커널 버전 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 4.1.12-61.1.18.el7uek.x86_64 3.8.13 성공 rac1 4.1.12-61.1.18.el7uek.x86_64 3.8.13 성공 OS 커널 버전 확인 중...성공 OS 커널 매개변수: semmsl 확인 중... 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac1 250 250 250 성공 rac2 250 250 250 성공 OS 커널 매개변수: semmsl 확인 중...성공 OS 커널 매개변수: semmns 확인 중... 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac1 32000 32000 32000 성공 rac2 32000 32000 32000 성공 OS 커널 매개변수: semmns 확인 중...성공 OS 커널 매개변수: semopm 확인 중... 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac1 100 100 100 성공 rac2 100 100 100 성공 OS 커널 매개변수: semopm 확인 중...성공 OS 커널 매개변수: semmni 확인 중... 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac1 128 128 128 성공 rac2 128 128 128 성공 OS 커널 매개변수: semmni 확인 중...성공 OS 커널 매개변수: shmmax 확인 중... 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac1 4398046511104 4398046511104 4317184000 성공 rac2 4398046511104 4398046511104 4317184000 성공 OS 커널 매개변수: shmmax 확인 중...성공 OS 커널 매개변수: shmmni 확인 중... 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac1 4096 4096 4096 성공 rac2 4096 4096 4096 성공 OS 커널 매개변수: shmmni 확인 중...성공 OS 커널 매개변수: shmall 확인 중... 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac1 1073741824 1073741824 1073741824 성공 rac2 1073741824 1073741824 1073741824 성공 OS 커널 매개변수: shmall 확인 중...성공 OS 커널 매개변수: file-max 확인 중... 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac1 6815744 6815744 6815744 성공 rac2 6815744 6815744 6815744 성공 OS 커널 매개변수: file-max 확인 중...성공 OS 커널 매개변수: ip_local_port_range 확인 중... 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac1 between 9000 & 65500 between 9000 & 65500 between 9000 & 65535 성공 rac2 between 9000 & 65500 between 9000 & 65500 between 9000 & 65535 성공 OS 커널 매개변수: ip_local_port_range 확인 중...성공 OS 커널 매개변수: rmem_default 확인 중... 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac1 262144 262144 262144 성공 rac2 262144 262144 262144 성공 OS 커널 매개변수: rmem_default 확인 중...성공 OS 커널 매개변수: rmem_max 확인 중... 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac1 4194304 4194304 4194304 성공 rac2 4194304 4194304 4194304 성공 OS 커널 매개변수: rmem_max 확인 중...성공 OS 커널 매개변수: wmem_default 확인 중... 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac1 262144 262144 262144 성공 rac2 262144 262144 262144 성공 OS 커널 매개변수: wmem_default 확인 중...성공 OS 커널 매개변수: wmem_max 확인 중... 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac1 1048576 1048576 1048576 성공 rac2 1048576 1048576 1048576 성공 OS 커널 매개변수: wmem_max 확인 중...성공 OS 커널 매개변수: aio-max-nr 확인 중... 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac1 1048576 1048576 1048576 성공 rac2 1048576 1048576 1048576 성공 OS 커널 매개변수: aio-max-nr 확인 중...성공 OS 커널 매개변수: panic_on_oops 확인 중... 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac1 1 1 1 성공 rac2 1 1 1 성공 OS 커널 매개변수: panic_on_oops 확인 중...성공 패키지: binutils-2.23.52.0.1 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 binutils-2.25.1-22.base.el7 binutils-2.23.52.0.1 성공 rac1 binutils-2.25.1-22.base.el7 binutils-2.23.52.0.1 성공 패키지: binutils-2.23.52.0.1 확인 중...성공 패키지: compat-libcap1-1.10 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 compat-libcap1-1.10-7.el7 compat-libcap1-1.10 성공 rac1 compat-libcap1-1.10-7.el7 compat-libcap1-1.10 성공 패키지: compat-libcap1-1.10 확인 중...성공 패키지: libgcc-4.8.2 (x86_64) 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 libgcc(x86_64)-4.8.5-11.el7 libgcc(x86_64)-4.8.2 성공 rac1 libgcc(x86_64)-4.8.5-11.el7 libgcc(x86_64)-4.8.2 성공 패키지: libgcc-4.8.2 (x86_64) 확인 중...성공 패키지: libstdc++-4.8.2 (x86_64) 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 libstdc++(x86_64)-4.8.5-11.el7 libstdc++(x86_64)-4.8.2 성공 rac1 libstdc++(x86_64)-4.8.5-11.el7 libstdc++(x86_64)-4.8.2 성공 패키지: libstdc++-4.8.2 (x86_64) 확인 중...성공 패키지: libstdc++-devel-4.8.2 (x86_64) 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 libstdc++-devel(x86_64)-4.8.5-11.el7 libstdc++-devel(x86_64)-4.8.2 성공 rac1 libstdc++-devel(x86_64)-4.8.5-11.el7 libstdc++-devel(x86_64)-4.8.2 성공 패키지: libstdc++-devel-4.8.2 (x86_64) 확인 중...성공 패키지: sysstat-10.1.5 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 sysstat-10.1.5-11.el7 sysstat-10.1.5 성공 rac1 sysstat-10.1.5-11.el7 sysstat-10.1.5 성공 패키지: sysstat-10.1.5 확인 중...성공 패키지: ksh 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 ksh ksh 성공 rac1 ksh ksh 성공 패키지: ksh 확인 중...성공 패키지: make-3.82 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 make-3.82-23.el7 make-3.82 성공 rac1 make-3.82-23.el7 make-3.82 성공 패키지: make-3.82 확인 중...성공 패키지: glibc-2.17 (x86_64) 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 glibc(x86_64)-2.17-157.el7 glibc(x86_64)-2.17 성공 rac1 glibc(x86_64)-2.17-157.el7 glibc(x86_64)-2.17 성공 패키지: glibc-2.17 (x86_64) 확인 중...성공 패키지: glibc-devel-2.17 (x86_64) 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 glibc-devel(x86_64)-2.17-157.el7 glibc-devel(x86_64)-2.17 성공 rac1 glibc-devel(x86_64)-2.17-157.el7 glibc-devel(x86_64)-2.17 성공 패키지: glibc-devel-2.17 (x86_64) 확인 중...성공 패키지: libaio-0.3.109 (x86_64) 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 libaio(x86_64)-0.3.109-13.el7 libaio(x86_64)-0.3.109 성공 rac1 libaio(x86_64)-0.3.109-13.el7 libaio(x86_64)-0.3.109 성공 패키지: libaio-0.3.109 (x86_64) 확인 중...성공 패키지: libaio-devel-0.3.109 (x86_64) 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 libaio-devel(x86_64)-0.3.109-13.el7 libaio-devel(x86_64)-0.3.109 성공 rac1 libaio-devel(x86_64)-0.3.109-13.el7 libaio-devel(x86_64)-0.3.109 성공 패키지: libaio-devel-0.3.109 (x86_64) 확인 중...성공 패키지: nfs-utils-1.2.3-15 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 nfs-utils-1.3.0-0.33.0.1.el7 nfs-utils-1.2.3-15 성공 rac1 nfs-utils-1.3.0-0.33.0.1.el7 nfs-utils-1.2.3-15 성공 패키지: nfs-utils-1.2.3-15 확인 중...성공 패키지: smartmontools-6.2-4 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 smartmontools-6.2-7.el7 smartmontools-6.2-4 성공 rac1 smartmontools-6.2-7.el7 smartmontools-6.2-4 성공 패키지: smartmontools-6.2-4 확인 중...성공 패키지: net-tools-2.0-0.17 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 net-tools-2.0-0.17.20131004git.el7 net-tools-2.0-0.17 성공 rac1 net-tools-2.0-0.17.20131004git.el7 net-tools-2.0-0.17 성공 패키지: net-tools-2.0-0.17 확인 중...성공 "Oracle Notification Service (ONS)" 구성요소에 대한 포트 가용성 확인 중... 노드 이름 포트 번호 프로토콜 사용 가능 상태 ---------------- ------------ ------------ ------------ ---------------- rac2 6200 TCP 예 성공 rac1 6200 TCP 예 성공 rac2 6100 TCP 예 성공 rac1 6100 TCP 예 성공 "Oracle Notification Service (ONS)" 구성요소에 대한 포트 가용성 확인 중...성공 "Oracle Cluster Synchronization Services (CSSD)" 구성요소에 대한 포트 가용성 확인 중... 노드 이름 포트 번호 프로토콜 사용 가능 상태 ---------------- ------------ ------------ ------------ ---------------- rac2 42424 TCP 예 성공 rac1 42424 TCP 예 성공 "Oracle Cluster Synchronization Services (CSSD)" 구성요소에 대한 포트 가용성 확인 중...성공 UID가 동일한 사용자입니다.: 0 확인 중...성공 현재 그룹 ID 확인 중...성공 루트 사용자 일관성 확인 중... 노드 이름 상태 ------------------------------------ ------------------------ rac2 성공 rac1 성공 루트 사용자 일관성 확인 중...성공 패키지: cvuqdisk-1.0.10-1 확인 중... 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 cvuqdisk-1.0.10-1 cvuqdisk-1.0.10-1 성공 rac1 cvuqdisk-1.0.10-1 cvuqdisk-1.0.10-1 성공 패키지: cvuqdisk-1.0.10-1 확인 중...성공 호스트 이름 확인 중...성공 노드 접속 확인 중... 호스트 파일 확인 중... 노드 이름 상태 ------------------------------------ ------------------------ rac1 성공 rac2 성공 호스트 파일 확인 중...성공 "rac1" 노드에 대한 인터페이스 정보 이름 IP 주소 서브넷 게이트웨이 Def. 게이트웨이 HW 주소 MTU ------ --------------- --------------- --------------- --------------- ----------------- ------ enp0s3 192.168.0.111 192.168.0.0 0.0.0.0 192.168.0.1 08:00:27:79:1A:7E 1500 enp0s8 192.168.5.111 192.168.5.0 0.0.0.0 192.168.0.1 08:00:27:9B:21:58 1500 "rac2" 노드에 대한 인터페이스 정보 이름 IP 주소 서브넷 게이트웨이 Def. 게이트웨이 HW 주소 MTU ------ --------------- --------------- --------------- --------------- ----------------- ------ enp0s3 192.168.0.112 192.168.0.0 0.0.0.0 192.168.0.1 08:00:27:A5:DC:D9 1500 enp0s8 192.168.5.112 192.168.5.0 0.0.0.0 192.168.0.1 08:00:27:9C:EF:EB 1500 검사: "192.168.0.0" 서브넷의 MTU 일관성. 노드 이름 IP 주소 서브넷 MTU ---------------- ------------ ------------ ------------ ---------------- rac1 enp0s3 192.168.0.111 192.168.0.0 1500 rac2 enp0s3 192.168.0.112 192.168.0.0 1500 검사: "192.168.5.0" 서브넷의 MTU 일관성. 노드 이름 IP 주소 서브넷 MTU ---------------- ------------ ------------ ------------ ---------------- rac1 enp0s8 192.168.5.111 192.168.5.0 1500 rac2 enp0s8 192.168.5.112 192.168.5.0 1500 최대(MTU) 크기 패킷이 서브넷을 통과하는지 검사 확인 중...성공 소스 대상 접속됨? ------------------------------ ------------------------------ ---------------- rac1[enp0s3:192.168.0.111] rac2[enp0s3:192.168.0.112] 예 소스 대상 접속됨? ------------------------------ ------------------------------ ---------------- rac1[enp0s8:192.168.5.111] rac2[enp0s8:192.168.5.112] 예 "192.168.0.0" 서브넷에 대한 서브넷 마스크 일관성 확인 중...성공 "192.168.5.0" 서브넷에 대한 서브넷 마스크 일관성 확인 중...성공 노드 접속 확인 중...성공 멀티캐스트 또는 브로드캐스트 검사 확인 중... 멀티캐스트 그룹 "224.0.0.251"과(와) 멀티캐스트 통신을 위해 "192.168.0.0" 서브넷을 검사하는 중 멀티캐스트 또는 브로드캐스트 검사 확인 중...성공 NTP(네트워크 시간 프로토콜) 확인 중... '/etc/ntp.conf' 확인 중... 노드 이름 파일 존재 여부 ------------------------------------ ------------------------ rac2 아니오 rac1 아니오 '/etc/ntp.conf' 확인 중...성공 '/etc/chrony.conf' 확인 중... 노드 이름 파일 존재 여부 ------------------------------------ ------------------------ rac2 아니오 rac1 아니오 '/etc/chrony.conf' 확인 중...성공 '/var/run/ntpd.pid' 확인 중... 노드 이름 파일 존재 여부 ------------------------------------ ------------------------ rac2 아니오 rac1 아니오 '/var/run/ntpd.pid' 확인 중...성공 '/var/run/chronyd.pid' 확인 중... 노드 이름 파일 존재 여부 ------------------------------------ ------------------------ rac2 아니오 rac1 아니오 '/var/run/chronyd.pid' 확인 중...성공 NTP(네트워크 시간 프로토콜) 확인 중...성공 동일한 코어 파일 이름 패턴 확인 중...성공 사용자 마스크 확인 중... 노드 이름 사용 가능 필수 설명 ------------ ------------------------ ------------------------ ---------- rac2 0022 0022 성공 rac1 0022 0022 성공 사용자 마스크 확인 중...성공 사용자가 그룹에 없습니다. "root": grid 확인 중... 노드 이름 상태 설명 ------------ ------------------------ ------------------------ rac2 성공 존재하지 않음 rac1 성공 존재하지 않음 사용자가 그룹에 없습니다. "root": grid 확인 중...성공 시간대 일관성 확인 중...성공 노드 사이의 시간 오프셋 확인 중...성공 resolv.conf 무결성 확인 중... 노드 이름 상태 ------------------------------------ ------------------------ rac1 성공 rac2 성공 "/etc/resolv.conf"에 지정된 각 이름 서버에서 "rac1" 이름에 대한 응답을 확인하는 중 노드 이름 소스 설명 상태 ------------ ------------------------ ------------------------ ---------- rac1 127.0.0.1 IPv4 성공 "/etc/resolv.conf"에 지정된 각 이름 서버에서 "rac2" 이름에 대한 응답을 확인하는 중 노드 이름 소스 설명 상태 ------------ ------------------------ ------------------------ ---------- rac2 127.0.0.1 IPv4 성공 resolv.conf 무결성 확인 중...성공 DNS/NIS 이름 서비스 확인 중...성공 도메인 소켓 확인 중...성공 /boot 마운트 확인 중...성공 "avahi-daemon" 데몬이 구성되어 실행 중이 아닙니다. 확인 중... 노드 이름 구성됨 상태 ------------ ------------------------ ------------------------ rac2 아니오 성공 rac1 아니오 성공 노드 이름 실행 중? 상태 ------------ ------------------------ ------------------------ rac2 아니오 성공 rac1 아니오 성공 "avahi-daemon" 데몬이 구성되어 실행 중이 아닙니다. 확인 중...성공 "proxyt" 데몬이 구성되어 실행 중이 아닙니다. 확인 중... 노드 이름 구성됨 상태 ------------ ------------------------ ------------------------ rac2 아니오 성공 rac1 아니오 성공 노드 이름 실행 중? 상태 ------------ ------------------------ ------------------------ rac2 아니오 성공 rac1 아니오 성공 "proxyt" 데몬이 구성되어 실행 중이 아닙니다. 확인 중...성공 사용자 동일성 확인 중...성공 /dev/shm이 임시 파일 시스템으로 마운트됨 확인 중...성공 /var 경로에 대한 파일 시스템 마운트 옵션 확인 중...성공 zeroconf 검사 확인 중...성공 ASM 필터 드라이버 구성 확인 중...성공 클러스터 서비스 설정에 대한 사전 확인을 성공했습니다. 수행된 CVU 작업: stage -pre crsinst 날짜: 2018. 7. 28 오후 8:45:01 CVU 홈: /u01/app/18.3.0/grid/ 사용자: grid
설치를 계속 진행해도 되겠지만, 그에 앞서 모든 노드의 구성 환경을 검증하는 스크립트를 fixup 모드로 실행합니다.
변경이 요구되는 항목이 있을 경우 자동으로 환경 설정을 수정하는 runfixup.sh 스크립트가 생성되며, root 유저로 실행이 필요한 노드에서 실행하면 됩니다.
노드간의 네트워크 인터페이스를 확인하는 단계입니다.
공용 인터페이스는 Public IP와 VIP로 외부와 통신하는데 사용되며 ASM 및 전용 인터페이스는 RAC 노드간의 통신에만 사용됩니다.
노드간의 인터페이스 이름과 서브넷은 공용, 전용 구분하여 동일하게 설정이 되어야 합니다.
정상적으로 인식이 되면 <다음>을 클릭합니다.
만약 같은 공용이나 전용끼리의 인터페이스 이름이 다를 경우, 인터페이스 이름이 *로 표시되며 패치나 설치 과정에서 경고나 오류 메시지가 출력됩니다.
따라서 같은 용도의 인터페이스 이름이 일치하도록 네트워크 인터페이스를 구성해야 합니다.
리눅스 7부터는 인터페이스 이름이 자동으로 부여됩니다.
디스크에 ASM을 구성하여 사용할 것이므로 '블록 장치를 사용하여 ASM 구성'을 선택하고 <다음>을 클릭합니다.
OCR과 GIMR 디스크 그룹을 별도로 생성하려면 '예'를 선택하고 <다음>을 클릭합니다.
OCR과 Voting을 저장하기 위한 디스크 그룹을 생성합니다.
기본 설정에서 디스크 그룹 이름만 "CRS"로 변경하고, 중복성은 기본값인 '일반'을 유지합니다.
간단한 구성 정보가 저장되는 공간이므로 1GB 디스크 3개를 '일반'으로 구성하면 충분합니다.
운영 시스템에서 '높음' 이상으로 구성할 경우에는 1GB 이상의 디스크 5개 이상을 사용하면 됩니다.
테스트 목적으로 RAC를 구축하거나 수동으로 관리할 계획이라면 '외부' 중복성으로 구성할 수도 있습니다.
디스크 목록에서 저장할 디스크를 선택한 후 <다음>을 클릭합니다.
GIMR을 저장하기 위한 디스크그룹을 생성합니다.
디스크 그룹 이름에 "MGMT"를 입력하고, 중복성은 '일반'으로 합니다.
테스트 목적으로 RAC를 구축하거나 수동으로 관리할 계획이라면 '외부' 중복성으로 구성할 수도 있습니다.
디스크 목록에서 저장할 디스크를 선택한 후 <다음>을 클릭합니다.
안정적인 구성을 위해 최소 40GB 이상의 디스크로 구성하는 것이 바람직하며, 구성하는 RAC 노드의 수에 따라 크기를 늘려야 합니다.
SYSASM 권한 사용자의 비밀번호를 설정하는 단계입니다.
실습을 위해 하나의 패스워드로 SYS와 ASMSNMP 계정의 비밀번호를 사용할 것이므로 '이러한 계정에 동일한 비밀번호 사용'을 선택하고 비밀번호를 입력합니다.
암호 복잡도 규칙에 맞는 비밀번호를 입력한 후 <다음>을 클릭합니다.
'IPMI를 사용 안함'을 선택하고 <다음>을 클릭합니다.
별도의 EM 시스템에 등록하지 않는다면, 'EM Cloud Control에 등록'이 해제된 상태(기본)에서 <다음>을 클릭합니다.
ASM 권한 관련 OS 인증에 사용할 OS 그룹을 선택하는 단계입니다.
정상적으로 지정되었는지 확인하고 <다음>을 클릭합니다.
일반적으로 운영 환경에서는 dba로 통합하여 사용하기도 합니다만, asmadmin과 asmdba는 runfixup.sh 스크립트 실행시 자동으로 생성이 됩니다.
복제된 원격 노드에 이미 디렉토리가 생성되어 있으므로 아래와 같은 경고가 나옵니다.
해당 노드의 디렉토리에 설치된 소프트웨어가 없으면, 내용을 무시하고 <예>를 클릭합니다.
Oracle Base 경로를 확인하는 단계입니다.
정상적으로 지정이 되었으면 <다음>을 클릭합니다.
오라클 인벤토리 디렉토리 경로와 인벤토리 그룹을 확인하고 <다음>을 클릭합니다.
인벤토리에는 오라클 소프트웨어의 설치 정보가 저장됩니다.
가능한 oinstall 그룹을 사용하여 인벤토리를 사용하는 것을 권장합니다.
클러스터 구성 과정 중에 root 권한으로 스크립트를 실행하는 과정이 있습니다.
'자동으로 구성 스크립트 실행'을 체크하고 '"루트" 사용자 인증서 사용'을 선택한 후 root 계정의 비밀번호를 입력하고 <다음>을 클릭합니다.
자동으로 구성 스크립트를 실행하기 위해서는 모든 노드의 root 계정 비밀번호가 동일해야 합니다.
만약 노드간에 root 계정의 암호가 다르거나, 수동으로 설치를 진행하고자 할 경우에는 아무 것도 선택하지 않고 다음 단계로 진행하면 수동으로 스크립트 실행을 할 수 있습니다.
설치에 앞서 서버에 대한 필요 조건 검사가 실행됩니다.
이 단계에서 누락되거나 잘못된 설정을 반드시 수정하고 설치를 진행해야 합니다.
특이사항이 없을 경우에는 자동으로 다음 단계로 넘어갑니다
본격적인 설치에 앞서 구성될 환경에 대한 요약 정보를 검토합니다.
수정할 사항이 있으면 해당 항목 옆에 '편집'을 클릭하여 변경하면 됩니다.
정확하게 모든 사항이 선택되었으면 <설치>를 클릭합니다.
로컬 노드와 원격 노드에 Grid 설치가 진행됩니다.
로컬 노드에는 GRID_HOME 디렉토리에 설치 파일의 압축이 이미 풀려 있으므로, 파일 복제 과정은 생략됩니다.
원격 노드에는 private 망의 ssh 연결을 통해 설치 파일이 전송되며 GRID_HOME 디렉토리에 파일 복제가 진행됩니다.
Grid 구성 스크립트를 자동으로 실행할 것인지 뭍는 창이 뜨면 <예>를 클릭합니다.
설치 과정 중에 입력한 root 사용자의 비밀번호를 이용하여 자동으로 스크립트가 실행됩니다.
자동으로 grid 구성이 진행됩니다.
<세부 정보> 버튼을 클릭하면 설치 과정을 확인할 수 있습니다.
원격 노드에도 동일하게 grid 구성이 진행됩니다.
GIMR 구성이 진행됩니다.
설치 과정중에 지정한 ASM 영역에 싱글 인스턴스의 Pluggable Database로 생성됩니다.
모든 설치 및 구성이 완료되면 클러스터 검증 유틸리티가 수행됩니다.
특이 사항이 없으면 설치가 완료됩니다.
GI 설치와 구성이 완료되면 <닫기>를 클릭하여 설치 프로그램을 종료합니다.
6. 설치 결과 확인
crsctl stat res -t
[+ASM1:/home/grid]> crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.CRS.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.LISTENER.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.MGMT.GHCHKPT.advm OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.MGMT.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.chad ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.helper OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 IDLE,STABLE ora.mgmt.ghchkpt.acfs OFFLINE OFFLINE rac1 volume /opt/oracle/r hp_images/chkbase is unmounted,STABLE OFFLINE OFFLINE rac2 STABLE ora.net1.network ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.ons ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.proxy_advm ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- 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.MGMTLSNR 1 ONLINE ONLINE rac1 169.254.23.170 192.1 68.5.111,STABLE ora.asm 1 ONLINE ONLINE rac1 Started,STABLE 2 ONLINE ONLINE rac2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE rac1 STABLE ora.mgmtdb 1 ONLINE ONLINE rac1 Open,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.rhpserver 1 OFFLINE OFFLINE 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 --------------------------------------------------------------------------------
crsctl stat res -t 명령을 통해 정상적으로 클러스터가 구성되었는지 확인할 수 있습니다
VII. ASM 디스크 그룹 추가
1. ASM Configuration Assistant 실행
asmca
ASM 디스크 그룹 생성을 위해 ASMCA를 실행합니다.
GUI 모드의 ASMCA에서 디스크 그룹을 추가합니다.
먼저 데이터를 저장할 DATA 디스크 그룹을 생성하겠습니다.
디스크 그룹 창에서 <생성>을 클릭합니다.
2. DATA 디스크 그룹 생성
디스크 그룹 이름에 "DATA"를 입력하고, 중복성은 '외부(없음)'으로 지정합니다.
DATA로 할당된 디스크를 체크하고 <확인>을 클릭합니다.
3. FRA 디스크 그룹 생성
동일한 방식으로 FRA 디스크 그룹을 추가합니다.
디스크 그룹 이름에 "FRA"를 입력하고, 중복성은 '외부(없음)'으로 지정합니다.
FRA로 할당된 디스크를 체크하고 <확인>을 클릭합니다
디스크 그룹 추가 작업이 완료되었으면 <종료>를 클릭합니다.
종료 확인 창에 <예>를 클릭하여 ASMCA를 닫습니다.
4. ASM 디스크 그룹 생성 결과 확인
crsctl stat res -t
[+ASM1:/home/grid]> crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.CRS.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.DATA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.FRA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.LISTENER.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.MGMT.GHCHKPT.advm OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.MGMT.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.chad ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.helper OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 IDLE,STABLE ora.mgmt.ghchkpt.acfs OFFLINE OFFLINE rac1 volume /opt/oracle/r hp_images/chkbase is unmounted,STABLE OFFLINE OFFLINE rac2 STABLE ora.net1.network ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.ons ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.proxy_advm ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- 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.MGMTLSNR 1 ONLINE ONLINE rac1 169.254.23.170 192.1 68.5.111,STABLE ora.asm 1 ONLINE ONLINE rac1 Started,STABLE 2 ONLINE ONLINE rac2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE rac1 STABLE ora.mgmtdb 1 ONLINE ONLINE rac1 Open,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.rhpserver 1 OFFLINE OFFLINE 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 --------------------------------------------------------------------------------
리소스에 DATA와 FRA 디스크 그룹이 추가된 것을 확인할 수 있습니다.
VIII. Database 소프트웨어 설치
1. DBMS 설치 파일 압축 해제
mkdir -p $ORACLE_HOME cd <LINUX.X64_180000_db_home.zip 파일이 있는 경로> unzip LINUX.X64_180000_db_home.zip -d $ORACLE_HOME
실행 예제는 첨부 파일 참조 : unzip_db.txt
18c 버전부터 database도 설치 경로에 압축을 푸는 것으로 기본적인 파일 설치가 완료됩니다.
$ORACLE_HOME 디렉토리를 생성하고, 해당 경로에 database 설치 파일의 압축을 해제합니다.
2. DBMS 설치 스크립트 실행
cd $ORACLE_HOME ./runInstaller
[racdb1:/home/oracle]> cd $ORACLE_HOME [racdb1:/u01/app/oracle/product/18.3.0/db_1]> ./runInstaller
database 설치 파일의 압축을 해제한 디렉토리에서 runInstaller를 실행합니다.
DB 소프트웨어만 설치한 후에 별도로 데이터베이스를 생성할 예정이므로 '데이터베이스 소프트웨어만 설치'를 선택하고 <다음>을 클릭합니다.
설치 옵션은 'Oracle Real Application Clusters 데이터베이스 설치'를 선택하고 <다음>을 클릭합니다.
RAC 모든 노드에 설치할 것이므로 rac1과 rac2가 모두 체크되었는지 확인합니다.
그리고 oracle 유저에 대한 비밀번호 없는 SSH 접속 설정을 위해 <SSH 접속>을 클릭합니다.
만약 grid와 database를 동일한 유저로 설치한다면 grid 설치 시점에 이미 비밀번호 없는 SSH 접속이 설정되어 있으므로 다음 단계로 진행해도 됩니다.
OS 비밀번호에 oracle 유저의 비밀번호를 입력하고 <설정>을 클릭합니다.
grid와 database를 다른 유저로 설치하게 되므로 반드시 이 과정을 진행해야 합니다.
잠시 동안 노드간의 SSH 접속 설정이 잠시 진행됩니다.
작업이 완료되면 <다음>을 클릭합니다.
데이터베이스 버전은 'Enterprise Edition'를 선택합니다.
라이센스에 따라서 다른 버전을 선택할 수 있습니다.
버전 선택 후 <다음>을 클릭합니다
설치 위치인 Oracle Base와 Oracle Home 경로가 정상적으로 인식되었는지 확인하고 <다음>을 클릭합니다.
OS 인증을 위한 OS 그룹을 설정하는 단계입니다.
오라클의 권고사항에 따라 그룹을 세분화하였지만, 실제 운영 환경에서는 관리 편의상 1개의 그룹(대부분 dba)으로 운영하는 경우가 많습니다.
적절한 OS 그룹과 맵핑이 된다면 <다음>을 클릭합니다.
사전 설치 환경이 오라클의 요구사항에 맞게 구성되어 있는지 검사하는 과정입니다.
문제가 없다면, 자동적으로 다음 단계로 넘어갑니다.
GI 설치 단계에서 요구 사항을 수정하였다면, 대부분 이 단계에서 문제없이 진행됩니다.
만약, 수정되어야 할 요구사항이 나온다면, 반드시 문제를 해결하고 설치를 진행해야 합니다.
지금까지 선택한 설치 옵션을 요약한 페이지입니다.
계획한 것과 다른 부분이 있을 때는 해당 항목의 '편집'을 클릭하여 내용을 수정하고, 이상이 없을 때에는 <설치>를 클릭합니다.
로컬 노드에 database의 설치가 진행됩니다.
이미 설치될 경로에 압축을 해제하였으므로, 이전 버전에 비해 빠르게 작업이 진행됩니다.
원격 노드로 database 파일을 복사하게 됩니다.
GI와 동일하게 private 망의 ssh를 이용하여 파일이 전송됩니다.
파일 복사 후에 필요한 일련의 작업들이 진행됩니다.
설치 과정의 마지막 단계로 루트 사용자로 root.sh 스크립트를 실행하는 안내가 나옵니다.
3. 구성 스크립트 실행
/u01/app/oracle/product/18.3.0/db_1/root.sh
[root@rac1 ~]# /u01/app/oracle/product/18.3.0/db_1/root.sh Performing root user operation. The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/18.3.0/db_1 Enter the full pathname of the local bin directory: [/usr/local/bin]: The contents of "dbhome" have not changed. No need to overwrite. The contents of "oraenv" have not changed. No need to overwrite. The contents of "coraenv" have not changed. No need to overwrite. Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root script. Now product-specific root actions will be performed.
[root@rac2 ~]# /u01/app/oracle/product/18.3.0/db_1/root.sh Performing root user operation. The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/18.3.0/db_1 Enter the full pathname of the local bin directory: [/usr/local/bin]: The contents of "dbhome" have not changed. No need to overwrite. The contents of "oraenv" have not changed. No need to overwrite. The contents of "coraenv" have not changed. No need to overwrite. Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root script. Now product-specific root actions will be performed.
root 유저로 접속하여 root.sh 스크립트를 실행하고 오라클 소프트웨어 설치 화면에 <확인> 버튼을 클릭합니다
Database 소프트웨어 설치가 모두 완료되었으므로 <닫기>를 클릭합니다.
IX. One Node RAC의 데이터베이스 생성
dbca
{}
X. Relocate Database
1. Database Relocate 작업
A) 작업 전 확인
crsctl stat res -t srvctl status database -d racdb
[racdb1:/home/oracle]> crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.CRS.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.DATA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.FRA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.LISTENER.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.MGMT.GHCHKPT.advm OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.MGMT.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.chad ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.helper OFFLINE OFFLINE rac1 IDLE,STABLE OFFLINE OFFLINE rac2 IDLE,STABLE ora.mgmt.ghchkpt.acfs OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.net1.network ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.ons ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.proxy_advm ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- 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.MGMTLSNR 1 ONLINE ONLINE rac1 169.254.23.170 192.1 68.5.111,STABLE ora.asm 1 ONLINE ONLINE rac1 Started,STABLE 2 ONLINE ONLINE rac2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE rac1 STABLE ora.mgmtdb 1 ONLINE ONLINE rac1 Open,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/18.3.0 /db_1,STABLE ora.racdb.rac.svc 1 ONLINE ONLINE rac1 STABLE ora.rhpserver 1 OFFLINE OFFLINE 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 -------------------------------------------------------------------------------- [racdb1:/home/oracle]> srvctl status database -d racdb racdb_1 인스턴스가 rac1 노드에서 실행 중임 온라인 재배치: INACTIVE
B) 2번 노드로 Relocate
srvctl relocate database -d racdb -n rac2 -v
[racdb1:/home/oracle]> srvctl relocate database -d racdb -n rac2 -v 두 개의 인스턴스에 대한 구성이 업데이트되었습니다. racdb_2 인스턴스가 시작되었습니다. 서비스가 재배치되었습니다. 최대 30분 동안 racdb_1 인스턴스가 정지되기를 기다리는 중... racdb_1 인스턴스가 정지되었습니다. 하나의 인스턴스에 대한 구성이 업데이트되었습니다.
C) 2번 노드 Relocate 결과 확인
srvctl status database -d racdb crsctl stat res -t
Relocate 작업 중이면 다음과 같이 출력됩니다.
[racdb2:/home/oracle]> srvctl status database -d racdb racdb_1 인스턴스가 rac1 노드에서 실행 중임 온라인 재배치: ACTIVE 소스 인스턴스: rac1의 racdb_1 대상 인스턴스: rac2의 racdb_2
Relocate 작업이 완료되면 아래와 같이 출력됩니다.
[racdb2:/home/oracle]> srvctl status database -d racdb racdb_2 인스턴스가 rac2 노드에서 실행 중임 온라인 재배치: INACTIVE [racdb2:/home/oracle]> crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.CRS.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.DATA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.FRA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.LISTENER.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.MGMT.GHCHKPT.advm OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.MGMT.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.chad ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.helper OFFLINE OFFLINE rac1 IDLE,STABLE OFFLINE OFFLINE rac2 IDLE,STABLE ora.mgmt.ghchkpt.acfs OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.net1.network ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.ons ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.proxy_advm ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- 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.MGMTLSNR 1 ONLINE ONLINE rac1 169.254.23.170 192.1 68.5.111,STABLE ora.asm 1 ONLINE ONLINE rac1 Started,STABLE 2 ONLINE ONLINE rac2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE rac1 STABLE ora.mgmtdb 1 ONLINE ONLINE rac1 Open,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 2 ONLINE ONLINE rac2 Open,HOME=/u01/app/o racle/product/18.3.0 /db_1,STABLE ora.racdb.rac.svc 2 ONLINE ONLINE rac2 STABLE ora.rhpserver 1 OFFLINE OFFLINE 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 --------------------------------------------------------------------------------
D) 1번 노드로 Relocate
srvctl relocate database -d racdb -n rac1 -v
[racdb2:/home/oracle]> srvctl relocate database -d racdb -n rac1 -v 두 개의 인스턴스에 대한 구성이 업데이트되었습니다. racdb_1 인스턴스가 시작되었습니다. 서비스가 재배치되었습니다. 최대 30분 동안 racdb_2 인스턴스가 정지되기를 기다리는 중... racdb_2 인스턴스가 정지되었습니다. 하나의 인스턴스에 대한 구성이 업데이트되었습니다.
E) 1번 노드 Relocate 결과 확인
srvctl status database -d racdb crsctl stat res -t
[racdb1:/home/oracle]> srvctl status database -d racdb racdb_2 인스턴스가 rac2 노드에서 실행 중임 온라인 재배치: ACTIVE 소스 인스턴스: rac2의 racdb_2 대상 인스턴스: rac1의 racdb_1
[racdb1:/home/oracle]> srvctl status database -d racdb racdb_1 인스턴스가 rac1 노드에서 실행 중임 온라인 재배치: INACTIVE [racdb1:/home/oracle]> crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.CRS.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.DATA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.FRA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.LISTENER.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.MGMT.GHCHKPT.advm OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.MGMT.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.chad ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.helper OFFLINE OFFLINE rac1 IDLE,STABLE OFFLINE OFFLINE rac2 IDLE,STABLE ora.mgmt.ghchkpt.acfs OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.net1.network ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.ons ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.proxy_advm ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- 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.MGMTLSNR 1 ONLINE ONLINE rac1 169.254.23.170 192.1 68.5.111,STABLE ora.asm 1 ONLINE ONLINE rac1 Started,STABLE 2 ONLINE ONLINE rac2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE rac1 STABLE ora.mgmtdb 1 ONLINE ONLINE rac1 Open,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/18.3.0 /db_1,STABLE ora.racdb.rac.svc 1 ONLINE ONLINE rac1 STABLE ora.rhpserver 1 OFFLINE OFFLINE 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 --------------------------------------------------------------------------------
2. Database Relocate 작업
A) 작업 전 확인
crsctl stat res -t srvctl status mgmtdb
[racdb1:/home/oracle]> crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.CRS.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.DATA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.FRA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.LISTENER.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.MGMT.GHCHKPT.advm OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.MGMT.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.chad ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.helper OFFLINE OFFLINE rac1 IDLE,STABLE OFFLINE OFFLINE rac2 IDLE,STABLE ora.mgmt.ghchkpt.acfs OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.net1.network ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.ons ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.proxy_advm ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- 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.MGMTLSNR 1 ONLINE ONLINE rac1 169.254.23.170 192.1 68.5.111,STABLE ora.asm 1 ONLINE ONLINE rac1 Started,STABLE 2 ONLINE ONLINE rac2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE rac1 STABLE ora.mgmtdb 1 ONLINE ONLINE rac1 Open,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/18.3.0 /db_1,STABLE ora.racdb.rac.svc 1 ONLINE ONLINE rac1 STABLE ora.rhpserver 1 OFFLINE OFFLINE 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 -------------------------------------------------------------------------------- [+ASM1:/home/grid]> srvctl status mgmtdb 데이터베이스가 사용으로 설정되었습니다. -MGMTDB 인스턴스가 rac1 노드에서 실행 중임
B) 2번 노드로 Relocate
srvctl relocate mgmtdb -n rac2
[+ASM1:/home/grid]> srvctl relocate mgmtdb -n rac2
C) 2번 노드 Relocate 결과 확인
srvctl status mgmtdb crsctl stat res -t
Relocate 작업 중이면 다음과 같이 출력됩니다.
[+ASM2:/home/grid]> srvctl status mgmtdb 데이터베이스가 사용으로 설정되었습니다. 인스턴스가 rac1 노드에서 정지 중입니다. [+ASM2:/home/grid]> srvctl status mgmtdb 데이터베이스가 사용으로 설정되었습니다. 데이터베이스가 실행 중이 아닙니다.
Relocate 작업이 완료되면 아래와 같이 출력됩니다.
[+ASM2:/home/grid]> srvctl status mgmtdb 데이터베이스가 사용으로 설정되었습니다. -MGMTDB 인스턴스가 rac2 노드에서 실행 중임 [+ASM1:/home/grid]> crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.CRS.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.DATA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.FRA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.LISTENER.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.MGMT.GHCHKPT.advm OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.MGMT.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.chad ONLINE OFFLINE rac1 STABLE ONLINE OFFLINE rac2 STABLE ora.helper OFFLINE OFFLINE rac1 IDLE,STABLE OFFLINE OFFLINE rac2 IDLE,STABLE ora.mgmt.ghchkpt.acfs OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.net1.network ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.ons ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.proxy_advm ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- 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.MGMTLSNR 1 ONLINE ONLINE rac2 169.254.9.17 192.168 .5.112,STABLE ora.asm 1 ONLINE ONLINE rac1 Started,STABLE 2 ONLINE ONLINE rac2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE rac1 STABLE ora.mgmtdb 1 ONLINE ONLINE rac2 Open,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/18.3.0 /db_1,STABLE ora.racdb.rac.svc 1 ONLINE ONLINE rac1 STABLE ora.rhpserver 1 OFFLINE OFFLINE 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 --------------------------------------------------------------------------------
D) 1번 노드로 Relocate
srvctl relocate mgmtdb -n rac1
[+ASM2:/home/grid]> srvctl relocate mgmtdb -n rac1
E) 1번 노드 Relocate 결과 확인
srvctl status mgmtdb crsctl stat res -t
[+ASM1:/home/grid]> srvctl status mgmtdb 데이터베이스가 사용으로 설정되었습니다. 인스턴스가 rac2 노드에서 정지 중입니다. [+ASM1:/home/grid]> srvctl status mgmtdb 데이터베이스가 사용으로 설정되었습니다. 데이터베이스가 실행 중이 아닙니다._1
[+ASM1:/home/grid]> srvctl status mgmtdb 데이터베이스가 사용으로 설정되었습니다. -MGMTDB 인스턴스가 rac1 노드에서 실행 중임 [+ASM1:/home/grid]> crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.CRS.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.DATA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.FRA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.LISTENER.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.MGMT.GHCHKPT.advm OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.MGMT.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.chad ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.helper OFFLINE OFFLINE rac1 IDLE,STABLE OFFLINE OFFLINE rac2 IDLE,STABLE ora.mgmt.ghchkpt.acfs OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.net1.network ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.ons ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.proxy_advm ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- 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.MGMTLSNR 1 ONLINE ONLINE rac1 169.254.23.170 192.1 68.5.111,STABLE ora.asm 1 ONLINE ONLINE rac1 Started,STABLE 2 ONLINE ONLINE rac2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE rac1 STABLE ora.mgmtdb 1 ONLINE ONLINE rac1 Open,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/18.3.0 /db_1,STABLE ora.racdb.rac.svc 1 ONLINE ONLINE rac1 STABLE ora.rhpserver 1 OFFLINE OFFLINE 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 --------------------------------------------------------------------------------
XI. Convert Database
1. RAC One Node에서 RAC로 변환
A) RAC로 변환
srvctl convert database -d racdb -c RAC crsctl stat res -t
[racdb1:/home/oracle]> srvctl convert database -d racdb -c RAC [racdb1:/home/oracle]> crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.CRS.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.DATA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.FRA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.LISTENER.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.MGMT.GHCHKPT.advm OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.MGMT.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.chad ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.helper OFFLINE OFFLINE rac1 IDLE,STABLE OFFLINE OFFLINE rac2 IDLE,STABLE ora.mgmt.ghchkpt.acfs OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.net1.network ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.ons ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.proxy_advm ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- 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.MGMTLSNR 1 ONLINE ONLINE rac1 169.254.23.170 192.1 68.5.111,STABLE ora.asm 1 ONLINE ONLINE rac1 Started,STABLE 2 ONLINE ONLINE rac2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE rac1 STABLE ora.mgmtdb 1 ONLINE ONLINE rac1 Open,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/18.3.0 /db_1,STABLE ora.racdb.rac.svc 1 ONLINE ONLINE rac1 STABLE ora.rhpserver 1 OFFLINE OFFLINE 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 --------------------------------------------------------------------------------
B) 2번 노드 인스턴스 추가 및 기동
srvctl add instance -d racdb -i racdb_2 -n rac2 srvctl start instance -d racdb -i racdb_2 crsctl stat res -t
[racdb2:/home/oracle]> srvctl add instance -d racdb -i racdb_2 -n rac2 [racdb2:/home/oracle]> srvctl start instance -d racdb -i racdb_2 [racdb2:/home/oracle]> crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.CRS.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.DATA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.FRA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.LISTENER.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.MGMT.GHCHKPT.advm OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.MGMT.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.chad ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.helper OFFLINE OFFLINE rac1 IDLE,STABLE OFFLINE OFFLINE rac2 IDLE,STABLE ora.mgmt.ghchkpt.acfs OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.net1.network ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.ons ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.proxy_advm ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- 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.MGMTLSNR 1 ONLINE ONLINE rac1 169.254.23.170 192.1 68.5.111,STABLE ora.asm 1 ONLINE ONLINE rac1 Started,STABLE 2 ONLINE ONLINE rac2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE rac1 STABLE ora.mgmtdb 1 ONLINE ONLINE rac1 Open,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/18.3.0 /db_1,STABLE 2 ONLINE ONLINE rac2 Open,HOME=/u01/app/o racle/product/18.3.0 /db_1,STABLE ora.racdb.rac.svc 1 ONLINE ONLINE rac1 STABLE ora.rhpserver 1 OFFLINE OFFLINE 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 --------------------------------------------------------------------------------
C) 서비스 중지 및 삭제
srvctl stop service -d racdb -s rac srvctl remove service -d racdb -s rac crsctl stat res -t
[racdb1:/home/oracle]> srvctl stop service -d racdb -s rac [racdb1:/home/oracle]> srvctl remove service -d racdb -s rac [racdb1:/home/oracle]> crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.CRS.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.DATA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.FRA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.LISTENER.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.MGMT.GHCHKPT.advm OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.MGMT.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.chad ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.helper OFFLINE OFFLINE rac1 IDLE,STABLE OFFLINE OFFLINE rac2 IDLE,STABLE ora.mgmt.ghchkpt.acfs OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.net1.network ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.ons ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.proxy_advm ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- 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.MGMTLSNR 1 ONLINE ONLINE rac1 169.254.23.170 192.1 68.5.111,STABLE ora.asm 1 ONLINE ONLINE rac1 Started,STABLE 2 ONLINE ONLINE rac2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE rac1 STABLE ora.mgmtdb 1 ONLINE ONLINE rac1 Open,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/18.3.0 /db_1,STABLE 2 ONLINE ONLINE rac2 Open,HOME=/u01/app/o racle/product/18.3.0 /db_1,STABLE ora.rhpserver 1 OFFLINE OFFLINE 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 --------------------------------------------------------------------------------
2. RAC에서 RAC One Node로 변환
A) 2번 노드 인스턴스 정지 및 제거
srvctl stop instance -d racdb -i racdb_2 srvctl remove instance -d racdb -i racdb_2 crsctl stat res -t
[racdb2:/home/oracle]> srvctl stop instance -d racdb -i racdb_2 [racdb2:/home/oracle]> srvctl remove instance -d racdb -i racdb_2 racdb 데이터베이스에서 인스턴스를 제거하겠습니까? (y/[n]) y [racdb2:/home/oracle]> crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.CRS.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.DATA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.FRA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.LISTENER.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.MGMT.GHCHKPT.advm OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.MGMT.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.chad ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.helper OFFLINE OFFLINE rac1 IDLE,STABLE OFFLINE OFFLINE rac2 IDLE,STABLE ora.mgmt.ghchkpt.acfs OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.net1.network ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.ons ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.proxy_advm ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- 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.MGMTLSNR 1 ONLINE ONLINE rac1 169.254.23.170 192.1 68.5.111,STABLE ora.asm 1 ONLINE ONLINE rac1 Started,STABLE 2 ONLINE ONLINE rac2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE rac1 STABLE ora.mgmtdb 1 ONLINE ONLINE rac1 Open,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/18.3.0 /db_1,STABLE ora.rhpserver 1 OFFLINE OFFLINE 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 --------------------------------------------------------------------------------
B) 서비스 생성 및 기동
srvctl add service -d racdb -s rac -r racdb_1 srvctl start service -d racdb -s rac
[racdb1:/home/oracle]> srvctl add service -d racdb -s rac -r racdb_1 [racdb1:/home/oracle]> srvctl start service -d racdb -s rac
C) RAC One Node로 변환
srvctl convert database -d racdb -c RACONENODE -i racdb_1 crsctl stat res -t
[racdb1:/home/oracle]> srvctl convert database -d racdb -c RACONENODE -i racdb_1 [racdb1:/home/oracle]> crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.CRS.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.DATA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.FRA.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.LISTENER.lsnr ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.MGMT.GHCHKPT.advm OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.MGMT.dg ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.chad ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.helper OFFLINE OFFLINE rac1 IDLE,STABLE OFFLINE OFFLINE rac2 IDLE,STABLE ora.mgmt.ghchkpt.acfs OFFLINE OFFLINE rac1 STABLE OFFLINE OFFLINE rac2 STABLE ora.net1.network ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.ons ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE ora.proxy_advm ONLINE ONLINE rac1 STABLE ONLINE ONLINE rac2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- 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.MGMTLSNR 1 ONLINE ONLINE rac1 169.254.23.170 192.1 68.5.111,STABLE ora.asm 1 ONLINE ONLINE rac1 Started,STABLE 2 ONLINE ONLINE rac2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE rac1 STABLE ora.mgmtdb 1 ONLINE ONLINE rac1 Open,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/18.3.0 /db_1,STABLE ora.racdb.rac.svc 1 ONLINE ONLINE rac1 STABLE ora.rhpserver 1 OFFLINE OFFLINE 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 --------------------------------------------------------------------------------
{}