1. 2번 노드 구성

A) 2번 노드 가상 머신 만들기

.

가상 머신 2번 노드를 만들기 위해 VirtualBox에서 ‘새로 만들기’를 클릭합니다.

가상 머신의 이름을 "rac2"로 정하고, 1번 노드와 동일한 경로를 머신 폴더로 지정합니다.

해당 디렉토리 아래에 rac2라는 디렉토리가 생성되고, 디렉토리 안에 가상 머신 관련 파일들이 저장됩니다.

OS의 종류는 'Linux'로 하고 설치될 버전은 'Oracle (64-bit)'를 선택한 후 <다음>을 클릭합니다.

메모리 크기는 1번 노드와 동일하게 10240MB로 선택한 후 <다음>을 클릭합니다.

B) 1번 노드 VM 복제

2번 노드 가상 디스크 이미지 복제
vboxmanage clonemedium disk .\rac1.vdi ..\rac2\rac2.vdi
PS D:\VM\rac1> vboxmanage clonemedium disk .\rac1.vdi ..\rac2\rac2.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone medium created in format 'VDI'. UUID: 28c8742c-e783-4dca-b95c-5919bfd1257e

1번 노드가 정지된 상태에서 1번 노드의 복제본을 rac2 디렉토리에 저장합니다.

1번 노드의 UUID값과 다른 이미지가 생성되도록 반드시 VirtualBox에서 제공하는 방식으로 복제합니다.

하드 디스크는 '기존의 가상 하드 디스크 파일 사용'을 선택합니다.

그리고 방금 복제한 가상 하드 디스크 파일을 선택하기 위해 폴더 모양의 아이콘을 클릭합니다.

vboxmanage 명령으로 디스크를 복제했다면, Not Attatched 항목에 rac2.vdi 파일이 존재합니다.

만약 목록에 없다면 <추가> 버튼을 클릭하여 복제한 이미지를 찾아 불러오면 됩니다.

rac2.vdi 파일을 선택한 후 <선택> 버튼을 클릭합니다.

<만들기>를 클릭하면, 지금까지 선택한 환경에 맞게 가상 머신이 생성됩니다.

C) 2번 노드 VM 환경 설정

기본적으로 생성된 가상 머신을 RAC 환경에 맞게 변경해야 하므로, 2번 노드를 선택하고 <설정>을 클릭합니다.

부팅 순서에서 플로피 디스크를 해제합니다.

1번 노드와 동일한 순서로 공유 디스크를 추가시켜 줍니다.

반드시 같은 순서대로 SATA 컨트롤러에 연결시켜야 합니다.

오디오는 사용하지 않을 것이므로 '오디오 사용하기'를 해제합니다.

어댑터 1의 네트워크 설정을 1번 노드와 동일하게 구성합니다.

본인이 사용할 네트워크 환경에 맞게 설정하면 됩니다.

RAC 노드간의 통신을 위해 어댑터 2를 활성화시킵니다.

어댑터 2번 항목에 가서 '네트워크 어댑터 사용하기'를 체크하고, 1번 노드와 동일하게 '호스트 전용 어댑터'로 구성합니다.

네트워크 구성까지 완료되었으면 <확인>을 클릭해서 변경한 설정 값을 저장하고, 가상머신을 기동합니다.

1번 노드와 동일하게 공유 폴더 기능을 설정합니다.

공유 폴더를 설정할 경우, 호스트 서버에 저장된 설치 파일을 업로드 없이 바로 사용할 수 있습니다.

D) 네트워크 설정 변경

네트워크 설정을 변경하기 위해 root 계정으로 접속한 후에 '프로그램' > '시스템 도구' > '설정'을 클릭합니다.

네트워크 항목으로 이동한 후에 각 이더넷 항목에 톱니바퀴 모양의 아이콘을 클릭하여 설정을 변경합니다.

참고로 VirtualBox를 기준으로 했을 떄, 이더넷 enp0s3은 Public 네트워크이고 enp0s8은 Private 네트워크의 인터페이스입니다.

이더넷 enp0s3의 IPv4 항목에서 주소를 "10.0.1.102"(2번 노드의 Public 네트워크 IP)로 변경한 후 <적용>을 클릭합니다.

리눅스 버전에 따라 네트워크 정보가 초기화되어 있을 수 있습니다.

그럴 때는 아래의 정보와 같이 입력합니다.

항목

입력값

비고

주소10.0.1.1021번 노드 Public IP 주소
네트마스크24서브넷 마스크 값으로  255.255.255.0 사용 가능
게이트웨이10.0.1.1Public 망의 게이트웨이
네임서버(DNS)127.0.0.1dnsmasq를 사용할 경우 loopback IP 사용
검색 도메인localdomain로컬 도메인 정보 입력

이더넷 enp0s8의 IPv4 항목에서 주소를 "10.0.5.102"(2번 노드의 Private 네트워크 IP)로 변경한 후 <적용>을 클릭합니다.

마찬가지로 네트워크 정보가 초기화 되었을 경우, 아래와 같이 입력합니다.

항목

입력값

비고

주소10.0.5.1011번 노드 Private IP 주소
네트마스크24서브넷 마스크 값으로  255.255.255.0 사용 가능

각 이더넷 인터페이스를 껏다가 키면 변경된 설정이 적용됩니다.

또는 명령 프롬프트에서 아래 명령을 수행합니다.

root 유저로 네트워크 재기동 수행
systemctl restart network
2번 노드 IP 주소 변경하기
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
[root@rac1 ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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 group default qlen 1000
    link/ether 08:00:27:72:b8:d8 brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.101/24 brd 10.0.1.255 scope global noprefixroute enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe72:b8d8/64 scope link 
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:fd:6d:a9 brd ff:ff:ff:ff:ff:ff
    inet 10.0.5.101/24 brd 10.0.5.255 scope global noprefixroute enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::cd39:da9a:86ab:40a8/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

[root@rac1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
... << 생략 >> ...
IPADDR=10.0.1.102
... << 생략 >> ...

[root@rac1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
... << 생략 >> ...
IPADDR=10.0.5.102
... << 생략 >> ...

[root@rac1 ~]# systemctl restart network

[root@rac1 ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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 group default qlen 1000
    link/ether 08:00:27:72:b8:d8 brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.102/24 brd 10.0.1.255 scope global noprefixroute enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe72:b8d8/64 scope link 
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:fd:6d:a9 brd ff:ff:ff:ff:ff:ff
    inet 10.0.5.102/24 brd 10.0.5.255 scope global noprefixroute enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::cd39:da9a:86ab:40a8/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

위의 GUI 방식보다 간단하게 CLI 모드에서 vi 편집기를 사용하여 IP를 수정할 수도 있습니다.

다만 Public Private 이더넷을 혼동하여 잘못 설정할  있으므로 주의가 필요합니다.

E) 호스트명 변경

2번 노드 hostname 변경
hostnamectl status
hostnamectl set-hostname node2
hostnamectl status
[root@node1 ~]# hostnamectl status
   Static hostname: node1
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 173acec393894224b4fb48c8781eab8a
           Boot ID: 14c258e655c845a2880fb1e88fa7b014
    Virtualization: oracle
  Operating System: Oracle Linux Server 8.2
       CPE OS Name: cpe:/o:oracle:linux:8:2:server
            Kernel: Linux 5.4.17-2011.1.2.el8uek.x86_64
      Architecture: x86-64

[root@node1 ~]# hostnamectl set-hostname node2

[root@node1 ~]# hostnamectl status
   Static hostname: node2
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 173acec393894224b4fb48c8781eab8a
           Boot ID: 14c258e655c845a2880fb1e88fa7b014
    Virtualization: oracle
  Operating System: Oracle Linux Server 8.2
       CPE OS Name: cpe:/o:oracle:linux:8:2:server
            Kernel: Linux 5.4.17-2011.1.2.el8uek.x86_64
      Architecture: x86-64

2번 노드의 호스트 명은 CLI 모드에서 간단한 명령어로 변경할 수 있습니다.

2번 노드 CLI 모드로 변경
systemctl set-default multi-user.target
[root@node2 ~]# systemctl set-default multi-user.target
Removed /etc/systemd/system/default.target.
Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/multi-user.target.

설치 과정 중에 리소스를 절약하기 위해 2번 노드는 텍스트 모드로 실행되도록 수정합니다.

F) 사용자 환경 변수 변경

vi ~oracle/.bash_profile로 2번 노드 oracle 프로필 변경
export ORACLE_HOSTNAME=rac2
export ORACLE_SID=racdb2
[root@node2 ~]# cat ~oracle/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

export TMP=/tmp
export TMPDIR=$TMP
export EDITOR=vi
export ORACLE_HOSTNAME=node2            # 호스트명에 맞게 변경
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/19c/grid
export DB_HOME=$ORACLE_BASE/product/19c/db_1
export ORACLE_HOME=$DB_HOME
export ORACLE_SID=racdb2                # 2번 노드 racdb2
export ORACLE_TERM=xterm
export BASE_PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=AMERICAN_KOREA.AL32UTF8
export CV_ASSUME_DISTID=OEL7
PS1='[$ORACLE_SID:$PWD]> '

oracle 유저의 환경 설정을 2번 노드에 맞게 수정합니다.

vi ~oracle/.bashrc 2번 노드의 alias 설정 변경
alias grid_env='export ORACLE_HOME=$GRID_HOME;export ORACLE_SID=+ASM2;export PATH=$ORACLE_HOME/bin:$BASE_PATH'
alias db_env='export ORACLE_HOME=$DB_HOME;export ORACLE_SID=racdb2;export PATH=$ORACLE_HOME/bin:$BASE_PATH'
[root@node2 ~]# cat ~oracle/.bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific environment
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
export PATH

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions
alias grid_env='export ORACLE_HOME=$GRID_HOME;export ORACLE_SID=+ASM2;export PATH=$ORACLE_HOME/bin:$BASE_PATH'
alias db_env='export ORACLE_HOME=$DB_HOME;export ORACLE_SID=racdb2;export PATH=$ORACLE_HOME/bin:$BASE_PATH'

aslias 설정의 ORACLE_SID 정보도 2번 노드에 맞게 수정합니다.


  • 레이블 없음