57 シャード・データベースのライフサイクル管理
Oracle Shardingは、シャード・データベースのライフサイクル管理のためのツールおよびいくつかの自動化を提供しています。
次のトピックでは、シャード・データベースのライフサイクル管理についてさらに詳しく説明します。
- シャード・データベースの監視
Enterprise Manager Cloud ControlまたはGDSCTLを使用して、シャード・データベースを監視できます。 - シャード・データベースのバックアップおよびリカバリ
シャードは個別のOracleデータベースでホストされるため、Oracle Maximum Availabilityのベスト・プラクティスを使用してシャードを個別にバックアップおよびリストアできます。 - シャード・データベースへのパッチ適用
シャード・データベース環境へのOracleパッチの適用は、単一のシャードまたはすべてのシャードに対して行うことができます。ただし、使用する方法は、その環境で使用されているレプリケーション・オプションおよび適用されるパッチのタイプによって異なります。 - シャード・データベース・スキーマの変更
シャード・データベースの重複表またはシャード表を変更する場合、それらの変更はシャード・カタログ・データベースから行う必要があります。 - シャード管理
Oracle Enterprise Manager Cloud ControlおよびGDSCTLを使用して、Oracle Shardingデプロイメントのシャードを管理できます。 - チャンク管理
Oracle Enterprise Manager Cloud ControlおよびGDSCTLを使用して、Oracle Shardingデプロイメントのチャンクを管理できます。 - シャード・ディレクタ管理
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード・ディレクタを追加、編集および削除できます。 - リージョン管理
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのリージョンを追加、編集および削除できます。 - シャード領域管理
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード領域を追加、編集および削除できます。 - シャードグループ管理
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャードグループを追加、編集および削除できます。 - サービス管理
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのサービスを管理できます。
親トピック: シャード・データベースの管理
57.1 シャード・データベースの監視
Enterprise Manager Cloud ControlまたはGDSCTLを使用して、シャード・データベースを監視できます。
Enterprise Manager Cloud ControlまたはGDSCTLを使用してシャード・データベースを監視するには、次の各トピックを参照してください。
- GDSCTLによるシャード・データベースの監視
個別のシャード、シャードグループ、シャード領域およびシャード・ディレクタのヘルス・ステータスを取得するために使用できる多数のGDSCTL CONFIG
コマンドがあります。 - Enterprise Manager Cloud Controlによるシャード・データベースの監視
Oracle Enterprise Manager Cloud Controlを使用すると、シャード・データベースのコンポーネントを検出、監視および管理できます。
親トピック: シャード・データベース・ライフサイクル管理
57.1.1 GDSCTLによるシャード・データベースの監視
個別のシャード、シャードグループ、シャード領域およびシャード・ディレクタのヘルス・ステータスを取得するために使用できる多数のGDSCTL CONFIG
コマンドがあります。
シャードの監視は通常のデータベースの監視と同様であり、標準のOracleのベスト・プラクティスを使用して、単一のシャードの個別の状態を監視してください。ただし、シャード環境全体の状態を監視することも重要です。GDSCTLコマンドは、スクリプトに記述し、スケジューラを使用して定期的に実行することによって、すべてが円滑に実行されていることを確認することもできます。
関連項目:
GDSCTL CONFIG
コマンドの使用方法の詳細は、Oracle Database Global Data Services概要および管理ガイドを参照してください
親トピック: シャード・データベースの監視
57.1.2 Enterprise Manager Cloud Controlによるシャード・データベースの監視
Oracle Enterprise Manager Cloud Controlを使用すると、シャード・データベースのコンポーネントを検出、監視および管理できます。
シャード・データベース・ターゲットは、「すべてのターゲット」ページで見つけます。
シャード・データベースのターゲット・ホーム・ページには、シャード・データベースのコンポーネントとそのステータスの概要が表示されます。
シャード・データベースのコンポーネントを監視するには、まず、それらを検出する必要があります。詳細は、「シャード・データベースのコンポーネントの検出」を参照してください。
サマリー
ページの左上にある「サマリー」ペインには、次の情報が表示されます。
-
シャード・データベース名
-
シャード・データベース・ドメイン名
-
シャード・カタログ名。名前をクリックすると、シャード・カタログの詳細を表示できます。
-
シャード・カタログ・データベースのバージョン
-
データベースのシャードに使用されたシャーディング方法
-
高可用性のために使用されたレプリケーション・テクノロジ
-
シャード・ディレクタの数とステータス
-
マスター・シャード・ディレクタ名。名前をクリックすると、マスター・シャード・ディレクタの詳細を表示できます。
シャードのロード・マップ
ページの右上にある「シャードのロード・マップ」には、シャード間でトランザクションがどのように分散されているかを図示したグラフが表示されます。
グラフの上にある「表示レベル」で別のレベルを選択できます。
-
データベース
データベース・ビューは、Oracle RACクラスタ・データベース内のデータベース・インスタンスを、Oracle RACクラスタ・データベース・ターゲット名でラベルが付けられた単一のセルに集約します。これにより、Oracle RAC環境のデータベース負荷の合計を簡単に比較できます。
-
インスタンス
インスタンス・ビューには、すべてのデータベース・インスタンスが個別に表示されますが、Oracle RACインスタンスはOracle RACデータベース・ターゲットのサブセルとしてグループ化されています。このビューは、基本的には2レベルのツリー・マップであり、データベース・レベルがプライマリ区分で、データベース内のインスタンスがセカンダリ区分です。これにより、Oracle RACデータベース内のインスタンスの負荷を比較できます。たとえば、インスタンス間での負荷の不均衡を簡単に特定できます。
-
プラガブル・データベース
PDBオプションが表示されますが、現行リリースではPDBはOracle Shardingに対してサポートされていません。
グラフのセルは、サイズが同じでないことに注意してください。各セルは、シャード・ターゲット(インスタンスまたはクラスタ・データベース)に対応します。セル・サイズ(領域)は、平均的なアクティブ・セッションで測定されたターゲット・データベースの負荷に比例するため、負荷の高いターゲットほどセル・サイズが大きくなります。セルは、サイズ順に左から右、上から下に並べられます。したがって、最も負荷の高いターゲットが常にグラフの左上端のセルとして表示されます。
グラフの特定のセルの上にマウス・ポインタを置くと、合計アクティブ・ロード(CPUに対するI/Oの比率)、CPU、I/Oおよび待機時間を表示できます。グラフの区分は、優位を占める負荷を示すように色付けされます。
-
緑は、CPU時間が負荷の大半を占めていることを示します。
-
青は、I/Oが負荷の大半を占めていることを示します。
-
黄色は、待機時間が負荷の大半を占めていることを示します。
メンバー
ページの左下にある「メンバー」ペインには、各コンポーネントの関連情報の一部が表示されます。
このペインは、各コンポーネントのタブ「シャード領域」、「シャードグループ」、「シャード・ディレクタ」および「シャード」に分かれています。各種コンポーネントの情報を表示するには、タブをクリックします。
-
シャード領域
「シャード領域」タブには、シャード領域名、ステータス、チャンク数およびData Guard保護モードが表示されます。シャード領域名をクリックすると、選択したシャード領域の詳細を表示できます。
-
シャードグループ
「シャードグループ」タブには、シャードグループ名、ステータス、所属するシャード領域、チャンク数、Data Guardロールおよび所属するリージョンが表示されます。シャードグループ名およびシャード領域名をクリックすると、選択したコンポーネントの詳細を表示できます。
-
シャード・ディレクタ
「シャード・ディレクタ」タブには、シャード・ディレクタ名、ステータス、リージョン、ホストおよびOracleホームが表示されます。シャード・ディレクタ名をクリックすると、選択したシャード・ディレクタの詳細を表示できます。
-
シャード
「シャード」タブには、シャード名、デプロイ・ステータス、ステータス、所属するシャード領域およびシャードグループ、Data Guardロールおよび所属するリージョンが表示されます。「名前」列で、プライマリ・シャードを展開すると、対応するスタンバイ・シャードの情報を表示できます。「デプロイ済」列のアイコンの上にマウスを置くと、デプロイメント・ステータスの詳細を表示できます。シャード名、シャード領域名およびシャードグループ名をクリックすると、選択したコンポーネントの詳細を表示できます。
サービス
ページの右下にある「サービス」ペインには、シャード・データベース・サービスの名前、ステータスおよびData Guardロールが表示されます。リストの上にはサービスの合計数と、特定のステータスにあるサービスの数を示すアイコンが表示されます。アイコンの上にマウス・ポインタを置くと、ステータス・アイコンの説明を表示できます。
インシデント
「インシデント」ペインには、シャード・データベース環境の様々なコンポーネントに関するメッセージおよび警告が表示されます。このペインの使用方法の詳細は、Cloud Controlオンライン・ヘルプを参照してください。
「シャードされたデータベース」メニュー
左上隅にある「シャードされたデータベース」メニューを使用すると、シャード・データベースのコンポーネントを管理するためにアクセスできるようになります。
ターゲット・ナビゲーション
「ターゲット・ナビゲーション」ペインを使用すると、シャード・データベースのどのコンポーネントの詳細にも簡単にアクセスできるようになります。
図shard_em_navicon.pngの説明
ページの左上隅にあるナビゲーション・ツリー・アイコンをクリックすると、「ターゲット・ナビゲーション」ペインが開きます。このペインには、シャード・データベースで検出されたすべてのコンポーネントがツリー形式で表示されます。
シャード領域を展開すると、その領域内のシャードグループが表示されます。シャードグループを展開すると、そのシャードグループ内のシャードが表示されます。
コンポーネント名をクリックすると、その詳細を表示できます。
- シャード・データベースのコンポーネントの検出
Enterprise Manager Cloud Controlでは、シャード・カタログおよびシャード・データベースを検出し、ガイドされた検出を使用してシャード・ディレクタ、シャード・データベース、シャード領域およびシャードグループを追加できます。
親トピック: シャード・データベースの監視
57.1.2.1 シャード・データベースのコンポーネントの検出
Enterprise Manager Cloud Controlでは、シャード・カタログおよびシャード・データベースを検出し、ガイドされた検出を使用してシャード・ディレクタ、シャード・データベース、シャード領域およびシャードグループを追加できます。
前提条件として、Cloud Controlを使用してシャード・ディレクタ・ホストおよびシャード・カタログ・データベースを検出しておく必要があります。カタログ・データベースおよび各シャードはデータベースそのものであるため、標準のデータベース検出プロシージャを使用できます。
シャードの監視は、データベース検出を使用して個々のシャードを検出する場合のみ可能です。シャードの検出は、シャードなしのシャード・データベース構成にすることもできるため、シャード・データベースの検出ではオプションです。
ターゲット検出プロシージャが終了すると、シャード・データベース・ターゲットがCloud Controlに追加されます。Cloud Controlでシャード・データベースを開き、コンポーネントを監視および管理できます。
57.2 シャード・データベースのバックアップおよびリカバリ
シャードは個別のOracleデータベースでホストされるため、Oracle Maximum Availabilityのベスト・プラクティスを使用してシャードを個別にバックアップおよびリストアできます。
SDBの高可用性のためにData GuardおよびOracle Active Data Guardを使用している場合は、プライマリ・データベースまたはスタンバイ・データベースをオフラインにする前に、オブザーバをオフラインにして、ファスト・スタート・フェイルオーバーを無効にします。
災害が発生した場合にシャードをリカバリするための具体的なステップについては、Oracleサポートにお問合せください。
関連項目:
MAAベスト・プラクティス・ホワイト・ペーパーについては、Oracle Maximum Availabilityアーキテクチャを参照してください
親トピック: シャード・データベース・ライフサイクル管理
57.3 シャード・データベースへのパッチ適用
シャード・データベース環境へのOracleパッチの適用は、単一のシャードまたはすべてのシャードに対して行うことができます。ただし、使用する方法は、その環境で使用されているレプリケーション・オプションおよび適用されるパッチのタイプによって異なります。
ほとんどのパッチは、単一のシャードに一度に適用できます。ただし、一部のパッチはすべてのシャードに適用する必要があります。SDBに使用されているレプリケーション方法に留意して、非シャード・データベースの場合と同様に、Oracleのベスト・プラクティスを使用して単一のシャードにパッチを適用してください。Oracleのopatchauto
は、複数のシャードに一度にパッチを適用するために使用でき、ローリング形式で行うことができます。Data Guard構成は1つずつ適用され、場合によっては(パッチによって異なります) Standby Firstパッチ適用を使用できます。パッチがマルチシャード問合せ、レプリケーションまたはシャーディング・インフラストラクチャの問題に対処するものである場合は、SDB内のすべてのシャードに適用する必要があります。
親トピック: シャード・データベース・ライフサイクル管理
57.4 シャード・データベース・スキーマの変更
シャード・データベースの重複表またはシャード表を変更する場合、それらの変更はシャード・カタログ・データベースから行う必要があります。
シャード・データベースに対してDDL操作を実行する前に、次のコマンドを使用してSHARD DDLを有効にします。
ALTER SESSION ENABLE SHARD DDL;
この文は、DDLによる変更がシャード・データベース内の各シャードに伝播されるようにします。
伝播されるDDLによる変更は、ALTER TABLE
、CREATE TRIGGER
などの操作を含む「スキーマ関連」として定義されているコマンドです。各シャードに伝播される他の操作には、ユーザー管理を簡略化するためのCREATE、ALTER、DROP
ユーザー・コマンド、複数のシャードでの表領域の作成を簡略化するためのTABLESPACE
操作などがあります。
GRANT
およびREVOKE
操作はシャード・カタログから行うことができ、セッションでSHARD DDLを有効にしている場合は各シャードに伝播されます。より細かい制御が必要な場合は、各シャードに対してコマンドを直接発行できます。
DBMSパッケージ・コール(または同様の操作)などの操作は伝播されません。たとえば、シャード・カタログで統計を収集する操作は各シャードに伝播されません。
表に対するロックを必要とする操作(NOT NULL列の追加など)を実行する場合、DDL操作を実行するには各シャードで表に対するロックを取得する必要があることに留意することが重要です。単一インスタンスにDDLを適用するためのOracleのベスト・プラクティスがシャード環境に適用されます。
シャード・カタログで実行されるマルチシャード問合せは、各シャードのデータベース接続でリモート問合せを発行します。この場合、問合せによってそのシャードからデータを返されるかどうかにかかわらず、ユーザーが各シャードに対する適切な権限を持つようにすることが重要です。
関連項目:
重複表およびシャード表に使用する操作の詳細は、Oracle Database SQL言語リファレンスを参照してください
親トピック: シャード・データベース・ライフサイクル管理
57.5 シャード管理
Oracle Enterprise Manager Cloud ControlおよびGDSCTLを使用したOracle Shardingデプロイメントのシャードを管理できます。
次のトピックでは、シャード管理の概念およびタスクについて説明します。
- シャードの追加について
既存のシャード・データベース環境に新しいシャードを追加することによって、スケール・アウトしたり、フォルト・トレランスを向上させたりできます。 - 再シャーディングおよびホット・スポット回避
シャード数の変化によってトリガーされてデータがシャード間に再分散されるプロセスを再シャーディングと呼びます。自動再シャーディングは、システム管理のシャーディング方法の機能であり、SDBに柔軟なスケーラビリティを提供します。 - プールからのシャードの削除
シャードにあるデータを失うことなくシャード・データベース環境からシャードを一時的または永続的に削除することが必要となる場合があります。 - スタンバイ・シャードの追加
Data Guardのスタンバイ・シャードをOracle Sharding環境に追加できます。ただし、制限があります。 - Oracle Enterprise Manager Cloud Controlを使用したシャードの管理
Oracle Enterprise Manager Cloud Controlを使用して、データベース・シャードを管理できます - GDSCTLを使用したシャードの管理
GDSCTLコマンドライン・ユーティリティを使用して、Oracle Shardingデプロイメントのシャードを管理できます。
親トピック: シャード・データベース・ライフサイクル管理
57.5.1 シャードの追加について
既存のシャード・データベース環境に新しいシャードを追加することによって、スケール・アウトしたり、フォルト・トレランスを向上させたりできます。
フォルト・トレランスのためには、少数の非常に大きいシャードを使用するより、多数の小さいシャードを使用するほうが効果的です。アプリケーションが長期間使用されてデータ量が増えた場合、1つ以上のシャードをSDBに追加して容量を増やすことができます。
シャード・データベースにシャードを追加するときに、環境がコンシステント・ハッシュによってシャーディングされている場合は、既存のシャードからのチャンクが新しいシャードに自動的に移動されて、シャード環境がリバランスされます。
Oracle Enterprise Manager Cloud Controlを使用して、新しいシャードに移動するか、分割して移動するよい候補となるチャンクを識別できます。
環境にシャードを追加する場合は、スタンバイ・サーバーが準備完了状態であることを確認し、新しいシャードが配置された後に、move chunk
操作に関係したすべてのシャードのバックアップを取得します。
親トピック: シャード管理
57.5.2 再シャーディングおよびホット・スポット回避
シャード数の変化によってトリガーされてデータがシャード間に再分散されるプロセスを再シャーディングと呼びます。自動再シャーディングは、システム管理のシャーディング方法の機能であり、SDBに柔軟なスケーラビリティを提供します。
ときには、SDBのデータを1つのシャードから他のシャードに移行する必要があります。シャード間のデータ移行は次のような場合に必要です。
-
SDBに対して1つ以上のシャードを追加または削除した場合
-
シャード間のデータ分散またはワークロード分散にスキューがある場合
シャード間のデータ移行の単位はチャンクです。チャンクでデータを移行することにより、異なるシャード・データベースの関連するデータが確実に一緒に移動されます。
SDBに対してシャードを追加または削除すると、複数のチャンクが移行されて、シャード間のチャンクとワークロードのバランスのとれた分散が維持されます。
シャーディング方法に応じて、再シャーディングが自動的に行われるか(システム管理)、ユーザーが指示します(コンポジット)。次の図は、3つのシャードを含むSDBにシャードを追加したときの自動再シャーディングの段階を示しています。
データまたはワークロードのスキューが発生したときに、シャード数を変更せずに、特定のチャンクを1つのシャードから他へ移動することもできます。この場合、ホット・スポットを回避するために、データベース管理者がチャンクの移動を開始できます。
RMAN増分バックアップ、トランスポータブル表領域およびOracle Notification Serviceテクノロジを使用して、アプリケーションの可用性へのチャンク移行の影響を最小限に抑えます。チャンク移行中、チャンクはオンラインのままです。短時間(数秒間)は、チャンクに格納されたデータが読取り専用アクセスのみになります。
FAN対応クライアントは、ソース・シャードでチャンクが読取り専用になる直前に通知を受信し、チャンク移行が完了して宛先シャードでチャンクが完全に使用可能になると、再度、通知を受信します。chunk read-only
イベントを受信すると、クライアントはチャンク移行が完了するまで接続の試行を繰り返すか、ソース・チャンクの読取り専用チャンクにアクセスできます。後者の場合、チャンクに書き込もうとすると、ランタイム・エラーが発生します。
親トピック: シャード管理
57.5.3 プールからのシャードの削除
シャードにあるデータを失うことなく、シャード・データベース環境からシャードを一時的または永続的に削除することが必要となる場合があります。
たとえば、忙しい休日の後にシャード環境がスケール・ダウンされる場合、またはデータ・センター内のサーバーまたはインフラストラクチャを交換する場合、シャードの削除が必要となることがあります。シャードを削除する前に、すべてのチャンクをそのシャードからオンラインの状態に維持される他のシャードに移動する必要があります。それらを移動するときは、すべてのシャード間でデータおよびアクティビティのバランスが維持されるようにします。
シャードを一時的に削除するだけの場合は、保守が完了した後に簡単に識別して元に戻すことができるように、各シャードに移動したチャンクを追跡します。
関連項目:
GDSCTL REMOVE SHARD
コマンドの使用方法の詳細は、Oracle Database Global Data Services概要および管理ガイドを参照してください
親トピック: シャード管理
57.5.4 スタンバイ・シャードの追加
Data Guardのスタンバイ・シャードをOracle Sharding環境に追加できます。ただし、制限があります。
シャード・データベースのレプリケーション方法としてData Guardを使用する場合、Oracle Shardingでは、プライマリまたは物理スタンバイ・シャードの追加のみサポートします。新しいスタンバイをシャード・データベースに追加する場合、他のタイプのData Guardスタンバイ・データベースはサポートされません。ただし、すでにシャード・データベースの一部であるシャードは、物理スタンバイからスナップショット・スタンバイに変換できます。物理スタンバイからスナップショット・スタンバイに変換する場合、次のステップに従う必要があります。
データベースが物理スタンバイに逆変換される場合、グローバル・サービスを有効化して再開できます。シャードはシャード・データベースのアクティブなメンバーになります。
親トピック: シャード管理
57.5.5 Oracle Enterprise Manager Cloud Controlを使用したシャードの管理
Oracle Enterprise Manager Cloud Controlを使用してデータベース・シャードを管理できます
Cloud Controlを使用してシャードを管理するには、最初に検出する必要があります。各データベース・シャードはデータベース自体であるため、標準のCloud Controlデータベース検出プロシージャを使用できます。
次のトピックでは、Oracle Enterprise Manager Cloud Controlを使用したシャード管理について説明します。
- シャードの検証
Oracle Shardingデプロイメントに追加する前に、シャードを検証します。 - プライマリ・シャードの追加
Oracle Enterprise Manager Cloud Controlを使用して、プライマリ・シャードをOracle Shardingデプロイメントに追加します。 - スタンバイ・シャードの追加
Oracle Enterprise Manager Cloud Controlを使用して、スタンバイ・シャードをOracle Shardingデプロイメントに追加します。 - シャードのデプロイ
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Sharding環境に追加されているシャードをデプロイします。
親トピック: シャード管理
57.5.5.1 シャードの検証
Oracle Shardingデプロイメントに追加する前に、シャードを検証します。
Oracle Shardingデプロイメントに追加する前に、Oracle Enterprise Manager Cloud Controlを使用してシャードを検証できます。デプロイメントした後にシャードを検証して、シャードのその後のライフサイクルでも設定が引き続き有効であることを確認することもできます。たとえば、ソフトウェアのアップグレード後に、既存のシャードを検証して、パラメータおよび構成が正しいことを確認できます。
Cloud Controlを使用してシャードを検証するには、Cloud Controlで監視している既存のターゲットである必要があります。
- シャードグループ管理ページから、シャードグループ・ターゲット・ページの左上隅にある「シャードグループ」メニューを開き、「シャードの管理」を選択します。
- 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」で管理するシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
- リストからシャードを選択して、「検証」をクリックします。
- 「OK」をクリックして、シャードを検証することを確認します。
- ページ上部にある「情報」ボックスのリンクをクリックして、シャードのプロビジョニング・ステータスを表示します。
シャード検証スクリプトが正常に実行されると、出力にレポートされるエラーを確認します。
57.5.5.2 プライマリ・シャードの追加
Oracle Enterprise Manager Cloud Controlを使用して、プライマリ・シャードをOracle Shardingデプロイメントに追加します。
プライマリ・シャードは、Cloud Controlで監視している既存のターゲットである必要があります。
Oracle Sharding環境に追加する前にシャードを検証することを強くお薦めします。Cloud Controlを使用してシャードを検証するか(「シャードの検証」を参照)、またはSQL*Plusを使用してシャードに対してDBMS_GSM_FIX.validateShardプロシージャを実行します(「シャードの検証」を参照)。
上記の手順の「シャードされたデータベースにすべてのシャードをデプロイ」を選択しなかった場合、シャードのデプロイ・タスクを使用して、Oracle Shardingデプロイメントにシャードをデプロイします。
57.5.5.3 スタンバイ・シャードの追加
Oracle Enterprise Manager Cloud Controlを使用して、スタンバイ・シャードをOracle Shardingデプロイメントに追加します。
スタンバイ・シャードは、Cloud Controlで監視している既存のターゲットである必要があります。
Oracle Sharding環境に追加する前にシャードを検証することを強くお薦めします。Cloud Controlを使用してシャードを検証するか(「シャードの検証」を参照)、またはSQL*Plusを使用してシャードに対してDBMS_GSM_FIX.validateShardプロシージャを実行します(「シャードの検証」を参照)。
上記の手順の「シャードされたデータベースにすべてのシャードをデプロイ」を選択しなかった場合、シャードのデプロイ・タスクを使用して、Oracle Shardingデプロイメントにシャードをデプロイします。
57.5.6 GDSCTLを使用したシャードの管理
GDSCTLコマンドライン・ユーティリティを使用して、Oracle Shardingデプロイメントのシャードを管理できます。
次のトピックでは、GDSCTLを使用したシャードの管理について説明します。
- シャードの検証
新しく作成したシャードをシャーディング構成に追加する前に、シャードがシャーディング環境用に正しく構成されていることを検証する必要があります。 - システム管理のSDBへのシャードの追加
システム管理のSDBにシャードを追加すると、SDBを柔軟に拡張できます。システム管理のSDBのチャンクは、新しいシャードが追加された後に自動的にリバランスされます。
親トピック: シャード管理
57.5.6.1 シャードの検証
新しく作成したシャードをシャーディング構成に追加する前に、シャードがシャーディング環境用に正しく構成されていることを検証する必要があります。
ADD SHARD
を実行する前に、シャードとして追加されるデータベースに対してvalidateShard
プロシージャを実行します。validateShard
プロシージャは、シャードとして正常に動作するために必要な初期化パラメータおよび特性がターゲット・データベースにあることを検証します。
validateShard
プロシージャはターゲット・データベースを分析し、そのデータベースに対してGDSCTL ADD SHARD
を実行する前に対処する必要がある問題を報告します。validateShard
プロシージャはデータベースまたはパラメータを変更しません。情報および起こり得る問題を報告するだけです。
validateShard
プロシージャは、シャードをデプロイメントした後に実行して、シャードのその後のライフサイクルでも設定が引き続き有効であることを確認することもできます。たとえば、ソフトウェアのアップグレード後またはシャードのデプロイメント後に、既存のシャードに対してvalidateShard
を実行し、パラメータおよび構成が正しいことを確認できます。
次のようにvalidateShard
を実行します。
sqlplus / as sysdba
SQL> set serveroutput on
SQL> execute dbms_gsm_fix.validateShard
出力例を次に示します。
INFO: Data Guard shard validation requested.
INFO: Database role is PRIMARY.
INFO: Database name is DEN27B.
INFO: Database unique name is den27b.
INFO: Database ID is 718463507.
INFO: Database open mode is READ WRITE.
INFO: Database in archivelog mode.
INFO: Flashback is on.
INFO: Force logging is on.
INFO: Database platform is Linux x86 64-bit.
INFO: Database character set is WE8DEC. This value must match the character set of the catalog database.
INFO: 'compatible' initialization parameter validated successfully.
INFO: Database is not a multitenant container database.
INFO: Database is using a server parameter file (spfile).
INFO: db_create_file_dest set to: '<ORACLE_BASE>/oracle/dbs2'
INFO: db_recovery_file_dest set to: '<ORACLE_BASE>/oracle/dbs2'
INFO: db_files=1000. Must be greater than the number of chunks and/or tablespaces to be created in the shard.
INFO: dg_broker_start set to TRUE.
INFO: remote_login_passwordfile set to EXCLUSIVE.
INFO: db_file_name_convert set to: '/dbs/dt, /dbs/bt, dbs2/DEN27D/, dbs2/DEN27B/'
INFO: GSMUSER account validated successfully.
INFO: DATA_PUMP_DIR is '<ORACLE_BASE>//oracle/dbs2'.
INFO
がタグ付けされている行は、基本的に情報であり正しい設定であることを示しています。WARNING
がタグ付けされている行は、構成によって問題である場合と問題ではない場合があります。たとえば、Data Guardパラメータに関する問題が報告されても、構成にプライマリ・データベースのみが含まれている場合は、Data Guardの問題を無視できます。最後に、そのシャードをシャーディング構成にデプロイして正常に稼働させるには、ERROR
タグが付けられている出力を修正する必要があります。
親トピック: GDSCTLを使用したシャードの管理
57.5.6.2 システム管理のSDBへのシャードの追加
システム管理のSDBにシャードを追加すると、SDBを柔軟に拡張できます。システム管理のSDBのチャンクは、新しいシャードが追加された後に自動的にリバランスされます。
新しいシャードのホストを準備するには、最初にシャード・データベース環境を準備したときと同じすべてのセットアップ手順(次の手順を含む)を行います。
-
Oracle Shardingの管理およびルーティング層のセットアップの説明に従って、リモート・スケジューラ・エージェントを登録します
関連項目:
GDSCTLコマンドの使用方法については、Oracle Database Global Data Services概念および管理ガイドを参照してください
親トピック: GDSCTLを使用したシャードの管理
57.6 チャンク管理
Oracle Enterprise Manager Cloud ControlおよびGDSCTLを使用したOracle Shardingデプロイメントのチャンクを管理できます。
次のトピックでは、チャンク管理の概念およびタスクについて説明します。
- チャンクの移動について
チャンクをあるシャードから別のシャードに移動することが必要となる場合があります。シャード環境のスケーラビリティを維持するには、すべてのシャード間で負荷とアクティビティが均等に配分されるように維持することが重要です。 - チャンクの移動
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントの1つのシャードから他のシャードにチャンクを移動できます。 - チャンクの分割について
チャンクが大きくなりすぎた場合や、チャンクの一部のみを別のシャードに移行する必要がある場合は、シャード・データベースのチャンクを分割する必要があります。 - チャンクの分割
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのチャンクを分割できます。
親トピック: シャード・データベース・ライフサイクル管理
57.6.1 チャンクの移動について
チャンクをあるシャードから別のシャードに移動することが必要となる場合があります。シャード環境のスケーラビリティを維持するには、すべてのシャード間で負荷とアクティビティが均等に配分されるように維持することが重要です。
コンポジットSDBの環境が長期間使用されると、一部のシャードがよりアクティブになり、他のシャードよりデータが多くなります。環境内のバランスを保つために、よりアクティブなサーバーからアクティブではないサーバーにチャンクを移動する必要があります。チャンクを移動する理由は他にもあります。
-
あるシャードが他のシャードよりアクティブになった場合は、よりアクティブではないシャードにチャンクを移動して、環境内で負荷が均等に配分されるようにできます。
-
範囲、リストまたはコンポジット・シャーディングを使用しているときに、シャードをシャードグループに追加する場合。
-
範囲、リストまたはコンポジット・シャーディングを使用しているときに、シャードグループからシャードを削除する場合。
-
チャンクを分割したら、分割されたチャンクのいずれかを新しいシャードに移動することを多くの場合お薦めします。
スケーラビリティを維持するためにシャードを移動する場合、チャンクの最適なターゲットはよりアクティブではないシャード、またはより少ないデータがあるシャードです。Oracle Enterprise ManagerおよびAWRのレポートは、シャード間のアクティビティの配分を識別するため、およびチャンクの移動のよい候補となるシャードを識別するために役立ちます。
注意:
チャンクをあるシャードから別のシャードに移動する場合は、その操作に関係するデータベース(チャンクの移動のソースおよびターゲットの両方)のフル・バックアップを取得する必要があります。
関連項目:
GDSCTL MOVE CHUNK
コマンドの使用方法の詳細は、Oracle Database Global Data Services概要および管理ガイドを参照してください
親トピック: チャンク管理
57.6.2 チャンクの移動
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントの1つのシャードから他のシャードにチャンクを移動できます。
親トピック: チャンク管理
57.6.3 チャンクの分割について
チャンクが大きくなりすぎた場合や、チャンクの一部のみを別のシャードに移行する必要がある場合は、シャード・データベースのチャンクを分割する必要があります。
Oracle Shardingはチャンクのオンライン分割をサポートします。理論上は、各シャードに1つのチャンクを作成し、データ移行が必要になるたびに分割できます。ただし、チャンクの分割はデータの可用性に影響しないものの、分割するパーティションのすべての行をスキャンしてから、1行ずつ新しいパーティションに挿入するため、時間がかかり、CPUにも負荷がかかる操作です。コンポジット・シャーディングの場合、チャンクの分割には時間がかかり、シャード・キーまたはスーパー・シャード・キーの新しい値を再定義するために停止時間が必要となることがあります。
したがって、各シャードに事前に複数のチャンクを作成し、次のいずれかの場合に分割することをお薦めします。再シャーディング中にデータをバランスよく分散するにはチャンク数が足りない場合、または特定のチャンクがホット・スポットになっている場合です。
システム管理のシャーディングの場合でも、単一のチャンクが他のチャンクより大きくなったり、よりアクティブになったりすることがあります。この場合は、そのチャンクを分割し、分割されたチャンクのいずれかが自動再シャーディングによって別のシャードに移動されることを許可すると、環境内のデータおよびアクティビティがより均等に配分されるように維持されます。
関連項目:
GDSCTL SPLIT CHUNK
コマンドの使用方法の詳細は、Oracle Database Global Data Services概要および管理ガイドを参照してください
親トピック: チャンク管理
57.6.4 チャンクの分割
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのチャンクを分割できます。
親トピック: チャンク管理
57.7 シャード・ディレクタ管理
Oracle Enterprise Manager Cloud Controlを使用したOracle Shardingデプロイメントのシャード・ディレクタを追加、編集および削除できます。
次の各項では、シャード・ディレクタの管理タスクについて説明します。
- シャード・ディレクタの作成
Oracle Enterprise Manager Cloud Controlを使用して、シャード・ディレクタをOracle Shardingデプロイメントに作成して追加します。 - シャード・ディレクタ構成の編集
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード・ディレクタ構成を編集します。 - シャード・ディレクタの削除
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントからシャード・ディレクタを削除します。
親トピック: シャード・データベース・ライフサイクル管理
57.7.1 シャード・ディレクタの作成
Oracle Enterprise Manager Cloud Controlを使用して、シャード・ディレクタをOracle Shardingデプロイメントに作成して追加します。
親トピック: シャード・ディレクタ管理
57.7.2 シャード・ディレクタ構成の編集
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード・ディレクタ構成を編集します。
親トピック: シャード・ディレクタ管理
57.7.3 シャード・ディレクタの削除
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントからシャード・ディレクタを削除します。
「シャード・ディレクタ」リストの列のチェック・マークに示されているように、削除するシャード・ディレクタが管理シャード・ディレクタの場合、削除する前に別のシャード・ディレクタを管理シャード・ディレクタに選択する必要があります。
- シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「シャード・ディレクタ」を選択します。
- 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」で管理するシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
- リストからシャード・ディレクタを選択して、「削除」をクリックします。
- ページ上部にある「情報」ボックスのリンクをクリックして、シャード・ディレクタ削除のプロビジョニング・ステータスを表示します。
親トピック: シャード・ディレクタ管理
57.8 リージョン管理
Oracle Enterprise Manager Cloud Controlを使用したOracle Shardingデプロイメントのリージョンを追加、編集および削除できます。
次の各項では、リージョンの管理タスクについて説明します。
- リージョンの作成
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード・データベース・リージョンを作成します。 - リージョン構成の編集
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード・データベース・リージョン構成を編集します。 - リージョンの削除
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード・データベース・リージョンを削除します。
親トピック: シャード・データベース・ライフサイクル管理
57.8.1 リージョンの作成
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード・データベース・リージョンを作成します。
- シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「リージョン」を選択します。
- 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」で管理するシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
- 「作成」をクリックします。
- 「リージョンの作成」ダイアログのリージョンに一意の名前を入力します。
- オプションで、既存のリージョンからバディ・リージョンを選択します。
- 「OK」をクリックします。
- ページ上部にある「情報」ボックスのリンクをクリックして、リージョンのプロビジョニング・ステータスを表示します。
親トピック: リージョン管理
57.8.2 リージョン構成の編集
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード・データベース・リージョン構成を編集します。
- シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「リージョン」を選択します。
- 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」でシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
- リストからリージョンを選択して、「編集」をクリックします。
- バディ・リージョンを選択または削除して、「OK」をクリックします。
- ページ上部にある「情報」ボックスのリンクをクリックして、リージョン構成変更のプロビジョニング・ステータスを表示します。
リージョン構成が正常に更新されると、変更が「リージョン」リストに表示されます。更新内容を参照するには、ページのリフレッシュが必要な場合があります。
親トピック: リージョン管理
57.8.3 リージョンの削除
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード・データベース・リージョンを削除します。
- シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「リージョン」を選択します。
- 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」でシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
- リストからリージョンを選択して、「削除」をクリックします。
- ページ上部にある「情報」ボックスのリンクをクリックして、リージョン削除のプロビジョニング・ステータスを表示します。
リージョン構成が正常に削除されると、変更が「リージョン」リストに表示されます。更新内容を参照するには、ページのリフレッシュが必要な場合があります。
親トピック: リージョン管理
57.9 シャード領域管理
Oracle Enterprise Manager Cloud Controlを使用したOracle Shardingデプロイメントのシャード領域を追加、編集および削除できます。
次の各項では、シャード領域の管理タスクについて説明します。
- シャード領域の作成
Oracle Enterprise Manager Cloud Controlを使用して、コンポジットOracle Shardingデプロイメントのシャード領域を作成します。
親トピック: シャード・データベース・ライフサイクル管理
57.9.1 シャード領域の作成
Oracle Enterprise Manager Cloud Controlを使用して、コンポジットOracle Shardingデプロイメントのシャード領域を作成します。
親トピック: シャード領域管理
57.10 シャードグループ管理
Oracle Enterprise Manager Cloud Controlを使用したOracle Shardingデプロイメントのシャードグループを追加、編集および削除できます。
次の各項では、シャードグループの管理タスクについて説明します。
- シャードグループの作成
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャードグループを作成します。
親トピック: シャード・データベース・ライフサイクル管理
57.10.1 シャードグループの作成
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャードグループを作成します。
親トピック: シャードグループ管理
57.11 サービス管理
Oracle Enterprise Manager Cloud Controlを使用したOracle Shardingデプロイメントのサービスを管理できます。
Oracle Shardingサービスを管理するには、シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「サービス」を選択します。サービスページで、サービスのリストの上部にあるコントロールを使用して、サービスを起動、停止、有効化、無効化、作成、編集および削除できます。
サービスを選択すると、サービスを実行しているホストおよびシャード、ステータス、状態およびそれらの各インスタンスのData Guardロールを表示するサービス詳細リストが開きます。このリストのシャードを選択すると、個々のシャードのサービスを有効化、無効化、起動および停止できます。
次の各項では、サービスの管理タスクについて説明します。
- サービスの作成
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのサービスを作成します。
親トピック: シャード・データベース・ライフサイクル管理
57.11.1 サービスの作成
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのサービスを作成します。
親トピック: サービス管理