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)のリモート呼び出しは、現在サポートされていません。