DBAtlas · データベース運用アトラス

RACサービスを別インスタンスに再配置

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/available)は変わらない。インスタンスが再起動するとサービスは優先インスタンスに戻る。-forceは既存セッションを強制終了する。アプリケーションが再接続できない場合、ユーザーには停止として見える。

DBAtlas で開く →

関連項目