1. 2번 노드 구성
A) 2번 노드 가상 머신 만들기
.
가상 머신 2번 노드를 만들기 위해 VirtualBox에서 ‘새로 만들기’를 클릭합니다.
가상 머신의 이름을 "rac2"로 정하고, 1번 노드와 동일한 경로를 머신 폴더로 지정합니다.
해당 디렉토리 아래에 rac2라는 디렉토리가 생성되고, 디렉토리 안에 가상 머신 관련 파일들이 저장됩니다.
OS의 종류는 'Linux'로 하고 설치될 버전은 'Oracle (64-bit)'를 선택한 후 <다음>을 클릭합니다.
메모리 크기는 1번 노드와 동일하게 10240MB로 선택한 후 <다음>을 클릭합니다.
B) 1번 노드 VM 복제
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 네트워크의 인터페이스입니다.
ip link set <old NIC alias> down ip link set <old NIC alias> name <new NIC alias> ip link set <new NIC alias> up mv /etc/sysconfig/network-scripts/ifcfg-<old NIC alias> /etc/sysconfig/network-scripts/ifcfg-<new NIC alias> sed -ire "s/NAME=\"<old NIC alias>\"/NAME=\"<new NIC alias>\"/" /etc/sysconfig/network-scripts/ifcfg-<new NIC alias> sed -ire "s/DEVICE=\"<old NIC alias>\"/NAME=\"<new NIC alias>\"/" /etc/sysconfig/network-scripts/ifcfg-<new NIC alias>
만약 2번 VM의 NIC(Network Interface Card)의 alias가 1번 노드의 alias와 일치하지 않을 경우, grid 검증 과정에서 오류가 발생합니다.
좌측의 명령어로 alias를 1번과 동일하게 변경하여 해결할 수 있습니다.
추가적으로 NIC별 UUID 확인이 필요할 경우 다음의 명령어를 사용합니다.
nmcli connection
이더넷 enp0s3의 IPv4 항목에서 주소를 "10.0.1.102"(2번 노드의 Public 네트워크 IP)로 변경한 후 <적용>을 클릭합니다.
리눅스 버전에 따라 네트워크 정보가 초기화되어 있을 수 있습니다.
그럴 때는 아래의 정보와 같이 입력합니다.
항목 | 입력값 | 비고 |
---|---|---|
주소 | 10.0.1.102 | 1번 노드 Public IP 주소 |
네트마스크 | 24 | 서브넷 마스크 값으로 255.255.255.0 사용 가능 |
게이트웨이 | 10.0.1.1 | Public 망의 게이트웨이 |
네임서버(DNS) | 127.0.0.1 | dnsmasq를 사용할 경우 loopback IP 사용 |
검색 도메인 | localdomain | 로컬 도메인 정보 입력 |
이더넷 enp0s8의 IPv4 항목에서 주소를 "10.0.5.102"(2번 노드의 Private 네트워크 IP)로 변경한 후 <적용>을 클릭합니다.
마찬가지로 네트워크 정보가 초기화 되었을 경우, 아래와 같이 입력합니다.
항목 | 입력값 | 비고 |
---|---|---|
주소 | 10.0.5.101 | 1번 노드 Private IP 주소 |
네트마스크 | 24 | 서브넷 마스크 값으로 255.255.255.0 사용 가능 |
각 이더넷 인터페이스를 껏다가 키면 변경된 설정이 적용됩니다.
또는 명령 프롬프트에서 아래 명령을 수행합니다.
systemctl restart network
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) 호스트명 변경
hostnamectl status hostnamectl set-hostname rac2 hostnamectl status
[root@rac1 ~]# hostnamectl status Static hostname: rac1 Icon name: computer-vm Chassis: vm Machine ID: 5554cd8ab5124283be4afd144783a884 Boot ID: dc642dbe4f44426f82469fbda8e61f27 Virtualization: kvm Operating System: Oracle Linux Server 7.6 CPE OS Name: cpe:/o:oracle:linux:7:6:server Kernel: Linux 4.14.35-1818.3.3.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: 5554cd8ab5124283be4afd144783a884 Boot ID: dc642dbe4f44426f82469fbda8e61f27 Virtualization: kvm Operating System: Oracle Linux Server 7.6 CPE OS Name: cpe:/o:oracle:linux:7:6:server Kernel: Linux 4.14.35-1818.3.3.el7uek.x86_64 Architecture: x86-64
2번 노드의 호스트 명은 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번 노드는 텍스트 모드로 실행되도록 수정합니다.
{}
F) 사용자 환경 변수 변경
export ORACLE_HOSTNAME=rac2 export ORACLE_SID=racdb2
[root@rac2 ~]# cat ~oracle/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin export PATH export TMP=/tmp export TMPDIR=$TMP export EDITOR=vi export ORACLE_HOSTNAME=rac2 # 호스트명에 맞게 변경 export ORACLE_UNQNAME=racdb export ORACLE_BASE=/u01/app/oracle export GI_HOME=/u01/app/19.3.0/grid export DB_HOME=$ORACLE_BASE/product/19.3.0/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:$GI_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 유저의 환경 설정을 2번 노드에 맞게 수정합니다.
alias gi_env='export ORACLE_HOME=$GI_HOME;export ORACLE_SID=+ASM2;export ORACLE_HOME=$GI_HOME;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GI_HOME/bin:$BASE_PATH' alias db_env='export ORACLE_HOME=$DB_HOME;export ORACLE_SID=racdb2;export ORACLE_HOME=$DB_HOME;export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GI_HOME/bin:$BASE_PATH'
aslias 설정의 ORACLE_SID 정보도 2번 노드에 맞게 수정합니다.
{}
{}