3 Global Data Services構成の管理
GDSCTL
ユーティリティを使用して、Global Data Services構成およびそのすべてのコンポーネントを作成、管理および監視します。このユーティリティは、Oracle Real Application Cluster (Oracle RAC)を管理するために使用されるSRVCTL
ユーティリティとよく似ています。次のトピックでは、GDS構成を管理する方法を説明します。
3.1 Global Data Servicesの管理の概要
Global Data Servicesは、次のタスクを担当するGlobal Data Services管理者によって管理されます。
-
グローバル・サービス・マネージャ・ソフトウェアのインストールとアップグレード
-
Global Data Servicesカタログの作成と保守
-
グローバル・サービス・マネージャの起動、停止および構成
-
Global Data Servicesリージョンとプールの作成と管理
-
グローバル・サービスの管理
-
Global Data Servicesフレームワーク・コンポーネントの監視
各Global Data Services構成には、少なくとも1人のGlobal Data Services管理者が必要です。小規模な構成は、すべての管理作業を実行する1人のユーザーによって管理できます。多くのリージョンおよびプールを含む大規模な構成の場合、状況によっては、職務を共有するGlobal Data Services管理者のグループが必要になります。すべてのGlobal Data Services管理者は、特定のGlobal Data Services構成についてリストされたすべての管理タスクを実行する権限を持ちます。
グローバル・サービス・マネージャが実行されるすべてのコンピュータに、Global Data Services管理者用のオペレーティング・システム・アカウントがあります。アカウント・ユーザーは、グローバル・サービス・マネージャ・ソフトウェアをインストールおよび実行する権限を持ちます。Global Data Services管理者のみがこれらの権限を付与されます。
Global Data Services管理者は、Global Data Servicesカタログ・データベースにユーザーとして追加し、GSMADMIN_ROLE
ロールを付与する必要もあります。Global Data Services管理者のデータベース・アカウントは、カタログ・データベースのデータベース管理者によって作成されます。このデータベースに対するローカル・データベース管理者権限を持っている場合、Global Data Services管理者は自分でこのアカウントを作成することができます。
Global Data Services構成に複数のプールが含まれる場合、構成全体を管理するGlobal Data Services管理者以外に、各プールに1人以上のGlobal Data Servicesプール管理者を指定できます。プール管理者の職務は特定のプールの管理に限定され、次のようなタスクがあります。
-
プール内のデータベースの追加と削除
-
プール内のグローバル・サービスの管理
これらのタスクを実行するには、Global Data Servicesプール管理者は、適切な権限を持つGlobal Data Servicesカタログ・データベースのユーザーである必要があります。プール管理者用のデータベース・ユーザーの作成と権限の付与は、Global Data Servicesプールを-USER
オプションを使用して作成すると、自動的に行われます。作成後、gdsctl modify gdspool
コマンドを使用してプールの管理者をプールに追加できます。Global Data Services管理者は、常に、データベース構成のすべてのプールを管理する権限を持ちます。
すべての管理操作は、適切なGDSCTLコマンドを使用して行います。ほとんどのGDSCTLコマンドの実行には、Global Data Servicesカタログへのアクセスが必要です。そのようなコマンドでは、適切なコマンド・オプションを使用してカタログ・データベースに対する資格証明を指定する必要があります。
Global Data Servicesプールへのデータベースの追加や、グローバル・サービスの有効化などの多くの管理操作では、Global Data Servicesカタログを変更するのみでなく、Global Data Services構成のデータベースも変更する必要があります。そのようなコマンドの一般的なワークフローは次のとおりです。
-
GDSCTLは、管理者が指定した資格証明を使用してカタログ・データベースに接続し、カタログに適切な変更を加えます。
-
カタログ・データベースは、この変更について、Global Data Services構成のすべてのグローバル・サービス・マネージャに通知します。通知は、各グローバル・サービス・マネージャがカタログ・データベースで管理しているOracle Net Services接続を使用して送信されます。
-
通知の受信後、いずれかのグローバル・サービス・マネージャが、構成を必要とする構成データベースに接続して適切な変更を加えます。
このワークフローをサポートするため、グローバル・サービス・マネージャは、カタログおよび構成データベースに接続できる必要があります。カタログ・データベースへの接続は、GSMCATUSERアカウントを使用して確立されます。このアカウントは、Oracle 12cデータベースのインストール時にデータベースにデフォルトで作成されます。アカウントは、カタログ・データベースのデータベース管理者によってロックが解除され、パスワードがGlobal Data Services管理者に付与される必要があります。新しいグローバル・サービス・マネージャがGDS構成に追加されるたびに、Global Data Services管理者は、GSMCATUSERアカウントのパスワードを指定する必要があります。パスワードは暗号化され、グローバル・サービス・マネージャで今後使用するためにグローバル・サービス・マネージャ・ウォレットに格納されます。
グローバル・サービス・マネージャは、どのOracle 12cデータベースにもデフォルトで存在するGSMUSERアカウントを使用してプール・データベースに接続します。アカウントは、データベースのインストール後にロックされます。データベースをGlobal Data Servicesプールに追加する前に、ローカル・データベース管理者によってロックが解除される必要があります。GSMUSERアカウントのパスワードは、データベースをGlobal Data Servicesプールに追加するプールまたはGlobal Data Servicesの管理者に付与され、gdsctl add database
コマンドで指定される必要があります。パスワードは暗号化され、すべてのグローバル・サービス・マネージャで今後使用するためにGlobal Data Serviceカタログに格納されます。
GSMUSRのパスワードは、PKCS 1暗号化/復号化スキーマを使用した暗号化形式でGDSカタログに格納されます。modify catalog
コマンドを実行することで、GDSカタログに格納されたGSMUSRのパスワードを新しく生成された鍵によって暗号化できます。次に例を示します。
GDSCTL> modify catalog -newkeys
GSMCATUSERアカウントとGSMUSERアカウントは、Global Data Servicesフレームワークのすべてのグローバル・サービス・マネージャによって共有され、グローバル・サービス・マネージャによって行われるすべての管理操作(サービス・フェイルオーバーなどの自動操作も含む)に使用されます。通常のユーザーはこれらのアカウントを使用してデータベースに接続しないでください。
親トピック: Global Data Services構成の管理
3.2 データベース・プールの管理
この項では、グローバル・データ・サービス・フレームワークのデータベース・プールの管理に関連する管理タスクについて説明します。次の項目が含まれます。
3.2.1 データベース・プールへのOracle Data Guard Broker管理データベースの追加
Global Data Services構成にOracle Data Guard Broker構成を含める場合、ブローカ構成は一体として管理します。Oracle Data Guard Broker構成全体でのみデータベース・プールに追加(または削除)できます。構成は複数のプールにまたがることができません。ブローカ構成に属する個々のデータベースをプールに追加または削除しようとすると、エラーになります。
データベースをプールに追加する唯一の方法は、データベースを(DGMGRL
ユーティリティを使用して)ブローカ構成に追加することです。データベースをブローカ構成に追加すると、この構成が属するデータベース・プールに自動的に追加されます。データベースをブローカ構成から削除すると、構成が含まれるプールから削除されます。これが、ブローカ構成を含むプールからデータベースを削除する唯一の方法です。
また、次の制限に注意してください。
-
データベース・プール内のデータベースのセットは次のいずれかです。
-
1つのブローカ構成に属するデータベースのセット
-
ブローカ構成に属さないデータベースのセット
ブローカ構成は空のデータベース・プールにのみ追加できます。プールにすでにブローカ構成が含まれている場合、データベースをデータベース・プールに追加するには、データベース・プールに含まれているブローカ構成にデータベースを追加する必要があります。
-
-
ロールベースのグローバル・サービスは、ブローカ構成を含むデータベース・プールについてのみサポートされます。
関連項目:
DGMGRL
ユーティリティの詳細は、『Oracle Data Guard Broker』を参照してください
親トピック: データベース・プールの管理
3.3 グローバル・サービスの管理
この項では、グローバル・サービスに関連する管理タスクについて説明します。次の項目が含まれます。
- グローバル・サービスの作成
- グローバル・サービスの起動
- グローバル・サービスの停止
- グローバル・サービスの無効化
- グローバル・サービスの有効化
- グローバル・サービスの属性の変更
- グローバル・サービスの削除
親トピック: Global Data Services構成の管理
3.3.1 グローバル・サービスの作成
グローバル・サービスは、add service
コマンドを実行して作成します。このコマンドは、グローバル・サービスをGlobal Data Servicesプールに関連付け、サービスの属性をGlobal Data Servicesカタログに格納します。—preferred
オプションまたは—available
オプションを使用してデータベースが指定された場合、サービスは指定されたそれらのデータベースで作成されます。—preferred_all
オプションが使用された場合、サービスはGlobal Data Servicesプール内のすべてのデータベースで作成されます。
次の場合、Global Data Servicesプールにすでに存在するサービスはデータベースで自動的に作成されます。
-
サービスが変更され、プールの一部であるデータベースを追加します。
-
サービスが
—preferred_all
属性を持ち、新規データベースがプールに追加されます。
関連項目:
親トピック: グローバル・サービスの管理
3.3.2 グローバル・サービスの起動
グローバル・サービスは、作成後すぐに自動的に有効化されます。有効化とは、データベースがサービスの実行に適している(つまり、次の条件に合う)場合にデータベースでサービスを起動できるということです。
-
データベースがオープンしており、グローバル・サービス・マネージャに登録されています。
-
サービスがそのデータベースで無効になっていません。
-
データベース・ロールがサービスのロール属性に適合します。
-
データベースのレプリケーション・ラグがサービスに指定された最大値を超えていません。
-
サービスが優先データベースの数によって定義されるカーディナリティに達していません。
-
サービスの起動により適したデータベースがプール内に他にありません。たとえば、適切な優先データベースがない場合にのみ使用可能なデータベースでサービスが起動されます。
新たに作成されたグローバル・サービスは、ユーザーによってstart service
コマンドが実行される前に自動的に起動されることはありません。これは、プール管理者がサービスの最初の起動を制御できるということです。このことは、複数のサービスがプールに追加され、サービスを特定の順序で起動する必要がある場合に重要です。
自動管理ポリシー(デフォルト・オプション)のサービスは、最初は-database
オプションなしでstart service
コマンドを実行して起動される必要があります。このコマンドはプール内のすべての適切なデータベースでサービスを起動するだけでなく、次の場合のサービスの自動起動を有効にします。
-
サービスの実行に適したデータベースでサービスが自動的に作成された後。(サービスが自動的に作成される2つの場合については前述の項にリストされています。)
-
停止していたデータベースが再起動され、サービスに適しています。
-
データベースがサービスの実行に適するようになりました。これは、データベースのレプリケーション・ラグが許容可能な値に下がった場合やサービス・カーディナリティをユーザーが増やした場合などに起こります。
「グローバル・サービスの停止」で説明されているstop service
コマンドを使用してサービスが停止されていた場合、-database
オプションを使用したstart service
コマンドで、自動管理ポリシーを持つサービスをそのデータベースで起動できます。
手動ポリシーを持つサービスは、データベースが再起動された場合やサービスの実行に適するようになった場合を含め、各データベースで手動で起動される必要があります。手動ポリシーを持つサービスに対して実行される場合、-database
オプションなしのstart service
コマンドは、プール内に現在存在するすべての適切なデータベースでサービスを起動します。-database
オプション付きで使用すると、このコマンドは、指定したデータベースでのみサービスを起動します(それらが実行に適している場合)。
注意:
この項に示されたサービスの自動起動が説明しているのは、start service
コマンドが自動管理ポリシーを持つサービスに対して実行された場合の処理についてのみです。別のデータベースからのフェイルオーバーによってサービスがデータベースで自動的に起動される場合は含まれていません。サービスのフェイルオーバーはstart service
コマンドと関連性はなく、自動管理ポリシーを持つサービスと手動管理ポリシーを持つサービスで同じように動作します。
関連項目:
親トピック: グローバル・サービスの管理
3.3.3 グローバル・サービスの停止
Global Data Servicesプール内のデータベースで実行されているグローバル・サービスは、stop service
コマンドで停止できます。-database
オプションを指定してstop service
コマンドを実行すると、指定したデータベースのサービスが停止します。指定しない場合は、プール内のすべてのデータベースのサービスが停止します。
注意:
停止したサービスのポリシーが自動管理の場合、サービスが実行されていたデータベースが再起動され、サービスの実行に適している場合は、サービスが再起動されます。また、Global Data Servicesプール内のすべてのデータベースで自動管理ポリシーを持つサービスを停止しても、新規データベースでサービスが作成されると、そのサービスは自動起動されます。サービスの自動起動を完全に無効にするには、管理ポリシーを手動に変更します。
サービスがユーザーによって停止された場合、Global Data Servicesフレームワークではデータベースがこのサービスに対して一時的に使用できなくなっているとみなされます。グローバル・サービスの停止によってサービスがフェイルオーバーされることはありません。サービス・カーディナリティが一時的に下げられ、グローバル・サービス・マネージャはプール内の別のデータベースでサービスを起動しようとしません。
ただし、停止されたサービスを含むデータベースは、依然としてこのサービスのフェイルオーバー・ターゲットとみなされます。別のデータベースでサービスに障害が発生した場合、このデータベースがサービスの実行に適していれば、このデータベースでサービスが起動されます。サービスがあるデータベースにフェイルオーバーすると、そのデータベースのサービスはユーザーによって停止されたとみなされなくなります。
停止されたサービスは、start service
コマンドを実行して手動で再起動できます。
関連項目:
親トピック: グローバル・サービスの管理
3.3.4 グローバル・サービスの無効化
グローバル・サービスはデータベースまたはデータベースのセットでdisable service
コマンドを実行して無効にできます。無効になったサービスは、再度有効化されるまで起動できません。これには、別のデータベースからのサービス・フェイルオーバーも含まれます。無効になったサービスを含むデータベースはフェイルオーバー・ターゲットとみなされません。
サービスを無効にするには、サービスを停止する必要があります。サービスが実行されているデータベースに対してdisable service
が実行されると、エラーになります。
関連項目:
親トピック: グローバル・サービスの管理
3.3.5 グローバル・サービスの有効化
無効になったグローバル・サービスは、enable service
コマンドを実行してデータベースで再度有効化できます。サービス管理ポリシーがAUTOMATICで、データベースがサービスの実行に適している場合、サービスは有効化されると自動的に起動されます。管理ポリシーがMANUALであるサービスは手動で起動する必要があります。サービスが有効になると、データベースがフェイルオーバー・ターゲットになります。
関連項目:
親トピック: グローバル・サービスの管理
3.3.6 グローバル・サービスの属性の変更
modify service
コマンドを使用してグローバル・サービスの属性を変更します。サービスのプロパティ(ロール、最大ラグ、ロード・バランシングの方法など)の指定に加え、サービスの属性によって、サービスを実行するデータベースを定義します。したがって、modify service
を使用して、データベースをサービスに追加したり、サービスから削除したり、あるデータベースから別のデータベースへサービスを移動したりできます。コマンドの実行の結果、Global Data Servicesプール内の1つ以上のデータベースでサービスの作成、削除、起動または停止が行われることがあります。
ほとんどのグローバル・サービスの属性は、サービスの作成時にadd service
コマンドで指定され、変更の必要がある場合にのみ変更します。ただし、Oracle RACデータベースに関連するいくつかのサービス属性は、add service
コマンドの実行直後にmodify service
コマンドを実行して設定する必要があります。これらの属性には、サービス・プールの名前、インスタンス・カーディナリティ(UNIFORM/)や特定のOracle RACデータベースに固有の他のパラメータなどがあります。そのような属性はadd service
コマンドで設定できません。このコマンドはGlobal Data Servicesプール内のすべてのデータベースに対して同じ値を持つ属性の指定のみに使用できるためです。
関連項目:
親トピック: グローバル・サービスの管理
3.3.7 グローバル・サービスの削除
remove service
コマンドは、Global Data Servicesカタログおよび作成されたすべてのデータベースからサービスを削除することで、Global Data Servicesプールからグローバル・サービスを削除します。サービスを削除にするには、サービスを停止する必要があります。
関連項目:
親トピック: グローバル・サービスの管理
3.4 GDSスタックの管理
この項では、グローバル・データ・サービス・フレームワーク内のコンポーネントの起動および停止について説明します。次の項目が含まれます。
3.4.1 GDSスタックの起動
GDSスタックは、次の順序で起動することをお薦めします。
-
Global Data Servicesカタログ・データベースおよびローカル・リスナーを起動します。
-
グローバル・サービス・マネージャを起動します。
-
GDSプール・データベースおよびローカル・リスナーを起動します。
-
グローバル・サービスを起動します。
-
アプリケーション層およびクライアントを起動します。
親トピック: GDSスタックの管理
3.4.2 GDSスタックの停止
GDSスタックは、次の順序で停止することをお薦めします。
-
アプリケーション層およびクライアントを停止します。
-
グローバル・サービスを停止します。
-
GDSプール・データベースおよびローカル・リスナーを停止します。
-
グローバル・サービス・マネージャを停止します。
-
Global Data Servicesカタログ・データベースおよびローカル・リスナーを停止します。
親トピック: GDSスタックの管理