本記事では、OceanBaseデータベースの構成パラメータとシステム変数の変更、クエリなどに関する情報を紹介し、構成パラメータとシステム変数の使用上の違いを示します。
構成パラメータ
構成パラメータの設定により、クラスタのロードバランシング、マージ時間、マージ方式、リソース割り当て、モジュールのオン/オフなどの機能を制御できます。
構成パラメータの分類
OceanBaseデータベースの構成パラメータは、クラスタレベル構成パラメータとテナントレベル構成パラメータに分類されます。
クラスタレベル構成パラメータ:OceanBaseデータベースクラスタ全体に適用されるグローバルな設定オプションです。クラスタ全体の基本情報、パフォーマンスパラメータ、セキュリティオプションなどを構成するために使用されます。これらの構成パラメータには通常、データバックアップとリストア、ロードバランシングなどの設定オプションが含まれます。クラスタレベル構成パラメータは通常、クラスタ起動時に設定され、設定後は簡単には変更されません。
テナントレベル構成パラメータ:テナントレベルに適用される設定オプションであり、単一のテナントまたは複数のテナントに対して特定の構成と最適化を行うために使用されます。これらの構成パラメータには通常、ストレージエンジンパラメータ、SQL実行戦略、アクセス制御などの設定オプションが含まれます。テナントレベル構成パラメータは通常、テナントの作成時や管理時に設定可能であり、必要に応じて随時変更できます。
説明
構成パラメータは一般的に動的に反映されるものと再起動後に反映されるものの2種類があります。ほとんどの構成パラメータは動的に反映されるものであり、OBServerノードを再起動しなくても有効になります。
パラメータの確認
特定のパラメータがクラスタレベルかテナントレベルかを確認する方法は以下のとおりです:
obclient> SHOW PARAMETERS LIKE 'max_syslog_file_count';
戻り値は次のとおりです:
+-------+----------+----------------+----------+-----------------------+-----------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+
| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level | default_value | isdefault |
+-------+----------+----------------+----------+-----------------------+-----------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+
| zone1 | observer | 172.xx.xxx.xxx | 2882 | max_syslog_file_count | INT | 0 | specifies the maximum number of the log files that can co-exist before the log file recycling kicks in. Each log file can occupy at most 256MB disk space. When this value is set to 0, no log file will be removed. Range: [0, +∞) in integer | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | 0 | 1 |
+-------+----------+----------------+----------+-----------------------+-----------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+
1 row in set
ここで、scope列の値がCLUSTERの場合、そのパラメータはクラスタレベルです。scope列の値がTENANTの場合、そのパラメータはテナントレベルです。
システム変数
システム変数の設定により、キャッシュサイズ、同時接続数、CPU 使用率、メモリ使用率など、データベースシステムのさまざまな動作を制御できます。また、システム変数はデータベースシステムの各種機能の設定にも利用できます。
システム変数の分類
OceanBaseデータベースのシステム変数は、グローバル変数とセッション変数に分類されます。
グローバル変数:グローバルレベルでの変更を表します。データベースの同一テナント内の異なるユーザー間でグローバル変数は共有されます。グローバル変数の変更は、セッションの終了によって無効になることはありません。ただし、グローバル変数を変更しても、その変更は現在開いているセッションには反映されません。変更を有効にするには、新しいセッションを確立する必要があります。
セッション変数:セッションレベルでの変更を表します。クライアントがデータベースに接続すると、データベースはグローバル変数をコピーして自動的にセッション変数を生成します。セッション変数の変更は、現在のセッション内でのみ有効です。
システム変数の確認
特定のシステム変数を確認する方法は以下のとおりです:
現在のシステム変数の値を照会するステートメントは以下のとおりです:
obclient [oceanbase]> SHOW VARIABLES LIKE 'ob_query_timeout';
obclient [oceanbase]> SHOW GLOBAL VARIABLES LIKE 'ob_query_timeout';
グローバルレベルの変数の変更履歴および変数のデフォルト値を照会する必要がある場合は、以下のステートメントを使用して照会できます:
obclient [oceanbase]> SELECT * FROM oceanbase.DBA_OB_SYS_VARIABLES WHERE NAME='ob_query_timeout';
現在のシステム変数の値を照会するステートメントは以下のとおりです:
obclient [SYS]> SELECT * FROM SYS.TENANT_VIRTUAL_SESSION_VARIABLE WHERE VARIABLE_NAME = 'ob_query_timeout';
obclient [SYS]> SELECT * FROM SYS.TENANT_VIRTUAL_GLOBAL_VARIABLE WHERE VARIABLE_NAME = 'ob_query_timeout';
グローバルレベルの変数の変更履歴および変数のデフォルト値を照会する必要がある場合、以下のステートメントを使用して照会できます:
obclient [SYS]> SELECT * FROM SYS.DBA_OB_SYS_VARIABLES WHERE NAME='ob_query_timeout';
構成パラメータとシステム変数の区別
比較項目 |
構成パラメータ |
システム変数 |
|---|---|---|
| 適用範囲 | クラスタ、Zone、マシン、およびテナントに分類されます。 | テナント内のグローバルまたはセッション変数レベルに分類されます。 |
| 適用方法 |
|
|
| 変更方法 |
|
SQLステートメントを使用してのみ変更できます。例:
|
| クエリ方法 | SHOW PARAMETERSステートメントを使用してクエリできます。例:SHOW PARAMETERS LIKE 'schema_history_expire_time'; |
SHOW [GLOBAL] VARIABLESステートメントを使用してクエリできます。例:
|
| 永続化 | 内部テーブルと設定ファイルに永続化され、/home/admin/oceanbase/etc/observer.config.binおよび/home/admin/oceanbase/etc/observer.config.bin.historyファイルでこの構成パラメータをクエリできます。 |
グローバル変数レベルの変数のみが永続化され、セッション変数レベルの変数は永続化されません。 |
| ライフサイクル | 長く、プロセスの起動から終了まで持続します。 | 短く、テナントのSchemaが作成された後に有効になります。 |
関連ドキュメント
構成パラメータの詳細については、構成パラメータの概要を参照してください。
構成パラメータの確認と設定操作については、パラメータの設定の章を参照してください。
システム変数の詳細なパラメータ紹介については、システム変数の概要を参照してください。
システム変数の確認と設定操作については、変数の設定の章を参照してください。