1. Database Relocate 작업
A) 작업 전 확인
root 나 oracle 유저로 수행합니다.
crsctl stat res -t srvctl status database -d racdb
[oracle@racdb1 ~]$ crsctl stat res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.CRS.dg ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.DATA.dg ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.LISTENER.lsnr ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.RECO.dg ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.asm ONLINE ONLINE rac1 Started ONLINE ONLINE rac2 Started ora.gsd OFFLINE OFFLINE rac1 OFFLINE OFFLINE rac2 ora.net1.network ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.ons ONLINE ONLINE rac1 ONLINE ONLINE rac2 -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE rac1 ora.cvu 1 ONLINE ONLINE rac1 ora.oc4j 1 ONLINE ONLINE rac1 ora.rac1.vip 1 ONLINE ONLINE rac1 ora.rac2.vip 1 ONLINE ONLINE rac2 ora.racdb.db 1 ONLINE ONLINE rac1 Open ora.racdb.rac.svc 1 ONLINE ONLINE rac1 ora.scan1.vip 1 ONLINE ONLINE rac1 [oracle@racdb1 ~]$ srvctl status database -d racdb racdb_1 인스턴스가 rac1 노드에서 실행 중임 온라인 재배치: INACTIVE
One Node RAC는 클러스터 내에서 단 하나의 인스턴스만 가동되는 형태로 운영됩니다.
여러가지 이유로 가동 중인 데이터베이스를 다른 서버로 재배치할 수 있습니다.
1번 노드에서 Open된 데이터베이스를 2번 노드로 재배치하는 작업을 진행합니다.
B) 2번 노드로 Relocate
root 나 oracle 유저로 수행합니다.
srvctl relocate database -d racdb -n rac2 -v
[oracle@racdb1 ~]$ srvctl relocate database -d racdb -n rac2 -v 두 개의 인스턴스에 대한 구성이 갱신되었습니다. racdb_2 인스턴스가 시작되었습니다. 서비스가 재배치되었습니다. 최대 30분 동안 racdb_1 인스턴스가 정지되기를 기다리는 중... racdb_1 인스턴스가 정지되었습니다. 하나의 인스턴스에 대한 구성이 갱신되었습니다.
srvctl 명령어의 relocate 옵션을 사용해서 racdb를 2번 노드로 재배치합니다.
재배치하는 과정을 상세히 보기 위해 v 옵션(verbose)을 사용하였습니다.
C) 2번 노드 Relocate 결과 확인
root 나 oracle 유저로 수행합니다.
srvctl status database -d racdb crsctl stat res -t
Relocate 작업 중이면 다음과 같이 출력됩니다.
[oracle@racdb2 ~]$ srvctl status database -d racdb racdb_1 인스턴스가 rac1 노드에서 실행 중임 온라인 재배치: ACTIVE 소스 인스턴스: rac1의 racdb_1 대상 인스턴스: rac2의 racdb_2
Relocate 작업이 완료되면 아래와 같이 출력됩니다.
[oracle@racdb2 ~]$ srvctl status database -d racdb racdb_2 인스턴스가 rac2 노드에서 실행 중임 온라인 재배치: INACTIVE [oracle@racdb2 ~]$ crsctl stat res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.CRS.dg ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.DATA.dg ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.LISTENER.lsnr ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.RECO.dg ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.asm ONLINE ONLINE rac1 Started ONLINE ONLINE rac2 Started ora.gsd OFFLINE OFFLINE rac1 OFFLINE OFFLINE rac2 ora.net1.network ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.ons ONLINE ONLINE rac1 ONLINE ONLINE rac2 -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE rac1 ora.cvu 1 ONLINE ONLINE rac1 ora.oc4j 1 ONLINE ONLINE rac1 ora.rac1.vip 1 ONLINE ONLINE rac1 ora.rac2.vip 1 ONLINE ONLINE rac2 ora.racdb.db 2 ONLINE ONLINE rac2 Open ora.racdb.rac.svc 1 ONLINE ONLINE rac2 ora.scan1.vip 1 ONLINE ONLINE rac1
1번 노드에 있던 racdb가 중지되고 2번 노드로 재배치된 것을 확인할 수 있습니다.
D) 1번 노드로 Relocate
root 나 oracle 유저로 수행합니다.
srvctl relocate database -d racdb -n rac1 -v
[oracle@racdb1 ~]$ srvctl relocate database -d racdb -n rac1 -v 두 개의 인스턴스에 대한 구성이 갱신되었습니다. racdb_1 인스턴스가 시작되었습니다. 서비스가 재배치되었습니다. 최대 30분 동안 racdb_2 인스턴스가 정지되기를 기다리는 중... racdb_2 인스턴스가 정지되었습니다. 하나의 인스턴스에 대한 구성이 갱신되었습니다.
srvctl 명령어를 사용해서 2번 노드의 데이터베이스를 다시 1번 노드로 재배치합니다.
해당 명령어는 클러스터가 동작하는 One Node RAC가 구성된 노드 어디에서든 수행할 수 있습니다.
E) 1번 노드 Relocate 결과 확인
root 나 oracle 유저로 수행합니다.
srvctl status database -d racdb crsctl stat res -t
Relocate 작업 중이면 다음과 같이 출력됩니다.
[oracle@racdb2 ~]$ srvctl status database -d racdb racdb_2 인스턴스가 rac2 노드에서 실행 중임 온라인 재배치: ACTIVE 소스 인스턴스: rac2의 racdb_2 대상 인스턴스: rac1의 racdb_1
Relocate 작업이 완료되면 아래와 같이 출력됩니다.
[oracle@racdb2 ~]$ srvctl status database -d racdb racdb_1 인스턴스가 rac1 노드에서 실행 중임 온라인 재배치: INACTIVE [oracle@racdb2 ~]$ crsctl stat res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.CRS.dg ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.DATA.dg ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.LISTENER.lsnr ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.RECO.dg ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.asm ONLINE ONLINE rac1 Started ONLINE ONLINE rac2 Started ora.gsd OFFLINE OFFLINE rac1 OFFLINE OFFLINE rac2 ora.net1.network ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.ons ONLINE ONLINE rac1 ONLINE ONLINE rac2 -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE rac1 ora.cvu 1 ONLINE ONLINE rac1 ora.oc4j 1 ONLINE ONLINE rac1 ora.rac1.vip 1 ONLINE ONLINE rac1 ora.rac2.vip 1 ONLINE ONLINE rac2 ora.racdb.db 1 ONLINE ONLINE rac1 Open ora.racdb.rac.svc 1 ONLINE ONLINE rac1 ora.scan1.vip 1 ONLINE ONLINE rac1
원래 있던 1번 노드로 데이터베이스가 재배치되었습니다.