Oracle Shardingのこのリリースの変更点
「はじめに」の内容は次のとおりです。
Oracle Database 18cでの変更点
次に、Oracle Database 18cのOracle Shardingの変更点を示します。
親トピック: このリリースでのOracle Shardingの変更
新機能
このリリースの新機能は次のとおりです。
- ユーザー定義のシャーディング方法
- シャードとしてPDBのサポート
- Oracle GoldenGateレプリケーションのサポート
- 集中診断
- マルチシャード問合せの一貫性レベル
- JSON、LOBおよび空間オブジェクトのシャーディングのサポート
- マルチシャード問合せに関するオプティマイザの機能強化
- シャードの置換
- Oracle RAC Sharding
- UCPによるOracle Sharding中間層へのデータ依存型ルーティングのサポート
親トピック: Oracle Database 18cでの変更点
ユーザー定義のシャーディング方法
ユーザー定義のシャーディングでは、個々のシャードへのデータのマッピングをユーザーが明示的に指定できます。これは、パフォーマンスや規制などの理由で、特定のデータを特定のシャードに格納する必要があり、シャード間のデータの移動を完全に制御する必要がある場合に使用します。この方法を使用して、LISTまたはRANGEベースのシャーディングを定義できます。
関連項目
-
ユーザー定義のシャーディング(ユーザー定義のシャーディングの概念的な概要)
-
シャード・データベースでのOracle Data Guardの使用(Oracle Data Guardによるユーザー定義のシャード・データベースのレプリケートの詳細)
-
ユーザー定義のSDBの作成とデプロイ(ユーザー定義のシャード・データベースの構成、作成およびデプロイに関連するタスク)
親トピック: 新機能
シャードとしてのPDBのサポート
CDB内のPDBをシャードまたはシャード・カタログ・データベースのために使用します。Oracle Shardingのこのリリースでは、シャードまたはシャード・カタログがCDB内の1つのPDBとしてサポートされています。Oracle Shardingでマルチテナント・アーキテクチャをサポートできるように、GDSCTLコマンドADD SHARDが拡張され、新しいコマンドADD CDB、MODIFY CDB、CONFIG CDBおよびREMOVE CDBが実装されています。
関連項目
-
Oracle ShardingでのOracle Multitenantの使用(PDBをシャードとして使用する方法の詳細)
-
Oracle Database Global Data Services概要および管理ガイド(新しいコマンドの詳細)
親トピック: 新機能
Oracle GoldenGateレプリケーションのサポート
Oracle GoldenGateは、すべてのシャードが書込み可能で、各シャードをシャードグループ内の別のシャードに部分的にレプリケートできるファイングレイン・アクティブ-アクティブ・レプリケーションのために使用されます。アクティブ-アクティブ・レプリケーションによる競合の処理には、Oracle 12.2に追加された自動競合検出および解決機能が使用されます。
シャード・レベルの高可用性を参照してください。
親トピック: 新機能
集中診断
SQLのSHARDS()
句は、すべてのシャード間でV$、DBA/USER/ALLビュー、ディクショナリ表などのOracle提供オブジェクトを問い合せることができます。
シャード間のシステム・オブジェクトの問合せを参照してください。
親トピック: 新機能
マルチシャード問合せの一貫性レベル
マルチシャード問合せを実行するときに、初期化パラメータMULTISHARD_QUERY_DATA_CONSISTENCY
を使用して様々な一貫性レベルを設定できます。
マルチシャード問合せでの一貫性レベルの指定を参照してください。
親トピック: 新機能
JSON、LOBおよび空間オブジェクトのシャーディングのサポート
このリリースでは、一時LOB、大規模なJSONドキュメント(LOB記憶域を必要とするもの)、空間オブジェクト、索引と演算子および永続LOBを生成するJSON演算子をシャード環境で使用できます。
この機能の一部として、次のインタフェースが新規作成または変更されました。
-
問合せおよびDML文
LOBに関連するシャード間の問合せがサポートされています。
複数のシャードを使用するDMLはサポートされていません。この動作は、スカラー列に似ています。
1つのシャードを使用するDMLは、コーディネータでサポートされています。
シャードから選択したロケータは、同じシャードにバインド値として渡すことができます。
-
OCILob
シャーディング環境では、BFILE関連を除くすべてのOCILob APIがサポートされていますが、いくつかの制限事項があります。
コーディネータでは、LOBがシャード表から取得された場合にLOBディスクリプタのOCI_ATTR_LOB_REMOTE属性がTRUEを返します。
制限事項: 入力として2つのロケータを取るAPI (OCILobAppendやOCILobCompareなど)では、両方のロケータを同じシャードから取得する必要があります。ロケータを異なるシャードから取得すると、エラーが発生します。
-
DBMS_LOB
シャーディング環境では、BFILE関連を除くすべてのDBMS_LOB APIがサポートされていますが、いくつかの制限事項があります。コーディネータでは、LOBがシャード表から取得された場合にDBMS_LOB.isremoteがTRUEを返します。
制限事項: 入力として2つのロケータを取るAPI (DBMS_LOB.appendやDBMS_LOB.compareなど)では、両方のロケータを同じシャードから取得する必要があります。ロケータを異なるシャードから取得すると、エラーが発生します。
シャード・データベース・デプロイメントでのLOBの使用例は、システム管理のシャード・データベースのスキーマの作成、ユーザー定義のSDB用のスキーマの作成およびコンポジットSDB用のスキーマの作成を参照してください。
親トピック: 新機能
マルチシャード問合せに関するオプティマイザの機能強化
シャード問合せの堅牢性とフォルト・トレランスを向上させるため、様々な機能強化が行われました。問合せの実行計画が拡張され、問合せに含まれるすべてのシャードの情報が表示されるようになりました。
これらのトピックの最新情報は、プロキシ・ルーティングでサポートされる問合せの形態およびプロキシ・ルーティング用の実行計画を参照してください。
親トピック: 新機能
シャードの置換
シャードで障害が発生してリカバリ不能になった場合は、GDSCTLでADD SHARD -REPLACE
コマンドを使用してシャードを置き換えることができます。また、なんらかの理由で、-replaceコマンド・オプションを使用して新しい装置にシャードを移動することもできます。
シャードの置換を参照してください。
親トピック: 新機能
Oracle RAC Sharding
Oracle RAC Shardingは、特定のOracle RACインスタンスに対する表パーティションのアフィニティを作成し、対応するパーティションを論理的に保持するインスタンスにパーティション化キーを指定するデータベース・リクエストをルーティングします。これにより、キャッシュをより適切に利用できるようになり、インスタンス間のブロックpingを大幅に削減できます。パーティション化キーは、最もパフォーマンスを重視するリクエストにのみ追加できます。キーを指定しないリクエストは透過的に機能し、任意のインスタンスにルーティングできます。この機能を有効にするためにデータベース・スキーマを変更する必要はありません。
詳細は、Oracle Real Application Clusters管理およびデプロイメント・ガイドを参照してください
親トピック: 新機能
UCPによるOracle Sharding中間層へのデータ依存型ルーティングのサポート
中間層ルーティングと呼ばれるOracle Universal Connection Pool (UCP)機能により、スマート・ルーター(F5 BigIPなど)がシャーディング・キーに関連付けられた中間層にルーティングできます。
中間層接続プールとシャード間のアフィニティの作成を参照してください。
親トピック: 新機能
その他の変更
このリリースでの追加変更は次のとおりです。
-
シャーディングのコンテンツを新しいマニュアルに移動
Oracle Database 12cリリース2 (12.2.0.2)では、Oracle Shardingのコンテンツは『Oracle Database管理者ガイド』に含まれていました。Oracle Database 18c以降では、Oracle Shardingのコンテンツは独自のマニュアルであるOracle Shardingの使用に含まれています。
親トピック: Oracle Database 18cでの変更点