OceanBaseデータベースは、V4.1バージョンからアービトレーションサービス(Arbitration Service)をサポートしています。これにより、2リージョン3センター構成での同一都市内のレプリカ障害時のRT増大の問題を解決するだけでなく、都市を跨いだ帯域幅の使用量を削減し、第3データセンターのコストを極限まで低減できます。
この記事では、コマンドラインを使用して、2台のマシンから構成されるOceanBaseクラスタと1つのアービトレーションサービスをデプロイする方法について説明します。
説明
- 1つのOceanBaseクラスタで使用できるアービトレーションサービスは1つのみです。
- アービトレーションサービスは現在、スタンドアロンデプロイのみをサポートしています。
前提条件
OceanBaseデータベースをインストールする前に、以下の情報を確認する必要があります:
- OBServerサーバーの設定が完了していること。詳細については、サーバー設定、(オプション)クロックソースの設定および oatcliを使用したOBServerサーバーの初期化を参照してください。
- OBServerサーバーで
adminユーザーが作成されていること。 - OceanBaseデータベースのRPMパッケージを取得していること。詳細については、インストールパッケージの準備を参照してください。
操作手順
ステップ1:OceanBaseクラスタのデプロイ
2台のOBServerサーバーにそれぞれRPMパッケージをインストールします。
OceanBaseデータベースのRPMパッケージをインストールします。
OceanBaseデータベースのRPMパッケージが保存されているディレクトリに移動します:
[root@xxx /]# cd $rpm_dirOceanBaseデータベースのRPMパッケージをインストールします:
[root@xxx $rpm_dir]# rpm -ivh $rpm_name [--prefix=/home/admin/oceanbase]ここで
$rpm_dirはRPMパッケージを格納しているディレクトリを表し、$rpm_nameはRPMパッケージの名前を表します。説明
OceanBaseデータベースソフトウェアは、デフォルトでディレクトリ
/home/admin/oceanbaseにインストールされます。例:
[root@xxx /home/admin/rpm]# rpm -ivh oceanbase-4.2.0.0-100000052023073123.el7.x86_64.rpm Preparing... ################################# [100%] Updating / installing... 1:oceanbase-4.2.0.0-100000052023073################################# [100%](オプション) OceanBaseクライアントをインストールします。
OceanBaseクライアントOBClientは、OceanBaseデータベース専用のコマンドラインクライアントツールです。OBClientを使用すると、OceanBaseデータベースのMySQLテナントとOracleテナントに接続できます。OceanBaseデータベースのMySQLテナントのみに接続する場合は、MySQLクライアント(mysql)を使用してOceanBaseデータベースに接続することもできます。
注意
obclientV2.2.1以前のバージョンはlibobclientに依存しているため、先にlibobclientをインストールする必要があります。OBClientのRPMパッケージとlibobclientのRPMパッケージを入手するには、テクニカルサポートにお問い合わせください。例:
[root@xxx /home/admin/rpm]# rpm -ivh obclient-2.2.1-20221122151945.el7.alios7.x86_64.rpm Preparing... ################################# [100%] Updating / installing... 1:obclient-2.2.1-20221122151945.el7################################# [100%]インストールが成功したかどうかを確認します:
[root@xxx /home/admin/rpm]# which obclient /usr/bin/obclient
observerプロセスのディレクトリを設定します。
(オプション)ディレクトリをクリーンアップします。
新しいマシンにOceanBaseデータベースを初めてデプロイする場合は、ディレクトリのクリーンアップは不要です。
以下の場合は、古いOceanBaseディレクトリをクリーンアップします:
- 以前のOceanBase環境をクリーンアップする場合。
- OceanBaseのインストールとデプロイ中に問題が発生し、環境が乱れたり、次回のインストールに影響するファイルが生成されたりした場合。
[root@xxx /home/admin]# kill -9 `pidof observer` [root@xxx /home/admin]# rm -rf /data/1/$cluster_name [root@xxx /home/admin]# rm -rf /data/log1/$cluster_name [root@xxx /home/admin]# rm -rf /home/admin/oceanbase/store/$cluster_name [root@xxx /home/admin]# rm -rf /home/admin/oceanbase/log/* /home/admin/oceanbase/etc/*config*ここで、
$cluster_nameはクラスタ名です。例:
[root@xxx /home/admin]# kill -9 `pidof observer` [root@xxx /home/admin]# rm -rf /data/1/obdemo [root@xxx /home/admin]# rm -rf /data/log1/obdemo [root@xxx /home/admin]# rm -rf /home/admin/oceanbase/store/obdemo [root@xxx /home/admin]# rm -rf /home/admin/oceanbase/log/* /home/admin/oceanbase/etc/*config*OceanBaseディレクトリを初期化します。
OceanBaseのデータディレクトリは、通常、独立したディスク上に配置し、シンボリックリンクによってソフトウェアのホームディレクトリにリンクすることを推奨します。
説明
OceanBaseデータベースは、V4.3.0バージョンから、
slogをデータ(data)ディスクから独立させることをサポートしています。つまり、slogとデータファイルを同じディスク上に存在する必要はありません。使用するディスクを設定して、slogとclogで同じSSDソリッドステートドライブを共有できます。OceanBaseデータベースのインストールディレクトリに関する詳細は、OBServerノードのインストールディレクトリ構造を参照してください。以下のコマンドを使用して
adminユーザーに切り替えます:[root@xxx /home/admin]# su - adminadminユーザーで以下のコマンドを実行して、関連ディレクトリを作成します:mkdir -p /data/1/$cluster_name/{etc3,sstable,slog}mkdir -p /data/log1/$cluster_name/{clog,etc2}mkdir -p /home/admin/oceanbase/store/$cluster_nameadminユーザーで以下のコマンドを実行して、シンボリックリンクを作成します:for t in {etc3,sstable,slog};do ln -s /data/1/$cluster_name/$t /home/admin/oceanbase/store/$cluster_name/$t; donefor t in {clog,etc2};do ln -s /data/log1/$cluster_name/$t /home/admin/oceanbase/store/$cluster_name/$t; doneここで、
$cluster_nameはクラスタ名です。例:
[root@xxx /home/admin]# su - admin -bash-4.2$ mkdir -p /data/1/obdemo/{etc3,sstable,slog} -bash-4.2$ mkdir -p /data/log1/obdemo/{clog,etc2} -bash-4.2$ mkdir -p /home/admin/oceanbase/store/obdemo -bash-4.2$ for t in {etc3,sstable,slog};do ln -s /data/1/obdemo/$t /home/admin/oceanbase/store/obdemo/$t; done -bash-4.2$ for t in {clog,etc2};do ln -s /data/log1/obdemo/$t /home/admin/oceanbase/store/obdemo/$t; done説明
obdemoはクラスタ名で作成されるディレクトリで、カスタマイズ可能です。プロセスの起動時に使用されます。結果のチェック:
-bash-4.2$ cd /home/admin/oceanbase -bash-4.2$ tree store/ store/ `-- obdemo |-- clog -> /data/log1/obdemo/clog |-- etc2 -> /data/log1/obdemo/etc2 |-- etc3 -> /data/1/obdemo/etc3 |-- slog -> /data/1/obdemo/slog `-- sstable -> /data/1/obdemo/sstable 6 directories, 0 files
OceanBaseクラスタを初期化します。
説明
- 例に示すIPアドレスは匿名化処理されていますが、インストールの要件ではありません。デプロイ時には、ご自身のマシンの実際のIPアドレスを入力してください。
- OceanBaseデータベースは、指定されたIPv4またはIPv6アドレスのサーバー上でobserverプロセスを起動できます。この記事の例では、IPv4アドレス上でobserverプロセスを起動する方法を示しています。IPv6アドレス上でobserverプロセスを起動する方法については、コマンドラインを使用した1レプリカOceanBaseクラスタのデプロイを参照してください。
observerプロセスを起動します。
各ノードの
adminユーザーで、observerプロセスを起動します。注意
2レプリカでは、各ノードの起動パラメータは完全に同一ではありません。observerの起動時には、Root Serviceが配置されている2台(または複数台)のマシンのみを指定し、クラスタ作成時にすべてのマシンを指定する必要はありません。クラスタの作成後、新しいマシンを追加できます。
cd /home/admin/oceanbase && /home/admin/oceanbase/bin/observer {-I $ip | -i $devname} -P $rpc_port -p $sql_port -z $zone_name -d /home/admin/oceanbase/store/$cluster_name -r '$ip:2882:2881' -c $cluster_id -n $cluster_name -o "system_memory=30G,datafile_size=500G,config_additional_dir=/data/1/$cluster_name/etc3;/data/log1/$cluster_name/etc2"パラメータの説明:
パラメータ 説明 -I|-i-I:起動するノードのIPアドレスを指定します。マルチマシンデプロイシナリオでは、127.0.0.1をターゲットIPアドレスとして指定することはできません。IPアドレス(例:-I 10.10.10.1)を指定してノードを起動することを推奨します。-i:NIC名を指定します。ifconfigコマンドで確認できます。
説明
IPアドレスとNIC名を同時に指定して(例:
-I 10.10.10.1 -i eth0)ノードを起動することもできますが、非推奨です。-pサービスポート番号を指定します。通常は 2881を指定します。-PRPCポート番号を指定します。通常は 2882を指定します。-nクラスタ名を指定します。カスタマイズ可能です。クラスタ名が重複しなければ問題ありません。 -z起動するobserverプロセスが所属するZoneを指定します。 -dクラスタのメインディレクトリを指定します。初期化時に作成したディレクトリです。クラスタ名 $cluster_name以外は変更しないでください。-cクラスタIDを指定します。一組の数字で、カスタマイズ可能です。異なるクラスタ間で重複しなければ問題ありません。 -lログレベルを指定します。 -rRSリストを指定します。形式は $ip:2882:2881で、セミコロン(;)で区切ります。Root Service情報を表します。-oクラスタ起動パラメータ(構成パラメータ)リストを指定します。オプションです。複数の構成パラメータに値を指定できます。複数の構成パラメータの値はカンマ(,)で区切ります。必要に応じて、適切な起動パラメータを選択し、各パラメータに適切な値を指定して、クラスタのパフォーマンスとリソース利用率を最適化してください。以下はクラスタ起動時によく使用される構成パラメータです: - cpu_count:システムのCPU数の合計を設定します。
- system_memory:システムがテナントID
500のテナント用に予約するメモリ容量、つまりOceanBaseデータベース内部の予約メモリを指定します。マシンのメモリが少ない場合は、この値を小さくすることを検討できます。ただし、パフォーマンステスト時にメモリ不足が発生する可能性があることに注意してください。 - memory_limit:利用可能なメモリサイズの合計を設定します。
- datafile_size:データファイルが使用するディスクの使用可能容量のサイズを設定します。つまり、OceanBaseデータベースのデータファイル
sstableのサイズを指定します(最初に初期化される)。/data/1/の空き容量に基づいて、100 G以上を推奨します。 - datafile_disk_percentage:ディスクデータファイルがディスクの総容量に占める割合です。
- datafile_next:ディスクデータファイルの自動拡張のステップサイズを設定します。
- datafile_maxsize:ディスクデータファイルの自動拡張の最大容量を設定します。
- config_additional_dir:ローカルに設定ファイルを保存する複数のディレクトリを設定し、冗長性のために複数の設定ファイルを保存します。
- log_disk_size:Redoログディスクのサイズを設定します。
- log_disk_percentage:Redoログがその配置されているディスクの総容量に占める割合を設定します。
- syslog_level:システムログレベルを設定します。
- syslog_io_bandwidth_limit:システムログが使用可能なディスクI/O帯域幅の上限を設定します。帯域幅の上限を超えるシステムログは破棄されます。
- max_syslog_file_count:ログファイルを再利用する前に保持できるログファイルの数を設定します。
- enable_syslog_recycle:OBServerノード起動前の古いログを記録するかどうかのスイッチを設定します。
max_syslog_file_countと組み合わせて使用して、再利用ロジックが古いログファイルを考慮するかどうかを決定します。
datafile_size、datafile_disk_percentage、datafile_next、datafile_maxsizeを組み合わせて使用することで、ディスクデータファイルの自動拡張を実現できます。詳細については、ディスクデータファイルの動的拡張の設定を参照してください。クラスタ設定に関する詳細は、構成パラメータの概要 - クラスタレベルの構成パラメータを参照してください。例:
OBServerサーバーでobserverプロセスを起動します。例として
10.10.10.1と10.10.10.2を使用します。zone1:
[root@xxx admin]# su - admin -bash-4.2$ cd /home/admin/oceanbase && /home/admin/oceanbase/bin/observer -I 10.10.10.1 -P 2882 -p 2881 -z zone1 -d /home/admin/oceanbase/store/obdemo -r '10.10.10.1:2882:2881;10.10.10.2:2882:2881' -c 10001 -n obdemo -o "system_memory=30G,datafile_size=500G,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"zone2:
[root@xxx admin]# su - admin -bash-4.2$ cd /home/admin/oceanbase && /home/admin/oceanbase/bin/observer -I 10.10.10.2 -P 2882 -p 2881 -z zone2 -d /home/admin/oceanbase/store/obdemo -r '10.10.10.2:2882:2881;10.10.10.2:2882:2881' -c 10001 -n obdemo -o "system_memory=30G,datafile_size=500G,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2"以下のコマンドを使用して、observerプロセスが正常に起動したかどうかを確認することができます:
netstat -ntlpコマンドで、2881と2882ポートがリッスンされている場合、プロセスは正常に起動しています。ps -ef|grep observerコマンドでobserverプロセスの情報を確認することができます。
例:
-bash-4.2$ netstat -ntlp (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:2881 0.0.0.0:* LISTEN 11112/observer tcp 0 0 0.0.0.0:2882 0.0.0.0:* LISTEN 11112/observer ... ... ... ... ... ... -bash-4.2$ ps -ef|grep observer admin 11112 0 40 16:18 ? 00:00:17 /home/admin/oceanbase/bin/observer -I 10.10.10.1 -P 2882 -p 2881 -z zone1 -d /home/admin/oceanbase/store/obdemo -r 10.10.10.1:2882:2881;10.10.10.2:2882:2881 -c 10001 -n obdemo -o system_memory=30G,datafile_size=500G,config_additional_dir=/data/1/obdemo/etc3;/data/log1/obdemo/etc2クラスタのbootstrap操作を実行します。
OBClientコマンドを使用して任意のノードに接続します。パスワードは空です。
[root@xxx admin]# obclient -h127.0.0.1 -uroot -P2881 -p****** obclient [(none)]> SET SESSION ob_query_timeout=1000000000; Query OK, 0 rows affected obclient [(none)]> ALTER SYSTEM BOOTSTRAP ZONE 'zone1' SERVER '10.10.10.1:2882',ZONE 'zone2' SERVER '10.10.10.2:2882'; Query OK, 0 rows affected注意
この手順でエラーが発生した場合、その原因として、observerプロセスの起動パラメータの誤り、observer関連ディレクトリのパーミッションの問題、ログディレクトリの空き容量が一定の割合を下回っている(データディレクトリと共通の大容量のディレクトリを使用していて、容量がデータディレクトリに占有されている)、ノード間の時刻同期の問題、ノードのメモリリソースの不足などが考えられます。これらの問題点を先に調査してから、OceanBaseディレクトリをクリーンアップして、最初からデプロイし直してください。
クラスタの初期化成功を検証します。
クラスタのbootstrap初期化操作が完了してから、
SHOW DATABASES;コマンドを実行して検証します。クエリ結果のデータベースリストにoceanbaseデータベースが表示されれば、クラスタの初期化は成功しています。パスワードを変更します。
sysテナントのrootユーザーのパスワードはデフォルトで空です。初期化が成功してから、パスワードを変更してください。ALTER USER root IDENTIFIED BY '******';
ステップ2:アービトレーションサービスのデプロイ
アービトレーションサーバーにOceanBaseのRPMパッケージをインストールします。
OceanBaseデータベースのRPMパッケージが保存されているディレクトリに移動します:
[root@xxx /]# cd $rpm_dirOceanBaseデータベースのRPMパッケージをインストールします:
[root@xxx $rpm_dir]# rpm -ivh $rpm_name [--prefix=/home/admin/oceanbase]ここで
$rpm_dirはRPMパッケージを格納しているディレクトリを表し、$rpm_nameはRPMパッケージの名前を表します。説明
OceanBaseデータベースソフトウェアは、デフォルトでディレクトリ
/home/admin/oceanbaseにインストールされます。例:
[root@xxx /home/admin/rpm]# rpm -ivh oceanbase-4.2.0.0-100000052023073123.el7.x86_64.rpm Preparing... ################################# [100%] Updating / installing... 1:oceanbase-4.2.0.0-100000052023073################################# [100%]アービトレーションサーバープロセスのディレクトリを設定します。
アービトレーションサーバーにアービトレーションサーバープロセスの
clogディレクトリを作成します。説明
- アービトレーションサーバープロセスの起動時に、
-dオプションで指定するstoreディレクトリ内にclogディレクトリが事前に作成されていることを確認する必要があります。 storeディレクトリが配置されているディスクの容量を完全に使い切らないようにする必要があります。そうしないと、アービトレーションサーバーの機能に異常が発生します。
以下のコマンドで
adminユーザーに切り替えます:[root@xxx /home/admin]# su - adminadminユーザーで以下のコマンドを実行して、関連ディレクトリを作成します:mkdir -p /home/admin/oceanbase/store/clog- アービトレーションサーバープロセスの起動時に、
アービトレーションサーバープロセスを起動します。
アービトレーションサーバーの
adminユーザーで、アービトレーションモードでアービトレーションサーバープロセスを起動し、必要な起動パラメータを指定します。起動コマンドは以下のとおりです:cd /home/admin/oceanbase && /home/admin/oceanbase/bin/observer -m arbitration -P $rpc_port -d $obdir/store [{-I $ip | -i $devname}] [-l $log_level] [-o "parameters_list"]パラメータの説明:
パラメータ 説明 -mアービトレーションモードを指定します。値は arbitrationです。-PアービトレーションサーバープロセスのRPCポート番号を指定します。通常は 2882を指定します。-dストレージディレクトリのパスを指定します。通常は /home/admin/oceanbase/storeで、このディレクトリにclogサブディレクトリが作成済みであることを確認する必要があります。-I|-iオプション。 -I:起動するノードのIPアドレスを指定します。-i:NIC名を指定します。ifconfigコマンドで確認できます。
説明
IPアドレスとNIC名を同時に指定して(例:
-I 10.10.10.1 -i eth0)ノードを起動することもできますが、非推奨です。-lログレベルを指定します。オプションです。デフォルト値は WDIAGです。値の範囲:{DEBUG,TRACE,WDIAG,EDIAG,INFO,WARN,ERROR}。ログに関する詳細情報は、ログレベルを参照してください。-o構成パラメータリストを指定します。オプションです。複数の構成パラメータに値を指定できます。値はカンマ(,)で区切ります。以下はアービトレーションサーバープロセスの起動時によく使用される構成パラメータです: - cpu_count
- system_memory
- memory_limit
- __easy_memory_limit
- log_disk_size
- log_disk_percentage
- syslog_level
- syslog_io_bandwidth_limit
- max_syslog_file_count
- enable_syslog_recycle
注意
アービトレーションノードのログディレクトリが自動的にクリーンアップされてディスクがいっぱいになるのを防ぐために、
enable_syslog_recycleをTrueに設定し、max_syslog_file_countに有効な値を設定する必要があります。そうしないと、ログファイルが継続的に増加し、ディスク容量を使い果たす可能性があります。例:
アービトレーションサーバーでアービトレーションサーバープロセスを起動します。例として
10.10.10.3を使用します。-bash-4.2$ cd /home/admin/oceanbase && /home/admin/oceanbase/bin/observer -m arbitration -P 2882 -d /home/admin/oceanbase/store -I 10.10.10.3 -o "enable_syslog_recycle=True,max_syslog_file_count=100"以下のコマンドを使用して、observerプロセスが正常に起動したかどうかを確認することができます:
netstat -ntlpコマンドで、2882ポートがリッスンされている場合、プロセスは正常に起動しています。ps -ef|grep observerコマンドでobserverプロセスの情報を確認することができます。
例:
-bash-4.2$ netstat -ntlp (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:2882 0.0.0.0:* LISTEN 18231/observer ... -bash-4.2$ ps -ef|grep observer admin 18231 0 3 10:33 ? 00:00:00 /home/admin/oceanbase/bin/observer -m arbitration -P 2882 -d /home/admin/oceanbase/store -I 10.10.10.3 ...
ステップ3:クラスタへのアービトレーションサービスの追加
クラスタにアービトレーションサービスを追加するコマンドは次のとおりです:
ALTER SYSTEM ADD ARBITRATION SERVICE "$arb_server_ip:$arb_server_port";
説明
アービトレーションサーバープロセスのアドレスは、sys テナントの内部テーブルに記録され、ビュー DBA_OB_ARBITRATION_SERVICE で確認できます。このコマンドは同期操作です。
例:
obclient [(none)]> ALTER SYSTEM ADD ARBITRATION SERVICE "10.10.10.3:2882";
Query OK, 0 rows affected
obclient [(none)]> SELECT * FROM oceanbase.DBA_OB_ARBITRATION_SERVICE;
+---------------------+---------------------+-------------------------+---------------------+------------------------------+------+
| CREATE_TIME | MODIFY_TIME | ARBITRATION_SERVICE_KEY | ARBITRATION_SERVICE | PREVIOUS_ARBITRATION_SERVICE | TYPE |
+---------------------+---------------------+-------------------------+---------------------+------------------------------+------+
| 2023-03-06 17:29:36 | 2023-03-06 17:29:36 | default | 10.10.10.3:2882 | NULL | ADDR |
+---------------------+---------------------+-------------------------+---------------------+------------------------------+------+
1 row in set
ステップ4:sysテナントでのアービトレーションサービスの有効化
テナントの作成時にアービトレーションサービスを有効化できます。新しいテナントの作成時のアービトレーションサービスの有効化に関する詳細情報は、CREATE TENANTを参照してください。
テナントの作成時にアービトレーションサービスを有効化しなかった場合、テナントの作成後にアービトレーションサービスを有効化することもできます。
既存のテナントでアービトレーションサービスを有効にするには、以下のコマンドを実行します。
ALTER TENANT $tenant_name [SET] enable_arbitration_service = true;
例:
クラスタの sys テナントでアービトレーションサービスを有効化します。
obclient [(none)]> ALTER TENANT sys SET enable_arbitration_service = true;
Query OK, 0 rows affected
ステップ5:テナントのアービトレーションサービスのステータス確認
テナントのアービトレーションサービスが有効になっているかどうかを確認します。
ビュー
DBA_OB_TENANTSでテナントの情報を参照し、arbitration_service_status列で アービトレーションサービスの有効化ステータス を確認します。arbitration_service_statusの値は以下のとおりです:ENABLED:テナントでアービトレーションサービスが有効になっていることを示します。ENABLING:テナントでアービトレーションサービスが有効化の過程にあることを示します。DISABLED:テナントでアービトレーションサービスが無効になっていることを示します。DISABLING:テナントでアービトレーションサービスが無効化の過程にあることを示します。
例:
obclient [(none)]> SELECT TENANT_ID,TENANT_NAME,ARBITRATION_SERVICE_STATUS FROM oceanbase.DBA_OB_TENANTS WHERE tenant_name = 'sys'; +-----------+-------------+----------------------------+ | TENANT_ID | TENANT_NAME | ARBITRATION_SERVICE_STATUS | +-----------+-------------+----------------------------+ | 1 | sys | ENABLED | +-----------+-------------+----------------------------+ 1 row in set現在のアービトレーションサービスが利用可能かどうかを確認します。
テナントでアービトレーションサービスが有効化されると、有効化された時点でそのテナントで既に作成されていたすべてのログストリームはアービトレーションサービスを利用できます。しかし、有効化後に新しく作成されたログストリームにはアービトレーションサービスがない可能性があります。これは、ログストリームの作成が非厳格モードで実行され、アービトレーションサービスが正常に作成されるという保証がないためです。このような状況で、ユーザーは以下のSQL文を使用すると、テナントのすべてのログストリームにアービトレーションサービスがあるかどうかを確認できます。
##テナント内にアービトレーションレプリカが存在しないログストリームのリストをクエリする## (SELECT distinct ls_id FROM GV$OB_LOG_STAT WHERE tenant_id = xxx) except (SELECT ls_id FROM GV$OB_LOG_STAT WHERE tenant_id = xxx and role = 'LEADER' and arbitration_member = "$arb_server_ip:$arb_server_port");例:
sysテナント内にアービトレーションレプリカが存在しないログストリームのリストをクエリします。空のセットが返された場合、現在のテナントのアービトレーションサービスは利用可能な状態です。obclient [oceanbase]> (SELECT distinct ls_id FROM GV$OB_LOG_STAT WHERE tenant_id = 1) except (SELECT ls_id FROM GV$OB_LOG_STAT WHERE tenant_id = 1 and role = 'LEADER' and arbitration_member = "10.10.10.3:2882"); Empty set
次の操作
クラスタの作成後、ビジネスのニーズに応じてユーザーテナントを作成します。
コマンドラインを使用したユーザーテナントの作成の詳細情報については、テナントの作成を参照してください。