このコマンドでは、サービスに対して次のようなオンライン変更がサポートされています。
インスタンス間のサービス・メンバーの移動
DBMS_SERVICE
のサービス属性(フェイルオーバーの遅延、ランタイム・ロード・バランシングの目標など)のオンライン変更
新しい優先インスタンスまたは使用可能インスタンスの追加
サービスの優先インスタンスまたは使用可能インスタンスの削除
警告:
構成変更は必要最小限にすること、およびオンライン・サービス変更の進行中は他のサービス操作を実行しないことをお薦めします。
次のいずれかの形式のsrvctl modify service
コマンドを指定された構文で使用します。
インスタンス間でのサービスの移動方法
srvctl modify service -dbdb_unique_name
-serviceservice_name
-oldinst old_instance_name -newinst new_instance_name [-force]
注意:
このコマンドの形式はOracle Clusterwareでのみ使用可能です。
表A-91 srvctl modify serviceのパラメータ - サービスの移動
パラメータ | 説明 |
---|---|
-database db_unique_name
|
データベースの一意の名前 |
-service service_name
|
サービス名 |
-oldinst old_instance_name
|
元のインスタンス名 |
-newinst new_instance_name
|
新しいインスタンス名 |
-force |
サービス操作の停止または再配置中のすべてのセッションの切断 |
使用可能インスタンスをサービスの優先インスタンスに変更する方法
srvctl modify service -dbdb_unique_name
-serviceservice_name
-availableavail_inst_name
-toprefer [-force]
注意:
この形式のコマンドは、Oracle Clusterwareでのみ使用可能で、Oracle RAC One Nodeデータベースの配置パラメータを受け入れません。
表A-92 srvctl modify serviceのパラメータ - 優先インスタンスへの変更
パラメータ | 説明 |
---|---|
-db db_unique_name
|
データベースの一意の名前。 |
-service service_name
|
変更するサービスの名前を指定します。 |
-available available_inst_name
|
変更する使用可能インスタンスの名前。 |
-toprefer |
インスタンスのステータスを優先に変更します。 |
-force |
サービス操作の停止中または再配置中にすべてのセッションを切断します。計画操作の場合、FANと統合されたOracle接続プールを使用し、切断を強制しないようにすると、ユーザー・エクスペリエンスが最適になります。FAN計画イベントを使用すると、ユーザーによる介入なしでOracleプールから要求が排出されるようになります。 |
複数インスタンスの使用可能および優先ステータスを変更する方法
srvctl modify service -dbdb_unique_name
-serviceservice_name
-modifyconfig -preferred "preferred_list
" [-available "available_list
"] [-force]
注意:
この形式のコマンドは、Oracle Clusterwareでのみ使用可能で、Oracle RAC One Nodeデータベースの配置パラメータを受け入れません。
表A-93 srvctl modify serviceのパラメータ - 複数インスタンスのステータスの変更
パラメータ | 説明 |
---|---|
-db db_unique_name
|
データベースの一意の名前 |
-service service_name
|
サービス名 |
-modifyconfig |
このサービスに対して指定されたインスタンスのみの使用(すでにサービスに割り当てられていて指定されていないインスタンスは削除) |
-preferred "preferred_instance_list"
|
優先インスタンスのカンマ区切りリスト |
-available "available_instance_list"
|
使用可能インスタンスのカンマ区切りリスト |
-force |
サービス操作の停止中または再配置中にすべてのセッションを切断します。 計画操作の場合、FANと統合されたOracle接続プールを使用し、切断を強制しないようにすると、ユーザー・エクスペリエンスが最適になります。FAN計画イベントを使用すると、ユーザーによる介入なしで接続プールから要求が排出されるようになります。 |
他のサービス属性またはOracle Clusterwareのサービスを変更する方法
srvctl modify service -dbdb_unique_name
-serviceservice_name
[-eval] [-serverpool pool_name] [-cardinality {UNIFORM|SINGLETON}] [-pqservice pqsvc_name] [-pqpool pq_pool_list] [-tafpolicy {BASIC|NONE}] [-edition edition_name] [-role "[PRIMARY][,PHYSICAL_STANDBY][,LOGICAL_STANDBY][,SNAPSHOT_STANDBY]"] [-notification {TRUE|FALSE}] [-dtp {TRUE|FALSE}] [-clbgoal {SHORT|LONG}] [-rlbgoal {NONE|SERVICE_TIME|THROUGHPUT}] [-failovertype {NONE|SESSION|SELECT|TRANSACTION}] [-failovermethod {NONE|BASIC}] [-failoverretryfailover_retries
] [-failoverdelayfailover_delay
] [-policy {AUTOMATIC | MANUAL}] [-pdb pluggable_database] [-sql_translation_profile profile_name] [-commit_outcome {TRUE|FALSE}] [-retention retention_time] [-replay_init_time replay_initiation_time] [-session_state {STATIC|DYNAMIC}] [-global_override] [-verbose] [-force]
表A-94 srvctl modify serviceのパラメータ
パラメータ | 説明 |
---|---|
-db db_unique_name
|
データベースの一意の名前 |
-service service_name
|
サービス名 |
-eval |
このパラメータを使用すると、コマンドがシステムに及ぼす影響を仮定的に評価できます。 注意: このパラメータは、ポリシー管理サービスでのみ使用できます。 |
-serverpool pool_name
|
ポリシー管理データベースの場合に使用されるサーバー・プールの名前。 注意: このパラメータは、Oracle RACでのみ、ポリシー管理データベースに対してのみ使用できます。 |
-cardinality {UNIFORM | SINGLETON} |
サービスのカーディナリティ。 注意: このパラメータは、Oracle Clusterwareでのみ使用できます。 |
-pqservice pqsvc_name
|
パラレル問合せサービス名のカンマ区切りリスト |
-pqpool pq_pool_list
|
パラレル問合せサーバー・プール名のカンマ区切りリスト |
-tafpolicy {BASIC|NONE} |
TAFポリシーの指定(管理者管理データベースのみ)。 |
-edition edition_name
|
サービスの初期セッション・エディション。 サービスにエディションを指定すると、そのサービスを指定するそれ以降のすべて接続で、初期セッション・エディションとしてこのエディションが使用されます。ただし、セッション接続で異なるエディションを指定した場合は、そのセッション接続で指定したエディションが初期セッション・エディションとして使用されます。 SRVCTLは、指定されたエディション名を検証しません。接続中、接続ユーザーは指定されたエディションの |
-role "[PRIMARY] [,PHYSICAL_STANDBY] [,LOGICAL_STANDBY] [,SNAPSHOT_STANDBY]" |
サービスが自動的に開始する必要があるデータベース・モード。1つ以上のロールをカンマ区切りリストで指定できます。 注意: -role パラメータは、データベースの起動にのみ、Oracle Data Guard Brokerによって使用されます。手動でのサービスの起動ではすべて、ユーザーが起動するサービスの名前を指定する必要があります。関連項目: 『Oracle Data Guard Broker』( |
-notification {TRUE | FALSE} |
OCI接続の場合は、高速アプリケーション通知(FAN)を有効にします。 |
-dtp {TRUE | FALSE} |
このサービスの分散トランザクション処理を有効化するかどうかを示します。これにより、XAアフィニティ用に、一度に1つのみのインスタンスでサービスが提供されるようになります。 |
-clbgoal {SHORT | LONG} |
接続時ロード・バランシングの目標の場合: ランタイム・ロード・バランシングを使用する場合は |
-rlbgoal {NONE | SERVICE_TIME | THROUGHPUT} |
ランタイム・ロード・バランシングの目標。応答時間に基づいて接続のバランスを取るには、このパラメータを |
-failovertype {NONE | SESSION | SELECT | TRANSACTION} |
フェイルオーバーのタイプ Javaのアプリケーション・コンティニュイティを有効化するには、このパラメータを |
-failovermethod {NONE | BASIC} |
TAFフェイルオーバー・メソッド(下位互換性維持のためのみ)。 |
-failoverretry
failover_retries
|
アプリケーション・コンティニュイティおよびTAFでの、事象が発生した後に接続を試行する回数。 |
-failoverdelay
failover_delay
|
アプリケーション・コンティニュイティおよびTAFでの、フェイルオーバーにおける各事象の再接続試行間の時間遅延(秒数)。 |
-policy {AUTOMATIC | MANUAL} |
サービス管理ポリシー。 |
-pdb pluggable_database
|
プラガブル・データベース(PDB)名。 注意: PDBプロパティは、サービスを作成または変更するときに指定できます。PDBプロパティによって、指定されたPDBにサービスが関連付けられます。サービスのPDBプロパティを参照するには、ALL_SERVICESデータ・ディクショナリ・ビューを問い合せるか、またはSRVCTLユーティリティを使用している場合は PDBを指定してサービスを作成または変更するとき、そのPDBが存在するかどうかはSRVCTLによってチェックされません。このコマンドを実行する前に、PDBが存在することを確認してください。 |
-sql_translation_profile
profile_name
|
Oracle Database以外からOracle Databaseにアプリケーションを移行した後でサービスを変更する場合は、このパラメータを使用して、そのサービスに対するSQL翻訳プロファイルを指定します。 SQL翻訳プロファイルをNULL値に設定する場合は、 注意: SQL翻訳機能を使用するには、事前にすべてのサーバー側アプリケーション・オブジェクトおよびデータをOracle Databaseに移行しておく必要があります。 関連項目: SQL翻訳の詳細は、『Oracle Database移行ガイド』を参照してください。 |
-commit_outcome {TRUE|FALSE} |
トランザクション・ガードを有効化します。 |
-retention retention_time
|
トランザクション・ガードを使用する場合( |
-replay_init_time
replay_init_time
|
アプリケーション・コンティニュイティの場合、このパラメータには、元のリクエストが実行を開始したときからの時間(秒単位)を指定します。アプリケーション・コンティニュイティは指定した時間が経過するまでリプレイされません。この属性は、長い時間が経過した後でシステムがリカバリしたときにリクエストの意図しないリプレイを回避します。デフォルト値は300 (5分)です。 |
-session_state {STATIC|DYNAMIC} |
アプリケーション・コンティニュイティ向けに、このパラメータはトランザクション型ではないセッションの状態がアプリケーションによって変更されるかどうかを指定します。ほとんどのアプリケーションには |
-global_override
global_override
|
グローバル・サービス属性を変更するオーバーライド値。 このパラメータは、 |
-verbose |
冗長出力を表示します。 |
-force |
変更操作を強制し、必要に応じて一部のノードでサービスを停止します。 |
サービス属性(フェイルオーバーの遅延、ランタイム・ロード・バランシングの目標など)をオンラインで変更した場合、変更が有効になるのは、サービスが次回(再)起動されたときです。
新しい優先インスタンスまたは使用可能インスタンスが追加されるようにサービス構成を変更した場合でも、既存サービスの稼働状態に影響はありません。ただし、新しく追加されたインスタンスは、srvctl start service
コマンドが発行されるまで、自動的にはサービスを提供しません。
サービスに対して使用可能なインスタンスがあり、優先インスタンスまたは使用可能インスタンスが削除されるようにサービス構成を変更した場合、サービスの稼働状態に予測できない変化が発生することがあります。
新しいサービス構成に従って、一部のインスタンスでサービスが停止、削除されます。
サービスは、サービス構成から削除されるインスタンスで稼働している場合があります。
そのようなサービスは、新しいサービス構成内の次に使用可能なインスタンスに再配置されます。
前述の状況のため、オンライン・サービスを変更した場合、インスタンスが削除されていなくても、ユーザーは一時的にサービスを利用できないことがあります。または、サービスから削除されるインスタンスで、サービスを一時的に利用できないことがあります。
次の例は、あるインスタンスから別のインスタンスにサービス・メンバーを移動します。
$ srvctl modify service -db crm -service crm -oldinst crm1 -newinst crm2
次の例は、使用可能インスタンスを優先インスタンスに変更します。
$ srvctl modify service -db crm -service crm -available crm1 -toprefer
次のコマンドでは、優先インスタンスおよび使用可能インスタンスが交換されます。
$ srvctl modify service -db crm -service crm -modifyconfig -preferred "crm1" \ -available "crm2"