본문 바로가기

IT관련

서버 1개에 Oracle 19c RAC 설치하기 (Install Grid Infrastructure)

오라클 RAC 설치를 할때는 보통 2개 이상의 서버가 필요한데, 1개의 서버만 가지고도 설치는 가능합니다.

1개의 서버에만 설치하는 것이라도 ASM 용 디스크로 사용할 디스크 1개는 추가로 할당해주고, 네트워크도 서비스용 IP와 인터커넥트용 Private IP 각각 1개씩 할당해줍니다.

 

원래 RAC 설치할때는 2개 서버가 1개의 스토리지를 공유해야 하기 때문에, ASM용 스토리지 저장소를 추가할때 "공유가능" 모드로 설정해야 하는데, 여기서는 1개서버만 사용할 거라 그냥 "일반" 으로 놔뒀습니다.

 

네트워크는 "어댑터 1" 은 "어댑터에 브리지" 로 설정하고, "어댑터 2" 는 "호스트 전용 어댑터" 로 설정합니다.

 

 

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 을 붙여서 작명합니다. 어디서 가져오는 것 아닙니다.

 

 

원래 RAC 설치할 때는 2개 이상의 서버에 설치하는 것이기 때문에 아래화면에서 [Add...] 버튼 눌러서 서버를 추가해주고, [SSH connectivity...] 버튼 눌러서 서버간에 passwordless ssh 접속이 가능하게 해줘야 합니다.

저의 경우는 1서버에만 설치할 것이기 때문에 [Next >] 버튼 눌러서 다음으로 넘어갑니다.

 

 

여기에서 Public NW (서비스용 네트워크) 와 Private NW (인터커넥트용 네트워크) 를 선택해줍니다.

Private NW 은 "ASM & Private" 을 선택해줍니다.

 

 

아래 화면은 스토리지를 ASM 을 쓸건지 NAS 같은 공유 스토리지를 사용할 것인지를 지정합니다.

저는 ASM 을 사용할 거라 첫번째 것을 선택합니다.

 

 

GIMR 이라는 리파지토리를 만들것인지 지정합니다. 보통은 No 로 선택하고 넘어가도 됩니다.

Oracle 의 대량 패치/배포 기능인 FPP(Fleet Patch & Provisioning) 서버로 사용하고자 하는 경우에는 이게 반드시 설치되어 있어야 합니다.

 

 

앞에서 GIMR 을 설치하라고 선택했는데, 이 GIMR 리파지토리를 별도의 ASM 디스크그룹에 만들것인지, 그냥 ASM 인스턴스와 같은 디스크그룹을 사용할 것인지를 정할 수 있습니다.

그냥 No 선택하고 다음~

 

 

이 포스트에는 적지는 않았지만, 사전준비 과정에서 ASM Storage 를 준비합니다.

아래 화면에서는 미리 만들어둔 ASM DG(Disk Group)을 선택해줍니다. 여기에서 선택한 DG 에 ASM Instance 에 필요한 다양한 파일들이 생성됩니다.

미리 생성한 ASM DG 가 아무것도 안보일 수 있습니다. Disk Discovery Path 가 미리 생성한 실제 ASM Disk 위치와 맞지 않는 경우 이렇게 됩니다.

그때는 [Change Discovery Path] 버튼을 눌러서 실제 ASM 디스크들이 존재하는 위치로 맞춰주면 됩니다.

 

 

ASM 디스크 위치를 제대로 맞춰주면 아래처럼 미리 만들어둔 ASM Disk 들이 보입니다.

여기서 하나를 선택해주면 됩니다.

 

 

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 들을 만들게 되어 있습니다.

https://docs.oracle.com/en/database/oracle/oracle-database/19/cwlin/creating-operating-system-privileges-groups.html#GUID-164A7218-166D-4B58-9A86-88149E8FCB83

ASM 인스턴스를 위해서는 asmadmin, asmdba, asmoper 등을 만들도록 권고하고 있습니다.

저는 귀찮아서 dba, oinstall 달랑 2개만 만들어서 설치했습니다. 권고사항이라 상관없습니다.

저처럼 하면, 아래처럼 [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] 체크박스에 체크하고 넘어가면 됩니다.

 

 

아래는 최종 검토화면 입니다. [Install] 버튼을 눌러서 설치를 시작합니다.

 

 

중간에 아래와 같은 메시지가 뜨는데, 아까 root 유저 패스워드 넣어준거 그걸로 정말로 돌려도 되냐고 묻는 화면입니다.

Yes 눌러서 넘어갑니다.

 

 

마지막에 아래와 같은 에러메세지가 뜹니다.

 

 

팝업창의 [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 설치화면을 종료합니다.

 

 

터미널창에서 grid 유저로 crsctl stat res -t  커맨드를 실행해서 crs 관련 서비스들이 정상적으로 기동되었는지 확인합니다.

 

 

서비스가 정상적으로 잘 구동되었는지 확인하는 방법은 위에 "Target" 항목에 상태와 "State" 항목의 상태가 일치하는지 여부로 확인할 수 있습니다.

Target 이 ONLINE 으로 되어 있는데, State 가 OFFLINE 으로 되어 있으면 뭔가 문제가 있는 것입니다.

저는 1개 서버에만 설치했기 때문에 Server 항목은 모두 fpps1 만 나옵니다. 원래 2노드 RAC 였다면 fpps1 과 fpps2 가 번갈아서 함께 나옵니다.