本記事では、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';
構成パラメータとシステム変数の区別
比較項目 |
構成パラメータ |
システム変数 |
|---|---|---|
| 適用範囲 | クラスタ、ゾーン、マシン、テナントに分類されます。 | テナント内のグローバルまたはセッションレベルに分類されます。 |
| 適用方法 |
|
|
| 変更方法 |
|
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が作成された後に有効になります。 |
関連ドキュメント
構成パラメータの詳細については、構成パラメータの概要を参照してください。
構成パラメータの確認と設定については、パラメータの設定を参照してください。
システム変数の詳細なパラメータについては、システム変数の概要を参照してください。
システム変数の確認と設定については、変数の設定を参照してください。