Tsurugi(TsurugiDB)のtgctlのメモ。
tgctlは、Tsurugiサーバー(tsurugidb)の管理(起動や停止等)を行うコマンドラインツール。
詳細はTsurugiの書籍の12章『サービス管理基盤(Tateyama)』を参照。
$ tgctl version tsurugidb version: 1.0.0-BETA1 date: 2023-10-05T02:24Z
$ tgctl start --conf ~/tsurugi.ini successfully launched tsurugidb
--confで構成定義ファイル(tsurugidbのパラメーターが記述されているファイル)を指定する。
以降、statusやshutdownを実行するときも同じ--confを指定する必要がある。
--confを指定する代わりに、環境変数TSURUGI_CONFに構成定義ファイルを指定しておくことも出来る。
$ export TSURUGI_CONF=~/tsurugi.ini $ tgctl start
--confもTSURUGI_CONFも指定していない場合は、$TSURUGI_HOME/var/etc/tsurugi.iniが使われる。
($TSURUGI_HOMEはTsurugiサーバーがインストールされているディレクトリー)
デフォルトでは、起動を開始してから10秒でタイムアウトする。[2024-07-12]
タイムアウト時間を0にすると起動が完了するまで(ステータスがRUNNINGになるまで?)待つ。
$ tgctl start --timeout 0
$ tgctl status --conf ~/tsurugi.ini Tsurugi OLTP database is RUNNING
$ tgctl shutdown --conf ~/tsurugi.ini $ tgctl kill --conf ~/tsurugi.ini
shutdownがtsurugidb停止の正しい手順。
killは強制終了。
構成定義ファイルは、Tsurugiサーバーの設定値を書いたファイル。
構成定義ファイルはtgctlの--confで指定する。
構成定義ファイルの形式は、セクション毎にパラメーターを記述する形式。
ipc_endpointセクションは、IPC接続エンドポイントの設定を記述する。
[ipc_endpoint]
database_name=tsurugi
threads=104
| パラメーター | 説明 | 備考 |
|---|---|---|
| database_name | IPC接続のデータベース名。デフォルトはtsurugi。 | database_name=tsurugiのとき、エンドポイントのURIは「ipc:tsurugi」になる。 |
| threads | IPC接続可能な最大数。 |
stream_endpointセクションは、TCP接続エンドポイントの設定を記述する。
[stream_endpoint]
enabled=true
port=12345
threads=104
| パラメーター | 説明 | 備考 | |
|---|---|---|---|
| enabled | 1.0.0-BETA6 | TCP接続を受け付けるかどうか。[2024-08-16] デフォルトはfalse(Dockerイメージではtrueが指定されている) |
Tsurugi 1.0.0-BETA6より前は常に受け付けていた。 |
| port | TCP接続を受け付けるポート番号。デフォルトは12345。 | port=12345のとき、エンドポイントのURIは「tcp://ホスト名:12345」になる。 |
|
| threads | TCP接続可能な最大数。 | ||
sessionセクションは、セッション(接続)の設定を記述する。[2024-08-16]
[session]
#enable_timeout=true
#refresh_timeout=300
#max_refresh_timeout=10800
zone_offset=+00:00
| パラメーター | 説明 | 備考 | |
|---|---|---|---|
| zone_offset | 1.0.0-BETA6 | タイムゾーン付き日時型の値を取得する際のタイムゾーンオフセット。 | Tsurugiのインストール時にシステム(OS)のタイムゾーンが設定される。 Dockerの場合は +00:00。 |
datastoreセクションは、ログデータストアの設定を記述する。
[datastore]
log_location=var/data/log
| パラメーター | 説明 | 備考 |
|---|---|---|
| log_location | DBの永続化の為のデータを置く場所。 | 相対パスで記述すると、$TSURUGI_HOMEからの相対パスになる。 |
sqlセクションは、SQL実行エンジンの設定を記述する。[2023-10-06]
[sql]
commit_response=AVAILABLE
| パラメーター | 説明 | 備考 |
|---|---|---|
| commit_response | デフォルトのコミットオプションでコミットコマンドを実行したときに、Tsurugiサーバー側でどこまで処理したら制御を戻すかの指定。 | ACCEPTED・AVAILABLE・STORED・PROPAGATEDのいずれか。 |
ccセクションは、トランザクションエンジンの設定を記述する。[2023-12-07]
[cc]
epoch_duration=3000
| パラメーター | 説明 | 備考 |
|---|---|---|
| epoch_duration | epochの時間間隔を指定する。単位はマイクロ秒。 | 3000の場合、3ミリ秒。 |
glogセクションは、logger(Googleのglog)の設定を記述する。
[glog]
log_dir=
v=0
| パラメーター | 説明 | 備考 |
|---|---|---|
| log_dir | ログファイルを出力する場所。 | デフォルトだと/tmp/tsurugidb.INFO等になる。 |
| v | 詳細ログのレベル。 | デフォルトは0。30だとそこそこ、50だとかなり大量に出る。 本番運用時は0が想定されているらしい。 →GitHubのイベントログ [/2024-09-03] |
glogのパラメーターは環境変数でも指定できる。(tgctl start時に環境変数が読まれる)
例えばvを指定したい場合は環境変数GLOG_vに指定する。
$ export GLOG_v=30