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を作成する際、ユーザーの要件にリモートデータベースからローカルデータベースへのアクセス(つまり、リバースLINK機能)の実装が含まれる場合、作成プロセスではローカルデータベースのIPアドレス、ポート番号、ユーザー名、テナント名、およびパスワードを追加で提供する必要があります。リバースLINK機能により、リモートデータベースはローカルデータベース内のオブジェクト、例えばテーブル、ビュー、またはシノニムにアクセスできます。この機能は特に双方向のデータ交換が必要なシナリオに適しています。
ユーザーがリバースLINK機能を使用する必要がない場合、DBLINKの作成プロセスでこれらの追加情報を提供しない選択をすることもできます。ただし、リバースLINK機能はOceanBaseのOracleモード間のデータベースアクセスでのみサポートされており、OceanBaseのOracleモードからネイティブOracleデータベースへのアクセスではこの機能はサポートされていません。そのため、ネイティブOracleデータベースへのDBLINK作成時にこのような追加情報を提供した場合、構文エラーにより作成が失敗します。
PLデータベースリンク
OceanBaseデータベースは、DBLinkを介したストアドプロシージャのリモート呼び出しをサポートしています。これにより、OceanBaseデータベースでリモートストアドプロシージャを容易に呼び出し、分散型データ処理と操作をサポートできます。
現在、スタンドアロンプロシージャ(Standalone Procedure)およびPLパッケージ内のプロシージャ(Procedure within PL Packages)の呼び出しのみがサポートされており、ユーザー定義関数(User Defined Function, UDF)およびPLパッケージ内の関数(Function)のリモート呼び出しは一時的にサポートされていません。