日本語PDF

9 シャード・データベースの管理

Oracle Shardingは、シャード・データベースの管理のためのツールおよびいくつかの自動化を提供しています。

次のトピックでは、シャード・データベースの管理についてさらに詳しく説明します。

シャーディング対応スタックの管理

この項では、シャード・データベース構成内のコンポーネントの起動および停止について説明します。次の項目が含まれます。

シャーディング対応タックの起動

シャーディング対応スタックの推奨される起動順序は次のとおりです。

  • シャード・カタログ・データベースとローカル・リスナーを起動します。

  • シャード・ディレクタ(GSM)を起動します。

  • シャード・データベースとローカル・リスナーを起動します。

  • グローバル・サービスを起動します。

  • 接続プールとクライアントを起動します。

シャーディング対応スタックの停止

シャーディング対応スタックの推奨される停止手順は次のとおりです。

  • 接続プールとクライアントを停止します。

  • グローバル・サービスを停止します。

  • シャード・データベースとローカル・リスナーを停止します。

  • シャード・ディレクタ(GSM)を停止します。

  • シャード・カタログ・データベースとローカル・リスナーを停止します。

Oracle Shardingデータベース・ユーザーの管理

この項では、Oracle Shardingに固有のデータベース・ユーザーについて説明します。次の項目が含まれます。

GSMUSERアカウントについて

GSMUSERアカウントは、GDSCTLおよびグローバル・サービス・マネージャがGDS構成のデータベースに接続するために使用されます。

GSMUSERは、デフォルトでOracleデータベースに存在します。Oracle Sharding構成では、このアカウントはプール・データベースのかわりにシャードへの接続に使用され、アカウントがロック解除された後、SYSDGおよびSYSBACKUPシステム権限の両方を付与する必要があります。

GSMUSERアカウントに指定されたパスワードは、gdsctl add shardコマンドで使用されます。新しいシャードでGSMUSERにSYSDGおよびSYSBACKUPを付与しないと、gdsctl add shardがORA-1031: 権限が不足していますのエラーで失敗します。

gdsctl create shardコマンドを使用してDatabase Configuration Assistant (DBCA)で新しいシャードを作成すると、デプロイメント・プロセス中にGSMUSERアカウントに自動的にSYSDG権限とSYSBACKUP権限が付与され、ランダム・パスワードが割り当てられます。GSMUSERアカウントは対話的にログインする必要がないため、管理者がパスワードの値を認識する必要はありません。ただし、シャードでalter user SQLコマンドをgdsctl modify shard -pwdコマンドと組み合せて使用すると、必要に応じてパスワードを変更できます。

関連項目:

Global Data Services概要および管理ガイドシャードの追加

GSMROOTUSERアカウントについて

GSMROOTUSERは、プラガブル・データベース(PDB)シャードが存在する場合にのみ使用されるOracle Shardingに固有のデータベース・アカウントです。アカウントは、GDSCTLおよびグローバル・サービス・マネージャがコンテナ・データベース(CDB)のルート・コンテナに接続して管理タスクを実行するために使用されます。

PDBシャードが使用されていない場合、GSMROOTUSERユーザーはロック解除されず、どのデータベースでもパスワードを割り当てられません。ただし、PDBシャードを含むシャード構成では、gdsctl add cdbコマンドを実行する前に、GSMROOTUSERをロック解除し、SYSDGおよびSYSBACKUP権限を付与する必要があります。GSMROOTUSERアカウントのパスワードは、CDBのルート・コンテナ内でalter user SQLコマンドをgdsctl modify cdb -pwdコマンドと組み合せて使用することで、デプロイメント後に必要に応じて変更できます。

関連項目:

Global Data Services概要および管理ガイドcdbの追加

シャード・データベースの監視

Enterprise Manager Cloud ControlまたはGDSCTLを使用して、シャード・データベースを監視できます。

Enterprise Manager Cloud ControlまたはGDSCTLを使用してシャード・データベースを監視するには、次の各トピックを参照してください。

GDSCTLによるシャード・データベースの監視

個別のシャード、シャードグループ、シャード領域およびシャード・ディレクタのヘルス・ステータスを取得するために使用できる多数のGDSCTL CONFIGコマンドがあります。

シャードの監視は通常のデータベースの監視と同様であり、標準のOracleのベスト・プラクティスを使用して、単一のシャードの個別の状態を監視してください。ただし、シャード環境全体の状態を監視することも重要です。GDSCTLコマンドは、スクリプトに記述し、スケジューラを使用して定期的に実行することによって、すべてが円滑に実行されていることを確認することもできます。レプリケーションにOracle GoldenGateを使用している場合は、各レプリケーション・ストリームのラグを監視することも重要です。

関連項目:

GDSCTL CONFIGコマンドの使用方法の詳細は、Oracle Database Global Data Services概要および管理ガイドを参照してください

Enterprise Manager Cloud Controlによるシャード・データベースの監視

Oracle Enterprise Manager Cloud Controlを使用すると、シャード・データベースのコンポーネントを検出、監視および管理できます。

シャード・データベース・ターゲットは、「すべてのターゲット」ページで見つけます。

図9-1 「すべてのターゲット」の「検索の絞込み」ペインのシャード・データベース

図9-1の説明が続きます
「図9-1 「すべてのターゲット」の「検索の絞込み」ペインのシャード・データベース」の説明

シャード・データベースのターゲット・ホーム・ページには、シャード・データベースのコンポーネントとそのステータスの概要が表示されます。

シャード・データベースのコンポーネントを監視するには、まず、それらを検出する必要があります。詳細は、「シャード・データベースのコンポーネントの検出」を参照してください。

サマリー

ページの左上にある「サマリー」ペインには、次の情報が表示されます。

  • シャード・データベース名

  • シャード・データベース・ドメイン名

  • シャード・カタログ名。名前をクリックすると、シャード・カタログの詳細を表示できます。

  • シャード・カタログ・データベースのバージョン

  • データベースのシャードに使用されたシャーディング方法

  • 高可用性のために使用されたレプリケーション・テクノロジ

  • シャード・ディレクタの数とステータス

  • マスター・シャード・ディレクタ名。名前をクリックすると、マスター・シャード・ディレクタの詳細を表示できます。

図9-2 シャード・データベースの「サマリー」ペイン

図9-2の説明が続きます
「図9-2 シャード・データベースの「サマリー」ペイン」の説明

シャードのロード・マップ

ページの右上にある「シャードのロード・マップ」には、シャード間でトランザクションがどのように分散されているかを図示したグラフが表示されます。

図9-3 シャード・データベースの「シャードのロード・マップ」

図9-3の説明が続きます
「図9-3 シャード・データベースの「シャードのロード・マップ」」の説明

グラフの上にある「表示レベル」で別のレベルを選択できます。

  • データベース

    データベース・ビューは、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が負荷の大半を占めていることを示します。

  • 黄色は、待機時間が負荷の大半を占めていることを示します。

メンバー

ページの左下にある「メンバー」ペインには、各コンポーネントの関連情報の一部が表示されます。

図9-4 シャード・データベースの「メンバー」ペイン

図9-4の説明が続きます
「図9-4 シャード・データベースの「メンバー」ペイン」の説明

このペインは、各コンポーネントのタブ「シャード領域」、「シャードグループ」、「シャード・ディレクタ」および「シャード」に分かれています。各種コンポーネントの情報を表示するには、タブをクリックします。

  • シャード領域

    「シャード領域」タブには、シャード領域名、ステータス、チャンク数およびData Guard保護モードが表示されます。シャード領域名をクリックすると、選択したシャード領域の詳細を表示できます。

  • シャードグループ

    「シャードグループ」タブには、シャードグループ名、ステータス、所属するシャード領域、チャンク数、Data Guardロールおよび所属するリージョンが表示されます。シャードグループ名およびシャード領域名をクリックすると、選択したコンポーネントの詳細を表示できます。

  • シャード・ディレクタ

    「シャード・ディレクタ」タブには、シャード・ディレクタ名、ステータス、リージョン、ホストおよびOracleホームが表示されます。シャード・ディレクタ名をクリックすると、選択したシャード・ディレクタの詳細を表示できます。

  • シャード

    「シャード」タブには、シャード名、デプロイ・ステータス、ステータス、所属するシャード領域およびシャードグループ、Data Guardロールおよび所属するリージョンが表示されます。「名前」列で、プライマリ・シャードを展開すると、対応するスタンバイ・シャードの情報を表示できます。「デプロイ済」列のアイコンの上にマウスを置くと、デプロイメント・ステータスの詳細を表示できます。シャード名、シャード領域名およびシャードグループ名をクリックすると、選択したコンポーネントの詳細を表示できます。

サービス

ページの右下にある「サービス」ペインには、シャード・データベース・サービスの名前、ステータスおよびData Guardロールが表示されます。リストの上にはサービスの合計数と、特定のステータスにあるサービスの数を示すアイコンが表示されます。アイコンの上にマウス・ポインタを置くと、ステータス・アイコンの説明を表示できます。

図9-5 シャード・データベースの「サービス」ペイン

図9-5の説明が続きます
「図9-5 シャード・データベースの「サービス」ペイン」の説明

インシデント

「インシデント」ペインには、シャード・データベース環境の様々なコンポーネントに関するメッセージおよび警告が表示されます。このペインの使用方法の詳細は、Cloud Controlオンライン・ヘルプを参照してください。

「シャードされたデータベース」メニュー

左上隅にある「シャードされたデータベース」メニューを使用すると、シャード・データベースのコンポーネントを管理するためにアクセスできるようになります。

ターゲット・ナビゲーション

「ターゲット・ナビゲーション」ペインを使用すると、シャード・データベースのどのコンポーネントの詳細にも簡単にアクセスできるようになります。

shard_em_navicon.pngの説明が続きます
図shard_em_navicon.pngの説明

ページの左上隅にあるナビゲーション・ツリー・アイコンをクリックすると、「ターゲット・ナビゲーション」ペインが開きます。このペインには、シャード・データベースで検出されたすべてのコンポーネントがツリー形式で表示されます。

シャード領域を展開すると、その領域内のシャードグループが表示されます。シャードグループを展開すると、そのシャードグループ内のシャードが表示されます。

コンポーネント名をクリックすると、その詳細を表示できます。

シャード・データベースのコンポーネントの検出

Enterprise Manager Cloud Controlでは、シャード・カタログおよびシャード・データベースを検出し、ガイドされた検出を使用してシャード・ディレクタ、シャード・データベース、シャード領域およびシャードグループを追加できます。

前提条件として、Cloud Controlを使用してシャード・ディレクタ・ホストおよびシャード・カタログ・データベースを検出しておく必要があります。カタログ・データベースおよび各シャードはデータベースそのものであるため、標準のデータベース検出プロシージャを使用できます。

シャードの監視は、データベース検出を使用して個々のシャードを検出する場合のみ可能です。シャードの検出は、シャードなしのシャード・データベース構成にすることもできるため、シャード・データベースの検出ではオプションです。

  1. Enterprise Manager Cloud Controlで「設定」「ターゲットの追加」「ターゲットの手動追加」の順に選択します。
  2. 「ターゲットの手動追加」ページで、「ガイド付きプロセスを使用して非ホスト・ターゲットを追加」パネルで「ガイド付きプロセスを使用した追加」をクリックします。
  3. 「ガイド付きプロセスを使用した追加」ダイアログで、「シャードされたデータベース」を探して選択し、「追加」をクリックします。
  4. 「シャードされたデータベースの追加: カタログ・データベース」ページで、「カタログ・データベース」の横にある参照アイコンをクリックしてSDBカタログ・データベースを探します。
  5. 「ターゲットの選択」ダイアログで、カタログ・データベースに対応するターゲット名をクリックし、「選択」をクリックします。

    「カタログ・データベース」フィールドと「モニタリング資格証明」フィールドは、存在する場合、自動入力されます。モニタリング資格証明は、カタログ・データベースに問い合せて構成情報を取得する場合に使用されます。モニタリング・ユーザーは、GDS_CATALOG_SELECTロールが付与され、カタログ・リポジトリ表に対して読取り専用権限があります。

    「次へ」をクリックして次のステップに進みます。

    「シャードされたデータベースの追加: コンポーネント」ページには、シャード・データベース名、ドメイン名、シャード・データベースで採用されているシャーディング方法、検出されたシャード・ディレクタのリストなど、カタログ・データベースで管理されるシャード・データベースに関する情報が表示されます。

  6. モニタリング資格証明をシャード・ディレクタに設定するには、リスト・エントリの右側にあるプラス記号アイコンをクリックします。

    ダイアログが開き、資格証明を設定できます。

    「OK」をクリックしてダイアログを閉じ、「次」をクリックして次のステップに進みます。

  7. 「シャードされたデータベースの追加: 確認」ページで、シャード・ディレクタ、シャード領域およびシャードグループがすべて検出されたことを確認します。
  8. 「発行」をクリックして、ステップを終了します。

    Enterprise Managerデプロイメント・プロシージャが発行され、「ターゲットの手動追加」ページに戻ります。

    ページ上部に、検出されたすべてのコンポーネントをCloud Controlに追加するために発行されたスクリプトに関する情報が表示されます。

  9. リンクをクリックして、シャード・データベースのコンポーネントのプロビジョニング・ステータスを表示します。

    別のブラウザ・ウィンドウで、Cloud Controlの「すべてのターゲット」ページに移動してシャード・データベースのステータスを監視できます。

ターゲット検出プロシージャが終了すると、シャード・データベース・ターゲットがCloud Controlに追加されます。Cloud Controlでシャード・データベースを開き、コンポーネントを監視および管理できます。

シャード間のシステム・オブジェクトの問合せ

SHARDS()句を使用して、V$ビューとDBA_*ビューからパフォーマンス、診断および監査データを収集するためにOracle提供の表を問い合せることができます。

SQLのSHARDS()句を使用して、シャード・カタログ・データベースを一元化された診断操作のエントリ・ポイントとして使用できます。SHARDS()句を使用して、すべてのシャードに対して同じOracle提供オブジェクト(V$、DBA/USER/ALLビュー、ディクショナリ・オブジェクトおよび表など)を問い合せ、集計結果を返すことができます。

次の例に示すように、SELECT文のFROM部分のオブジェクトをSHARDS()句でラップすることにより、これがローカル・オブジェクトに対する問合せではなく、シャード・データベース構成内のすべてのシャード上のオブジェクトに対する問合せであることを指定します。結果に含まれるすべての行のソースを示すため、マルチシャード問合せの実行時にSHARD_IDという名前の仮想列がSHARDS()でラップされたオブジェクトに自動的に追加されます。同じ列を、問合せをプルーニングするための述語で使用できます。

SHARDS()句を含む問合せは、シャード・カタログ・データベースに対してのみ実行できます。

次の文は、パフォーマンス・ビューを問い合せます。

SQL> SELECT shard_id, callspersec FROM SHARDS(v$servicemetric)
 WHERE service_name LIKE 'oltp%' AND group_id = 10;

次の文は、統計情報を収集します。

SQL> SELECT table_name, partition_name, blocks, num_rows
 FROM SHARDS(dba_tab_partition) p
 WHERE p.table_owner= :1;

次の例の文は、各シャードのSHARD_ID値を見つける方法を示しています。

SQL> select ORA_SHARD_ID, INSTANCE_NAME from SHARDS(sys.v_$instance);

    ORA_SHARD_ID INSTANCE_NAME
    ------------ ----------------
               1 sh1
              11 sh2
              21 sh3
              31 sh4

次の例の文は、SHARD_IDを使用して問合せをプルーニングする方法を示しています。

SQL> select ORA_SHARD_ID, INSTANCE_NAME
 from SHARDS(sys.v_$instance)
 where ORA_SHARD_ID=21;

    ORA_SHARD_ID INSTANCE_NAME
    ------------ ----------------
              21 sh3

関連項目:

Oracle Database SQL言語リファレンス(SHARDS()句の詳細)

シャード・データベースのバックアップおよびリカバリ

シャードは個別のOracleデータベースでホストされるため、Oracle Maximum Availabilityのベスト・プラクティスを使用してシャードを個別にバックアップおよびリストアできます。

SDBの高可用性のためにData GuardおよびOracle Active Data Guardを使用している場合は、プライマリ・データベースまたはスタンバイ・データベースをオフラインにする前に、オブザーバをオフラインにして、ファスト・スタート・フェイルオーバーを無効にします。

災害が発生した場合にシャードをリカバリするための具体的なステップについては、Oracleサポートにお問合せください。

関連項目:

MAAベスト・プラクティス・ホワイト・ペーパーについては、Oracle Maximum Availabilityアーキテクチャを参照してください

シャード・データベース・スキーマの変更

シャード・データベースの重複表またはシャード表を変更する場合、それらの変更はシャード・カタログ・データベースから行う必要があります。

シャード・データベースに対してDDL操作を実行する前に、次のコマンドを使用してSHARD DDLを有効にします。

ALTER SESSION ENABLE SHARD DDL; 

この文は、DDLによる変更がシャード・データベース内の各シャードに伝播されるようにします。

伝播されるDDLによる変更は、ALTER TABLECREATE TRIGGERなどの操作を含む「スキーマ関連」として定義されているコマンドです。各シャードに伝播される他の操作には、ユーザー管理を簡略化するためのCREATE、ALTER、DROPユーザー・コマンド、複数のシャードでの表領域の作成を簡略化するためのTABLESPACE操作などがあります。

GRANTおよびREVOKE操作はシャード・カタログから行うことができ、セッションでSHARD DDLを有効にしている場合は各シャードに伝播されます。より細かい制御が必要な場合は、各シャードに対してコマンドを直接発行できます。

DBMSパッケージ・コール(または同様の操作)などの操作は伝播されません。たとえば、シャード・カタログで統計を収集する操作は各シャードに伝播されません。

表に対するロックを必要とする操作(NOT NULL列の追加など)を実行する場合、DDL操作を実行するには各シャードで表に対するロックを取得する必要があることに留意することが重要です。単一インスタンスにDDLを適用するためのOracleのベスト・プラクティスがシャード環境に適用されます。

シャード・カタログで実行されるマルチシャード問合せは、各シャードのデータベース接続でリモート問合せを発行します。この場合、問合せによってそのシャードからデータを返されるかどうかにかかわらず、ユーザーが各シャードに対する適切な権限を持つようにすることが重要です。

関連項目:

重複表およびシャード表に使用する操作の詳細は、Oracle Database SQL言語リファレンスを参照してください

シャード間のパラメータ設定の伝播

シャード・カタログでシステム・パラメータ設定を構成すると、シャード・データベースのすべてのシャードに自動的に伝播されます。

Oracle Database 19cより前は、シャード・データベースの各シャードでALTER SYSTEMパラメータ設定を構成する必要がありました。Oracle Database 19cでは、Oracle Shardingはシャード・カタログでパラメータを設定できるようにすることで集中管理を提供します。その後、設定はシャード・データベースのすべてのシャードに自動的に伝播されます。

システム・パラメータの伝播は、シャード・カタログに対してENABLE SHARD DDLで行われた場合にのみ発生します。その後、ALTER文にSHARD=ALLを含めます。

SQL>alter session enable shard ddl;
SQL>alter system set enable_ddl_logging=true shard=all;

ノート:

enable_goldengate_replicationパラメータ設定の伝播はサポートされていません。

非PDBシャードのPDBへの移行

単一インスタンスのレガシー・データベースからOracleマルチテナント・アーキテクチャにシャードを移行する場合は、次のステップを実行してください。

  1. 既存の各非PDBシャードをバックアップして、新しいCDBと、その内部にPDBを作成します。
  2. CDB内のPDBに、各シャードをリストアします。
  3. GDSCTL ADD CDBコマンドを実行して、新しいCDBを追加します。
    GDSCTL> add cdb -connect cdb_connect_string -pwd gsmrootuser_password
  4. GDSCTL ADD SHARD -REPLACEコマンドに、PDBの接続文字列shard_connect_stringを指定して実行します。これにより、シャーディング・インフラストラクチャにシャードの古い場所を新しいPDBの場所に置き換えるように指示します。

    システム管理またはコンポジットのシャーディングの場合は、次に示すパラメータでADD SHARDを実行します。

    
    GDSCTL> add shard -replace db_unique_name_of_non_PDB -connect shard_connect_string -pwd gsmuser_password 
    -shardgroup shardgroup_name -cdb cdb_name
    

    ユーザー定義のシャーディングの場合は、わずかにコマンドの使用方法が異なります。

    GDSCTL> add shard -replace db_unique_name_of_non_PDB -connect shard_connect_string -pwd gsmuser_password 
    -shardspace shardspace_name -deploy_as db_mode -cdb cdb_name
    

シャード・データベースのソフトウェア・バージョンの管理

この項では、シャード・データベース構成内のソフトウェア・コンポーネントのバージョン管理について説明します。次の項目が含まれます。

シャード・データベースへのパッチ適用およびアップグレード

シャード・データベース環境へのOracleパッチの適用は、単一のシャードまたはすべてのシャードに対して行うことができます。ただし、使用する方法は、その環境で使用されているレプリケーション・オプションおよび適用されるパッチのタイプによって異なります。

シャード・データベースへのパッチ適用

ほとんどのパッチは、単一のシャードに一度に適用できます。ただし、一部のパッチはすべてのシャードに適用する必要があります。SDBに使用されているレプリケーション方法に留意して、非シャード・データベースの場合と同様に、Oracleのベスト・プラクティスを使用して単一のシャードにパッチを適用してください。Oracleのopatchautoは、複数のシャードに一度にパッチを適用するために使用でき、ローリング形式で行うことができます。Data Guard構成は1つずつ適用され、場合によっては(パッチによって異なります) Standby Firstパッチ適用を使用できます。Oracle GoldenGateを使用する場合は、必ずシャード領域全体で並列にパッチを適用してください。パッチがマルチシャード問合せ、レプリケーションまたはシャーディング・インフラストラクチャの問題に対処するものである場合は、SDB内のすべてのシャードに適用する必要があります。

シャード・データベースへのアップグレード

Oracle Sharding環境のアップグレードは、他のOracle Databaseとグローバル・サービス・マネージャの環境のアップグレードと大きな違いはありません。ただし、コンポーネントを特定の順序(最初にシャード・カタログ、次にシャード・ディレクタ、最後にシャードの順)でアップグレードする必要があります。

関連項目:

Oracle OPatchユーザーズ・ガイド

Oracle Database Global Data Services概要および管理ガイド(シャード・ディレクタのアップグレードの詳細)

Oracle Data Guard概要および管理(Oracle Data Guard構成内のパッチ適用およびアップグレードの詳細)

シャード・データベースのコンポーネントのアップグレード

コンポーネントが停止してオンライン状態に戻る際の停止時間を制限し、エラーを回避するためには、シャード・データベースのコンポーネントをアップグレードする順序が重要です。

シャード・データベースのコンポーネントをアップグレードするときは、次の点に注意する必要があります。

  • 保留中のMOVE CHUNK操作が進行中の場合は、完了してください。

  • 新しいMOVE CHUNK操作を開始しないでください。

  • アップグレード・プロセス中に新しいシャードを追加しないでください。

  1. 次の点に注意しながら、シャードをアップグレードします。
    • システム管理のシャード・データベースの場合: Data Guard Broker構成内のシャードの各セットをローリング方式でアップグレードします。

    • ユーザー定義のシャード・データベースの場合: シャード領域内のシャードの各セットをローリング方式でアップグレードします。

    • コンポーネント・シャード・データベースの場合: 特定のシャード領域で、Data Guard Broker構成内のシャードの各セットをローリング方式でアップグレードします。

    • プラガブル・データベース(PDB)シャードを含むOracle Database 18cシャード・データベース構成をアップグレードする場合は、Oracle Database 18cからの互換性と移行のPDB固有のアップグレード手順に従います。
  2. シャード・カタログ・データベースをアップグレードします。

    最高の結果を得るには、ローリング・データベース・アップグレードを使用してカタログをアップグレードする必要があります(ただし、カタログが使用できない場合、アップグレード中にグローバル・サービスは引き続き使用可能ですが、サービス・フェイルオーバーは発生しません)。

  3. GDSCTLクライアントを実行するために使用されるシャード・ディレクタをアップグレードします(グローバル・サービス・マネージャ・サーバーは実行しません)。

    シャード・ディレクタのアップグレードはインプレースで実行する必要がありますが、次のプラットフォームの各ファイルに対するアクセス権が755に更新されていない場合、インプレース・アップグレードによって間違ったエラー・メッセージが表示されます。

    • Linux、Solaris64およびSolaris Sparc64の場合:

      $ORACLE_HOME/QOpatch/qopiprep.bat
      $ORACLE_HOME/jdk/bin/jcontrol
      $ORACLE_HOME/jdk/jre/bin/jcontrol
    • AIXの場合:

      $ORACLE_HOME/QOpatch/qopiprep.bat
      $ORACLE_HOME/jdk/jre/bin/classic/libjvm.a
      $ORACLE_HOME/jdk/bin/policytool
    • HPIの場合:

      $ORACLE_HOME/jdk/jre/lib/IA64N/server/Xusage.txt
      $ORACLE_HOME/jdk/jre/bin/jcontrol
      $ORACLE_HOME/QOpatch/qopiprep.bat
    • Windowsでは、エラー・メッセージは予期されません。

  4. すべてのシャード・ディレクタ・サーバーを一度に1つずつ停止、アップグレードおよび再起動します。

    停止時間をゼロにするには、1つ以上のシャード・ディレクタ・サーバーが常に稼働している必要があります。カタログより前のバージョンのシャード・ディレクタ・サーバーは、カタログに変更が発生するまで完全に動作し続けます。

関連項目:

DBMS_ROLLINGを使用してローリング・アップグレードを実行する方法の詳細は、Oracle Data Guard概要および管理を参照してください。

Oracle Data Guard概要および管理(Oracle Data Guard構成内のデータベースのパッチ適用およびアップグレードの詳細)

シャード・データベースのダウングレード

Oracle Shardingはダウングレードをサポートしていません。

シャード・データベース・カタログおよびシャードはダウングレードできません。

Oracle Database 18cからの互換性と移行

特定のCDBに単一のPDBシャードを含むOracle Database 18cインストールからアップグレードする場合、PDBのシャード・カタログ・メタデータを更新する必要があります。

具体的には、18cのPDBシャードの名前はCDBのDB_UNIQUE_NAMEですが、Oracle Database 19cのシャード名はdb_unique_name_of_CDB_pdb_nameです。

カタログ・メタデータを更新してこの新しいネーミング方法を反映し、GSMROOTUSERアカウントについての説明に従って新しいGSMROOTUSERアカウントもサポートするには、シャード・データベース・コンポーネントのアップグレードの説明に従って、アップグレード・プロセス中に次のステップを実行します。

  1. PDBシャードを含むCDBをアップグレードした後、GSMROOTUSERアカウントが存在し、ロック解除され、パスワードが割り当てられ、SYSDGSYSBACKUPおよびgsmrootuser_role権限が付与されていることを確認します。

    SQL*Plusの次のSQL文は、CDBのルート・コンテナ(CDB$ROOT)への接続中にGSMROOTUSERを正常に設定します。

    SQL> alter session set "_oracle_script"=true;
    Session altered.
         
    SQL> create user gsmrootuser;
    User created.
    
    SQL> alter user gsmrootuser identified by new_GSMROOTUSER_password
      account unlock;
    User altered.
    
    SQL> grant sysdg, sysbackup, gsmrootuser_role to gsmrootuser container=current;
    Grant succeeded.
    
    SQL> alter session set "_oracle_script"=false;
    Session altered.
  2. カタログ・データベースを目的のOracle Databaseバージョンにアップグレードした後、次のPL/SQLプロシージャを実行して、構成に存在するPDBシャードの新しい名前を反映するようにカタログ・メタデータを更新します。

    このプロシージャは、Oracle Database 18cのPDBシャードごとに実行する必要があります。

    pdb_fixupの最初のパラメータは、PDBシャードを含むCDBのdb_unique_nameの値です。Oracle Database 18cでは、gdsctl config shardで示されるシャード名と同じです。

    2番目のパラメータはシャードPDBのPDB名で、シャードPDBへの接続時にSQL*Plusのshow con_nameによって示されます。

    pdb_fixupプロシージャは、カタログ・メタデータを更新して、PDBシャードの新しいネーミング・メソッドに対応させます。

    SQL> connect sys/password as sysdba
    Connected.
    SQL> set serveroutput on
    SQL> execute gsmadmin_internal.dbms_gsm_pooladmin.pdb_fixup('cdb1', 'pdb1');
  3. すべてのシャード・ディレクタを目的のバージョンにアップグレードした後、構成内の各CDBに対して次のGDSCTLコマンドを実行し、各CDBのGSMROOTUSERのパスワードをシャード・ディレクタに通知します。
    GDSCTL> modify cdb -cdb CDB_name -pwd new_GSMROOTUSER_password

シャード管理

Oracle Enterprise Manager Cloud ControlおよびGDSCTLを使用したOracle Shardingデプロイメントのシャードを管理できます。

次のトピックでは、シャード管理の概念およびタスクについて説明します。

シャードの追加について

既存のシャード・データベース環境に新しいシャードを追加することによって、スケール・アウトしたり、フォルト・トレランスを向上させたりできます。

フォルト・トレランスのためには、少数の非常に大きいシャードを使用するより、多数の小さいシャードを使用するほうが効果的です。アプリケーションが長期間使用されてデータ量が増えた場合、1つ以上のシャードをSDBに追加して容量を増やすことができます。 

シャード・データベースにシャードを追加するときに、環境がコンシステント・ハッシュによってシャーディングされている場合は、既存のシャードからのチャンクが新しいシャードに自動的に移動されて、シャード環境がリバランスされます。

ユーザー定義シャーディングを使用する場合、新しいシャードにデータを移入するには、GDSCTLのsplit chunkおよびmove chunkコマンドを使用して、既存のシャードから新しいシャードにチャンクを手動で移動する必要がある場合があります。

Oracle Enterprise Manager Cloud Controlを使用して、新しいシャードに移動するか、分割して移動するよい候補となるチャンクを識別できます。

環境にシャードを追加する場合は、スタンバイ・サーバーが準備完了状態であることを確認し、新しいシャードが配置された後に、move chunk操作に関係したすべてのシャードのバックアップを取得します。

再シャーディングおよびホット・スポット回避

シャード数の変化によってトリガーされてデータがシャード間に再分散されるプロセスを再シャーディングと呼びます。自動再シャーディングは、システム管理のシャーディング方法の機能であり、SDBに柔軟なスケーラビリティを提供します。

ときには、SDBのデータを1つのシャードから他のシャードに移行する必要があります。シャード間のデータ移行は次のような場合に必要です。

  • SDBに対して1つ以上のシャードを追加または削除した場合

  • シャード間のデータ分散またはワークロード分散にスキューがある場合

シャード間のデータ移行の単位はチャンクです。チャンクでデータを移行することにより、異なるシャード・データベースの関連するデータが確実に一緒に移動されます。

SDBに対してシャードを追加または削除すると、複数のチャンクが移行されて、シャード間のチャンクとワークロードのバランスのとれた分散が維持されます。

シャーディング方法に応じて、再シャーディングが自動的に行われるか(システム管理)、ユーザーが指示します(コンポジット)。次の図は、3つのシャードを含むSDBにシャードを追加したときの自動再シャーディングの段階を示しています。

図 9-6 SDBの再シャーディング

図9-6の説明が続きます
「図9-6 SDBの再シャーディング」の説明

データまたはワークロードのスキューが発生したときに、シャード数を変更せずに、特定のチャンクを1つのシャードから他へ移動することもできます。この場合、ホット・スポットを回避するために、データベース管理者がチャンクの移動を開始できます。

RMAN増分バックアップ、トランスポータブル表領域およびOracle Notification Serviceテクノロジを使用して、アプリケーションの可用性へのチャンク移行の影響を最小限に抑えます。チャンク移行中、チャンクはオンラインのままです。短時間(数秒間)は、チャンクに格納されたデータが読取り専用アクセスのみになります。

FAN対応クライアントは、ソース・シャードでチャンクが読取り専用になる直前に通知を受信し、チャンク移行が完了して宛先シャードでチャンクが完全に使用可能になると、再度、通知を受信します。chunk read-onlyイベントを受信すると、クライアントはチャンク移行が完了するまで接続の試行を繰り返すか、ソース・チャンクの読取り専用チャンクにアクセスできます。後者の場合、チャンクに書き込もうとすると、ランタイム・エラーが発生します。

ノート:

シャード・データベースの再シャーディング中にマルチシャード問合せを実行すると、エラーが発生する可能性があるため、マルチシャードのワークロード中に新しいシャードをデプロイしないことをお薦めします。

プールからのシャードの削除

シャードにあるデータを失うことなく、シャード・データベース環境からシャードを一時的または永続的に削除することが必要となる場合があります。

たとえば、忙しい休日の後にシャード環境がスケール・ダウンされる場合、またはデータ・センター内のサーバーまたはインフラストラクチャを交換する場合、シャードの削除が必要となることがあります。シャードを削除する前に、すべてのチャンクをそのシャードからオンラインの状態に維持される他のシャードに移動する必要があります。それらを移動するときは、すべてのシャード間でデータおよびアクティビティのバランスが維持されるようにします。

シャードを一時的に削除するだけの場合は、保守が完了した後に簡単に識別して元に戻すことができるように、各シャードに移動したチャンクを追跡します。

関連項目:

チャンクの移動について

GDSCTL REMOVE SHARDコマンドの使用方法の詳細は、Oracle Database Global Data Services概要および管理ガイドを参照してください

スタンバイ・シャードの追加

Data Guardのスタンバイ・シャードをOracle Sharding環境に追加できます。ただし、制限があります。

シャード・データベースのレプリケーション方法としてData Guardを使用する場合、Oracle Shardingでは、プライマリまたは物理スタンバイ・シャードの追加のみサポートします。新しいスタンバイをシャード・データベースに追加する場合、他のタイプのData Guardスタンバイ・データベースはサポートされません。ただし、すでにシャード・データベースの一部であるシャードは、物理スタンバイからスナップショット・スタンバイに変換できます。物理スタンバイからスナップショット・スタンバイに変換する場合、次のステップに従う必要があります。

  1. GDSCTLコマンドSTOP SERVICEを使用して、シャードのすべてのグローバル・サービスを停止します。
  2. GDSCTLコマンドDISABLE SERVICEを使用して、シャードのすべてのグローバル・サービスを無効化します。
  3. Data Guardドキュメントで説明されている手順を使用して、シャードをスナップショット・スタンバイに変換します。

    この時点で、シャードはシャード・データベースの一部のままですが、シャーディング・キーを使用する接続を受け入れません。

データベースが物理スタンバイに逆変換される場合、グローバル・サービスを有効化して再開できます。シャードはシャード・データベースのアクティブなメンバーになります。

Oracle Enterprise Manager Cloud Controlを使用したシャードの管理

Oracle Enterprise Manager Cloud Controlを使用してデータベース・シャードを管理できます

Cloud Controlを使用してシャードを管理するには、最初に検出する必要があります。各データベース・シャードはデータベース自体であるため、標準のCloud Controlデータベース検出プロシージャを使用できます。

次のトピックでは、Oracle Enterprise Manager Cloud Controlを使用したシャード管理について説明します。

シャードの検証

Oracle Shardingデプロイメントに追加する前に、シャードを検証します。

Oracle Shardingデプロイメントに追加する前に、Oracle Enterprise Manager Cloud Controlを使用してシャードを検証できます。デプロイメントした後にシャードを検証して、シャードのその後のライフサイクルでも設定が引き続き有効であることを確認することもできます。たとえば、ソフトウェアのアップグレード後に、既存のシャードを検証して、パラメータおよび構成が正しいことを確認できます。

Cloud Controlを使用してシャードを検証するには、Cloud Controlで監視している既存のターゲットである必要があります。

  1. シャードグループ管理ページから、シャードグループ・ターゲット・ページの左上隅にある「シャードグループ」メニューを開き、「シャードの管理」を選択します。
  2. 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」で管理するシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
  3. リストからシャードを選択して、「検証」をクリックします。
  4. 「OK」をクリックして、シャードを検証することを確認します。
  5. ページ上部にある「情報」ボックスのリンクをクリックして、シャードのプロビジョニング・ステータスを表示します。

シャード検証スクリプトが正常に実行されると、出力にレポートされるエラーを確認します。

プライマリ・シャードの追加

Oracle Enterprise Manager Cloud Controlを使用して、プライマリ・シャードをOracle Shardingデプロイメントに追加します。

プライマリ・シャードは、Cloud Controlで監視している既存のターゲットである必要があります。

Oracle Sharding環境に追加する前にシャードを検証することを強くお薦めします。Cloud Controlを使用してシャードを検証するか(「シャードの検証」を参照)、またはSQL*Plusを使用してシャードに対してDBMS_GSM_FIX.validateShardプロシージャを実行します(「シャードの検証」を参照)。

  1. シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「プライマリ・シャードの追加」を選択します。
  2. 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」で管理するシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
  3. 「シャードされたデータベースにすべてのシャードをデプロイ」を選択して、シャード・データベース構成に追加されたすべてのシャードをデプロイします。

    デプロイメント操作は、シャードの構成を検証し、最終構成ステップを実行します。シャードはデプロイ後にのみ使用できます。

  4. 「追加」をクリックします。
  5. 「シャードの詳細」ダイアログの「データベース」フィールドで、シャードを選択して、「選択」をクリックします。
  6. コンポジットOracle Sharding環境で、シャードを追加するシャード領域を選択できます。
  7. 「OK」をクリックします
  8. 必要に応じてGSMUSER資格証明を入力し、「次」をクリックします。
  9. ADD SHARD操作が発生する時間を示し、「次」をクリックします。
    • 即時: 確認後にシャードがプロビジョニングされます

    • 後で: 隣接しているフィールドのカレンダ・ツールを使用して、シャードを追加するタイミングをスケジュールします

  10. 追加するシャードの構成を確認し、「送信」をクリックします。
  11. ページ上部にある「情報」ボックスのリンクをクリックして、シャードのプロビジョニング・ステータスを表示します。

上記の手順の「シャードされたデータベースにすべてのシャードをデプロイ」を選択しなかった場合、シャードのデプロイ・タスクを使用して、Oracle Shardingデプロイメントにシャードをデプロイします。

スタンバイ・シャードの追加

Oracle Enterprise Manager Cloud Controlを使用して、スタンバイ・シャードをOracle Shardingデプロイメントに追加します。

スタンバイ・シャードは、Cloud Controlで監視している既存のターゲットである必要があります。

Oracle Sharding環境に追加する前にシャードを検証することを強くお薦めします。Cloud Controlを使用してシャードを検証するか(「シャードの検証」を参照)、またはSQL*Plusを使用してシャードに対してDBMS_GSM_FIX.validateShardプロシージャを実行します(「シャードの検証」を参照)。

  1. シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「スタンバイ・シャードの追加」を選択します。
  2. 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」で管理するシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
  3. 「シャードされたデータベースにすべてのシャードをデプロイ」を選択して、シャード・データベース構成に追加されたすべてのシャードをデプロイします。

    デプロイメント操作は、シャードの構成を検証し、最終構成ステップを実行します。シャードはデプロイ後にのみ使用できます。

  4. 新しいシャードが「プライマリ・シャード」リストのスタンバイとして動作するプライマリ・シャードを選択します。
  5. 「追加」をクリックします。
  6. 「シャードの詳細」ダイアログの「データベース」フィールドで、スタンバイ・シャードを選択します。
  7. シャードを追加するシャードグループを選択します。

    選択したプライマリのスタンバイがまだ含まれていないシャードグループのみ表示されます。

  8. 「OK」をクリックします
  9. 必要に応じてGSMUSER資格証明を入力し、「次」をクリックします。
  10. ADD SHARD操作が発生する時間を示し、「次」をクリックします。
    • 即時: 確認後にシャードがプロビジョニングされます

    • 後で: 隣接しているフィールドのカレンダ・ツールを使用して、シャードを追加するタイミングをスケジュールします

  11. 追加するシャードの構成を確認し、「送信」をクリックします。
  12. ページ上部にある「情報」ボックスのリンクをクリックして、シャードのプロビジョニング・ステータスを表示します。

上記の手順の「シャードされたデータベースにすべてのシャードをデプロイ」を選択しなかった場合、シャードのデプロイ・タスクを使用して、Oracle Shardingデプロイメントにシャードをデプロイします。

シャードのデプロイ

Oracle Enterprise Manager Cloud Controlを使用して、Oracle Sharding環境に追加されているシャードをデプロイします。

  1. シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「シャードのデプロイ」を選択します。
  2. 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」で管理するシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
  3. 「リバランスの実行」チェック・ボックスを選択して、シャードのデプロイ後に自動的にシャード間のデータを再配分します。

    チャンクをシャードに手動で移動する場合、このボックスの選択を解除します。

  4. 「送信」をクリックします
  5. ページ上部にある「情報」ボックスのリンクをクリックして、シャードのプロビジョニング・ステータスを表示します。

GDSCTLを使用したシャードの管理

GDSCTLコマンドライン・ユーティリティを使用して、Oracle Shardingデプロイメントのシャードを管理できます。

次のトピックでは、GDSCTLを使用したシャードの管理について説明します。

シャードの検証

新しく作成したシャードをシャーディング構成に追加する前に、シャードがシャーディング環境用に正しく構成されていることを検証する必要があります。

ADD SHARDを実行する前に、シャードとして追加されるデータベースに対してvalidateShardプロシージャを実行します。validateShardプロシージャは、シャードとして正常に動作するために必要な初期化パラメータおよび特性がターゲット・データベースにあることを検証します。

validateShardプロシージャはターゲット・データベースを分析し、そのデータベースに対してGDSCTL ADD SHARDを実行する前に対処する必要がある問題を報告します。validateShardプロシージャはデータベースまたはパラメータを変更しません。情報および起こり得る問題を報告するだけです。

validateShardプロシージャは、シャードをシャード・カタログに追加するときに使用するレプリケーション・テクノロジとしてData GuardとOracle GoldenGateのどちらかを指定するオプションのパラメータを1つ取ります。Data Guardを使用する場合は、validateShard('DG')を呼び出します。Oracle GoldenGateを使用する場合は、validateShard('OGG')を使用します。validateShardにパラメータを渡さない場合のデフォルト値は、Data Guardです。

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タグが付けられている出力を修正する必要があります。

システム管理のSDBへのシャードの追加

システム管理のSDBにシャードを追加すると、SDBを柔軟に拡張できます。システム管理のSDBのチャンクは、新しいシャードが追加された後に自動的にリバランスされます。

新しいシャードのホストを準備するには、最初にシャード・データベース環境を準備したときと同じすべてのセットアップ手順(次の手順を含む)を行います。

  1. シャード・ディレクタのホストに接続して、環境変数を確認します。
    $ ssh os_user@shard_director_home
    $ env |grep ORA
    ORACLE_BASE=/u01/app/oracle
    ORACLE_HOME=/u01/app/oracle/product/18.0.0/gsmhome_1
  2. 現在のセッションのグローバル・サービス・マネージャを設定し、それを管理するための資格証明を指定します。
    $ gdsctl
    GDSCTL> set gsm -gsm sharddirector1
    GDSCTL> connect mysdbadmin/mysdbadmin_password
  3. 現在のシャードの構成を確認します。
    GDSCTL> config shard
    Name          Shard Group         Status    State       Region    Availability 
    ----          -----------         ------    -----       ------    ------------ 
    sh1           primary_shardgroup  Ok        Deployed    region1   ONLINE       
    sh2           standby_shardgroup  Ok        Deployed    region2   READ_ONLY    
    sh3           primary_shardgroup  Ok        Deployed    region1   ONLINE       
    sh4           standby_shardgroup  Ok        Deployed    region2   READ_ONLY    
    
  4. 新しい各シャードのシャード・グループ、宛先および資格証明を指定します。

    この例では、新しいシャードはshard5およびshard6という名前で、NETCAおよびDBCAのデフォルト・テンプレートが使用されています。

    GDSCTL> add invitednode shard5
    GDSCTL> create shard -shardgroup primary_shardgroup -destination shard5
     -credential os_credential -sys_password
    GDSCTL> add invitednode shard6
    GDSCTL> create shard -shardgroup standby_shardgroup -destination shard6
     -credential os_credential -sys_password

    シャードを作成するときに、前の例に示すようにcreate shard-sys_passwordを使用してSYSのパスワードを設定することもできます。これにより、シャードが作成されてDEPLOYされたときに、SYSのパスワードが設定されます。

    前述の例では、新しいシャードを作成するためにCREATE SHARDによる方法を使用しています。ADD SHARDコマンドを使用して事前構成済のシャードを追加するには、ADD INVITEDNODEの後で次のコマンドを実行します。

    GDSCTL> add shard –shardgroup primary_shardgroup
     –connect shard_host:TNS_listener_port/shard_database_name
     –pwd GSMUSER_password

    追加されるシャードがPDBである場合は、ADD SHARD-cdbオプションを使用して、PDBシャードが含まれているCDBを指定する必要があります。また、ADD SHARDコマンドの前にADD CDBを使用してカタログにCDBを追加する必要があります。ADD CDBおよびADD SHARDの構文は、Oracle Database Global Data Services概要および管理ガイドを参照してください。

    ノート:

    登録に関する有効ノード・チェック(VNCR)機能では、シャード・ディレクタによって許可された登録リクエストのIPアドレス、ホスト名またはサブネットのセットの構成や動的な更新が可能になります。シャード・ディレクタへのデータベース・インスタンスの登録は、リクエスト元が有効なノードである場合にのみ成功します。デフォルトでは、create shardまたはadd shardが実行されるたびに、シャード管理層(Oracle Global Data Servicesフレームワークに基づく)は、リモート・データベースが実行されているホストのVNCRエントリを自動的に追加します。自動化(自動VNCRと呼ばれます)によってターゲット・ホストのパブリックIPアドレスが検索され、そのIPアドレスのVNCRエントリが自動的に追加されます。ホストに複数のパブリックIPアドレスがある場合は、データベースに登録されたアドレスが自動VNCRを使用して追加されたアドレスと同じではないことがあり、登録が拒否されることがあります。ターゲット・データベースのホストに複数のパブリックIPアドレスがある場合は、GDSCTLでadd invitednodeコマンドまたはadd invitedsubnetコマンドを使用して、このホストのVNCRを手動で構成することをお薦めします。

    複数のネットカードがターゲット・ホストにある(/sbin/ifconfigで複数のパブリック・インタフェースが返されます)場合は、安全のためにadd invitednodeを使用します(パケットをルーティングするために使用されるインタフェースを確認してから)。

    登録になんらかの疑念がある場合は、必要に応じてconfig vncrおよびadd invitednodeを使用します。これを行っても問題はありません。ノードがすでに追加されている場合、自動VNCRはそれを無視し、自動VNCRによってすでに追加された後にノードを追加しようとすると、すでに存在しているという警告を受け取るからです。

  5. DEPLOYコマンドを実行して、シャードとレプリカを作成します。
    GDSCTL> deploy
  6. 新しいシャードがデプロイされたことを確認します。
    GDSCTL> config shard
    Name         Shard Group         Status    State       Region    Availability 
    ----         -----------         ------    -----       ------    ------------ 
    sh1          primary_shardgroup  Ok        Deployed    region1   ONLINE
    sh2          standby_shardgroup  Ok        Deployed    region2   READ_ONLY
    sh3          primary_shardgroup  Ok        Deployed    region1   ONLINE
    sh4          standby_shardgroup  Ok        Deployed    region2   READ_ONLY
    sh5          primary_shardgroup  Ok        Deployed    region1   ONLINE
    sh6          standby_shardgroup  Ok        Deployed    region2   READ_ONLY
  7. チャンク構成を1-2分ごとにチェックして、チャンクの自動リバランスの進行状況を表示します。
    $ gdsctl config chunks -show_Reshard
    
    Chunks
    ------------------------
    Database                      From      To        
    --------                      ----      --        
    sh1                           1         4 
    sh2                           1         4 
    sh3                           7         10
    sh4                           7         10
    sh5                           5         6 
    sh5                           11        12
    sh6                           5         6 
    sh6                           11        12
    
    Ongoing chunk movement
    ------------------------
    Chunk     Source          Target             status
    -----     ------          ------             ------
  8. シャード(データベース)が自動的に登録されたことを確認します。
    $ gdsctl databases
    
    Database: "sh1" Registered: Y State: Ok ONS: N. Role: PRIMARY Instances: 1
     Region: region1
       Service: "oltp_ro_srvc" Globally started: Y Started: N
                Scan: N Enabled: Y Preferred: Y
       Service: "oltp_rw_srvc" Globally started: Y Started: Y
                Scan: N Enabled: Y Preferred: Y
       Registered instances:
         cust_sdb%1
    Database: "sh2" Registered: Y State: Ok ONS: N. Role: PH_STNDBY Instances: 1
     Region: region2
       Service: "oltp_ro_srvc" Globally started: Y Started: Y
                Scan: N Enabled: Y Preferred: Y
       Service: "oltp_rw_srvc" Globally started: Y Started: N
                Scan: N Enabled: Y Preferred: Y
       Registered instances:
         cust_sdb%11
    Database: "sh3" Registered: Y State: Ok ONS: N. Role: PRIMARY Instances: 1
     Region: region1
       Service: "oltp_ro_srvc" Globally started: Y Started: N
                Scan: N Enabled: Y Preferred: Y
       Service: "oltp_rw_srvc" Globally started: Y Started: Y
                Scan: N Enabled: Y Preferred: Y
       Registered instances:
         cust_sdb%21
    Database: "sh4" Registered: Y State: Ok ONS: N. Role: PH_STNDBY Instances: 1
     Region: region2
       Service: "oltp_ro_srvc" Globally started: Y Started: Y
                Scan: N Enabled: Y Preferred: Y
       Service: "oltp_rw_srvc" Globally started: Y Started: N
                Scan: N Enabled: Y Preferred: Y
       Registered instances:
         cust_sdb%31
    Database: "sh5" Registered: Y State: Ok ONS: N. Role: PRIMARY Instances: 1
     Region: region1
       Service: "oltp_ro_srvc" Globally started: Y Started: N
                Scan: N Enabled: Y Preferred: Y
       Service: "oltp_rw_srvc" Globally started: Y Started: Y
                Scan: N Enabled: Y Preferred: Y
       Registered instances:
         cust_sdb%41
    Database: "sh6" Registered: Y State: Ok ONS: N. Role: PH_STNDBY Instances: 1
     Region: region2
       Service: "oltp_ro_srvc" Globally started: Y Started: Y
                Scan: N Enabled: Y Preferred: Y
       Service: "oltp_rw_srvc" Globally started: Y Started: N
                Scan: N Enabled: Y Preferred: Y
       Registered instances:
         cust_sdb%51
    
  9. サービスが新しいシャードで自動的に起動されたことを確認します。
    $ gdsctl services
    
    Service "oltp_ro_srvc.cust_sdb.oradbcloud" has 3 instance(s). Affinity: ANYWHERE
       Instance "cust_sdb%11", name: "sh2", db: "sh2", region: "region2", status: ready.
       Instance "cust_sdb%31", name: "sh4", db: "sh4", region: "region2", status: ready.
       Instance "cust_sdb%51", name: "sh6", db: "sh6", region: "region2", status: ready.
    Service "oltp_rw_srvc.cust_sdb.oradbcloud" has 3 instance(s). Affinity: ANYWHERE
       Instance "cust_sdb%1", name: "sh1", db: "sh1", region: "region1", status: ready.
       Instance "cust_sdb%21", name: "sh3", db: "sh3", region: "region1", status: ready.
       Instance "cust_sdb%41", name: "sh5", db: "sh5", region: "region1", status: ready.
    

関連項目:

GDSCTLコマンドの使用方法については、Oracle Database Global Data Services概要および管理ガイドを参照してください

シャードの置換

シャードで障害が発生してリカバリ不能になった場合、またはその他の理由で新しいホストにシャードを移動する必要がある場合は、GDSCTLでADD SHARD -REPLACEコマンドを使用して、シャードを置き換えることができます。

シャード・データベースに障害が発生し、同じホスト上で(RMANバックアップ/リストアなどの方法を使用して)データベースをリカバリできる場合は、-replaceパラメータを使用してシャードを置き換える必要はありません。シャードをローカルでリカバリできない場合や、なんらかの理由で別のホストまたはCDBにシャードを再配置する必要がある場合は、新しいホスト上にシャードのレプリカを作成できます。GDSCTLコマンドADD SHARDに-replaceオプションを指定すると、シャーディング構成を新しい情報で更新できます。

ADD SHARD -REPLACEを使用したシャードの置換が有用なケースを次に示します。

  • シャード・データベースが実行されていたサーバー(マシン)が修復不可能な損害を受け、これを置き換える必要がある場合

  • 正常に機能しているサーバーを別の(たとえば、より強力な)サーバーに置き換える必要がある場合

  • PDB内のシャードが、あるCDBから別のCDBに再配置された場合

これらのいずれのケースでも、ADD SHARDを実行した後、シャードの数とシャード間のデータ分布は変更されず、シャードは同じデータを保持する別のシャードに置き換えられます。-replaceオプションを指定せずにADD SHARDを使用した場合は、これとは異なり、シャードの数が増加し、データが再分配されます。

ADD SHARD -REPLACEを実行すると、古いシャードのパラメータ(connect_stringやdb_unique_nameなど)は新しい値に置き換えられます。新しいデータベースには、障害が発生したデータベースとは異なるdb_unique_nameを付けることができます。Data Guardでは構成のすべてのメンバーに同じDBIDを付ける必要があるため、Data Guard構成内のスタンバイを置き換える場合は、新しいデータベースのDBIDが古いDBIDと一致している必要があります。

REPLACEを使用する前に

ADD SHARD -REPLACEを使用する前に、次の点を確認してください。

  • データベースが(RMANリストアなどのメソッドを使用して)正しくリストアされていること。新しいデータベース・シャードは、障害が発生したシャードと同じシャーディング・メタデータを持つ必要があります。間違ったシャードへの接続文字列を指定しないように、基本的な検証を実行してください。

  • 障害の発生したシャードが、障害が発生する前にデプロイ済の状態だったこと。

  • 障害の発生したシャードが、ADD SHARD -REPLACEコマンドの実行時に停止していること。

  • ファスト・スタート・フェイルオーバー(デフォルトで有効)が有効になっている場合は、ファスト・スタート・フェイルオーバー・オブザーバが実行されていること。

Data Guard環境でのシャードの置換

プライマリがまだ稼働している場合、ADD SHARD -REPLACEコマンドはスタンバイ・シャードを置き換える目的でのみ使用できます。障害が発生したプライマリ・シャードを置き換えるには、残りのいずれかのスタンバイがプライマリ・ロールに切り替わるまで待ってから、障害が発生したシャードを置き換えます。

切り替えができない(プライマリとすべてのスタンバイが停止している)場合は、プライマリから始めて、各メンバーに対してADD SHARD -REPLACEを実行する必要があります。これにより、白紙の状態から新しいブローカ構成が作成されます。

スタンバイが稼働していないMAXPROTECTIONモードでは、保護モードを維持するためにプライマリ・データベースが停止します。この場合、スタンバイが稼働していなければ、プライマリ・データベースをオープンできません。このシナリオで置換操作を処理するには、最初にデータベースをマウント・モードで起動し、DGMGRLを使用してData Guardの保護モードを(MAXAVAILABILITYまたはMAXPERFORMANCEに)ダウングレードする必要があります。保護モードを設定した後、プライマリ・データベースをオープンし、GDSCTLを使用して置換操作を実行します。置換操作の終了後は、DGMGRLを使用して保護モードを前のレベルに戻すことができます。

Data Guardでは構成のすべてのメンバーに同じDBIDを付ける必要があるため、Data Guard構成内のスタンバイを置き換える場合は、新しいデータベースのDBIDが古いDBIDと一致している必要があります。

例9-1 例1: 構成内にスタンバイがない場合のプライマリ・シャードの置換

次の例に示すように、初期構成には2つのプライマリ・シャードがデプロイされており、スタンバイはデプロイされていません。shdcは障害のシナリオで停止しているため、その可用性はダッシュ(-)で表示されています。

$ gdsctl config shard

Name    Shard Group    Status    State       Region    Availability
----    -----------    ------    -----       ------    ------------
shdb    dbs1           Ok        Deployed    east      ONLINE      
shdc    dbs1           Ok        Deployed    east      -   

リカバリするには、RMANなどを使用してバックアップからプライマリのレプリカを作成します。この例では、db_unique_name shddと接続文字列inst4を使用して新しいシャードが作成されています。これで、次のように古いシャードshdcを新しいシャードshardに置き換えることができます。

$ gdsctl add shard -replace shdc -connect inst4 -pwd password

DB Unique Name: SHDD

次のようにして構成を確認できます。

$ gdsctl config shard

Name     Shard Group      Status    State       Region    Availability
----     -----------      ------    -----       ------    ------------
shdb     dbs1             Ok        Deployed    east      ONLINE
shdd     dbs1             Ok        Deployed    east      ONLINE

例9-2 例2: スタンバイ・シャードの置換

構成にスタンバイ・シャードが含まれている場合は、プライマリ・シャードを置き換えることができないことに注意してください。このようなケースでプライマリに障害が発生した場合は、スタンバイのいずれかが自動切り替えによって新しいプライマリになった後で、置換操作を実行する必要があります。

初期構成には2つのシャードグループ(1つのプライマリと1つのスタンバイ)があり、それぞれに2つのシャードが含まれています。スタンバイshddが停止したときに、

$ gdsctl config shard

Name    Shard Group      Status    State       Region    Availability
----    -----------      ------    -----       ------    ------------
shdb    dbs1             Ok        Deployed    east      ONLINE
shdc    dbs1             Ok        Deployed    east      ONLINE
shdd    dbs2             Ok        Deployed    east      -
shde    dbs2             Ok        Deployed    east      READ ONLY

新しいスタンバイを作成します。プライマリが実行されているため、この操作はFOR STANDBYオプションを指定したRMAN DUPLICATEコマンドを使用して実行する必要があります。新しいスタンバイshdfの準備が完了したら、次のように古いシャードshddを置き換えます。

$ gdsctl add shard -replace shdd -connect inst6 -pwd password

DB Unique Name: shdf

次のようにして構成を確認できます。

$ gdsctl config shard

Name    Shard Group      Status    State       Region    Availability
----    -----------      ------    -----       ------    ------------
shdb    dbs1             Ok        Deployed    east      ONLINE
shdc    dbs1             Ok        Deployed    east      ONLINE
shde    dbs2             Ok        Deployed    east      READ ONLY
shdf    dbs2             Ok        Deployed    east      READ ONLY

Oracle GoldenGate環境でのシャードの置換

GDSCTLコマンドのオプションADD SHARD -REPLACEは、Oracle GoldenGateではサポートされていません。

一般的なエラー

ORA-03770: 不正なシャードが置換に指定されています

このエラーは、置換操作で指定されたシャードが元のシャードのレプリカでない場合にスローされます。具体的には、シャーディング・メタデータがこのシャードのシャード・カタログに格納されているメタデータと一致しません。データベースが(できればRMANを使用して)正しくコピーされたことを確認してください。これは包括的なチェックではありません。レプリカが正しく作成されたことを前提としています。

ORA-03768: 置換対象のデータベースがまだ稼働しています: shardc

add shard -replaceコマンドを実行するときは、置換対象のデータベースを停止する必要があります。GDSCTLコマンドconfig shardの出力で、これを確認してください。シャードに障害が発生したにもかかわらず、出力にONLINEと表示される場合は、しばらく(2分程度)待ってから再試行してください。

チャンク管理

Oracle Enterprise Manager Cloud ControlおよびGDSCTLを使用したOracle Shardingデプロイメントのチャンクを管理できます。

次のトピックでは、チャンク管理の概念およびタスクについて説明します。

チャンクの移動について

チャンクをあるシャードから別のシャードに移動することが必要となる場合があります。シャード環境のスケーラビリティを維持するには、すべてのシャード間で負荷とアクティビティが均等に配分されるように維持することが重要です。

コンポジットSDBの環境が長期間使用されると、一部のシャードがよりアクティブになり、他のシャードよりデータが多くなります。環境内のバランスを保つために、よりアクティブなサーバーからアクティブではないサーバーにチャンクを移動する必要があります。チャンクを移動する理由は他にもあります。

  • あるシャードが他のシャードよりアクティブになった場合は、よりアクティブではないシャードにチャンクを移動して、環境内で負荷が均等に配分されるようにできます。

  • 範囲、リストまたはコンポジット・シャーディングを使用しているときに、シャードをシャードグループに追加する場合。

  • 範囲、リストまたはコンポジット・シャーディングを使用しているときに、シャードグループからシャードを削除する場合。

  • チャンクを分割したら、分割されたチャンクのいずれかを新しいシャードに移動することを多くの場合お薦めします。

スケーラビリティを維持するためにシャードを移動する場合、チャンクの最適なターゲットはよりアクティブではないシャード、またはより少ないデータがあるシャードです。Oracle Enterprise ManagerおよびAWRのレポートは、シャード間のアクティビティの配分を識別するため、およびチャンクの移動のよい候補となるシャードを識別するために役立ちます。

ノート:

チャンクをあるシャードから別のシャードに移動する場合は、その操作に関係するデータベース(チャンクの移動のソースおよびターゲットの両方)のフル・バックアップを取得する必要があります。

関連項目:

GDSCTL MOVE CHUNKコマンドの使用方法の詳細は、Oracle Database Global Data Services概要および管理ガイドを参照してください

チャンクの移動

Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントの1つのシャードから他のシャードにチャンクを移動できます。

  1. シャード領域管理ページから、シャード・データベース・ターゲット・ページの左上隅にある「シャード領域」メニューを開き、「シャードグループの管理」を選択します。
  2. リストのシャードグループを選択して、「チャンクの移動」をクリックします。
  3. 「チャンクの移動」ダイアログで、チャンクを移動するソース・シャードと宛先シャードを選択します。
  4. オプションのいずれかを選択して、移動するチャンクを選択します。
    • IDリストの入力: チャンクID番号のカンマ区切りリストを入力します

    • 表からIDを選択: 表のチャンクIDをクリックします

  5. チャンクの移動が発生する時間を示します。
    • 即時: 確認後にチャンクの移動がプロビジョニングされます

    • 後で: 隣接しているフィールドのカレンダ・ツールを使用して、チャンクを移動するタイミングをスケジュールします

  6. 「OK」をクリックします
  7. ページ上部にある「情報」ボックスのリンクをクリックして、チャンク移動のプロビジョニング・ステータスを表示します。

チャンクの分割について

チャンクが大きくなりすぎた場合や、チャンクの一部のみを別のシャードに移行する必要がある場合は、シャード・データベースのチャンクを分割する必要があります。

Oracle Shardingはチャンクのオンライン分割をサポートします。理論上は、各シャードに1つのチャンクを作成し、データ移行が必要になるたびに分割できます。ただし、チャンクの分割はデータの可用性に影響しないものの、分割するパーティションのすべての行をスキャンしてから、1行ずつ新しいパーティションに挿入するため、時間がかかり、CPUにも負荷がかかる操作です。コンポジット・シャーディングの場合、チャンクの分割には時間がかかり、シャード・キーまたはスーパー・シャード・キーの新しい値を再定義するために停止時間が必要となることがあります。

したがって、各シャードに事前に複数のチャンクを作成し、次のいずれかの場合に分割することをお薦めします。再シャーディング中にデータをバランスよく分散するにはチャンク数が足りない場合、または特定のチャンクがホット・スポットになっている場合です。

システム管理のシャーディングの場合でも、単一のチャンクが他のチャンクより大きくなったり、よりアクティブになったりすることがあります。この場合は、そのチャンクを分割し、分割されたチャンクのいずれかが自動再シャーディングによって別のシャードに移動されることを許可すると、環境内のデータおよびアクティビティがより均等に配分されるように維持されます。

Oracle Enterprise Managerのヒート・マップには、どのチャンクが他のチャンクよりもアクティブになっているかが表示されます。この機能を使用してどのチャンクを分割できるかを識別し、分割されたチャンクのいずれかを別のシャードに移動して環境をリバランスできます。

関連項目:

GDSCTL SPLIT CHUNKコマンドの使用方法の詳細は、Oracle Database Global Data Services概要および管理ガイドを参照してください

チャンクの分割

Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのチャンクを分割できます。

  1. シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「シャード領域」を選択します。
  2. 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」で管理するシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
  3. リストのシャード領域を選択して、「チャンクの分割」をクリックします。
  4. オプションのいずれかを選択して、分割するチャンクを選択します。
    • IDリストの入力: チャンクID番号のカンマ区切りリストを入力します

    • 表からIDを選択: 表のチャンクIDをクリックします

  5. チャンクの分割が発生する時間を示します。
    • 即時: 確認後にチャンクの分割がプロビジョニングされます

    • 後で: 隣接しているフィールドのカレンダ・ツールを使用して、チャンクを分割するタイミングをスケジュールします

  6. 「OK」をクリックします
  7. ページ上部にある「情報」ボックスのリンクをクリックして、チャンク分割のプロビジョニング・ステータスを表示します。
チャンクを正常に分割すると、チャンクの数が「シャード領域」リストで更新されます。更新内容を参照するには、ページのリフレッシュが必要な場合があります。

シャード・ディレクタ管理

Oracle Enterprise Manager Cloud Controlを使用したOracle Shardingデプロイメントのシャード・ディレクタを追加、編集および削除できます。

次の各項では、シャード・ディレクタの管理タスクについて説明します。

シャード・ディレクタの作成

Oracle Enterprise Manager Cloud Controlを使用して、シャード・ディレクタをOracle Shardingデプロイメントに作成して追加します。

  1. シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「シャード・ディレクタ」を選択します。
  2. 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」で管理するシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
  3. 「作成」をクリックするか、リストからシャード・ディレクタを選択して「類似作成」をクリックします。

    「作成」を選択すると、フィールドのデフォルトの構成値とともに「シャード・ディレクタの追加」ダイアログが開きます。

    「類似作成」を選択すると、フィールドの選択されたシャード・ディレクタの構成値とともに「シャード・ディレクタの追加」ダイアログが開きます。リストからシャード・ディレクタを選択して「類似作成」オプションを有効化する必要があります。

  4. 「シャード・ディレクタの追加」ダイアログの必要な情報を入力して、「OK」をクリックします。

    ノート:

    シャード・ディレクタの作成後すぐに実行を開始しない場合、「作成後にシャード・ディレクタを開始」チェックボックスの選択を解除する必要があります。

  5. 確認ダイアログで「OK」をクリックします。
  6. ページ上部にある「情報」ボックスのリンクをクリックして、シャード・ディレクタのプロビジョニング・ステータスを表示します。
シャード・ディレクタが正常に作成されると、「シャード・ディレクタ」リストに表示されます。更新内容を参照するには、ページのリフレッシュが必要な場合があります。

シャード・ディレクタ構成の編集

Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード・ディレクタ構成を編集します。

Cloud Controlのシャード・ディレクタのリージョン、ポート、ローカル・エンドポイントおよびホスト資格証明を変更できます。シャード・ディレクタ名、ホストまたはOracleホームは編集できません。
  1. シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「シャード・ディレクタ」を選択します。
  2. 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」で管理するシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
  3. リストからシャード・ディレクタを選択して、「編集」をクリックします。

    シャード・ディレクタ名、ホストまたはOracleホームは編集できないことに注意してください。

  4. フィールドを編集してGSMCATUSERパスワードを入力し、「OK」をクリックします。
  5. ページ上部にある「情報」ボックスのリンクをクリックして、シャード・ディレクタ構成変更のプロビジョニング・ステータスを表示します。

シャード・ディレクタの削除

Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントからシャード・ディレクタを削除します。

「シャード・ディレクタ」リストの列のチェック・マークに示されているように、削除するシャード・ディレクタが管理シャード・ディレクタの場合、削除する前に別のシャード・ディレクタを管理シャード・ディレクタに選択する必要があります。

  1. シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「シャード・ディレクタ」を選択します。
  2. 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」で管理するシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
  3. リストからシャード・ディレクタを選択して、「削除」をクリックします。
  4. ページ上部にある「情報」ボックスのリンクをクリックして、シャード・ディレクタ削除のプロビジョニング・ステータスを表示します。
シャード・ディレクタが正常に削除されると、「シャード・ディレクタ」リストに表示されなくなります。変更内容を参照するには、ページのリフレッシュが必要な場合があります。

リージョン管理

Oracle Enterprise Manager Cloud Controlを使用したOracle Shardingデプロイメントのリージョンを追加、編集および削除できます。

次の各項では、リージョンの管理タスクについて説明します。

リージョンの作成

Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード・データベース・リージョンを作成します。

  1. シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「リージョン」を選択します。
  2. 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」で管理するシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
  3. 「作成」をクリックします。
  4. 「リージョンの作成」ダイアログのリージョンに一意の名前を入力します。
  5. オプションで、既存のリージョンからバディ・リージョンを選択します。
  6. 「OK」をクリックします
  7. ページ上部にある「情報」ボックスのリンクをクリックして、リージョンのプロビジョニング・ステータスを表示します。
リージョンが正常に作成されると、「リージョン」リストに表示されます。更新内容を参照するには、ページのリフレッシュが必要な場合があります。

リージョン構成の編集

Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード・データベース・リージョン構成を編集します。

Cloud Controlのシャード・データベース・リージョンのバディ・リージョンを変更できます。リージョン名は編集できません。
  1. シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「リージョン」を選択します。
  2. 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」でシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
  3. リストからリージョンを選択して、「編集」をクリックします。
  4. バディ・リージョンを選択または削除して、「OK」をクリックします。
  5. ページ上部にある「情報」ボックスのリンクをクリックして、リージョン構成変更のプロビジョニング・ステータスを表示します。

リージョン構成が正常に更新されると、変更が「リージョン」リストに表示されます。更新内容を参照するには、ページのリフレッシュが必要な場合があります。

リージョンの削除

Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード・データベース・リージョンを削除します。

  1. シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「リージョン」を選択します。
  2. 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」でシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
  3. リストからリージョンを選択して、「削除」をクリックします。
  4. ページ上部にある「情報」ボックスのリンクをクリックして、リージョン削除のプロビジョニング・ステータスを表示します。

リージョン構成が正常に削除されると、変更が「リージョン」リストに表示されます。更新内容を参照するには、ページのリフレッシュが必要な場合があります。

シャード領域管理

Oracle Enterprise Manager Cloud Controlを使用したOracle Shardingデプロイメントのシャード領域を追加、編集および削除できます。

次の各項では、シャード領域の管理タスクについて説明します。

シャード領域の作成

Oracle Enterprise Manager Cloud Controlを使用して、コンポジットOracle Shardingデプロイメントのシャード領域を作成します。

コンポジット方法を使用してシャードされるデータベースのみ、複数のシャード領域を格納できます。システム管理のシャード・データベースは、1つのシャード領域のみ格納できます。
  1. シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「シャード領域」を選択します。
  2. 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」で管理するシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
  3. 「作成」をクリックします。

    ノート:

    このオプションは、システム管理のシャード・データベースのシャード領域ページで無効化されます。
  4. 「シャード領域の追加」ダイアログのフィールドの値を入力して、「OK」をクリックします。
    • 名前: シャード領域の一意の名前を入力します(必須)

    • チャンク: シャード領域に作成されるチャンクの数を入力します(デフォルトは120です)

    • 保護モード: Data Guard保護モードを選択します(デフォルトは「最大パフォーマンス」です)

  5. ページ上部にある「情報」ボックスのリンクをクリックして、シャード領域のプロビジョニング・ステータスを表示します。
シャード領域が正常に作成されると、「シャード領域」リストに表示されます。更新内容を参照するには、ページのリフレッシュが必要な場合があります。

コンポジット・シャード・データベースへのシャード領域の追加

新しいシャード領域の作成、シャード領域へのシャードの追加、新しいシャード領域での表領域セットの作成、追加したシャード領域のシャード表へのパーティションセットの追加を学習します。次に、表内のパーティションが、対応する表領域に新しく追加されたシャードに作成されていることを確認します。

既存のシャード・データベースに新しいシャード領域を追加するには、コンポジット・シャード・データベースがデプロイされ、すべてのDDLがシャードに伝播されていることを確認してください。
  1. 新しいシャード領域を作成し、シャード領域にシャードを追加し、環境をデプロイします。
    1. シャード・カタログ・データベースに接続します。
      GDSCTL> connect mysdbadmin/mysdbadmin_password
    2. シャード領域を追加し、シャードグループをシャード領域に追加します。
      GDSCTL> add shardspace -chunks 8 -shardspace cust_asia
      GDSCTL> add shardgroup -shardspace cust_asia -shardgroup asia_shgrp1 -deploy_as primary -region region3
    3. シャードを追加します
      GDSCTL> add shard -shardgroup asia_shgrp1 –connect shard_host:TNS_listener_port/shard_database_name –pwd GSMUSER_password
      GDSCTL> add shard asia_shgrp1 –connect shard_host:TNS_listener_port/shard_database_name –pwd GSMUSER_password
    4. 環境をデプロイします。
      GDSCTL> deploy
    DEPLOYを実行すると、以前のすべてのDDLが新しいシャードでリプレイされ、すべての表が作成されます。パーティションは、デフォルトのSYS_SHARD_TS表領域に作成されます。
  2. シャード・カタログでシャード領域用の表領域セットを作成し、シャード・セットをシャード・ルート表に追加します。
    1. 表領域セットを作成します。
      SQL> CREATE TABLESPACE SET
        TSP_SET_3 in shardspace cust_asia using template
        (datafile size 100m autoextend on next 10M maxsize
         unlimited extent management
         local segment space management auto );
    2. パーティションセットを追加します。
      SQL> ALTER table customers add PARTITIONSET asia VALUES ('ASIA”') TABLESPACE SET TSP_SET_3 ;
    3. LOBが存在する場合は、lobの表領域セットを作成し、add partitionsetコマンドでLOB記憶域情報を記述します。
      SQL> alter table customers add partitionset asia VALUES ('ASIA') tablespace set TSP_SET_3 lob(docn) store as (tablespace set LOBTSP_SET_4)) ;
    4. ルート表にサブパーティションが含まれる場合、ストアを句として使用して、サブパーティションの表領域セットを指定します。
      SQL> alter table customers add partitionset asia VALUES ('ASIA') tablespace set TSP_SET_3 subpartitions store in(SUB_TSP_SET_1, SUB_TSP_SET_2);
    ADD PARTITIONSETコマンドは、子表を適切な表領域に移動します。
  3. 新しいシャード領域内のパーティションが新しい表領域に移動されていることを確認します。

    新しいシャードに接続し、パーティションが新しい表領域セットに作成されていることを確認します。

    SQL> select table_name, partition_name, tablespace_name, read_only from dba_tab_partitions;

シャードグループ管理

Oracle Enterprise Manager Cloud Controlを使用したOracle Shardingデプロイメントのシャードグループを追加、編集および削除できます。

次の各項では、シャードグループの管理タスクについて説明します。

シャードグループの作成

Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャードグループを作成します。

  1. シャードグループを追加するシャード領域を選択します。
  2. シャード領域ターゲット・ページの左上隅にある「シャード領域」メニューを開き、「シャードグループの管理」を選択します。
  3. 「作成」をクリックします。
  4. 「シャードグループの作成」ダイアログで値を入力して、「OK」をクリックします。
  5. ページ上部にある「情報」ボックスのリンクをクリックして、シャードグループのプロビジョニング・ステータスを表示します。

    たとえば、前述のスクリーンショットの入力された値を使用して、次のコマンドを実行します。

    GDSCTL Command: ADD SHARDGROUP -SHARDGROUP 'north' -SHARDSPACE 'shardspaceora'
     -REGION 'north' -DEPLOY_AS 'STANDBY'
シャードグループが正常に作成されると、「シャードグループの管理」リストに表示されます。更新内容を参照するには、ページのリフレッシュが必要な場合があります。

サービス管理

Oracle Enterprise Manager Cloud Controlを使用したOracle Shardingデプロイメントのサービスを管理できます。

Oracle Shardingサービスを管理するには、シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「サービス」を選択します。サービスページで、サービスのリストの上部にあるコントロールを使用して、サービスを起動、停止、有効化、無効化、作成、編集および削除できます。

サービスを選択すると、サービスを実行しているホストおよびシャード、ステータス、状態およびそれらの各インスタンスのData Guardロールを表示するサービス詳細リストが開きます。このリストのシャードを選択すると、個々のシャードのサービスを有効化、無効化、起動および停止できます。

次の各項では、サービスの管理タスクについて説明します。

サービスの作成

Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのサービスを作成します。

  1. シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「サービス」を選択します。
  2. 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」で管理するシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
  3. 「作成」をクリックするか、リストからサービスを選択して「類似作成」をクリックします。

    「作成」を選択すると、フィールドのデフォルトの構成値とともに「サービスの作成」ダイアログが開きます。

    「類似作成」を選択すると、フィールドの選択されたサービスの構成値とともに「サービス{0}の類似作成」ダイアログが開きます。リストからサービスを選択して「類似作成」オプションを有効化する必要があります。

  4. ダイアログに必要な情報を入力し、「OK」をクリックします。

    ノート:

    サービスの作成後すぐに実行を開始しない場合、「作成後にすべてのシャードでサービスを開始します。」チェックボックスの選択を解除する必要があります。

  5. ページ上部にある「情報」ボックスのリンクをクリックして、サービスのプロビジョニング・ステータスを表示します。
サービスが正常に作成されると、「サービス」リストに表示されます。更新内容を参照するには、ページのリフレッシュが必要な場合があります。