9 シャード・データベースの管理
Oracle Shardingは、シャード・データベースの管理のためのツールおよびいくつかの自動化を提供しています。
次のトピックでは、シャード・データベースの管理についてさらに詳しく説明します。
- シャーディング対応スタックの管理
- Oracle Shardingデータベース・ユーザーの管理
- シャード・データベースの監視
Enterprise Manager Cloud ControlまたはGDSCTLを使用して、シャード・データベースを監視できます。 - シャード・データベースのバックアップおよびリカバリ
シャードは個別のOracleデータベースでホストされるため、Oracle Maximum Availabilityのベスト・プラクティスを使用してシャードを個別にバックアップおよびリストアできます。 - シャード・データベース・スキーマの変更
シャード・データベースの重複表またはシャード表を変更する場合、それらの変更はシャード・カタログ・データベースから行う必要があります。 - シャード間のパラメータ設定の伝播
シャード・カタログでシステム・パラメータ設定を構成すると、シャード・データベースのすべてのシャードに自動的に伝播されます。 - 非PDBシャードのPDBへの移行
単一インスタンスのレガシー・データベースから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デプロイメントのサービスを管理できます。
シャーディング対応スタックの管理
この項では、シャード・データベース構成内のコンポーネントの起動および停止について説明します。次の項目が含まれます。
シャーディング対応タックの起動
シャーディング対応スタックの推奨される起動順序は次のとおりです。
-
シャード・カタログ・データベースとローカル・リスナーを起動します。
-
シャード・ディレクタ(GSM)を起動します。
-
シャード・データベースとローカル・リスナーを起動します。
-
グローバル・サービスを起動します。
-
接続プールとクライアントを起動します。
親トピック: シャーディング対応スタックの管理
シャーディング対応スタックの停止
シャーディング対応スタックの推奨される停止手順は次のとおりです。
-
接続プールとクライアントを停止します。
-
グローバル・サービスを停止します。
-
シャード・データベースとローカル・リスナーを停止します。
-
シャード・ディレクタ(GSM)を停止します。
-
シャード・カタログ・データベースとローカル・リスナーを停止します。
親トピック: シャーディング対応スタックの管理
Oracle Shardingデータベース・ユーザーの管理
この項では、Oracle Shardingに固有のデータベース・ユーザーについて説明します。次の項目が含まれます。
- GSMUSERアカウントについて
GSMUSER
アカウントは、GDSCTLおよびグローバル・サービス・マネージャがGDS構成のデータベースに接続するために使用されます。 - GSMROOTUSERアカウントについて
GSMROOTUSER
は、プラガブル・データベース(PDB)シャードが存在する場合にのみ使用されるOracle Shardingに固有のデータベース・アカウントです。アカウントは、GDSCTLおよびグローバル・サービス・マネージャがコンテナ・データベース(CDB)のルート・コンテナに接続して管理タスクを実行するために使用されます。
親トピック: シャード・データベースの管理
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
コマンドと組み合せて使用すると、必要に応じてパスワードを変更できます。
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
コマンドと組み合せて使用することで、デプロイメント後に必要に応じて変更できます。
シャード・データベースの監視
Enterprise Manager Cloud ControlまたはGDSCTLを使用して、シャード・データベースを監視できます。
Enterprise Manager Cloud ControlまたはGDSCTLを使用してシャード・データベースを監視するには、次の各トピックを参照してください。
- GDSCTLによるシャード・データベースの監視
個別のシャード、シャードグループ、シャード領域およびシャード・ディレクタのヘルス・ステータスを取得するために使用できる多数のGDSCTL CONFIG
コマンドがあります。 - Enterprise Manager Cloud Controlによるシャード・データベースの監視
Oracle Enterprise Manager Cloud Controlを使用すると、シャード・データベースのコンポーネントを検出、監視および管理できます。 - シャード間のシステム・オブジェクトの問合せ
V$ビューおよびDBA_*ビューからパフォーマンス、診断および監査データを収集するには、SHARDS()句を使用してOracle提供の表を問い合せます。
親トピック: シャード・データベースの管理
GDSCTLによるシャード・データベースの監視
個別のシャード、シャードグループ、シャード領域およびシャード・ディレクタのヘルス・ステータスを取得するために使用できる多数のGDSCTL CONFIG
コマンドがあります。
シャードの監視は通常のデータベースの監視と同様であり、標準のOracleのベスト・プラクティスを使用して、単一のシャードの個別の状態を監視してください。ただし、シャード環境全体の状態を監視することも重要です。GDSCTLコマンドは、スクリプトに記述し、スケジューラを使用して定期的に実行することによって、すべてが円滑に実行されていることを確認することもできます。レプリケーションにOracle GoldenGateを使用している場合は、各レプリケーション・ストリームのラグを監視することも重要です。
関連項目:
GDSCTL CONFIG
コマンドの使用方法の詳細は、Oracle Database Global Data Services概要および管理ガイドを参照してください
親トピック: シャード・データベースの監視
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では、シャード・カタログおよびシャード・データベースを検出し、ガイドされた検出を使用してシャード・ディレクタ、シャード・データベース、シャード領域およびシャードグループを追加できます。
親トピック: シャード・データベースの監視
シャード・データベースのコンポーネントの検出
Enterprise Manager Cloud Controlでは、シャード・カタログおよびシャード・データベースを検出し、ガイドされた検出を使用してシャード・ディレクタ、シャード・データベース、シャード領域およびシャードグループを追加できます。
前提条件として、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 TABLE
、CREATE 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マルチテナント・アーキテクチャにシャードを移行する場合は、次のステップを実行してください。
親トピック: シャード・データベースの管理
シャード・データベースのソフトウェア・バージョンの管理
この項では、シャード・データベース構成内のソフトウェア・コンポーネントのバージョン管理について説明します。次の項目が含まれます。
- シャード・データベースへのパッチ適用およびアップグレード
シャード・データベース環境へのOracleパッチの適用は、単一のシャードまたはすべてのシャードに対して行うことができます。ただし、使用する方法は、その環境で使用されているレプリケーション・オプションおよび適用されるパッチのタイプによって異なります。 - シャード・データベースのコンポーネントのアップグレード
コンポーネントが停止してオンライン状態に戻る際の停止時間を制限し、エラーを回避するためには、シャード・データベースのコンポーネントをアップグレードする順序が重要です。 - シャード・データベースのダウングレード
Oracle Shardingはダウングレードをサポートしていません。 - Oracle Database 18cからの互換性と移行
特定のCDBに単一のPDBシャードを含むOracle Database 18cインストールからアップグレードする場合、PDBのシャード・カタログ・メタデータを更新する必要があります。
親トピック: シャード・データベースの管理
シャード・データベースへのパッチ適用およびアップグレード
シャード・データベース環境へのOracleパッチの適用は、単一のシャードまたはすべてのシャードに対して行うことができます。ただし、使用する方法は、その環境で使用されているレプリケーション・オプションおよび適用されるパッチのタイプによって異なります。
シャード・データベースへのパッチ適用
ほとんどのパッチは、単一のシャードに一度に適用できます。ただし、一部のパッチはすべてのシャードに適用する必要があります。SDBに使用されているレプリケーション方法に留意して、非シャード・データベースの場合と同様に、Oracleのベスト・プラクティスを使用して単一のシャードにパッチを適用してください。Oracleのopatchauto
は、複数のシャードに一度にパッチを適用するために使用でき、ローリング形式で行うことができます。Data Guard構成は1つずつ適用され、場合によっては(パッチによって異なります) Standby Firstパッチ適用を使用できます。Oracle GoldenGateを使用する場合は、必ずシャード領域全体で並列にパッチを適用してください。パッチがマルチシャード問合せ、レプリケーションまたはシャーディング・インフラストラクチャの問題に対処するものである場合は、SDB内のすべてのシャードに適用する必要があります。
シャード・データベースへのアップグレード
Oracle Sharding環境のアップグレードは、他のOracle Databaseとグローバル・サービス・マネージャの環境のアップグレードと大きな違いはありません。ただし、コンポーネントを特定の順序(最初にシャード・カタログ、次にシャード・ディレクタ、最後にシャードの順)でアップグレードする必要があります。
関連項目:
Oracle Database Global Data Services概要および管理ガイド(シャード・ディレクタのアップグレードの詳細)
Oracle Data Guard概要および管理(Oracle Data Guard構成内のパッチ適用およびアップグレードの詳細)
親トピック: シャード・データベースのソフトウェア・バージョンの管理
シャード・データベースのコンポーネントのアップグレード
コンポーネントが停止してオンライン状態に戻る際の停止時間を制限し、エラーを回避するためには、シャード・データベースのコンポーネントをアップグレードする順序が重要です。
シャード・データベースのコンポーネントをアップグレードするときは、次の点に注意する必要があります。
-
保留中の
MOVE CHUNK
操作が進行中の場合は、完了してください。 -
新しい
MOVE CHUNK
操作を開始しないでください。 -
アップグレード・プロセス中に新しいシャードを追加しないでください。
関連項目:
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
アカウントもサポートするには、シャード・データベース・コンポーネントのアップグレードの説明に従って、アップグレード・プロセス中に次のステップを実行します。
親トピック: シャード・データベースのソフトウェア・バージョンの管理
シャード管理
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デプロイメントのシャードを管理できます。
親トピック: シャード・データベースの管理
シャードの追加について
既存のシャード・データベース環境に新しいシャードを追加することによって、スケール・アウトしたり、フォルト・トレランスを向上させたりできます。
フォルト・トレランスのためには、少数の非常に大きいシャードを使用するより、多数の小さいシャードを使用するほうが効果的です。アプリケーションが長期間使用されてデータ量が増えた場合、1つ以上のシャードをSDBに追加して容量を増やすことができます。
シャード・データベースにシャードを追加するときに、環境がコンシステント・ハッシュによってシャーディングされている場合は、既存のシャードからのチャンクが新しいシャードに自動的に移動されて、シャード環境がリバランスされます。
ユーザー定義シャーディングを使用する場合、新しいシャードにデータを移入するには、GDSCTLのsplit chunk
およびmove chunk
コマンドを使用して、既存のシャードから新しいシャードにチャンクを手動で移動する必要がある場合があります。
Oracle Enterprise Manager Cloud Controlを使用して、新しいシャードに移動するか、分割して移動するよい候補となるチャンクを識別できます。
環境にシャードを追加する場合は、スタンバイ・サーバーが準備完了状態であることを確認し、新しいシャードが配置された後に、move chunk
操作に関係したすべてのシャードのバックアップを取得します。
親トピック: シャード管理
再シャーディングおよびホット・スポット回避
シャード数の変化によってトリガーされてデータがシャード間に再分散されるプロセスを再シャーディングと呼びます。自動再シャーディングは、システム管理のシャーディング方法の機能であり、SDBに柔軟なスケーラビリティを提供します。
ときには、SDBのデータを1つのシャードから他のシャードに移行する必要があります。シャード間のデータ移行は次のような場合に必要です。
-
SDBに対して1つ以上のシャードを追加または削除した場合
-
シャード間のデータ分散またはワークロード分散にスキューがある場合
シャード間のデータ移行の単位はチャンクです。チャンクでデータを移行することにより、異なるシャード・データベースの関連するデータが確実に一緒に移動されます。
SDBに対してシャードを追加または削除すると、複数のチャンクが移行されて、シャード間のチャンクとワークロードのバランスのとれた分散が維持されます。
シャーディング方法に応じて、再シャーディングが自動的に行われるか(システム管理)、ユーザーが指示します(コンポジット)。次の図は、3つのシャードを含む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スタンバイ・データベースはサポートされません。ただし、すでにシャード・データベースの一部であるシャードは、物理スタンバイからスナップショット・スタンバイに変換できます。物理スタンバイからスナップショット・スタンバイに変換する場合、次のステップに従う必要があります。
データベースが物理スタンバイに逆変換される場合、グローバル・サービスを有効化して再開できます。シャードはシャード・データベースのアクティブなメンバーになります。
親トピック: シャード管理
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環境に追加されているシャードをデプロイします。
親トピック: シャード管理
シャードの検証
Oracle Shardingデプロイメントに追加する前に、シャードを検証します。
Oracle Shardingデプロイメントに追加する前に、Oracle Enterprise Manager Cloud Controlを使用してシャードを検証できます。デプロイメントした後にシャードを検証して、シャードのその後のライフサイクルでも設定が引き続き有効であることを確認することもできます。たとえば、ソフトウェアのアップグレード後に、既存のシャードを検証して、パラメータおよび構成が正しいことを確認できます。
Cloud Controlを使用してシャードを検証するには、Cloud Controlで監視している既存のターゲットである必要があります。
- シャードグループ管理ページから、シャードグループ・ターゲット・ページの左上隅にある「シャードグループ」メニューを開き、「シャードの管理」を選択します。
- 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」で管理するシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
- リストからシャードを選択して、「検証」をクリックします。
- 「OK」をクリックして、シャードを検証することを確認します。
- ページ上部にある「情報」ボックスのリンクをクリックして、シャードのプロビジョニング・ステータスを表示します。
シャード検証スクリプトが正常に実行されると、出力にレポートされるエラーを確認します。
プライマリ・シャードの追加
Oracle Enterprise Manager Cloud Controlを使用して、プライマリ・シャードをOracle Shardingデプロイメントに追加します。
プライマリ・シャードは、Cloud Controlで監視している既存のターゲットである必要があります。
Oracle Sharding環境に追加する前にシャードを検証することを強くお薦めします。Cloud Controlを使用してシャードを検証するか(「シャードの検証」を参照)、またはSQL*Plusを使用してシャードに対してDBMS_GSM_FIX.validateShardプロシージャを実行します(「シャードの検証」を参照)。
上記の手順の「シャードされたデータベースにすべてのシャードをデプロイ」を選択しなかった場合、シャードのデプロイ・タスクを使用して、Oracle Shardingデプロイメントにシャードをデプロイします。
スタンバイ・シャードの追加
Oracle Enterprise Manager Cloud Controlを使用して、スタンバイ・シャードをOracle Shardingデプロイメントに追加します。
スタンバイ・シャードは、Cloud Controlで監視している既存のターゲットである必要があります。
Oracle Sharding環境に追加する前にシャードを検証することを強くお薦めします。Cloud Controlを使用してシャードを検証するか(「シャードの検証」を参照)、またはSQL*Plusを使用してシャードに対してDBMS_GSM_FIX.validateShardプロシージャを実行します(「シャードの検証」を参照)。
上記の手順の「シャードされたデータベースにすべてのシャードをデプロイ」を選択しなかった場合、シャードのデプロイ・タスクを使用して、Oracle Shardingデプロイメントにシャードをデプロイします。
GDSCTLを使用したシャードの管理
GDSCTLコマンドライン・ユーティリティを使用して、Oracle Shardingデプロイメントのシャードを管理できます。
次のトピックでは、GDSCTLを使用したシャードの管理について説明します。
- シャードの検証
新しく作成したシャードをシャーディング構成に追加する前に、シャードがシャーディング環境用に正しく構成されていることを検証する必要があります。 - システム管理のSDBへのシャードの追加
システム管理のSDBにシャードを追加すると、SDBを柔軟に拡張できます。システム管理のSDBのチャンクは、新しいシャードが追加された後に自動的にリバランスされます。 - シャードの置換
シャードで障害が発生してリカバリ不能になった場合、またはその他の理由で新しいホストにシャードを移動する必要がある場合は、GDSCTLでADD SHARD -REPLACEコマンドを使用して、シャードを置き換えることができます。
親トピック: シャード管理
シャードの検証
新しく作成したシャードをシャーディング構成に追加する前に、シャードがシャーディング環境用に正しく構成されていることを検証する必要があります。
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
タグが付けられている出力を修正する必要があります。
親トピック: GDSCTLを使用したシャードの管理
システム管理のSDBへのシャードの追加
システム管理のSDBにシャードを追加すると、SDBを柔軟に拡張できます。システム管理のSDBのチャンクは、新しいシャードが追加された後に自動的にリバランスされます。
新しいシャードのホストを準備するには、最初にシャード・データベース環境を準備したときと同じすべてのセットアップ手順(次の手順を含む)を行います。
関連項目:
GDSCTLコマンドの使用方法については、Oracle Database Global Data Services概要および管理ガイドを参照してください
親トピック: GDSCTLを使用したシャードの管理
シャードの置換
シャードで障害が発生してリカバリ不能になった場合、またはその他の理由で新しいホストにシャードを移動する必要がある場合は、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 Database Global Data Services概要および管理ガイド(ADD SHARDコマンドの詳細)
親トピック: GDSCTLを使用したシャードの管理
チャンク管理
Oracle Enterprise Manager Cloud ControlおよびGDSCTLを使用したOracle Shardingデプロイメントのチャンクを管理できます。
次のトピックでは、チャンク管理の概念およびタスクについて説明します。
- チャンクの移動について
チャンクをあるシャードから別のシャードに移動することが必要となる場合があります。シャード環境のスケーラビリティを維持するには、すべてのシャード間で負荷とアクティビティが均等に配分されるように維持することが重要です。 - チャンクの移動
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントの1つのシャードから他のシャードにチャンクを移動できます。 - チャンクの分割について
チャンクが大きくなりすぎた場合や、チャンクの一部のみを別のシャードに移行する必要がある場合は、シャード・データベースのチャンクを分割する必要があります。 - チャンクの分割
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのチャンクを分割できます。
親トピック: シャード・データベースの管理
チャンクの移動について
チャンクをあるシャードから別のシャードに移動することが必要となる場合があります。シャード環境のスケーラビリティを維持するには、すべてのシャード間で負荷とアクティビティが均等に配分されるように維持することが重要です。
コンポジットSDBの環境が長期間使用されると、一部のシャードがよりアクティブになり、他のシャードよりデータが多くなります。環境内のバランスを保つために、よりアクティブなサーバーからアクティブではないサーバーにチャンクを移動する必要があります。チャンクを移動する理由は他にもあります。
-
あるシャードが他のシャードよりアクティブになった場合は、よりアクティブではないシャードにチャンクを移動して、環境内で負荷が均等に配分されるようにできます。
-
範囲、リストまたはコンポジット・シャーディングを使用しているときに、シャードをシャードグループに追加する場合。
-
範囲、リストまたはコンポジット・シャーディングを使用しているときに、シャードグループからシャードを削除する場合。
-
チャンクを分割したら、分割されたチャンクのいずれかを新しいシャードに移動することを多くの場合お薦めします。
スケーラビリティを維持するためにシャードを移動する場合、チャンクの最適なターゲットはよりアクティブではないシャード、またはより少ないデータがあるシャードです。Oracle Enterprise ManagerおよびAWRのレポートは、シャード間のアクティビティの配分を識別するため、およびチャンクの移動のよい候補となるシャードを識別するために役立ちます。
ノート:
チャンクをあるシャードから別のシャードに移動する場合は、その操作に関係するデータベース(チャンクの移動のソースおよびターゲットの両方)のフル・バックアップを取得する必要があります。
関連項目:
GDSCTL MOVE CHUNK
コマンドの使用方法の詳細は、Oracle Database Global Data Services概要および管理ガイドを参照してください
親トピック: チャンク管理
チャンクの移動
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントの1つのシャードから他のシャードにチャンクを移動できます。
親トピック: チャンク管理
チャンクの分割について
チャンクが大きくなりすぎた場合や、チャンクの一部のみを別のシャードに移行する必要がある場合は、シャード・データベースのチャンクを分割する必要があります。
Oracle Shardingはチャンクのオンライン分割をサポートします。理論上は、各シャードに1つのチャンクを作成し、データ移行が必要になるたびに分割できます。ただし、チャンクの分割はデータの可用性に影響しないものの、分割するパーティションのすべての行をスキャンしてから、1行ずつ新しいパーティションに挿入するため、時間がかかり、CPUにも負荷がかかる操作です。コンポジット・シャーディングの場合、チャンクの分割には時間がかかり、シャード・キーまたはスーパー・シャード・キーの新しい値を再定義するために停止時間が必要となることがあります。
したがって、各シャードに事前に複数のチャンクを作成し、次のいずれかの場合に分割することをお薦めします。再シャーディング中にデータをバランスよく分散するにはチャンク数が足りない場合、または特定のチャンクがホット・スポットになっている場合です。
システム管理のシャーディングの場合でも、単一のチャンクが他のチャンクより大きくなったり、よりアクティブになったりすることがあります。この場合は、そのチャンクを分割し、分割されたチャンクのいずれかが自動再シャーディングによって別のシャードに移動されることを許可すると、環境内のデータおよびアクティビティがより均等に配分されるように維持されます。
Oracle Enterprise Managerのヒート・マップには、どのチャンクが他のチャンクよりもアクティブになっているかが表示されます。この機能を使用してどのチャンクを分割できるかを識別し、分割されたチャンクのいずれかを別のシャードに移動して環境をリバランスできます。
関連項目:
GDSCTL SPLIT CHUNK
コマンドの使用方法の詳細は、Oracle Database Global Data Services概要および管理ガイドを参照してください
親トピック: チャンク管理
チャンクの分割
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デプロイメントからシャード・ディレクタを削除します。
親トピック: シャード・データベースの管理
シャード・ディレクタの作成
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デプロイメントのシャード・データベース・リージョンを作成します。 - リージョン構成の編集
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード・データベース・リージョン構成を編集します。 - リージョンの削除
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード・データベース・リージョンを削除します。
親トピック: シャード・データベースの管理
リージョンの作成
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード・データベース・リージョンを作成します。
- シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「リージョン」を選択します。
- 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」で管理するシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
- 「作成」をクリックします。
- 「リージョンの作成」ダイアログのリージョンに一意の名前を入力します。
- オプションで、既存のリージョンからバディ・リージョンを選択します。
- 「OK」をクリックします
- ページ上部にある「情報」ボックスのリンクをクリックして、リージョンのプロビジョニング・ステータスを表示します。
親トピック: リージョン管理
リージョン構成の編集
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャード・データベース・リージョン構成を編集します。
- シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「リージョン」を選択します。
- 要求された場合、シャード・カタログ資格証明を入力し、「シャード・ディレクタ資格証明」でシャード・ディレクタを選択し、シャード・ディレクタ・ホスト資格証明を選択してログインします。
- リストからリージョンを選択して、「編集」をクリックします。
- バディ・リージョンを選択または削除して、「OK」をクリックします。
- ページ上部にある「情報」ボックスのリンクをクリックして、リージョン構成変更のプロビジョニング・ステータスを表示します。
リージョン構成が正常に更新されると、変更が「リージョン」リストに表示されます。更新内容を参照するには、ページのリフレッシュが必要な場合があります。
親トピック: リージョン管理
リージョンの削除
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デプロイメントのシャードグループを追加、編集および削除できます。
次の各項では、シャードグループの管理タスクについて説明します。
- シャードグループの作成
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャードグループを作成します。
親トピック: シャード・データベースの管理
シャードグループの作成
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのシャードグループを作成します。
親トピック: シャードグループ管理
サービス管理
Oracle Enterprise Manager Cloud Controlを使用したOracle Shardingデプロイメントのサービスを管理できます。
Oracle Shardingサービスを管理するには、シャード・データベース・ターゲット・ページの左上隅にある「シャードされたデータベース」メニューを開き、「サービス」を選択します。サービスページで、サービスのリストの上部にあるコントロールを使用して、サービスを起動、停止、有効化、無効化、作成、編集および削除できます。
サービスを選択すると、サービスを実行しているホストおよびシャード、ステータス、状態およびそれらの各インスタンスのData Guardロールを表示するサービス詳細リストが開きます。このリストのシャードを選択すると、個々のシャードのサービスを有効化、無効化、起動および停止できます。
次の各項では、サービスの管理タスクについて説明します。
- サービスの作成
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのサービスを作成します。
親トピック: シャード・データベースの管理
サービスの作成
Oracle Enterprise Manager Cloud Controlを使用して、Oracle Shardingデプロイメントのサービスを作成します。
親トピック: サービス管理