説明
この構成パラメータは、V4.3.5 BP1バージョンから導入されました。
機能の概要
plugins_loadは、Observer起動時にロードするプラグインを設定します。この構成パラメータでは、複数の動的リンクライブラリプラグインとそのロードポリシーを指定できます。プラグインはObserverプロセスの初期化時にのみロードされ、動的なロードはサポートされません。
適用対象
この構成パラメータは、OceanBaseデータベースのMySQLモードでのみ適用されます。
権限要件
パラメータの確認
sysテナントとすべてのユーザーテナントはSHOW PARAMETERSステートメント、またはGV$OB_PARAMETERSビューを使用してこのパラメータを確認できます。パラメータの変更
この構成パラメータは
sysテナントのみが変更でき、ユーザーテナントでは変更できません。
プロパティの説明
プロパティ |
説明 |
|---|---|
| パラメータタイプ | String |
| デフォルト値 | ""(空文字列) |
| 値の範囲 | libname1.so:option1,libname2.so:option2,... の形式で指定します。ここで:
|
| 変更は可能か | はい。ALTER SYSTEM SETステートメントを使用して変更できます。 |
| OBServerノードの再起動が必要か | はい。変更後はOBServerノードを再起動する必要があります。 |
使用方法
OceanBaseが提供するプラグイン機能により、システム機能を容易に拡張できます。クラスタのデプロイ時や運用中に、次回起動時にロードするプラグインを調整できます。
プラグインのロードプロセス
- 動的リンクライブラリファイル(例:
libsoname.so)を各Observerプロセスのplugin_dirディレクトリに配置します。 - 起動パラメータまたは構成パラメータで、読み込むプラグインを指定します。
- クラスタ全体を再起動するか、各OBServerノードを順次再起動します。
設定形式の説明
設定値は特定の形式を採用しており、複数のプラグインとその読み込みポリシーを同時に指定できます:
libsoname1.so:on,libsoname2.so:off
各フィールドの意味:
- libsoname1.so:on:
libsoname1.soプラグインを読み込みます。読み込み失敗はプロセスの起動に影響しません。 - libsoname2.so:off:
libsoname2.soプラグインを読み込みません。
設定方法
方法1:コマンドラインパラメータを使用する場合(クラスタ初回デプロイ時)
observerプロセス起動時に -L パラメータを指定します:
observer -Llibsoname1.so:on,libsoname2.so:off
方法2:システム構成パラメータを使用する場合(稼働中の調整)
クラスタが稼働している間に構成パラメータを変更し、次回起動時に読み込むプラグインを指定します:
obclient> ALTER SYSTEM SET plugins_load='libsoname1.so:on,libsoname2.so:off';
設定変更後は、OBServerノードを再起動しなければ変更は反映されません。
プラグインタイプの説明
- 動的ライブラリプラグイン:
dlopenによってプロセスに読み込まれる独立した動的リンクライブラリ(.soファイル) - 静的プラグイン:observer実行可能ファイルと共にコンパイルされたプラグイン
現在、OceanBaseは主に全文インデックスの分かち書きプラグインインターフェースを提供しており、ユーザーはこのインターフェースを基にカスタムプラグインを開発したり、サードパーティの分かち書きライブラリに対応させたりできます。
注意事項
- プラグインは動的にロードできません。設定変更後はプロセスを再起動しなければ変更は反映されません。
- 動的ライブラリ単位でのロードのみをサポートしており、単一の動的ライブラリ内の一部のプラグインをロードすることはサポートしていません。
- 一つの動的ライブラリ内のプラグインは通常、一連の協働作業として機能するため、分割してロードすることは推奨されません。
- プラグインファイルは
plugin_dirディレクトリに配置する必要があります。そうでない場合はロードできません。
設定例
Observerが次回起動時に libob_tokenizer.so プラグインを読み込むように設定します。読み込み失敗はプロセスの起動に影響しません:
obclient> ALTER SYSTEM SET plugins_load='libob_tokenizer.so:on';