本記事では、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 ファイルでこの構成パラメータを照会できます。 |
グローバルレベルの変数のみが永続化され、セッションレベルの変数は永続化されません。 |
| ライフサイクル | 長く、プロセスの起動から終了まで続きます。 | 短く、テナントのスキーマ作成が成功した後にのみ有効になります。 |
関連ドキュメント
構成パラメータの詳細については、構成パラメータの概要を参照してください。
パラメータの表示と設定操作については、パラメータの設定セクションを参照してください。
システム変数の詳細なパラメータについては、システム変数の概要を参照してください。
システム変数の表示と設定操作については、変数の設定セクションを参照してください。