2 Global Data Servicesフレームワークの構成
Global Data Servicesフレームワークは、1つ以上のグローバル・サービス・マネージャ、Global Data Servicesカタログおよび各GDS構成データベースで構成されます。Oracle Databaseをインストールすると、このフレームワークの一部のコンポーネントがインストールされます。他のコンポーネントについては、Global Data Services制御ユーティリティ(GDSCTL)を使用して特定のタスクを実行する必要があります。
この章の内容は次のとおりです。
インストールの計画
ソフトウェアをインストールする前に、Linuxの次のハードウェア、ネットワーク、オペレーティング・システムおよび他のソフトウェア要件を確認してください。
-
すべてのGDSプール・データベースが、すべてのグローバル・サービス・マネージャのリスナー・ポートおよびONSポートに(双方向で)接続できる必要があります。また、グローバル・サービス・マネージャのリスナー・ポートおよびONSポートが、アプリケーション層とクライアント層、すべてのGDSプール・データベース、GDSカタログおよびその他すべてのグローバル・サービス・マネージャに対して開いている必要もあります。
-
各GDSプール・データベースのTNSリスナー・ポート(デフォルト: 1521)が、グローバル・サービス・マネージャおよびGDSカタログに対して(双方向で)開いている必要があります。
-
別のマシンからGDSCTLを実行している場合は、そのマシンから、追加される各GDSプール・データベースに対して直接(双方向で)開いているポートも必要です。
Global Data Servicesで必要となるメモリー、物理ストレージ、カーネル・バージョンおよびパッケージの詳細は、Databaseインストレーション・ガイドfor Linuxを参照してください。
グローバル・サービス・マネージャのインストールに関する必知事項
グローバル・サービス・マネージャはGlobal Data Servicesフレームワークの中心的なコンポーネントで、個別のメディアを使用してグローバル・サービス・マネージャをインストールする必要があります。グローバル・サービス・マネージャのインストールと実行に、他のOracleソフトウェアは必要ありません。
グローバル・サービス・マネージャは他のOracle製品がインストールされているシステムにインストールできますが、別のOracleホーム・ディレクトリにインストールする必要があります。1つのシステムに複数のグローバル・サービス・マネージャをインストールできますが、各グローバル・サービス・マネージャのOracleホーム・ディレクトリは別である必要があります。パフォーマンス上の理由から、Global Data Services構成のデータベースの数によっては、専用ホストにグローバル・サービス・マネージャをデプロイできます。
Global Data Servicesリージョンごとに最低1つのグローバル・サービス・マネージャをインストールする必要があります。グローバル・サービス・マネージャは、物理環境または仮想環境でホストできます。高可用性の点から、個別のホストで実行されているリージョンごとに複数(通常は3個)のグローバル・サービス・マネージャをインストールすることをお薦めします。
ノート:
Oracle Universal Installerでは、複数ホストでのソフトウェアのインストールは現在サポートされていません。各グローバル・サービス・マネージャをそれぞれのホストにインストールする必要があります。
Global Data Services管理者がグローバル・サービス・マネージャをインストールします。Global Data Services管理者の職務は次のとおりです。
-
グローバル・サービス・マネージャの管理
-
Global Data Servicesカタログの管理
-
リージョンおよびデータベース・プールの管理
ノート:
Global Data Services管理者は、グローバル・サービス・マネージャをデプロイするすべてのホストにオペレーティング・システム・ユーザー・アカウントを持っている必要があります。インストールはそのユーザー・アカウントで実行する必要があります。インストールは、rootユーザーでは実行しない
でください。
ノート:
Windowsプラットフォームにグローバル・サービス・マネージャをインストールする場合、Oracle Universal Installerでは、Windowsの組込みアカウントを使用するか、OracleホームのOracleホーム・ユーザーとして標準のWindowsユーザー・アカウントを指定するかを選択できます。このアカウントは、OracleホームのWindowsサービスを実行するために使用され、管理者アカウントにすることはできません。
Windowsの組込みアカウント・オプションを選択すると、サービスを実行するためにLocalServiceアカウントが使用されることに注意してください。グローバル・サービス・マネージャのインストール、アップグレード、パッチ適用などの管理タスクを行うには、管理権限を持つWindowsアカウントを使用してログオンする必要があります。
Oracleホーム・ユーザーの使用の詳細および推奨事項は、『Oracle Database管理者リファレンス for Microsoft Windows』の第3章を参照してください。
グローバル・サービス・マネージャのインストール
グローバル・サービス・マネージャをインストールするには、次のようにします。
ノート:
Global Data Servicesソフトウェアをインストールした後には、そのインストールを最新のOracle Databaseリリースに更新することをお薦めします。Oracle Database 19cリリースの更新の詳細は、Oracle Support (MOS)ノート19202301.9を参照してくださいGlobal Data Servicesのアップグレードに関する必知事項
分散Global Data Servicesインフラストラクチャを構成するコンポーネントは4つあり、各コンポーネントは個別のインストール環境に存在し、通常のアップグレード手順を使用して単体でアップグレードできますが、コンポーネントのバージョニングに関して準拠する必要のある一定のルールがあります。各コンポーネントとそのルールは次のとおりです。
-
カタログ・データベース: カタログ・データベースは、GDSメタデータの中央リポジトリで、標準的なOracle Databaseインストールです。カタログ・データベースのバージョンは、常にそれに接続する任意のGDSCTLセッションのバージョン以上であり、それに接続する任意のグローバル・サービス・マネージャ・サーバーのバージョンと正確に一致する必要がありますが、これには1つ例外があり、移行の簡略化のため、カタログは、それが変更されるまで、一時的にそれに接続しているグローバル・サービス・マネージャ・サーバーより大きいバージョンになることが可能で、変更があると、同じバージョンではない接続済のグローバル・サービス・マネージャは切断され、同じバージョンではない停止済のグローバル・サービス・マネージャは接続を禁止されます。
ノート:
リリース12.1.0.1を実行しているGDSCTLセッションは、それ以降のバージョンのカタログを変更できません(カタログを更新するコマンドを実行する場合、GDSCTLクライアントのバージョンは12.1.0.2以上である必要があります)。
-
GDSCTLクライアント: このコンポーネントは、グローバル・サービス・マネージャ・インストールを含む任意のシステム上のターミナル・セッションからアドホック形式で実行されます。GDSCTLクライアントのバージョンは、その実行元のグローバル・サービス・マネージャ・インストールのバージョンです。
ノート:
12.1.0.1のGDSCTLクライアントをそれ以降のバージョンのカタログに接続する場合、許可されるコマンドのセットは制限され、カタログ変更の原因となる可能性のあるコマンドは互換性エラーを発生させます。バージョン12.1.0.2以上のカタログのカタログ・メタデータを更新するコマンドは、リリース12.1.0.2以上で稼働するGDSCTLクライアントから実行される必要があります。
-
グローバル・サービス・マネージャ・サーバー: グローバル・サービス・マネージャ・サーバーのバージョンは、そのサーバーの実行元のグローバル・サービス・マネージャ・インストールのバージョンです。グローバル・サービス・マネージャ・サーバーは、自身より小さいバージョンのカタログ・データベースに接続できません。グローバル・サービス・マネージャ・サーバーは、自身より大きいバージョンでカタログがすでに変更されている場合、そのバージョンのカタログ・データベースに接続できません。グローバル・サービス・マネージャは、Oracle Database 12c以上のバージョンを実行しているプール・データベースに接続できます。
-
プール・データベース: プール・データベースは、グローバル・サービスを実行するGDSプールに追加された任意のデータベースです。プール・データベースには、カタログのバージョンより大きいバージョンを含め、Oracle 12c以上の任意のバージョンを使用できます。プール・データベースは、いつでもアップグレードまたはダウングレードできます。
これらのルールに従うことで、サービス停止時間なしで分散GDSインフラストラクチャのローリング・アップグレードを実行できます。
Global Data Servicesのアップグレード
推奨されるアップグレード順序は次のとおりです。
ノート:
アップグレードおよびパッチ適用に関する一般情報は、『Oracle Databaseアップグレード・ガイド』を参照してください。ノート:
Oracle Database 19c Proactive Patch Informationについては、Oracle Support (MOS)ノート2521164.1を参照してくださいGSMのホーム外更新/パッチ適用の例
- ホストAに1つの19.3.0.0.0 GDSカタログ・データベースが存在すること
- ホストBに2つの19.3.0.0.0 GSM (GSM1およびGSM2)が存在すること。GSM1がORACLE_HOME1にインストールされており、GSM2がORACLE_HOME2にインストールされていること
- 19.3.0.0.0 Oracleプール・データベースのペアがそれぞれホストCとホストDに存在すること。
GDSカタログ、GSM 2つおよびプール・データベース2つに19.18.0.0.0 DBRUを
GSM_HOME
を19.18.0.0.0 DBRUにし、既存のGSMを同じホスト上の新しいホームに移動する
- 19.3.0.0.0 GSM (GSM3)をORACLE_HOME3にインストールし、19.18.0.0.0 DBRUを適用します。
$ORACLE_HOME3/OPatch/opatch lspatches 34765931;DATABASE RELEASE UPDATE : 19.18.0.0.230117 (REL-JAN230131) (34765931) OPatch succeeded.
gsm.ora
、tnsnames.ora
およびgsmwallet
ディレクトリを古い$TNS_ADMIN
フォルダから新しいフォルダにコピーします。- 古いGSM1ホームからGSM1を停止します。
GDSCTL> stop gsm -gsm gsm1; GSM is stopped successfully GDSCTL>
gsm.ora
の下の新しいGSM_HOME
を指すようにWALLET_LOCATION
ディレクトリを変更します。- 新しいGSM3ホームからGSM3を起動します
GDSCTL> start gsm -gsm gsm1; GSM is started successfully GDSCTL>
- 新しいホームから
modify gsm -gsm <gsm name>
を実行します。GDSCTL> modify gsm -gsm gsm1 GSM modified GDSCTL>
- 19.3.0.0.0 GSM4を
ORACLE_HOME4
にインストールし、19.18.0.0.0 DBRUを適用します。$ORACLE_HOME4/OPatch/opatch lspatches 34765931;DATABASE RELEASE UPDATE : 19.18.0.0.230117 (REL-JAN230131) (34765931) OPatch succeeded.
gsm.ora
、tnsnames.ora
およびgsmwallet
ディレクトリを古い$TNS_ADMIN
フォルダから新しいフォルダにコピーします。- 古いGSM2ホームからGSM2を停止します。
GDSCTL> stop gsm -gsm gsm2; GSM is stopped successfully GDSCTL>
gsm.ora
の下の新しいGSM_HOME
を指すようにWALLET_LOCATION
ディレクトリを変更します。- 新しいGSM4ホームからGSM4を起動します。
GDSCTL> start gsm -gsm gsm2; GSM is started successfully GDSCTL>
- 新しいホームから
modify gsm -gsm <gsm name>
を実行します。GDSCTL> modify gsm -gsm gsm2 GSM modified GDSCTL>
- 新しいGSM環境を確認します。
GDSCTL> config Regions ------------------------ east west GSMs ------------------------ gsm1 gsm2 GDS pools ------------------------ sdbpool Databases ------------------------ cloud clouddb Services ------------------------ srv1 GDSCTL pending requests ------------------------ Command Object Status ------- ------ ------ Global properties ------------------------ Name: orasubbu Master GSM: gsm1 DDL sequence #: 0 GDSCTL> GDSCTL> databases; Database: "cloud" Registered: Y State: Ok ONS: N. Role: PRIMARY Instances: 1 Region: east Service: "srv1" Globally started: Y Started: Y Scan: N Enabled: Y Preferred: Y Registered instances: sdbpool%1 Database: "clouddb" Registered: Y State: Ok ONS: N. Role: PRIMARY Instances: 1 Region: west Service: "srv1" Globally started: Y Started: N Scan: N Enabled: Y Preferred: N Registered instances: sdbpool%11 GDSCTL> GDSCTL> status database; Database: "cloud" Registered: Y State: Ok ONS: N. Role: PRIMARY Instances: 1 Region: east Service: "srv1" Globally started: Y Started: Y Scan: N Enabled: Y Preferred: Y Registered instances: sdbpool%1 Database: "clouddb" Registered: Y State: Ok ONS: N. Role: PRIMARY Instances: 1 Region: west Service: "srv1" Globally started: Y Started: N Scan: N Enabled: Y Preferred: N Registered instances: sdbpool%11 GDSCTL> GDSCTL> status service; Service "srv1.sdbpool.orasubbu" has 1 instance(s). Affinity: ANYWHERE Instance "sdbpool%1", name: "cloud", db: "cloud", region: "east", status: ready. GDSCTL>
GSM_HOME
を別のホスト上の19.18.0.0.0 DBRUに
- 19.3.0.0.0 GSM1をORACLE_HOME1にインストールし、19.18.0.0.0 DBRUを適用します。
$ORACLE_HOME1/OPatch/opatch lspatches 34765931;DATABASE RELEASE UPDATE : 19.18.0.0.230117 (REL-JAN230131) (34765931) OPatch succeeded.
gsm.ora
、tnsnames.ora
およびgsmwallet
ディレクトリをソース・ホストからターゲット・ホスト($GSM_HOME/network/admin
)にコピーします。- ソース・ホストでGSM1を停止します。
gsm.ora
ファイルでターゲット・ホスト、およびターゲット・ホストのウォレット・ディレクトリに変更し、GSM1エントリについてtnsnames.ora
ファイル内のターゲット・ホストを変更します。- そのGSM構成でそのエンドポイント・エントリに変更し、
config gsm
で正しいターゲット・ホスト詳細が指し示されることを確認します。たとえば:GDSCTL> modify gsm -gsm gsm1 -endpoint (ADDRESS=(HOST=myhost.example.com)(PORT=1587)(PROTOCOL=tcp)) GSM modified GDSCTL> GDSCTL> config gsm Name Region ENDPOINT ---- ------ -------- gsm1 east (address=(host=myhost.example.com)(port=1587)(protocol=tcp)) gsm2 west (ADDRESS=(HOST=myhost.example.com)(PORT=1787)(PROTOCOL=tcp)) GDSCTL>
- 新しいGSM1ホームからGSM1を起動します。
GDSCTL> start gsm -gsm gsm1; GSM is started successfully GDSCTL>
- 次の例のように
modify gsm -gsm <gsm name> -pwd <GSMCATUSER password>
コマンドを実行します:GDSCTL> modify gsm -gsm gsm1 -pwd <GSMCATUSER secret_password> GSM modified GDSCTL>
- 19.3.0.0.0 GSM2をORACLE_HOME2にインストールし、19.18.0.0.0 DBRUを適用します。
/$ORACLE_HOME2/OPatch/opatch lspatches 34765931;DATABASE RELEASE UPDATE : 19.18.0.0.230117 (REL-JAN230131) (34765931) OPatch succeeded.
gsm.ora
、tnsnames.ora
およびgsmwallet
ディレクトリをソース・ホストからターゲット・ホスト($GSM_HOME/network/admin
)にコピーします。- ソース・ホストでGSM2を停止します。
gsm.ora
ファイルでターゲット・ホスト、およびターゲット・ホストのウォレット・ディレクトリに変更し、GSM2エントリについてtnsnames.ora
ファイル内のターゲット・ホストを変更します。- そのGSM構成でそのエンドポイント・エントリに変更し、
config gsm
を使用して、それに正しいターゲット・ホスト詳細が含まれていることを確認します。GDSCTL> modify gsm -gsm gsm2 -endpoint (ADDRESS=(HOST=myhost.example.com)(PORT=1787)(PROTOCOL=tcp)) GSM modified GDSCTL> GDSCTL> config gsm Name Region ENDPOINT ---- ------ -------- gsm1 east (address=(host=myhost.example.com)(port=1587)(protocol=tcp)) gsm2 west (address=(host=myhost.example.com)(port=1787)(protocol=tcp)) GDSCTL>
- ターゲット・ホストでGSM2を起動します。
GDSCTL> start gsm -gsm gsm2; GSM is started successfully GDSCTL>
modify gsm -gsm <gsm name> -pwd <GSMCATUSER password>
コマンドを実行します:GDSCTL> modify gsm -gsm gsm2 -pwd <GSMCATUSER secret_password> GSM modified GDSCTL>
- 新しいGSM環境を確認します。
GDSCTL> config database; Name Pool Status State Region Availability ---- ---- ------ ----- ------ ------------ cloud sdbpool Ok none east ONLINE clouddb sdbpool Ok none west ONLINE GDSCTL> GDSCTL> config Regions ------------------------ east west GSMs ------------------------ gsm1 gsm2 GDS pools ------------------------ sdbpool Databases ------------------------ cloud clouddb Services ------------------------ srv1 GDSCTL pending requests ------------------------ Command Object Status ------- ------ ------ Global properties ------------------------ Name: orasubbu Master GSM: gsm1 DDL sequence #: 0 GDSCTL GDSCTL> status database; Database: "cloud" Registered: Y State: Ok ONS: N. Role: PRIMARY Instances: 1 Region: east Service: "srv1" Globally started: Y Started: Y Scan: Y Enabled: Y Preferred: Y Registered instances: sdbpool%1 Database: "clouddb" Registered: Y State: Ok ONS: N. Role: PRIMARY Instances: 1 Region: west Service: "srv1" Globally started: Y Started: N Scan: Y Enabled: Y Preferred: N Registered instances: sdbpool%11 GDSCTL> GDSCTL> databases; Database: "cloud" Registered: Y State: Ok ONS: N. Role: PRIMARY Instances: 1 Region: east Service: "srv1" Globally started: Y Started: Y Scan: Y Enabled: Y Preferred: Y Registered instances: sdbpool%1 Database: "clouddb" Registered: Y State: Ok ONS: N. Role: PRIMARY Instances: 1 Region: west Service: "srv1" Globally started: Y Started: N Scan: Y Enabled: Y Preferred: N Registered instances: sdbpool%11 GDSCTL> GDSCTL> status service; Service "srv1.sdbpool.orasubbu" has 1 instance(s). Affinity: ANYWHERE Instance "sdbpool%1", name: "cloud", db: "cloud", region: "east", status: ready. GDSCTL> GDSCTL> config gsm Name Region ENDPOINT ---- ------ -------- gsm1 east (address=(host=myhost.example.com)(port=1587)(protocol=tcp)) gsm2 west (address=(host=myhost.example.com)(port=1787)(protocol=tcp)) GDSCTL>
GDSCTLの使用
GDSCTLユーティリティは、Global Data Servicesフレームワークを構成および管理するためのコマンドライン・インタフェースです。いくつかのコマンドを実行するには、GDSCTLは、グローバル・サービス・マネージャ、Global Data Servicesカタログ・データベース、またはGlobal Data Services構成のデータベースとの接続を確立する必要があります。
操作上のノート
ノート:
指定がない場合、GDSCTLは現在の名前の解決方法(TNSNAMESなど)を使用して接続文字列を解決します。例外は、グローバル・サービス・マネージャ名です。グローバル・サービス・マネージャ名を解決するには、GDSCTLはgsm.ora
ファイルに問い合せます。
GDSCTLを起動するには、オペレーティング・システムのプロンプトで、次のコマンドを入力します。
$ gdsctl
前述のコマンドでGDSCTLが起動され、GDSCTLコマンド・プロンプトが表示されます。GDSCTLコマンドは、次の例に示すように、オペレーティング・システム・プロンプトでもGDSCTLコマンド・プロンプトでも入力できます。
$ gdsctl add gsm -gsm gsm1 -catalog 127.0.0.1:1521:db1 GDSCTL> add gsm -gsm gsm1 -catalog 127.0.0.1:1521:db1
前述のどちらのコマンドでも同じ結果が得られます。1つ目のコマンドはオペレーティング・システム・コマンド・プロンプトで実行され、2つ目のコマンドはGDSCTLコマンド・プロンプトで実行されます。このドキュメントのコマンド構文の例では、GDSCTLコマンド・プロンプトを使用します。
ノート:
-
GDSCTLコマンドの多くで、コマンドを実行する前にまずGlobal Data Servicesカタログに接続する必要があります。
GDSCTLプロンプトからコマンドを実行する場合、Global Data Servicesカタログとの接続を必要とする最初のGDSCTLコマンドの前に、
connect
コマンドを実行する必要があります。connect
コマンドは、GDSCTLセッションで1回実行するのみで済みます。 -
GDS構成にデータベースまたはブローカ構成を追加する場合、接続記述子のかわりにネット・サービス名を指定できます。ネット・サービス名を指定する場合、それはGDS構成の各グローバル・サービス・マネージャで、追加されるエンティティへの接続を可能にする接続記述子に解決できる必要があります。
また、すべてのGDSCTLコマンドを1つのファイルにまとめ、次のようにバッチとして実行できます。
$ gdsctl @script_file_name
前述のコマンドはGDSCTLを起動し、指定されたスクリプト・ファイルに含まれるコマンドを実行します。
GDSCTLヘルプの使用
GDSCTLのヘルプは次のようにして表示できます。
-
GDSCTL> help
:help
コマンドではすべてのGDSCTLコマンドのサマリーが表示されます。help
の後にコマンド名を指定すると、そのコマンドのヘルプ・テキストが表示されます。 -
GDSCTL>
command
-h
: この構文では、指定されたコマンドのヘルプ・テキストが表示されます。command
はコマンド名です。
次の例では、start
コマンドの同じヘルプ・テキストが表示されます。
GDSCTL> help start GDSCTL> start -h
権限およびセキュリティ
適切な権限を持つユーザーのみがGDSCTLコマンドを実行できます。
関連項目:
GDSCTLの権限とセキュリティの詳細は、「Global Data Servicesの管理の概要」を参照してください
GDSCTLコマンドの構文およびオブジェクト
GDSCTLコマンドの構文とオプション
GDSCTLのコマンド、オブジェクトおよびオプションと、データベース名、インスタンス名、Global Data Servicesリージョン名、Global Data Servicesプール名、サービス名ではすべて大文字/小文字が区別されません。パスワードとサーバー・プール名でも大文字/小文字が区別されます。GDSCTLでは次のコマンド構文を使用します。
$ gdsctl command [object] [options] [argument] or GDSCTL> command [object] [options] [argument]
GDSCTL構文では次のようになります。
-
command
:add
、start
、stop
、remove
などの動詞 -
object
(名詞とも呼ばれる):service
、database
など、GDSCTLがコマンドを実行するターゲットまたはオブジェクト。オブジェクトのリストは、表2-1を参照してください。 -
options
: その前のコマンドと組み合せてコマンドのパラメータを追加できるように拡張するオプション・フラグ。たとえば、-gdspool
オプションは、特定のGlobal Data Servicesプールの名前が続くことを示します。カンマ区切りリストをオプションに続ける場合、リスト内の項目の間に空白を使用しないでください。 -
argument
: オブジェクトに対するアクションを指定したり、オブジェクトを使用しないGDSCTLに対するアクションを指定するGDSCTLコマンドの追加変数。
GDSCTLオブジェクトのサマリー
表2-1に、GDSCTLコマンドのobject
部分に使用できるキーワードを示します。各オブジェクト・キーワードとして、完全な名前または短縮形のいずれかを使用できます。「目的」列に、オブジェクトとそのオブジェクトに実行できるアクションを記述します。
表2-1 GDSCTLのオブジェクトのキーワードと短縮形
オブジェクト | キーワード(短縮形) | 目的 |
---|---|---|
|
データベース登録の登録用有効ノード・チェック(VNCR)リストを有効化または無効化します。 |
|
|
Oracle Data Guard Broker構成の追加、変更および管理。Oracle Data Guard Brokerでは、プライマリ・データベースとスタンバイ・データベースが、統合ユニットとしてブローカがまとめて管理および監視できるようにブローカ構成として論理的にグループ化されます。 |
|
|
Oracleデータベースに格納されているGlobal Data Servicesカタログの管理。 |
|
|
データベースに関するデータベース構成情報の追加、変更および削除。 |
|
|
Global Data Servicesプールの追加、変更および管理。Global Data Servicesプールは、GDS構成内の各データベースのセットであり、一意のグローバル・サービス・セットを提供し、特定の管理ドメインに属しています。 |
|
|
グローバル・サービス・マネージャの追加、変更および管理。グローバル・サービス・マネージャは、サービス・レベルのロード・バランシング機能と、Global Data Services構成における一元的なサービス管理の機能を持つソフトウェア・コンポーネントです。 |
|
Global Data Servicesカタログ |
|
Global Data Servicesカタログの登録用有効ノード・チェック(VNCR)リストにホスト・アドレス情報を追加します。 |
Global Data Servicesカタログ |
|
Global Data Servicesカタログの登録用有効ノード・チェック(VNCR)リストにサブネット情報を追加します。 |
|
Global Data Servicesリージョンの追加、変更および管理。Global Data Servicesリージョンは、地理的に近いと考えられるデータベース・クライアントとサーバーを含む論理境界です。 |
|
|
グローバル・サービスに対する追加、変更、構成表示、有効化、無効化、起動、停止、ステータス取得、再配置および削除。 |
GDSCTL接続
特定の操作では、GDSCTLによるグローバル・サービス・マネージャへの接続を必要とします。グローバル・サービス・マネージャに接続するには、GDSCTLがグローバル・サービス・マネージャと同じホストで実行される必要があります。グローバル・サービス・マネージャに接続する際、GDSCTLは、ローカル・グローバル・サービス・マネージャに関連付けられているgsm.ora
ファイルを検索します。
次に、グローバル・サービス・マネージャへの接続を必要とするGDSCTL操作を示します。
-
add gsmでは、グローバル・サービス・マネージャを追加します。
-
start gsmでは、グローバル・サービス・マネージャを起動します。
-
stop gsmでは、グローバル・サービス・マネージャを停止します。
-
modify gsmでは、グローバル・サービス・マネージャの構成パラメータを変更します。
-
status gsmでは、グローバル・サービス・マネージャのステータスを返します。
-
set inbound_connect_levelでは、
INBOUND_CONNECT_LEVEL
リスナー・パラメータを設定します。 -
set trace_levelでは、指定されたグローバル・サービス・マネージャに関連付けられているリスナーのトレース・レベルを設定します。
-
set outbound_connect_levelでは、指定されたグローバル・サービス・マネージャに関連付けられているリスナーのアウトバウンド接続のタイムアウト値を設定します。
-
set log_levelでは、特定のグローバル・サービス・マネージャに関連付けられているリスナーのログ・レベルを設定します。
他のすべての操作では、GDSCTLは、Oracle Net Servicesを使用してGlobal Data Servicesカタログ・データベースまたはGlobal Data Services構成の別のデータベースに接続します。これらの接続の場合、必要なネットワーク構成を持つクライアントまたはホストからGDSCTLを実行できます。
Global Data Servicesカタログの作成に関する必知事項
すべてのGlobal Data Services構成には、Global Data Servicesカタログが含まれる必要があります。Global Data Servicesカタログは、GDS構成データベースと同じホストに配置できますが、このシナリオは大規模構成では推奨されません。Oracle Real Application Clusters (Oracle RAC)やOracle Data Guardなどの高可用性機能を使用して、Global Data Servicesカタログが停止しないようにすることをお薦めします。
Global Data Servicesカタログの要件
-
Global Data Servicesカタログは、サーバー・パラメータ・ファイル(SPFILE)を使用するOracle Database 12c以上のデータベースに存在する必要があります。
Oracle RACデータベースにGlobal Data Servicesカタログを作成する場合、そのデータベースに単一クライアント・アクセス名(SCAN)を設定することをお薦めします。
-
Global Data Servicesカタログを作成するGlobal Data Services管理者は、カタログ・データベースにユーザー・アカウントを持っていることと、
GSMADMIN_ROLE
権限とアカウントのパスワードを持っている必要があります。たとえば、次のSQL文をカタログ・データベースで実行します。CREATE USER gsm_admin IDENTIFIED BY ****; GRANT gsmadmin_role TO gsm_admin;
-
Global Data Servicesカタログは、高可用性および障害時リカバリに対応するように保護される必要があります。
ノート:
Global Data Services管理者はカタログ・データベースにユーザー・アカウントを持っていますが、カタログ・データベースに直接接続しないようお薦めします。Global Data Services管理者は、GDSCTLユーティリティを使用して、Global Data Servicesを管理できます。GDSCTLコマンドを実行するときに、Global Data Services管理者が指定する資格証明を使用して、GDSCTLはGlobal Data Servicesカタログに接続します。
たとえば:
GDSCTL> create gdscatalog -database serv1:1521:catdb.example.com -user gsm_admin
前述の例で、serv1:1521:catdb.example.com
は、データベースに接続するために使用されるリスナーのホスト名とポート番号を含む簡易接続文字列で、catdb.example.com
は、Global Data Servicesカタログ・データベースのサービス名です。
1つのデータベースを、Global Data Servicesカタログのプライマリ・リポジトリとして指定します。Oracle RAC、Oracle Data Guard、Oracle Clusterwareなどの既存の高可用性テクノロジを使用して、Global Data Servicesカタログを保護できます。
Oracle GoldenGateを使用する場合、Global Data Servicesカタログがセカンダリ・データベースにレプリケートされていることを確認します。
関連項目:
使用方法の詳細は、「create gdscatalog」を参照してください
Global Data Servicesカタログの作成
次のようにGDSCTLがインストールおよび構成されているホストでGDSCTLを使用し、Global Data Servicesカタログを作成します。
GDSCTL> create gdscatalog -database db_name -user user_name
関連項目:
Global Data Servicesカタログへのグローバル・サービス・マネージャの追加
グローバル・サービス・マネージャを起動するには、Global Data Servicesカタログに登録する必要があります。
グローバル・サービス・マネージャを追加するには、次のようにします。
Global Data Servicesカタログへの接続
GDSCTLコマンドの多くはGlobal Data Servicesカタログへの接続を必要とします。次の2つの方法のいずれかを使用してGlobal Data Servicesカタログに接続します。
メソッド1
次のようにしてGlobal Data Servicesカタログに接続します。
GDSCTL> connect [user_name]@connect_identifier
パスワードを指定せずに前述のコマンドを実行すると、次の例に示すようにGDSCTLからパスワードの入力を求められます。
GDSCTL> connect gsm_admin@catalog Enter password: ****** Catalog connection is established GDSCTL>
前述の例でcatalog
は、1つ以上のグローバル・サービス・マネージャ・エンドポイントに解決される接続識別子です。高可用性を実現するには、接続識別子を構成のすべてのグローバル・サービス・マネージャのリストに解決することをお薦めします。たとえば、Global Data Services構成に2つのグローバル・サービス・マネージャが存在し、名前解決にTNSNAMES
を使用する場合、tnsnames.ora
ファイルに次のようなエントリを含める必要があります。
catalog = (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xyz)(PORT=1523)) (ADDRESS=(PROTOCOL=tcp)(HOST=abc)(PORT=1523)) )
前述の例では、1つ目のグローバル・サービス・マネージャはxyz
という名前のホストで実行され、2つ目のグローバル・サービス・マネージャはabc
という名前のホストで実行されます。
関連項目:
使用方法の詳細は、「connect」を参照してください
メソッド2
オペレーティング・システム・プロンプトからGDSCTLコマンドを実行するには、Global Data Servicesカタログに接続する必要のあるコマンドに-catalog
パラメータを付加します。
たとえば:
$ gdsctl add gdspool -gdspool hr -catalog mygdscatlog username:Robert password:
Global Data Servicesの場所は変わることがあるため、GDSCTLはグローバル・サービス・マネージャをリスナーとして使用してGlobal Data Servicesカタログに接続します。グローバル・サービス・マネージャは場所の変更を記録し、接続リクエストを転送することができます。
Global Data Servicesプールの追加に関する必知事項
ノート:
-
必要なGlobal Data Servicesプールが1つのみの場合、この手順を使用して追加する必要はありません。Global Data Servicesカタログを作成すると、デフォルトのGlobal Data Servicesプール
DBPOOLORA
が作成されます。 -
Global Data Services管理者は、GDSCTLコマンドを実行してGlobal Data Servicesプールを管理する権限を持ち、プールが1つのみの場合、Global Data Services管理者がプールも管理します。
-
gdsctl add gdspool
コマンドの実行時にユーザーを指定する場合、Global Data Servicesカタログが配置されている場所のローカルDBAは、まずカタログ・データベースにユーザーを追加する必要があります。
大規模データベース・クラウドでは、異なる管理者が管理する複数のGlobal Data Servicesプールが必要になることがあります。
たとえば:
GDSCTL> add gdspool -gdspool hr -users rjones
前述の例では、hr
という名前のGlobal Data Servicesプールを追加し、ユーザーrjones
を追加します。このユーザーにはhr
プールを管理する権限が割り当てられます。権限によって、プールの管理者は、データベースをプールに追加したり、プール内のデータベースでグローバル・サービスを管理したりできます。
Global Data Servicesプールには、そのGDS構成内で一意の名前を付ける必要があります。作成時にプールの名前を指定しない場合、その名前はデフォルトでoradbpool
になります。プール名の長さは最大30バイトで、任意の有効な識別子(先頭は英字でその後に0個以上のASCII英数字またはアンダースコア(_)を続ける)を使用できます。
Global Data Servicesプールの追加
Global Data Servicesカタログに接続していることを確認し、次のようにして特定のユーザーによって管理されるプールを追加します。
GDSCTL> add gdspool -gdspool database_pool_list [-users user_list]
Global Data Servicesリージョンの追加に関する必知事項
ノート:
必要なGlobal Data Servicesリージョンが1つのみの場合、この手順を使用して追加する必要はありません。Global Data Servicesカタログを作成すると、デフォルトのGlobal Data ServicesリージョンREGIONORA
が作成されます。
たとえば:
GDSCTL> add region –region west,east
前述の例では、2つのリージョンeast
およびwest
をGlobal Data Servicesフレームワークに追加します。
Global Data Servicesリージョンの名前は、対応するGlobal Data Services構成内で一意である必要があります。最初のリージョンの作成時に名前を指定しない場合、そのリージョンにはoraregion
というデフォルト名が付けられます。リージョン名の長さは最大30文字で、任意の有効な識別子(先頭は英字でその後に0個以上のASCII英数字または「_」を続ける)を使用できます。
グローバル・データ・サービス・リージョンの追加
Global Data Servicesカタログに接続していることを確認し、次のようにしてGlobal Data Servicesリージョンを追加します。
GDSCTL> add region –region region_list
Global Data Servicesプールへのデータベースの追加
グローバル・サービスを提供するには、データベースがGlobal Data Servicesプールに追加されている必要があります。
データベースをプールに追加する前に、次の例に示すように、データベース管理者はGSMUSER
アカウントのロックを解除し、Global Data Servicesプール管理者にパスワードを付与する必要があります。
ALTER USER gsmuser ACCOUNT UNLOCK;
ALTER USER gsmuser IDENTIFIED BY password;
Global Data Servicesプールに含めるには、データベースでサーバー・パラメータ・ファイル(SPFILE)が使用される必要があります。Oracle RACデータベースにはSCAN設定も必要です。
データベースを追加をするには:
ノート:
プールにすでにデータベースが含まれ、プールにグローバル・サービスが関連付けられている場合、サービスは新しいデータベースで自動的に作成されます。
登録用有効ノード・チェック
登録用有効ノード・チェック(VNCR)機能では、グローバル・サービス・マネージャによって許可された登録リクエストのIPアドレス、ホスト名またはサブネットのセットの構成や動的な更新が可能になります。データベース・インスタンスのグローバル・サービス・マネージャでの登録は、リクエストが有効なノードからの場合にのみ成功します。
デフォルトでは、gdsctl add database
コマンドが実行されるたびに、Global Data Servicesフレームワークは、リモート・データベースが実行されているホストのVNCRエントリを自動的に追加します。この自動化機能(自動VNCR)では、ホスト名エントリがローカルhostsファイルまたはネーム・サーバーのいずれかに存在する必要があります。グローバル・サービス・マネージャが実行されるいずれかのノードでリモート・ホストが異なる名前で識別される場合、Global Data Services管理者は、gdsctl add invitednode
コマンドを実行してGlobal Data Servicesカタログに手動でVNCRエントリを追加する必要があります。
関連項目:
使用方法の詳細は、「add invitednode (add invitedsubnet)」を参照してください
Global Data Servicesプールへのサービスの追加
gdsctl add service
コマンドを使用して、Global Data Servicesプール・データベースでサービスを作成します。コマンドの単純な例を次に示します。
GDSCTL> add service -gdspool hr -service emp_report1 -preferred_all
この例で、emp_report1
はサービス名で、-preferred_all
オプションはサービスがプール内のすべてのデータベースで通常実行されることを示します。
add serviceコマンドで指定するサービス名は、ドメイン修飾することも(sales.example.comなど)、しないことも(salesなど)可能です。指定した名前がドメイン修飾されていない場合、サービスはデフォルトのドメイン名である<GDS_pool_name>.<GDS_configuration_name>を使用して作成されますが、サービスを管理する後続のGDSCTLコマンドでは、より短いドメイン修飾なしの名前を使用できます。指定した名前がドメイン修飾されている場合、サービスを管理するために使用する後続のすべてのGDSCTLコマンドで、完全修飾ドメイン・サービス名を使用する必要があります。
Oracle RACが有効なプール・データベースの場合は、サービスが追加された後に、次の例に示すようにGDSCTL modify service
を実行して、特定のグローバル・サービスを実行するOracle RACインスタンスを指定します。
GDSCTL> modify service -service emp_report1 -gdspool hr - database db14
-modify_instances -preferred db14_n1, db14_n2
グローバル・サービス名は、GDSプール内で一意である必要があり、ドメイン修飾されている場合はGDS構成内でも一意である必要があります。グローバル・サービスは、データベースに同じ名前のローカル・サービスまたはグローバル・サービスがすでに存在する場合、そのデータベースで作成できません。
グローバル・サービス名には、英数字、「_」および「.」を含めることができます。最初の文字は英数字にする必要があります。グローバル・サービス名の長さは最大64文字です。ドメイン修飾されたグローバル・サービス名の長さは、最大250文字です。
グローバル・サービスに接続するために使用されるOracle Net接続記述子には、ドメイン修飾されたサービス名を含める必要があります。
関連項目:
使用方法の詳細は、add serviceおよびmodify serviceを参照してください
グローバル・サービスの起動
gdsctl start service
コマンドを使用して、Global Data Servicesプール・データベースで既存のサービスを起動します。
GDSCTL>start service -service emp_report1 -gdspool hr
サービスに-role
パラメータが指定されている場合、サービスは、指定された値にロールが適合するデータベースでのみ起動します。サービスに-lag
パラメータが指定されている場合、サービスは、レプリケーション・ラグが指定された値を超えないデータベースでのみ起動します。サービスに-preferred_all
が指定されていない場合、サービスは、サービスの優先データベースとしてリストされているデータベースでのみ起動します。
ノート:
管理者管理データベースで実行されるサービスを起動する前に、データベースがサービスを実行するインスタンスを指定するように変更する必要があります。modify service
コマンドの-modify_instances
パラメータを参照してください。
データベース・クライアントの構成
データベース・クライアントは、Oracle Net接続文字列を使用してデータベース・サービスに接続します。グローバル・サービスで使用される接続文字列は、ローカル・サービスで使用される接続文字列と次の点で異なります。
-
接続データ・セクションのサービス名パラメータは、グローバル・サービスを指定します。
-
複数の接続エンドポイントが指定され、これらのエンドポイントはローカル、リモートまたは単一クライアント・アクセス名(SCAN)リスナーではなく、グローバル・サービス・マネージャです。
-
データベース・クライアントのリージョンは、接続データ・セクションで指定できます。
次の接続文字列を検討します。
(DESCRIPTION= (FAILOVER=on) (ADDRESS_LIST= (LOAD_BALANCE=ON) (ADDRESS=(host=sales-east1)(port=1522)) (ADDRESS=(host=sales-east2)(port=1522)) (ADDRESS=(host=sales-east3)(port=1522))) (ADDRESS_LIST= (LOAD_BALANCE=ON) (ADDRESS=(host=sales-west1)(port=1522)) (ADDRESS=(host=sales-west2)(port=1522)) (ADDRESS=(host=sales-west3)(port=1522))) (CONNECT_DATA= (SERVICE_NAME=sales) (REGION=east)))
この接続文字列には、クライアントのローカル・リージョン(east)の3つのグローバル・サービス・マネージャ(sales-east1、sales-east2およびsales-east3)と、クライアントのバディ・リージョン(west)の3つのグローバル・サービス・マネージャ(sales-west1、sales-west2およびsales-west3)が含まれます。
クライアント側のロード・バランシングは、各リージョンのアドレス・リストでLOAD_BALANCE
パラメータをONに設定することで、各リージョン内のグローバル・サービス・マネージャ全体で有効化されます。リージョン間の接続時フェイルオーバーは、FAILOVER
パラメータをONに設定することで有効化されます。
例の接続文字列のように、各リージョンがバディ・リージョンを持ち、クライアント側のロード・バランシングと接続時フェイルオーバーが構成されるようにするには、リージョンごとに3つのグローバル・サービス・マネージャを割り当てることがベスト・プラクティスです。
REGION
パラメータは、接続文字列でローカル・リージョンからグローバル・サービス・マネージャのみが指定されている場合はオプションです。これが適用されるのは、GDS構成に1つのリージョンのみが存在する場合や、複数のリージョンが存在するが、単一のデータベースと連携するように設計された既存のクライアントの接続文字列を変更する見込みがない場合です。REGION
パラメータを指定しない場合、クライアントのリージョンは、グローバル・サービスへの接続に使用されるグローバル・サービス・マネージャのリージョンであるとみなされます。
ノート:
12cより前のThin JDBCクライアントは、接続文字列でリージョン・パラメータが指定されていない場合、単一のリージョンを含むGDS構成でのみ使用できます。
Oracle Database 12c 以上の統合クライアントは、Oracle Notification Services (ONS)を使用して、ロード・バランシングおよび高速接続フェイルオーバー(FCF)をサポートする高速アプリケーション通知(FAN)イベントを受信します。統合クライアントは、クライアントのローカル・リージョンとバディ・リージョンのそれぞれにあるグローバル・サービス・マネージャと同じ場所に存在する最大3つのONSサーバーに、ユーザー構成なしで自動的にサブスクライブします。
ノート:
SSLを使用してONSサーバーへの接続を保護する必要がある場合、自動ONS構成はサポートされません。手動でONSを構成してSSLを有効にする必要があります。ONSを手動で構成する方法の詳細は、クライアント固有のガイドを参照してください。
12cより前のクライアントに関するノート:
12cより前のOCIおよびODP.NETクライアントでは、グローバル・サービスがサポートされません。
12cより前のJDBCクライアントでは、グローバル・サービスがサポートされますが、クライアントのローカル・リージョンとバディ・リージョンにあるグローバル・サービス・マネージャと同じ場所に存在するONSサーバーにサブスクライブするようにそれを手動で構成する必要があります。ベスト・プラクティスは、クライアントのローカル・リージョンとバディ・リージョンのそれぞれにある3つのONSサーバーにサブスクライブすることです。
ONSサブスクリプションを構成する方法の詳細は、『Oracle Database JDBC開発者ガイド』を参照してください。
FANおよびFCF用の統合クライアントの構成
GDS構成のデータベース全体を対象とするクライアント接続のロード・バランシングおよび高速接続フェイルオーバー(FCF)は、Oracle Databaseの統合クライアントによってサポートされますが、FANおよびFCF用にこれらのクライアントを構成する必要があります。
クライアントのFANおよびFCF構成要件の詳細は、次のクライアント固有のプログラマーズ・ガイドのいずれかを参照してください。
論理バックアップ用のGDSカタログ・データのエクスポートに関する必知事項
GDSカタログには、GDS構成全体のメタデータが格納されるため、カタログ・データが損失または破損すると、それを手動で再作成するために相当の作業が必要になる可能性があります。GDSカタログが使用できなくなってもコアGDS機能(ロード・バランシング、サービス・フェイルオーバー、アプリケーション通知など)には影響がありませんが、カタログがリストアされるまでGDS構成を変更することはできません。そのため、GDSカタログを保護する計画を作成することが重要です。
GDSカタログをOracle RACやData GuardなどのHAテクノロジで保護している場合でも、定期的にGDSカタログをバックアップすることを強くお薦めします。カタログ・データをファイルにエクスポートすると、カタログの論理バックアップを作成できます。このGDSカタログのバックアップは、障害時リカバリ・シナリオの際や、最後にバックアップが作成されて以降にカタログに加えられた変更を元に戻す必要がある場合に役立ちます。バックアップは、GDSカタログを新しいデータベースに移動する場合にも使用できます。
GDSCTLが実行されているシステム上の指定したファイルにカタログ構成が保存されます。ファイルにはプール・データベースの接続文字列などの機密情報が含まれる可能性があるため、ファイルへのアクセスは、Global Data Services管理者に制限する必要があります。
ノート:
-
カタログをエクスポートする前に、カタログ・データに不整合がないことを確認するためにカタログを検証することを強くお薦めします。
validate catalog
コマンドでエラーがレポートされた場合、カタログ・データをエクスポートする前に修正する必要があります。 -
エクスポートしたカタログ・データが含まれるファイルは変更しないでください。カタログを変更すると、カタログ・リストアにこのファイルを使用できなくなるか、リストア後にカタログが破損する可能性があります。バックアップ・ファイルとともにファイル・チェックサムも格納することをお薦めします。ファイルが変更された場合は、カタログ構成のリストアを行わないでください。
論理バックアップ用のGDSカタログ・データのエクスポート
GDSカタログ・データをファイルにエクスポートするには、カタログに接続していることを確認して次のコマンドを実行します。
GDSCTL> export catalog file_name_with_full_path
GDSカタログの論理バックアップの同じカタログ・データベースへのリストア
バックアップ・ファイルからGDSカタログ・データをリストアするには、次のようにします。
カタログ・データベースに接続して、次のコマンドを発行します。
GDSCTL> import catalog file_name_with_full_path
カタログ・データのインポートが完了すると、プール・データベースが自動的に同期化されます(「sync database (synchronize database)」のsync database
コマンドの説明を参照してください。)使用できるグローバル・サービス・マネージャが存在しない場合、このアクションは、グローバル・サービス・マネージャがカタログに登録されるまで遅延されます。
インポートが完了してすべてのデータベースが同期化された後に、カタログを検証することをお薦めします。
ノート:
変更されているファイルからGDSカタログをリストアしようとすると、カタログが破損する可能性があります。チェックサムなどを使用してバックアップ・ファイルの一貫性をチェックすることは、GDS管理者の責任です。
GDSカタログの論理バックアップの新しいカタログ・データベースへのリストア
新しいデータベースにカタログを移動する場合、最初にそのデータベースに空のカタログを作成する必要があります(「Global Data Servicesカタログの作成に関する必知事項」を参照してください)。その後で、前の項の説明に従ってimport catalog
コマンドを実行できます。
新しいカタログ・データベースの接続文字列が異なる場合、管理者の責任でグローバル・サービス・マネージャ・システムの接続文字列を変更します。この場合、すべてのグローバル・サービス・マネージャを再起動する必要もあります。少なくとも1つのグローバル・サービス・マネージャがカタログに登録されるまで、同期手順は完了しないため、リストア手順も終了しません。