DBAtlas · 데이터베이스 운영 아틀라스

RAC 서비스를 다른 인스턴스로 재배치(relocate)

OracleRAC 및 Grid

명령어

# First check the current placement:
srvctl status service -db <db_unique_name> -service <service>
# Relocate by instance (sessions are drained):
srvctl relocate service -db <db_unique_name> -service <service> \
  -oldinst <inst1> -newinst <inst3> -drain_timeout 120 -wait YES
# By node (policy-managed / singleton service):
srvctl relocate service -db <db_unique_name> -service <service> \
  -currentnode <node1> -targetnode <node2>
# Session distribution per instance (SQL):
SELECT inst_id, service_name, COUNT(*) AS sessions
FROM   gv$session
WHERE  type = 'USER'
GROUP  BY inst_id, service_name
ORDER  BY service_name, inst_id;

하는 일

실행 중인 서비스를 한 인스턴스/노드에서 다른 곳으로 옮긴다. 새 연결은 대상 인스턴스로 가고 기존 세션은 drain_timeout 동안 스스로 종료되도록 둔다.

사용 시점

유지보수 전 노드를 비우거나, 페일오버 후 서비스를 preferred 인스턴스로 되돌리거나, 부하를 재분산하기 위해.

주의

재배치는 일시적이다. 서비스 구성(preferred/available)은 바뀌지 않으며 인스턴스가 재시작되면 서비스는 preferred 인스턴스로 돌아간다. -force는 기존 세션을 종료한다. 애플리케이션이 재연결하지 못하면 사용자는 서비스 중단을 겪는다.

DBAtlas에서 열기 →

관련 항목