分散データベース・トポロジの構成
シャード・カタログ用のデータベースとすべてのシャードを対応するTNSリスナーとともに構成すると、GDSCTL
を使用して分散データベース・メタデータをシャード・カタログ・データベースに追加できるようになります。分散データベース・メタデータは、分散データベースに使用するトポロジを記述します。
分散データベース・トポロジは、データ分散方法、レプリケーション(高可用性)テクノロジ、分散データベースに存在するデフォルトのチャンク数、シャード・ディレクタの場所と数、分散データベース内のシャードグループ、シャード領域、リージョンおよびシャードの数、および分散データベースへの接続に使用するグローバル・サービスで構成されます。
『Oracle Database Global Data Services概要および管理ガイド』のGlobal Data Services Control Utility (GDSCTL)コマンド・リファレンスを手元に用意して、構成手順で使用するGDSCTL
コマンドの使用方法とオプションの詳細を調べてください。
次に示す手順に従って、分散データベース・トポロジの構成を完了してください。
GDSCTL
コマンドライン・インタフェースは、シャード・ディレクタ(グローバル・サービス・マネージャ)インストールの一部としてインストールされるため、コマンドはシャード・ディレクタ・ホストから実行してください。
シャード・カタログの作成
GDSCTL CREATE SHARDCATALOG
コマンドは、分散データベース・トポロジについての情報を示すメタデータをシャード・カタログ・データベースに作成するために使用します。
CREATE SHARDCATALOG
を実行して、残りの分散データベース・メタデータが作成されると、いくつかのメタデータ・プロパティは分散データベース全体を最初から再作成しないと変更できなくなります。これらには、分散データベース方法(システム管理、ユーザー定義、コンポジット)、レプリケーション・テクノロジ(Oracle Data GuardまたはRaftレプリケーション)、シャード領域内のチャンクのデフォルト数などがあります。コマンドに使用可能なオプションとそのデフォルト値の完全なリストは、GDSCTL
のリファレンス・ドキュメントを参照してください。
シャード・カタログ接続文字列
CREATE SHARDCATALOG
コマンドを実行すると、GDSCTL
は指定されたユーザー名と接続文字列でシャード・カタログ・データベースに接続します。
高可用性または障害回復のために、シャード・カタログ・データベースにスタンバイ・データベースが関連付けられているときには、接続文字列(次の例のcatalog_connect_string)で、すべてのプライマリ・データベースおよびスタンバイ・データベースを指定する必要があります。接続文字列にスタンバイ・データベースを含めていないと、シャード・ディレクタのプロセスはプライマリ・シャード・カタログが使用不可のときにスタンバイに接続できなくなります。
catalog_connect_stringでは、シャード・カタログ・データベースのPDBを指定します。CDB$ROOT
は指定しないでください。
次に、簡潔なtnsnames.ora
のエントリを示します。
CATALOG_CONNECT_STRING=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = tcp)(HOST = primary_catalog)(PORT = 1521))
(ADDRESS = (PROTOCOL = tcp)(HOST = standby_catalog)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = catpdb.example.com)
)
)
シャード・カタログの作成
計画した分散データベース・トポロジに適した設定で、CREATE SHARDCATALOG
を実行します。
システム管理の分散方法
次の例では、region1およびregion2という2つのリージョンがあるシステム管理構成用の分散データベース・メタデータが作成されます。システム管理はデフォルトの分散方法であるため、-sharding
パラメータで指定する必要はありません。
GDSCTL> create shardcatalog -database catalog_connect_string
-user mysdbadmin/mysdbadmin_password -repl DG -region region1,region2
-shardspace
の指定も省略すると、shardspaceoraというデフォルトのシャード領域が作成されます。-region
の指定を省略すると、regionoraというデフォルトのリージョンが作成されます。単一のデフォルト・リージョンがデフォルト・シャード領域とともに作成されると、そのシャード領域にshardspaceora_regionoraというデフォルトのシャードグループも作成されます。
システム管理の分散を使用するレプリケーション(-repl
)の場合は、Oracle Data Guard (DG
)またはRaftレプリケーション(native
)のいずれかを選択できます。
コンポジット分散方法
次の例は、コンポジット分散データベース用のシャード・カタログ・メタデータの作成方法を示しています。ここでは、MaxAvailability
保護モードのData Guardレプリケーション、シャード領域ごとに60チャンク、および2つのシャード領域を設定します。
GDSCTL> create shardcatalog -database catalog_connect_string
-user mysdbadmin/mysdbadmin_password -sharding composite -chunks 60
-protectmode maxavailability -shardspace shardspace1,shardspace2
ユーザー定義の分散方法
次の例は、ユーザー定義の分散データベースのシャード・カタログ・メタデータの作成方法を示しています。ここでは、Data Guardレプリケーションを設定しています。
GDSCTL> create shardcatalog -database catalog_connect_string
-user mysdbadmin/mysdbadmin_password -sharding user
-protectmode maxperformance
コマンドの使用方法は、GDSCTL
のドキュメントを参照するか、GDSCTL HELP CREATE SHARDCATALOG
を実行してください。
レプリケーション設定
Oracle Data Guardは、任意のデータ分散方法で使用でき、-repl DG
を使用してCREATE SHARDCATALOG
コマンドで構成されます。
Raftレプリケーションにはもう少し計画が必要ですが、CREATE SHARDCATALOG
コマンドで-repl native
を指定して有効にすることもできます。追加の構成可能な属性については、Raftレプリケーションの構成および管理を参照してください。
シャード・カタログへの今後の接続
GDSCTL
は、シャード・カタログ管理者の資格証明をローカル・ホストのウォレットに保管します。ただし、次回以降の別のホストでのGDSCTL
セッションでは、次に示すようにGDSCTL CONNECT
コマンドを使用して、管理タスクを実行するために明示的にシャード・カタログに接続することが必要になる場合があります。
GDSCTL> connect mysdbadmin/mysdbadmin_password@catalog_connect_string
シャード・ディレクタの追加と起動
構成にシャード・ディレクタを追加して起動します。シャード・ディレクタでは、GDSCTL
コマンドなどのイベントに応じて分散データベース・システムの監視やバックグラウンド・タスクを実行します。
次のコマンドは、シャード・ディレクタのプロセスを実行するホストで実行する必要があります。これは、シャード・カタログ・ホストまたはシャード・ディレクタ・プロセスの専用ホストのどちらかになります。
今後のGDSCTL
セッションでは、管理するシャード・ディレクタの明示的な指定が必要になることがあります。デフォルトのGSMORAシャード・ディレクタを示すエラー・メッセージが表示され場合は、次に示すように、GDSCTL SET GSM
を実行してから作業を進めてください。
GDSCTL> set gsm -gsm sharddirector1
シャード領域の追加(必要な場合)
コンポジットまたはユーザー定義のデータ分散を使用するときに、目的の分散データベース・トポロジの達成にシャード領域の追加が必要な場合は、ADD SHARDSPACE
コマンドを使用してシャード領域を追加します。
必要に応じたシャードグループの追加
分散データベース・トポロジにシステム管理またはコンポジットのデータ分散方法を使用する場合は、アプリケーション用に必要な追加のシャードグループを追加することもできます。
それぞれのシャード領域には、少なくとも1つのプライマリ・シャードグループを含める必要があり、任意の数またはタイプのスタンバイ・シャードグループを含めることができます。シャードグループは、ユーザー定義の分散方法では使用しません。
分散データベース・トポロジの検証
シャード・データベースに関する情報をカタログに追加する前に、分散データベース・トポロジが適切なことを確認します。その後で、各種のGDSCTL CONFIG
コマンドを使用して作業を進めてください。
シャードを追加してデプロイした後では、シャード・カタログ・メタデータの大部分が変更できなくなります。そのため、この時点で構成を検証することが重要なタスクになります。
ホスト・メタデータの追加
すべてのシャード・ホストのホスト名とIPアドレスをシャード・カタログに追加します。
デプロイメント・プロセスの一環として、シャード・ディレクタはシャードと通信して、シャード・ディレクタのTNSリスナー・プロセスに登録するように指示します。このリスナー・プロセスは、信頼できるソースからの着信登録リクエストのみを受け入れ、不明なホストからの登録リクエストを拒否します。
シャード・ホストに複数のホスト名またはネットワーク・インタフェースが割り当てられている場合、シャード・ディレクタへの着信登録リクエストは、ADD SHARD
の実行時に自動的に追加されていなかったホストから送信される可能性があります。この場合、その登録リクエストは拒否され、シャードは正常にデプロイされなくなります。この問題について目視できる現象は、DEPLOY
の完了後に、CONFIG SHARD
がシャードの「Availability」にPENDING
を示すことです。
この問題を回避するために、GDSCTL ADD INVITEDNODE
コマンドを使用して、シャード・ホストのすべてのホスト名とIPアドレスをシャード・カタログ・メタデータに手動で追加します。
チェック・フリーDB_FILES
分散データベースに必要なチャンクおよび表領域セットの数を作成するための十分な容量があることを確認するために、各シャードに十分な空きデータ・ファイルがあることを確認します。
チェック・フリーDB_FILES
およびパラメータ設定を確認するには:
SQL> select count(*) from v$datafile;
COUNT(*)
----------
XxxXX
SQL> show parameter db_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_files integer 200
DB_FILES
設定を計算する式は、シャード・データベースの作成を参照してください。