VirtualBox 를 이용해서 오라클 데이터베이스 이중화 솔루션 RAC 를 설치하는 핸즈온을 해보겠습니다.
먼저 버츄얼 박스에 게스트서버 2대를 만들어 둡니다. (저는 Oracle Linux 7 버전을 사용해서 만들었습니다.)
저장소 부분에 ASM 디스크 한개를 "공유 가능" 스토리지로 만들어서 추가해줬습니다.
1개의 공유가능 스토리지를 2대 서버 모두에 추가해야 합니다.
네트워크의 경우에도 2개를 세팅해놨습니다.
한개는 Public IP Address (서비스용 IP) 로 사용할 용도이고,
다른 한개는 Private IP Address (인터커넥트용 IP) 로 사용합니다.
Oracle 19c Grid Infrasturucture 설치 미디어는 아래 사이트에서 다운로드 받습니다.
https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html
아래는 사전 준비가 된 상태에서 설치를 진행하는 과정만 담았습니다.
Oracle RAC 설치하려면 OS 상에서 사전에 세팅해줘야 하는 것들이 꽤 많습니다. OS 커널 파라메타, OS 라이브러리 패키지 설치 등등... 이러한 준비 사항은 아래 19c Grid Infrastructure 설치 매뉴얼을 참조하시기 바랍니다.
https://docs.oracle.com/en/database/oracle/oracle-database/19/cwlin/index.html
앞에서 다운로드 받은 설치미디어 파일 (LINUX_X64_193000_grid_home.zip) 파일을 서버로 ftp 복사한 후에, Grid Infrastructure 의 Oracle Home 디렉토리가 될 위치에 압축을 풀어줍니다.
예전에는 아무 위치에 압축을 푼다음에 runInstaller 실행시키면 파일을 Oracle Home 으로 복사하면서 설치가 되었는데, 이젠 바뀌었습니다. Oracle Home 에 압축파일을 풀어주고, 거기서 바로 gridSetup.sh 을 실행시키면 파일복사 없이 바로 설치하는 형태입니다.
위와같이 MobaXTerm 같은 X-Window 를 지원하는 툴에서 gridSetup.sh 을 실행시키면, 아래처럼 Java GUI 설치화면이 뜹니다.
아래 화면에서 RAC 설치할 때는 첫번째 옵션을 선택합니다.
두번째 화면에서 "Configure an Oracle Standalone Cluster" 를 선택합니다.
Cluster 명과 Scan Listener 이름을 입력합니다.
서버명에 -cluster, -scan 을 붙여서 작명합니다. 어디서 가져오는 것 아닙니다.
※ cluster 명은 아무 이름이나 상관없는데, scan 이름은 /etc/hosts 파일이나 DNS 서버에 미리 등록되어 있어야 합니다.
현재 1번서버(ol7r1) 에서 실행하고 있기때문에 해당 서버만 나오고 있습니다.
[Add...] 버튼 눌러서 2번째 서버를 추가해줍니다.
[SSH connectivity...] 버튼 눌러서 서버간에 passwordless ssh 접속이 가능하게 해줘야 합니다.
아래와 같이 oracle 유저의 패스워드를 입력하고, [Setup] 버튼을 눌러주면 됩니다.
Passwordless SSH 설정에 성공하면, 아래와 같은 메시지가 나옵니다.
여기에서 Public NW (서비스용 네트워크) 와 Private NW (인터커넥트용 네트워크) 를 선택해줍니다.
Private NW 은 "ASM & Private" 을 선택해줍니다.
아래 화면은 스토리지를 ASM 을 쓸건지 NAS 같은 공유 스토리지를 사용할 것인지를 지정합니다.
저는 ASM 을 사용할 거라 첫번째 것을 선택합니다.
GIMR 이라는 리파지토리를 만들것인지 지정합니다. 보통은 No 로 선택하고 넘어가도 됩니다.
Oracle 의 대량 패치/배포 기능인 FPP(Fleet Patch & Provisioning) 서버로 사용하고자 하는 경우에는 이게 반드시 설치되어 있어야 합니다.
이 포스트에는 적지는 않았지만, 사전준비 과정에서 ASM Storage 를 준비합니다.
아래 화면에서는 미리 만들어둔 ASM DG(Disk Group)을 선택해줍니다. 여기에서 선택한 DG 에 ASM Instance 에 필요한 다양한 파일들이 생성됩니다.
미리 생성한 ASM DG 가 아무것도 안보일 수 있습니다. Disk Discovery Path 가 미리 생성한 실제 ASM Disk 위치와 맞지 않는 경우 이렇게 됩니다.
그때는 [Change Discovery Path] 버튼을 눌러서 실제 ASM 디스크들이 존재하는 위치로 맞춰주면 됩니다.
Disk Discovery Path 를 잘 맞춰주면, 아래처럼 미리 만들어둔 ASM Disk 가 나타납니다.
저는 앞서 VirtualBox 에서 ASM 용으로 Disk 1개만 준비했기 때문에 "External" 을 선택합니다.
Disk 2개를 가지고 이중화하는 경우는 Normal, Disk 3개를 가지고 삼중화하는 경우는 High 를 선택합니다.
ASM Instance 는 ASM 스토리지에 대한 메타데이터를 저장하는 Oracle Database Instance 입니다.
이것도 엄연히 Oracle Database 이기 때문에 관리자 계정이 존재합니다(sys, asmnmp)
아래는 이 패스워드를 설정하는 화면입니다.
패스워드를 너무 심플하게 설정하면, [INS-30011] The password entered does not conform to the Oracle recommended standards. 에러가 발생합니다.
그냥 무시하고, Yes 를 눌러서 넘어갑니다.
위에 IPMI 는 Skip 하고 넘어가고, 아래 EM 도 별도로 설치해둔 EM Cloud Control 이 있는 경우 지정하는 건데, 없으니까 Skip 합니다.
Grid Infrastructure 설치 매뉴얼에 보면 사전 준비사항으로 dba, oinstall 등의 OS group 들을 만들게 되어 있습니다.
ASM 인스턴스를 위해서는 asmadmin, asmdba, asmoper 등을 만들도록 권고하고 있습니다.
저는 귀찮아서 dba 그룹 달랑 1개만 만들어서 설치했습니다. 권고사항이라 상관없습니다.
저처럼 하면, 아래처럼 [INS-41808] Possible invalid choice for OSASM Group. 경고가 뜨지만 무시하고 Yes 버튼을 눌러서 넘어갑니다.
Oracle Base 디렉토리를 지정해주고, 다음~
Oracle Inventory 위치를 지정하고, 다음~
오라클 SW 를 설치할 때마다 설치관련 정보를 여기 Inventory 디렉토리에 기록하게 됩니다.
옛날에는 Oracle SW 설치하고 나면, root.sh 이라는 스크립트를 수동으로 root 유저에서 돌려줘야 했었는데,
이걸 아래처럼 지정함으로써 네가 알아서 자동으로 돌리라고 설정할 수 있습니다.
당연히 root 패스워드를 알려줘야 알아서 돌리겠죠?
설치가 잘 될 것인지 체크하는 화면입니다.
아래처럼 OS Kernel Parameter 가 잘못되었다거나 패키지가 일부 설치 안된게 있다고 알려줍니다.
수정하고 [Check Again] 해주거나, 또는 아래처럼 그닥 별거 아니라고 판단되는 경우는 [Ignore All] 체크박스에 체크하고 넘어가면 됩니다.
"Ignore All" 선택해서 넘어가면, [INS-13016] 메시지가 나옵니다. 그냥 무시하고 [Yes] 버튼 눌러서 넘어가면 됩니다.
물론 심각한 항목인 경우는 설치는 어떻게 되더라도 나중에 실행할 때 문제가 생길 수도 있습니다.
아래는 최종 검토화면 입니다. [Install] 버튼을 눌러서 설치를 시작합니다.
중간에 아래와 같은 메시지가 뜨는데, 아까 root 유저 패스워드 넣어준거 그걸로 정말로 돌려도 되냐고 묻는 화면입니다.
Yes 눌러서 넘어갑니다.
마지막에 아래와 같이 [INS-20802] 에러메세지가 뜹니다.
팝업창의 [Details] 버튼을 누르면 에러 로그 위치가 나오고, 메인 화면에 있는 [Details] 버튼을 누르면 아래처럼 바로 에러내용을 확인할 수 있습니다.
SCAN IP 로 3개를 권고하고 있는데, 1개의 IP만 지정되어 있어서 에러가 났습니다.
PRVG-11368 : A SCAN is recommended to resolve to "3" or more IP addresses, ...
이건 권고사항이라 그냥 무시하고 넘어갑니다.
위에서 발생한 에러 외에 나머지는 정상적으로 모두 성공했습니다. [Next >] 눌러서 다음으로 넘어갑니다.
일부 Fail 때문에 아래 경고 메시지 나오는데, 무시하고 [Yes] 눌러서 넘어갑니다.
최종화면입니다. [Close] 버튼 눌러서 GUI 설치화면을 종료합니다.
터미널창에서 crsctl stat res -t 커맨드를 실행해서 crs 관련 서비스들이 정상적으로 기동되었는지 확인합니다.
서비스가 정상적으로 잘 구동되었는지 확인하는 방법은 위에 "Target" 항목에 상태와 "State" 항목의 상태가 일치하는지 여부로 확인할 수 있습니다.
Target 이 ONLINE 으로 되어 있는데, State 가 OFFLINE 으로 되어 있으면 뭔가 문제가 있는 것입니다.
2개의 서버 (ol7r1, ol7r2) 에 asm 인스턴스 및 vip 등이 제대로 잘 떠 있는것을 확인할 수 있습니다.
여기까지 RAC 설치를 위한 Grid Infrastructure 를 설치 했습니다.
이제 이 위에 Database 만 설치해서 운영하면 됩니다. 아래 링크에 설치하는 화면이 있습니다.
아래 링크에서는 Single DB 설치하는 화면인데, Step2 에서 "Single instance database installation" 을 선택하지 말고, "Oracle Real Application Clusters database installation" 을 선택해서 진행하면 RAC DB가 설치됩니다.
>> Oracle Database Software 19c 설치(Install) 절차/화면
앞에서는 Grid Infrastructure S/W 를 설치하면서 +DATA DG 를 생성하고 마운트 했습니다.
+RECO DG 를 추가로 생성하고자 하는 경우는 asmca 툴을 이용할 수 있습니다.
>> 오라클 asmca 로 ASM 디스크 Disk Group 생성
아래는 21c RAC DB 설치 영상입니다.
'IT관련' 카테고리의 다른 글
Oracle RAC One Node vs Oracle Restart 차이점 (0) | 2021.09.16 |
---|---|
오라클 RAC One Node Database 설치하기 (Oracle HA DB) (0) | 2021.09.16 |
Jmeter 에서 Oracle Database 연결 사용방법 (무료 부하테스트툴) (0) | 2021.09.14 |
오라클 RMAN 블록 손상 (Block Corruption) 복구 (ORA-01578, ORA-01110) (5) | 2021.09.11 |
오라클 ORA-00060 데드락(Deadlock) 에러 확인/조치 방법 (0) | 2021.08.15 |