srvctlでRACデータベースまたは単一インスタンスを停止/起動(ローリング)
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で停止インスタンス上のサービスを使用可能なインスタンスへ移動し、-drain_timeoutでセッションのドレインを待機する。
使用する場面
パッチ適用、OSメンテナンス、パラメータ変更時のローリング(ノード単位)再起動に。計画的な全体停止に。
注意
RACではSQL*PlusのSHUTDOWNではなくsrvctlを使用する。そうしないとClusterwareがリソースのTARGETを把握できず、インスタンスを再起動する場合がある。stop databaseは全インスタンスを停止する=完全停止。サービスに使用可能インスタンスが定義されていない場合、-failoverで接続を移動できない。