RAC에서 IP를 변경하는 작업

RAC DB의 데이터 마이그레이션 혹은 기타 이유로 인해서 종종 IP가 변경 되는 경우가 있습니다.

RAC는 싱글 인스턴스와 다르게 클러스터 안에 들어 있는 IP정보를 변경해 줘야지만 사용이 가능 합니다.


RAC에 등록된 IP 확인


OS 등록되어있는 network information 확인


$ cat /etc/hosts

$ ifconfig
$ netstat -ni

OCR 에 등록 되어있는 network information 확인

$ $ORA_CRS_HOME/bin/oifcfg getif
eth0 192.168.118.0 global public
eth1 192.168.184.0 global cluster_interconnect


VIP 확인

$ srvctl config nodeapps -n <node name> -a


 * 이 명령은 hosts 파일에 등록된 정보를 보여주기 때문에 실제로는 NIC에 nodeapps에 등록된 정보가 올라온다.

srvctl 로 변경 내용을 반드시 적용해줘야만 올바른 VIP가 등록된다.


hosts 파일 변경

변경하고자 하는 ip로 먼저 바꿔준다.

# vi /etc/hosts



10g R2 RAC IP 변경


1. Public Network Change


변경하는 IP가 기존에 사용하던 IP와 대역대가 같다면 변경해 줄 필요 없음.


기존 정보 삭제

$ORA_CRS_HOME/bin/oifcfg delif -global eth0

새로운 network 설정

$ORA_CRS_HOME/bin/oifcfg setif -global eth0/10.2.166.0:public



2. Private Network Change

ip 변경
$ ORA_CRS_HOME/bin/oifcfg delif -global eth1
$ ORA_CRS_HOME/bin/oifcfg setif -global eth1/192.168.184.0:cluster_interconnect



3. VIP 변경
 
$ srvctl config nodeapps -n <node name> -a

resources stop

$ srvctl stop asm -n <node_name>
$ srvctl stop instance -d <db_name> -i <inst_name>
$ srvctl stop nodeapps -n <node_name>

$ crs_stat -t ( vip offline 확인)


vip 수정

# srvctl modify nodeapps -n rac1 -A rac1-vip/255.255.255.0/eth0



11g R2  RAC IP 변경


1. Public Network Change

 * 10g와 같음


2. Private Network Change


grid user로 새로운 interface 추가

여기서
$ oifcfg setif -global eth3/192.168.0.0:cluster_interconnect
$ oifcfg getif

2. shutdown crs on all nodes  - root
# crsctl stop crs
# crsctl disable crs

3. OS 에서 private IP 구성
$ ifconfig -a
$ ping <private hostname>

4. CRS restart
# crsctl enable crs
# crsctl start crs

5. 기존 private interface 삭제
$ oifcfg delif -global eth0



3. VIP 변경


구성 확인 - grid user


resource stop

$ srvctl config nodeapps -a
$ srvctl stop instance -d <db_name> -n <node_name>
$ srvctl stop vip -n <node_name> -f
$ crs_stat -t (or $ crsctl stat res -t for 11gR2) (vip offline 확인)

vip 수정

# srvctl modify nodeapps -n rac1 -A rac1-nvip/255.255.255.0/eth1

vip 변경확인
$ srvctl config nodeapps -a



5. Scan name or Scan VIP 변경

사전에 모든 node의 hosts file에서 scan name 변경한다

1. grid user로 resource stop
$ $GRID_HOME/bin/srvctl stop scan_listener
$ $GRID_HOME/bin/srvctl stop scan


root user로 SCAN 수정

# $GRID_HOME/bin/crsctl modify type ora.scan_vip.type -attr "ATTRIBUTE=SCAN_NAME,DEFAULT_VALUE=pay-scan.us.oracle.com"

grid user로 resource start
$ $GRID_HOME/bin/srvctl start scan_listener

확인

$ $GRID_HOME/bin/srvctl config scan
$ $GRID_HOME/bin/srvctl config scan_listener



To change SCAN to be on second network

multiple network 환경에서 default로 scan 은 first public network로 구성되어 있다.


이 scan을 second public network로 구성하거나 다른 network로 구성하는 방법

ex) scan을 net1 -> net2
$ $GRID_HOME/bin/srvctl config network
Network exists: 1/10.1.0.0/255.255.255.128/eth3, type static
Network exists: 2/10.1.1.0/255.255.255.128/eth4, type static

1. grid user로 resource stop 후 scan_listener 제거
$ $GRID_HOME/bin/srvctl stop scan_listener
$ $GRID_HOME/bin/srvctl stop scan
$ $GRID_HOME/bin/srvctl remove scan_listener -f

2. root user로 scan 제거후 add
# $GRID_HOME/bin/srvctl remove scan -f
# $GRID_HOME/bin/srvctl add scan -n <scan-name> -k 2

3. grid user로 scan_listener 추가 및 resource start
$ $GRID_HOME/bin/srvctl add scan_listener -p <port>
$ $GRID_HOME/bin/srvctl start scan_listener



To modify SCAN listener port

1. grid user로 scan listener port 수정
$GRID_HOME/bin/srvctl modify scan_listener -p <new-SCAN-port>

2. grid user로 scan listener 재시작 및 새로운 포트 적용
$GRID_HOME/bin/srvctl stop scan_listener
$GRID_HOME/bin/srvctl start scan_listener