OracleモードにおけるDBLINKの読み取り機能
OceanBase DBLINK(以下、DBLINKと略称)は、データソース間でのアクセスを実現し、業務コードがローカルデータベースへのアクセスと同様にリモートデータベースにアクセスできるようにします。また、データソース間の分散トランザクション機能もネイティブにサポートしているため、業務コードの複雑さを低減します。
OceanBase-Oracleモードでは、DBLINKの読み取り機能が利用可能です。DBLINKの読み取り機能を使用することで、リモートのOceanBase-OracleモードデータベースやネイティブOracleデータベースにアクセスできます。
ローカルデータベースがリモートデータベースに対してデータベースリンクを作成した後、DBLINKを使用してリモートオブジェクト(オブジェクトにはテーブル、ビュー、シノニムが含まれます)を読み取り、DBLINKを削除し、DBLINKを確認できます。
OracleモードにおけるDBLINKの書き込み機能
Oracleモードで使用されるDBLINKには、データ書き込み機能が備わっています。この機能により、ユーザーはデータベースリンク(DBLINK)を通じてリモートデータベースオブジェクトに対するデータ操作を行うことができます。これらのリモートオブジェクトは、テーブル、ビュー、またはシノニムになり得ます。DBLINKのデータ書き込み機能は、操作方法がデータ読み取り機能と似ていますが、主な違いはそれぞれがサポートするSQL文の種類にあります。具体的には、データ読み取りは主にクエリ操作に関係していますが、データ書き込みはINSERT、DELETE、UPDATE、MERGE INTOの4種類のデータ操作言語(DML)文をサポートしています。
データ書き込み機能はOceanBaseのOracleモードで使用できますが、MySQLモードではサポートされていません。DBLINKのデータ書き込み機能を使用することで、ユーザーはリモートのOceanBase(Oracleモード)またはネイティブOracleデータベースへのデータ書き込み操作を実現できます。
DBLINKを作成する際、ユーザーの要件にリモートデータベースからローカルデータベースへのアクセス(つまり逆リンク機能)の実装が含まれている場合、作成プロセスではローカルデータベースのIPアドレス、ポート番号、ユーザー名、テナント名、パスワードを追加で提供する必要があります。逆リンク機能により、リモートデータベースはローカルデータベース内のテーブル、ビュー、シノニムなどのオブジェクトにアクセスできるようになります。この機能は、双方向のデータ交換が必要なシナリオに特に適しています。
ユーザーが逆リンク機能を使用する必要がない場合、DBLINKの作成プロセスでこれらの追加情報を提供しない選択肢を選ぶことができます。ただし、逆リンク機能はOceanBaseのOracleモード間のデータベースアクセスでのみサポートされており、OceanBaseのOracleモードからネイティブOracleデータベースへのアクセスではこの機能はサポートされていない点に注意が必要です。そのため、ネイティブOracleデータベースへのDBLINK作成時にこのような追加情報を提供した場合、構文エラーにより作成に失敗します。
PLデータベースリンク
OceanBaseデータベースは、DBLinkを介してストアドプロシージャをリモート呼び出すことをサポートしており、OceanBaseデータベース内でリモートストアドプロシージャの呼び出しを容易に実現できます。これにより、分散型データ処理と操作をサポートします。
現在、独立したストアドプロシージャ(Standalone Procedure)およびPLパッケージ内のストアドプロシージャ(Procedure within PL Packages)の呼び出しのみがサポートされており、ユーザー定義関数(User Defined Function, UDF)およびPLパッケージ内の関数(Function)のリモート呼び出しは一時的にサポートされていません。