本記事では、OBClientを使用してOceanBaseデータベースのOracleテナントに接続するための前提条件、接続操作、および例について説明します。
前提条件
OBClientアプリケーションをダウンロードし、インストール済みであることを確認してください。OBClientアプリケーションをダウンロードしていない場合は、以下のリンクからダウンロードしてご利用いただけます。
テナントに接続する前に、現在のクライアントがテナントのホワイトリストに含まれていることを確認してください。テナントのホワイトリストの確認および設定の具体的な操作については、テナントのホワイトリストの確認と設定を参照してください。
接続操作
ODPを介した接続方法
OBClientクライアントコマンドを使用して、OceanBaseデータベースプロキシ(OceanBase Database Proxy、ODP)を介してOceanBaseデータベースに接続する形式は以下のとおりです:
obclient -h$host -P$port -u$user_name -p****** [-c] [-A] [$schema_name] [--proxy_user[=]user_name]
パラメータ説明:
-h:OceanBaseデータベースの接続IPを指定します。$hostは実際のIPに置き換えてください。ODPを介した接続方式では、ODPのアドレスを使用します。-P:OceanBaseデータベースの接続ポートを指定します。$portは実際のポート番号に置き換えてください。ODPを介した接続方式のデフォルトポートは2883ですが、ODPのデプロイ時にカスタマイズ可能です。-u:OceanBaseデータベースの接続アカウントを指定します。$user_nameの形式は以下のとおりです:ユーザー名@テナント名#クラスタ名、クラスタ名:テナント名:ユーザー名、クラスタ名-テナント名-ユーザー名、またはクラスタ名.テナント名.ユーザー名。Oracleテナントの管理者ユーザー名はデフォルトでSYSです。説明
- ODPを使用してOceanBaseクラスタに接続する場合、クラスタ名は以下の方法で取得できます:
まず、直接接続方式でOceanBaseデータベースに接続します。次に、SHOW PARAMETERS LIKE 'cluster';コマンドを実行してクラスタ名を取得します。このコマンドの結果で、VALUEの値がOceanBaseクラスタの名前に対応します。 - ODPが複数のクラスタをプロキシしている場合は、接続時にクラスタ名を指定する必要があります。ODPが単一のクラスタのみをプロキシしている場合は、接続時にクラスタ名を指定する必要はありません。
- ODPを使用してOceanBaseクラスタに接続する場合、クラスタ名は以下の方法で取得できます:
-p: OceanBaseデータベースへの接続パスワードを指定します。******は実際のパスワード文字列に置き換えてください。説明
セキュリティ上の理由から、特にスクリプトや履歴が参照可能な環境では、コマンドラインに直接パスワードを入力することは推奨されません。このオプションを省略し、プロンプトが表示されたときにパスワードを入力することをお勧めします。
-c:オプションです。OBClientの実行環境でコメントを無視しないことを意味します。説明
Hintは特殊なコメントであり、
-cの影響を受けません。-A: オプションです。OBClientがデータベースに接続する際に統計情報を自動取得しないことを意味します。$schema_name:オプションです。OceanBaseデータベースに接続後に使用するデフォルトのSchemaを指定します。指定しない場合、現在ログインしているユーザーのSchemaにデフォルトで入ります。--proxy_user:オプションです。このパラメータは、プロキシされるユーザー名、つまりターゲットユーザー名を指定します。プロキシユーザーの使用例に関する詳細は、プロキシユーザーの使用を参照してください。
例:
obclient -h10.10.10.1 -P2883 -uuser001@obtenant#obdemo -p****** -c -A test_user001
ODPを使用してSERVICE_NAMEで接続する方法
OceanBaseデータベースは、ODPのIP:PORTとSERVICE_NAMEを指定してログインすることをサポートしています。指定されたSERVICE_NAMEに基づき、ODPは接続文字列を-uuser_name@プライマリテナント名#プライマリテナントが存在するクラスタに変換します。ユーザーはプライマリ/スタンバイ切り替え後に接続文字列を手動で変更する必要はありません。SERVICE_NAMEの作成に関する情報については、サービスの作成を参照してください。
注意
この機能はOceanBaseクラウドプラットフォーム(OceanBase Cloud Platform, OCP)に依存しています。OCPはV4.3.1以降のバージョンである必要があり、OceanBaseクラスタがOCPによって管理されている場合にのみ正常に使用できます。
ODPを使用してSERVICE_NAMEでOceanBaseデータベースに接続する形式は次のとおりです:
obclient -h$host -P$port -u$user_name@SERVICE:$service_name -p******
パラメータ説明:
$host:ODPのIPアドレス。$port:ODPのポート番号。$user_name:ユーザー名。$service_name: サービス名。-p: OceanBaseデータベースへの接続パスワードを指定します。******は実際のパスワード文字列に置き換えてください。
例:
obclient -h10.10.10.1 -P2883 -uuser001@SERVICE:service_oracle001 -p******
直接接続方式
OBClientクライアントコマンドを使用して、直接接続方式でOceanBaseデータベースに接続する形式は以下のとおりです:
obclient -h$host -P$port -u$user_name -p****** [-c] [-A] [$schema_name] [--proxy_user[=]user_name]
パラメータ説明:
-h:OceanBaseデータベースの接続IPを指定します。$hostは実際のIPアドレスに置き換えてください。直接接続方式では通常、OBServerノードのIPアドレスを使用します。注意
一般テナントが直接接続方式で接続する場合、そのテナントのリソースがそのOBServerノード上に分散配置されていることを確認する必要があります。テナントのリソースがそのOBServerノード上に配置されていない場合、そのOBServerノードへの直接接続によってそのテナントに接続することはできません。
-P:OceanBaseデータベースの接続ポートを指定します。$portは実際のポート番号に置き換えてください。直接接続方式のデフォルトポートは2881ですが、OceanBaseデータベースのデプロイ時にカスタマイズ可能です。-u:OceanBaseデータベースの接続アカウントを指定します。$user_nameの形式はユーザー名@テナント名です。Oracleテナントの管理者ユーザー名はデフォルトでsysです。注意
直接接続方式でOceanBaseデータベースに接続する場合、接続パラメータ
-uの後には正しいユーザー名@テナント名を記入し、クラスタ名は指定しないでください。-uにクラスタ名が含まれていると、接続エラーが発生します。-p: OceanBaseデータベースへの接続パスワードを指定します。******は実際のパスワード文字列に置き換えてください。説明
セキュリティ上の理由から、特にスクリプトや履歴が参照可能な環境では、コマンドラインに直接パスワードを入力することは推奨されません。このオプションを省略し、プロンプトが表示されたときにパスワードを入力することをお勧めします。
-c:オプションです。OBClientの実行環境でコメントを無視しないことを意味します。説明
Hintは特殊なコメントであり、
-cの影響を受けません。-A: オプションです。OBClientがデータベースに接続する際に統計情報を自動取得しないことを意味します。$schema_name:オプションです。OceanBaseデータベースに接続した後に使用するデフォルトのSchemaを指定します。指定しない場合、現在ログインしているユーザーのSchemaにデフォルトで入ります。--proxy_user:オプションです。このパラメータはプロキシされるユーザー名、つまりターゲットユーザー名を指定します。プロキシユーザーの使用方法の詳細については、プロキシユーザーの使用を参照してください。
例:
obclient -h10.10.10.1 -P2881 -uuser001@obtenant -p****** -c -A test_user001
例
コマンドラインターミナルを開きます。
OBClientクライアントを使用して、ODP経由でOceanBaseデータベースのOracleテナントに接続します。
obclient -hxxx.xx.xxx.xxx -P2883 -usys@oracle001#test432 -p****** -A test_user001OBClientコマンドラインを終了する場合は、
exitと入力してEnterキーを押すか、ショートカットキーCtrl+Dを押します。
関連ドキュメント
OBClientを使用してOceanBaseデータベースのMySQLテナントに接続する操作例については、OBClientを使用してOceanBaseテナントに接続するを参照してください。