説明
このステートメントは、指定されたリモートデータベースへのアクセス用 dblink を作成するために使用します。このステートメントでは dblink の名前を指定し、リモートデータベースのユーザー名、テナント名、パスワード、IP アドレス、ポート番号、およびアクセスタイプを提供する必要があります。リバース LINK の場合は、ローカルデータベースのユーザー名、テナント名、パスワード、IP アドレス、ポート番号を提供する必要があり、アクセスタイプを指定しない場合は、デフォルトでリモートの OceanBase データベースにアクセスする dblink が作成されます。
リモートデータベースが OceanBase データベースの場合、IP アドレスとポート番号は、リモートの OceanBase クラスタ内の特定の OBServer ノードの IP アドレスとポート番号、または OceanBase クラスタのプロキシの IP アドレスとポート番号を指定できます。dblink の作成時に指定するポート番号がクラスタのプロキシのポート番号であり、かつプロキシが ConfigUrl によってデプロイされている場合は、クラスタ名を指定する必要があります。リバース LINK 機能を使用する場合は、ローカルの 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データベースに接続し、リバースLINKを持つ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