Oracle Database 23aiでのOracle Globally Distributed Databaseの変更点

Oracle Database 23aiでのOracle Globally Distributed Databaseの変更点は次のとおりです。

新機能

ベクトル・データ型のサポート

ベクトル検索のGlobally Distributed Databaseサポートにより、ベクトルを含む表が、ハードウェアを共有しないOracleデータベースのプールに自動的に分散およびレプリケートされます。類似性検索は、シャード間で自動的にパラレルで実行されるか、シャーディング・キーが指定されている場合は特定のシャードに転送されます。

Globally Distributed Database AI Vector Searchは、複数のマシンにベクトルを分散させることによるスケーラビリティの向上、シャード間でベクトル検索をパラレルで実行することによるパフォーマンスの向上、一方のシャードがダウンした場合、もう一方のシャードは引き続き動作できることによるデータの回復力の向上など、いくつかの利点をもたらします。また、単一の論理データベースが複数の地理に分散される分散データベースの一部としてベクトル検索をデプロイすることもできます。

「分散データベースでのOracle AI Vector Search」を参照してください

コンポジット・データ分散のチャンク移動の拡張

コンポジット・データ分散方法では、データは、スーパー・シャード・キー列の値に基づいて異なるシャード領域に編成できます。この機能拡張により、スーパー・シャード・キー値に従って既存のデータ・チャンクを新しいシャード領域に分割する方法が作成されます。

Oracle 21cでは、コンポジット分散の場合、データはスーパー・シャード・キーに従って物理的に配置する必要があり、スーパー・シャード・キーが指定されると、場合によっては異なるシャード領域に配置されますが、このデータ移動は、ソース・シャード領域から大量のデータを選択し、一時表に挿入してから、ソース・シャード領域から削除し、一時表からターゲット・シャード領域に挿入することによって、手動で実行する必要があります。これは、データベース・リンク(DBLINK)の行ごとに実行され、かなりの時間がかかります。

Oracle Database 23aiでは、split partitionsetコマンドを実行して、シャード領域間のデータの一括移動がサポートされています。スーパー・シャード・キーに基づいてデータを再配置する必要がある場合は、スーパー・シャード・キー値に従って既存のデータ・チャンクを新しいシャード領域に分割して、一括データ移動をトリガーします。Oracle Globally Distributed Database 23aiは、データを分割し、データ一括移動操作の進行中に、クライアント接続に対してデータへのアクセスを最長時間可能にします。

利点 :

  • データの分割および移動を自動化します。

  • 分割および移動時にデータをオンラインのままにする

  • トランスポータブル表領域を使用したバルク・データ移動を許可します。

詳細は、スーパー・キーに基づくシャード領域へのチャンクの分割を参照してください。

Raftレプリケーション

RaftレプリケーションはOracle Globally Distributed Databaseに直接組み込まれており、Oracle Data Guardの構成を必要とせずに、組込みのレプリケーションを提供します。Raftレプリケーションでは、コンセンサスベースのコミット・プロトコルを使用して論理レプリケーションを使用し、宣言的なレプリケーション構成と1秒未満のフェイルオーバーを可能にします。

Oracle Globally Distributed Databaseは、可用性のためにレプリケーションを使用しますが、Data Guardを使用するには、基礎となるレプリケーション・テクノロジを理解、デプロイおよび保守する必要があります。これにより、特にハイパースケール・デプロイで運用オーバーヘッドが発生します。

Raftレプリケーションは、レプリケーションがOracle Globally Distributed Databaseに直接構築されているため、シンプルで透過的です。

詳細は、「Raftレプリケーションの構成および管理」を参照してください。

ディレクトリベースのデータ分散

現在、お客様はシステム管理、ユーザー定義およびコンポジットの3つのタイプのデータ分散方法を使用しています。ディレクトリベースの分散は、ユーザー定義の分散方法の拡張タイプであり、シャード上のデータの配置を制御できます。

ディレクトリベースの分散を使用すると、システム管理の分散でデータを均等に分散するための十分な個別キー値のセットがない場合に、分散データベース・リソースをより効率的に使用できます。ディレクトリベースの分散では、シャードへのキー値のマッピングを完全に制御することもできます。

ディレクトリベースの分散を使用すると、キー値をシャードに明示的に関連付けて、シャードへのキー値のマッピングを完全に制御できます。

詳細は、ディレクトリベースのデータ分散を参照してください。

同期重複表

この機能では、シャード・カタログでシャード「コミット時」に同期される新しい種類の重複表が導入されています。シャード・カタログ内の重複表でDMLを実行するアクティブなトランザクションがコミットされると、シャード上の重複表の行がシャード・カタログの重複表の行と同期されます。

この機能により、すべてのシャードにわたって、重複表の効率的で絶対的なデータ一貫性および同期が常に可能になります。

詳細は、重複表の作成を参照してください。

重複表のファイングレイン・リフレッシュ率制御

この機能により、個々の重複表に対するリフレッシュ率制御が可能となり、個々の重複表に対するリフレッシュ率のカスタマイズにより、リソースの使用を最適化できます。

CREATE DUPLICATED TABLEおよびALTER TABLEの新しいREFRESH句を使用すると、重複表のリフレッシュ間隔を指定できます。間隔を秒単位、分単位、時間単位で設定することも、表をオンデマンドでのみリフレッシュするように設定することもできます。たとえば:

CREATE DUPLICATED TABLE Products 
...
REFRESH INTERVAL 2 MINUTE;

ALTER TABLE Products MODIFY REFRESH ON DEMAND;

詳細は、重複表リフレッシュ率のカスタマイズを参照してください。

分散データベースの調整バックアップおよびリストアの拡張機能

調整されたバックアップおよびリストア機能には、このリリースではいくつかの主要な機能改善があります。

  • バックアップ・ジョブのエラー処理および診断が強化されました(自動バックアップ操作のエラー処理を参照)。

  • シャード・カタログ・データベースのリストアの自動化。以前は、RMANを使用してシャード・カタログを手動でリストアする必要がありました。このリリースでは、オプション-shard CATALOGを使用してシャード・カタログのリストアをサポートするようにGDSCTL RESTORE BACKUPが拡張されています(バックアップからのシャード・カタログのリストアを参照)。

  • 新しいGDSCTL RMANコマンドを使用すると、実行するシャードのリストにRMANコマンドを送信できます。RMAN文はコマンド本文で発行することも、RMANコマンド・ファイルを参照することもできます(GDSCTLからのRMANコマンドの実行を参照)。

  • 異なるシャードに異なるRMANリカバリ・カタログを使用するためのサポートは、GDSCTL CONFIG BACKUPを複数回実行して、特定のシャードおよびシャード・カタログに異なるリカバリ・カタログを指定することで提供されます(複数のリカバリ・カタログの指定を参照)。

  • 新しいGDSCTL CONFIG BACKUP -encryptionオプションを使用してバックアップ・セットを暗号化すると、バックアップ・セットの暗号化を有効または無効にして暗号化アルゴリズムを選択できます(バックアップ・セットの暗号化を参照)。

  • 追加のバックアップ保存先のサポート:

シャーディング・キー更新時の自動データ移動

シャーディング・キーの値の更新が必要になる場合があります。前の解決策は、古いキー値に関連付けられたデータを削除し、新しいキー値で再度挿入することでした。この拡張の目的は、シャード内とシャード間の両方で行の移動を許可することです。

シャード表の特定の行のシャーディング・キー値が更新されると、データを新しい場所に移動すると、Oracle Globally Distributed Databaseによって、同じシャード上の別のパーティションにあるか、別のシャード上にあるかにかかわらず処理されます。

この機能を使用すると、レコードの宛先を気にせずにシャーディング・キーを更新できます。これは、この機能を使用すると、異なるシャード上にある可能性がある行の宛先に関係なく、Oracle Globally Distributed Databaseで行移動を処理できるためです。

利点:

  • シャーディング・キー値を柔軟に更新できます。

  • シャード間の透過的なデータ移動が可能

詳細は、シャーディング・キー更新での自動データ移動の有効化を参照してください。

サブパーティションでのグローバル・パーティション索引のサポート

この機能により、コンポジット・データ分散を使用する分散データベースと同様に、シャード表がサブパーティション化された場合に、シャーディング・キーでグローバル・パーティション索引を使用できます。サブパーティション・キーを含めなくても、コンポジット・パーティション化されたシャード表に主キー/一意索引を作成できます。

この機能により、コンポジット・データ分散と同様に、シャード表がサブパーティション化された場合に主キー列の制限がなくなります。

詳細および例は、シャード表での索引の作成を参照してください。

PL/SQL関数クロスシャード問合せのサポート

PL/SQLファンクションはキーワードSHARD_ENABLEで拡張され、PL/SQLファンクションをクロスシャード問合せで参照できます。新しいキーワードを使用すると、問合せオプティマイザはPL/SQL関数の実行をシャードにプッシュするイニシアチブを取ります。

この機能により、分散データベース環境のPL/SQL関数のパフォーマンスが大幅に向上します。

詳細は、シャードへのPL/SQLファンクション問合せのプッシュを参照してください。

構文および使用方法の詳細は、SHARD_ENABLE句に関する項(『Oracle Database PL/SQL言語リファレンス』)を参照してください。

配置前ネットワークの検証

分散データベースの構成およびデプロイ中に複数のGDSCTLコマンドを処理する際に一連のチェックを実行するオプションは、潜在的な環境問題がないことを確認します。

この機能により、一般的な危険が事前に回避され、分散データベース・デプロイの完了にかかる時間が短縮されます。

詳細は、デプロイ前のネットワークの検証を参照してください。

コンポジット・データ分散の新しいパーティション・セット操作

コンポジット・データ分散方法を使用する分散データベースの場合、2つの新しいALTER TABLE操作によってパーティション・セットのメンテナンスが強化されます。

以前は、パーティション・セット操作では、パーティション・セットの追加および分割操作によって影響を受ける子表および参照パーティション表の表領域セットの指定はサポートされませんでした。MOVE PARTITIONSETを使用すると、同じシャード領域内で、パーティション・セット全体をある表領域セットから別の表領域セットに移動できます。MODIFY PARTITIONSETを使用すると、特定のパーティション・セットの値リストに値を追加できます。

これらの新しい操作により、データの再分散機能が強化されます。MOVE PARTITIONSETを使用すると、特定の表のすべてのサブパーティションを特定のシャード領域内の別の表領域セットに移動できます。LOBおよびサブパーティションに個別の表領域セットを指定することもできます。MODIFY PARTITIONSETは、パーティションのリスト値の追加機能をパーティション・セットに拡張します。

詳細は、Oracle Database SQL言語リファレンスALTER TABLEを参照してください。

パラレル・クロスシャードDMLのサポート

Oracle Globally Distributed Databaseの問合せコーディネータは、複数のシャードでクロスシャード更新、挿入および削除をパラレルに実行できます。この機能により、これらの操作をシリアルではなくパラレルで実行することで、シャード間のDMLパフォーマンスが向上します。

Oracle Data Pumpによる分散データベース・メタデータのサポートの追加

Oracle Data Pumpは、シャードされたDDLをサポートするOracle Globally Distributed Databaseへのデータ移行をサポートしています。ソース・データベース・シャード・オブジェクトに基づいて、分散データベース・オブジェクトをターゲット・データベースに移行できます。

Oracle Data Pumpでは、API dbms_metadata.get_ddl()での分散データベースDDLのサポートが追加されました。新しい変換パラメータINCLUDE_SHARDING_CLAUSESを使用すると、このサポートが容易になります。このパラメータがtrueに設定され、基礎となるオブジェクトにそれが含まれている場合、get_ddl() APIはcreate tablesequencetablespaceおよびtablespace set分散データベースDDLを返します。

詳細、例および参照は、Oracle DatabaseユーティリティのトピックTRANSFORMおよび変換への条件の配置と、Oracle Database PL/SQLパッケージおよびタイプ・リファレンスのトピックSET_TRANSFORM_PARAMおよびSET_REMAP_PARAMプロシージャを参照してください。

SQL*Loaderを使用した自動パラレル・ダイレクト・パス・ロード

SQL*Loaderにより、高速データ収集の際にはデータをデータベース・シャードに直接ロードできます。SQL*Loaderは、自動パラレル化とより効率的なデータ・ストレージを使用して、Oracle Databaseにデータをより迅速かつ簡単にロードできます。

このリリースでは、SQL*Loaderクライアントは、データを個別のファイルに分割して複数のSQL*Loaderクライアントを起動しなくても、データのパラレル・ダイレクト・パス・ロードを自動的に開始できます。表をパラレル・ロード用に手動で準備し、PARALLELパラメータを設定するかわりに、1つのコマンドのみでSQL*Loaderを実行し、DEGREE_OF_PARALLELISMパラメータを使用して並列度を設定し、DIRECT=TRUEを設定することで、同じタスクを自動的に実行できます。

詳細は、Oracle DatabaseユーティリティのトピックSQL*Loaderのシャード自動パラレル・ロード・モードおよびSQL*Loaderを使用した表データの自動パラレル・ロードを参照してください。

非推奨となった機能

次の機能は、リリース23aiでは非推奨であり、将来のリリースではサポートされなくなる可能性があります。

  • Oracle Data Provider for .NET管理対象外ドライバの非推奨

    Oracle Data Provider for .NET (ODP.NET)管理対象外ドライバは、Oracle Database 23aiでは非推奨であり、将来のリリースでサポートされなくなる可能性があります。既存の管理対象外ODP.NETアプリケーションをODP.NET管理対象ドライバに移行することをお薦めします。

サポート対象外機能

次の機能は、Oracle Database Release 23aiではサポート対象外となります。

  • サービス属性値SESSION_STATE_CONSISTENCY = STATICのサポート終了

    SESSION_STATE_CONSISTENCY = STATICが指定されたセッション属性値FAILOVER_TYPE = TRANSACTIONは、サポートされているサービス属性の組合せではなくなりました。

  • Oracle Globally Distributed Database高可用性のためのOracle GoldenGateレプリケーションのサポート終了

    Oracle Globally Distributed Databaseでのシャード・レベルの高可用性のためのOracle GoldenGateレプリケーションの使用は、Oracle Database 23aiではサポートされません。

  • Oracle Database Extensions for .NETのサポート終了

    Oracle Database Extensions for .NETはサポートされなくなりました。.NETコードを中間層に配置するか、外部プロシージャ機能を使用するか、PL/SQLまたはJavaを使用してコードを書きなおすことをお薦めします。