srvctl로 RAC 데이터베이스 또는 단일 인스턴스 중지 / 시작(rolling)
OracleRAC 및 Grid명령어
# Whole database (all instances):
srvctl stop database -db <db_unique_name> -stopoption immediate
srvctl start database -db <db_unique_name>
# Rolling maintenance: stop one instance, moving its services to the other instances
srvctl stop instance -db <db_unique_name> -instance <instance> \
-stopoption immediate -drain_timeout 300 -failover
srvctl start instance -db <db_unique_name> -instance <instance>
# By node:
srvctl stop instance -db <db_unique_name> -node <node> -stopoption immediate
# Start in a specific open mode (e.g. a physical standby in mount):
srvctl start database -db <db_unique_name> -startoption mount하는 일
Clusterware를 통해 데이터베이스 또는 선택한 인스턴스를 제어된 방식으로 중지/시작한다. -failover를 지정하면 중지된 인스턴스의 서비스가 available 인스턴스로 이동하고, -drain_timeout은 세션이 빠질 때까지 대기한다.
사용 시점
패치, OS 유지보수, 파라미터 변경 시 rolling(노드별) 재시작, 계획된 전체 종료.
주의
RAC에서는 SQL*Plus SHUTDOWN 대신 srvctl을 사용한다. 그렇지 않으면 Clusterware가 리소스 TARGET을 알지 못해 인스턴스를 다시 시작할 수 있다. stop database는 모든 인스턴스를 종료한다 = 전체 서비스 중단. 서비스에 available 인스턴스가 정의되어 있지 않으면 -failover로 연결을 이동할 수 없다.