Oracle 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 수정 (root)
# 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
shutdown crs on all nodes (root)
# crsctl stop crs # crsctl disable crs
OS 에서 private IP 구성
$ ifconfig -a $ ping <private hostname>
CRS restart (root)
# crsctl enable crs # crsctl start crs
기존 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 수정 (root)
# srvctl modify nodeapps -n rac1 -A rac1-nvip/255.255.255.0/eth1
vip 변경확인
$ srvctl config nodeapps -a
Scan name or Scan VIP 변경
사전에 모든 node의 hosts file에서 scan name 변경합니다
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
최신 댓글