本記事は、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データベースに接続した後に使用するデフォルトのスキーマを指定します。指定しない場合、デフォルトで現在ログインしているユーザーのスキーマを使用します。--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の作成に関する詳細については、サービスの作成を参照してください。
注意
この機能のご利用には、V4.3.1以降のOceanBase Cloud Platform (OCP)が必要です。また、機能が正常に動作するためには、OCPによって対象のOceanBaseクラスタが管理されている必要があります。
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ノードへ直接接続しようとしても、そのテナントに接続することはできません。
-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データベースに接続した後に使用するデフォルトのスキーマを指定します。指定しない場合、デフォルトで現在ログインしているユーザーのスキーマを使用します。--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_user001実行結果は次のとおりです:
Welcome to the OceanBase. Commands end with ; or \g. Your OceanBase connection id is 21 Server version: OceanBase 4.3.2.0 (r200000272024061717-93c0ed73ebbcac6edbf7b585860b75d825935358) (Built Jun 17 2024 18:06:04) Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. obclient [TEST_USER001]>OBClientコマンドラインを終了する場合は、
exitと入力してEnterキーを押すか、Ctrl+D のショートカットキーを押します。
関連ドキュメント
OBClientを使用してOceanBaseデータベースのMySQLテナントに接続する操作例については、OBClientを使用したOceanBaseテナントへの接続を参照してください。