説明
このステートメントは、指定されたリモートデータベースにアクセスするためのdblinkを作成します。このステートメントでは、dblinkの名前を指定し、リモートデータベースのユーザー名、テナント名、パスワード、IPアドレス、ポート番号、およびアクセスタイプを提供する必要があります。逆リンクの場合は、ローカルデータベースのユーザー名、テナント名、パスワード、IPアドレス、ポート番号を提供する必要があります。アクセスタイプを指定しない場合、デフォルトでリモートOceanBaseデータベースにアクセスするdblinkが作成されます。
リモートデータベースがOceanBaseデータベースの場合、IPアドレスとポート番号は、リモートOceanBaseクラスタ内の特定のOBServerノードのIPアドレスとポート番号、またはOceanBaseクラスタのプロキシのIPアドレスとポート番号を指定できます。dblinkのポート番号がクラスタのプロキシのポート番号であり、かつプロキシがConfigUrlによってデプロイされている場合は、クラスタ名を指定する必要があります。逆リンク機能が必要な場合は、ローカルOceanBaseクラスタ内の特定のOBServerのIPアドレスとポート番号、およびユーザー名、テナント名、パスワードを追加で提供する必要があります。
リモートデータベースがOracleデータベースの場合、アクセスタイプを明示的にOCIタイプとして指定し、oracle_sidを指定するとともに、テナント名をoracleとする必要があります。
構文
CREATE DATABASE LINK dblink_name CONNECT TO user_name@tenant_name
IDENTIFIED BY password_str [OB|OCI] HOST 'ip:port[/oracle_sid]' [CLUSTER cluster_name] [MY_NAME local_user_name@local_tenant_name
IDENTIFIED BY local_password_str HOST 'local_ip:local_port'];
説明
| フィールド | 説明 |
|---|---|
| dblink_name | アクセスするデータベースリンクの名前を指定します。 |
| user_name | リモートデータベースのユーザー名を指定します。 |
| tenant_name | リモートデータベースのテナント名を指定します。リモートデータベースがOracleの場合、テナント名は常にoracleとなります。 |
| password | リモートデータベースのユーザー名のログインパスワードを指定します。パスワードに数字やアルファベット以外の特殊文字(~!@#%^&*_-+=|(){}[]:;,.?/ )が含まれる場合は、構文エラーを回避するためにパスワードをダブルクォーテーションマークで囲む必要があります。 |
| OB | OCI | OBはリモートデータベースのタイプをOceanBaseデータベースと指定し、OCIはリモートデータベースのタイプをOracleと指定します。両方のパラメータが提供されない場合、OceanBaseデータベースがデフォルトのリモートデータベースタイプとなります。 |
| ip | リモートデータベースのIPアドレスを指定します。リモートデータベースのタイプがOceanBaseデータベースの場合、IPアドレスはクラスタのProxyのIPアドレス、またはクラスタ内の特定のOBServerのIPアドレスを指定できます。OBServerのIPアドレスを指定する場合、ローカルデータベースと指定されたOBServer間のネットワークが相互接続可能であることが求められます。
説明IPアドレスに加えて、OceanBaseデータベースはドメイン名アドレスもサポートしています。例えば、 |
| port | リモートデータベースのポート番号を指定します。リモートデータベースのタイプがOceanBaseデータベースの場合、クラスタのProxyのポート番号、またはクラスタ内の特定のOBServerのポート番号を指定できます。OBServerのポート番号を指定する場合、ローカルデータベースと指定されたOBServer間のネットワークが相互接続可能であることが求められます。リモートデータベースのタイプがOracleデータベースの場合、IPアドレスはOracleインスタンスのIPアドレスです。 |
| oracle_sid | リモートOracleデータベースのsidです。リモートデータベースのタイプがOracleデータベースの場合にのみoracle_sidを指定する必要があります。 |
| cluster_name | リモートOceanBaseクラスタ名です。IPアドレスとポート番号がProxyであり、かつProxyがConfigUrlによってデプロイされている場合にのみ、クラスタ名を指定する必要があります。クラスタ名はダブルクォーテーションマークで囲む必要があります。 |
| local_cluster_name | ローカルOceanBaseクラスタ名です。IPアドレスとポート番号がProxyであり、かつProxyがConfigUrlによってデプロイされている場合にのみ、クラスタ名を指定する必要があります。クラスタ名はダブルクォーテーションマークで囲む必要があります。 |
| local_user | ローカルデータベースのユーザー名です。 |
| local_tenant | ローカルデータベースのテナント名です。 |
| local_password | ローカルデータベースのユーザー名のログインパスワードです。パスワードに数字やアルファベット以外の特殊文字(~!@#%^&*_-+=|(){}[]:;,.?/ )が含まれる場合は、構文エラーを回避するためにパスワードをダブルクォーテーションマークで囲む必要があります。 |
| local_ip | ローカルデータベースクラスタ内の特定のOBServerのIPアドレスです。 |
| local_port | ローカルデータベースクラスタ内の特定のOBServerのポート番号です。 |
例
例1:リモートのOceanBaseデータベースに接続するdblinkを作成します。名前はob_dblink_proxyです。リモートデータベースのテナントはデフォルトのoracleを使用します。ProxyはConfigUrlによってデプロイされます。クラスタ名はダブルクォーテーションマークで囲む必要があり、クラスタ名の文字が大文字になるのを防ぐためです。
obclient> CREATE DATABASE LINK ob_dblink_proxy CONNECT TO ob_testuser@oracle IDENTIFIED BY **1** OB HOST '10.XXX.XXX.XXX:30084' CLUSTER “ob***”;
Query OK, 1 row affected
例2:リモートのOceanBaseデータベースに接続し、リバースリンクを備えたdblinkを作成します。名前はob_dblink_reverse_linkです。リモートデータベースのテナントはoracleです。
obclient> CREATE DATABASE LINK ob_dblink_reverse_link CONNECT TO ob_testuser2@oracle IDENTIFIED BY **1** OB HOST '10.XXX.XXX.XXX:35305' MY_NAME local_ob_testuser@oracle identified by **2** host '10.XXX.XXX.XXX:35307';
Query OK, 1 row affected
例3:リモートのOracleデータベースに接続するdblinkを作成します。名前はorcl_dblinkです。リモートデータベースのテナントはoracleです。
obclient> CREATE DATABASE LINK orcl_dblink CONNECT TO orcl_testuser@oracle IDENTIFIED BY **1** OCI HOST '10.XXX.XXX.XXX:1521/ORCL';
Query OK, 1 row affected