本書はGridDBの提供する運用ツールについて説明したものです。
本書は、GridDBを用いたシステム構築を行う設計者、GridDBの運用管理を行う管理者の方を対象としています。
各章は次の内容です。
サービス
OS起動時に自動的に実行されるGridDBのサービスについて説明します。
運用コマンド
GridDBの各種運用コマンドについて説明します。
クラスタ運用管理コマンド・インタプリタ(gs_sh)
GridDBクラスタの運用管理機能、およびデータ操作を提供するコマンドインタプリタ(gs_sh)について説明します。
統合運用管理GUI(gs_admin)
GridDBクラスタの運用機能を統合した、Webベースの統合運用管理GUI(gs_admin)について説明します。
エクスポート/インポートツール
GridDBのデータのエクスポート/インポートを行うツールについて説明します。
サービスのインストールと設定の手順は、以下のとおりです。
GridDBのインストール、ノードを設定する手順に関しては、『GridDB データベース管理者ガイド』を参照してください。
サービスで用いるファイルの種類です。
種類 | 意味 |
---|---|
systemd ユニットファイル | systemdのユニット定義ファイル。GridDBのサーバパッケージにより、/usr/lib/systemd/system/gridstore.service にインストールされ、GridDBサービスとしてシステムに登録される。 |
サービススクリプト | OS起動時に自動的に実行されるスクリプトファイル。 GridDBのサーバパッケージにより、/usr/griddb/bin/gridstoreにインストールされる。 |
PIDファイル | gsserverプロセスのプロセスID(PID)のみを記載したファイル。gsserverプロセス起動時に、$GS_HOME/conf/gridstore.pidに作成される。 |
起動設定ファイル | サービスの中で設定可能な変数を記載するファイル。 GridDBのサーバパッケージにより、/etc/sysconfig/gridstore/gridstore.confにインストールされる。 |
GridDBのサービスの動作を制御するパラメータを用意しています。パラメータの一覧は以下のとおりです。
パラメータ | デフォルト | 説明 |
---|---|---|
GS_USER | admin | GridDBのユーザ名 |
GS_PASSWORD | admin | GS_USER のパスワード |
CLUSTER_NAME | INPUT_YOUR_CLUSTER_NAME_HERE | 参加するクラスタ名 |
MIN_NODE_NUM | 1 | 参加するクラスタの構成ノード数 |
パラメータを変更するには起動設定ファイル( /etc/sysconfig/gridstore/gridstore.conf
)を編集します。
サーバパッケージのアップデートインストールやアンインストールのとき、起動設定ファイルは上書き・アンインストールされません。
【注意】
MIN_NODE_NUM
を拡張後のクラスタ構成ノード数に変更する必要があります。サービスのログに関しては、ブートログ( /var/log/boot.log
)や運用コマンドのログ( $GS_HOME/log
)を参照してください。
GridDBのサービスのコマンドを以下に説明します。
【注意】
GS_SSL_MODE
を設定して、運用コマンド用通信のSSL接続を有効にする必要があります。SSL接続の詳細は『GridDB 機能リファレンス』を参照してください。
GS_SSL_MODE
にREQUIREDを指定すると、運用コマンド用通信のSSL接続を有効にします。VERIFYを指定すると、運用コマンド用通信のSSL接続を有効、かつサーバ証明書検証を実施します。GS_SSL_MODE
にVERIFYを指定する)場合、環境変数SSL_CERT_FILE
に、信頼する認証局の証明書のパスを指定してください。vi .bash_profile
GS_SSL_MODE=VERIFY
export GS_SSL_MODE
SSL_CERT_FILE=$GS_HOME/security/ca.crt
export SSL_CERT_FILE
動作:
$ sudo systemctl start gridstore
CLUSTER_NAME
にクラスタ名を設定します。MIN_NODE_NUM
にクラスタを構成するノード台数を設定します。【注意】
動作:
$ sudo systemctl stop gridstore
【注意】
動作:
$ sudo systemctl status gridstore
動作:
動作:
サービスのエラーメッセージは以下のとおりです。
コード | メッセージ | 意味 |
---|---|---|
F00003 | Json load error | 定義ファイルの読込みに失敗しました。 |
F01001 | Stop service timed out | ノード停止処理がタイムアウトしました。 |
F01002 | Startnode error | ノード起動処理でエラーが発生しました。 |
F01003 | Startnode timed out | ノード起動処理がタイムアウトしました。 |
F01004 | Joincluster error | クラスタ参加処理でエラーが発生しました。 |
F01005 | Joincluster timed out | クラスタ参加処理がタイムアウトしました。 |
F01006 | Leavecluster error | クラスタ離脱処理でエラーが発生しました。 |
F02001 | Command execution error | コマンド実行でエラーが発生しました。 |
F02002 | Command execution timed out | コマンド実行がタイムアウトしました。 |
【メモ】
GridDBでは、以下のコマンドを提供します。
種類 | 機能 | コマンド | 格納RPMパッケージ |
---|---|---|---|
(1) ノードの起動/停止 | ノードの起動 | gs_startnode | server |
ノードの停止 | gs_stopnode | client | |
(2) ユーザ管理 | 管理ユーザの登録 | gs_adduser | server |
管理ユーザの削除 | gs_deluser | server | |
管理ユーザのパスワードの変更 | gs_passwd | server | |
(3) クラスタ管理 | クラスタ構成への参加 | gs_joincluster | client |
クラスタ構成からの離脱 | gs_leavecluster | client | |
クラスタの全停止 | gs_stopcluster | client | |
クラスタ構成情報取得 | gs_config | client | |
クラスタ情報取得 | gs_stat | client | |
クラスタへのノード増設 | gs_appendcluster | client | |
クラスタの手動フェイルオーバー | gs_failovercluster | client | |
パーティション情報取得 | gs_partition | client | |
クラスタ構成ノード数の拡張 | gs_increasecluster | client | |
クラスタの自律的データ配置の設定 | gs_loadbalance | client | |
クラスタのデータ配置目標の設定 | gs_goalconf | client | |
チェックポイント処理の制御 | gs_checkpoint | server | |
(4) ログ情報 | ログの表示 | gs_logs | client |
イベントログ出力レベルの表示と変更 | gs_logconf | client | |
(5) バックアップ/リストア | バックアップの実行 | gs_backup | server |
バックアップデータの確認 | gs_backuplist | server | |
バックアップデータのリストア | gs_restore | server | |
(6) インポート/エクスポート | インポート | gs_import | client |
エクスポート | gs_export | client | |
(7) 保守 | パラメータ表示と変更 | gs_paramconf | client |
認証用ユーザキャッシュの管理 | gs_authcache | client |
【メモ】
【コマンドオプション】
以下のオプションは、すべてのコマンドで共通して使えるオプションです。
オプション | 説明 |
---|---|
-h|–help | コマンドのヘルプを表示します。 |
–version | 運用コマンドのバージョンを表示します。 |
【例】
コマンドのヘルプおよびバージョンを表示します。
$ gs_startnode -h
Usage: gs_startnode [-u USER/PASS [-w [WAIT_TIME]] ]
Start the GridDB node.
$ gs_stat --version
gs_stat [V5.0.00]
以下のオプションは、一部のコマンドで共通して使えるオプションです。
オプション | 説明 |
---|---|
-s サーバ[:ポート番号]|-p ポート番号 | 操作したいノードのサーバ名(アドレス)とポート番号 (運用コマンドの接続ポート番号)を指定します。 デフォルトは、”localhost(127.0.0.1):10040”です。 |
-u ユーザ名/パスワード | 認証ユーザとパスワードを指定します。 |
-w|–wait [秒数] | 処理完了の待合わせを行います。 秒数指定が無い場合または秒数が0の場合は時間制限無しとなります。 |
-a|–address-type アドレス種別 | 表示するアドレス、ポートのサービス種別を指定します system : 運用コマンドの接続アドレス cluster : クラスタ管理のために使用する受信アドレス transaction : トランザクション処理の受付アドレス sync : 同期処理のために使用する受信アドレス |
–no-proxy | プロキシを使わずに接続します。 |
–ssl|–ssl-verify | –sslを指定した場合、運用コマンド用通信のSSL接続を有効にします。–ssl-verifyを指定を指定した場合、サーバ証明書検証も併せて実施します。 |
【メモ】
GS_SSL_MODE
が利用できます。環境変数GS_SSL_MODE
にREQUIREDを指定すると、運用コマンド用のSSL通信接続を有効にします。VERIFYを指定すると、運用コマンド用通信のSSL接続を有効に、かつサーバ証明書検証を実施します。【注意】
GS_SSL_MODE
を設定して、運用コマンド用通信でSSL接続するには、以下が必要です。
GS_SSL_MODE
にVERIFYを指定する)場合、環境変数SSL_CERT_FILE
に、信頼する認証局の証明書のパスを指定してください。vi .bash_profile
GS_SSL_MODE=VERIFY
export GS_SSL_MODE
SSL_CERT_FILE=$GS_HOME/security/ca.crt
export SSL_CERT_FILE
【終了ステータス】
以下は、コマンドの終了ステータスです。
【ログファイル】
コマンドのログファイルは、${GS_LOG}/コマンド名.logに保存されます。
【例】 GS_LOGの値が”/var/lib/gridstore/log(デフォルト)”の場合、”gs_startnode”コマンドを実行すると以下のログファイルが作成されます。
【運用コマンドを利用する前に】
プロキシ変数(http_proxy)が設定されている場合、–no-proxyオプションを指定するか、GridDBノードのアドレス(群)を、no_proxyで設定し、proxyから除外してください。 運用コマンドはREST/http通信を行うため、誤ってproxyサーバ側に接続されてしまい、運用コマンドが動作しません。
$ export http_proxy=proxy.example.net:8080
$ gs_paramconf -u admin/admin --show storeMemoryLimit
A00110: Check the network setting. (HTTP Error 403: Forbidden)
$ gs_paramconf -u admin/admin --show storeMemoryLimit --no-proxy
"1024MB"
【クラスタを構成するには】
クラスタは、1台以上のノードから成り、1台のマスタとその他のフォロワと呼ばれるノードの集合から構成されます。
クラスタ構成では、有効ノード数と構成ノード数が重要になります。有効ノード数は、クラスタを構成している実際のノード数です。構成ノード数は、クラスタに参加できるノード数で、gs_joinclusterコマンドで指定します。
有効ノード数と構成ノード数はマスタノードに対してgs_statコマンドを実行することで確認でき、それぞれ/cluster/activeCountと/cluster/designatedCountの値となります。
参考までに、以下にクラスタ構成を作成/変更するための主な手順を示します。 各コマンドの詳細については以降の節を参照してください。
ノードを実行するマシン上でGridDBノード起動コマンドを実行します。このコマンドはGridDBノード毎に実行する必要があります。
コマンド
コマンド | オプション/引数 |
---|---|
gs_startnode | [-w|–wait [秒数] -u ユーザ名/パスワード] [–releaseUnusedFileBlocks] [–ssl|–ssl-verify] |
オプション
オプション | 説明 |
---|---|
–releaseUnusedFileBlocks | データベースファイルの未使用領域を解放します。 |
【メモ】
GridDBノードを停止します。ノードを停止するためには、まず、GridDBクラスタ管理処理を停止させる必要があります。
コマンド
コマンド | オプション/引数 |
---|---|
gs_stopnode | [-f|–force] [-k|–kill] [-w|–wait [秒数]] [-s サーバ[:ポート番号] | -p ポート番号] -u ユーザ名/パスワード [–ssl|–ssl-verify] |
オプション
オプション | 説明 |
---|---|
-f|–force | 強制的にノードを停止します。 |
-k|–kill | ローカルマシンのノードのプロセスを強制的に停止します。 |
【メモ】
GridDBの管理ユーザの登録/削除/パスワード変更を行います。
インストール直後、下記のデフォルトユーザが存在します。
デフォルトユーザ
ユーザ | パスワード | 用途 |
---|---|---|
admin | admin | 運用管理ユーザです。運用コマンドの実行用です。 |
system | manager | アプリケーションユーザです。クライアント操作用です。 |
【注意】
/var/lib/gridstore/conf/password
コマンド
コマンド | オプション/引数 |
---|---|
gs_adduser | ユーザ名 [-p|–password パスワード] |
オプション
オプション | 説明 |
---|---|
ユーザ名 | 作成する管理ユーザ名を指定します。先頭が”gs#“で始まる名前を指定します。”gs#“以降には1文字以上のASCII英数字、”_“(アンダースコア)のみ使用可能です。 |
-p|–password パスワード | ユーザのパスワードを指定します。省略時は対話的にパスワードを入力するためのプロンプトが表示されます。 |
【メモ】
【例】
管理ユーザ(「ユーザ名(gs#someone)」、「パスワード(opensesame)」)をユーザ定義ファイルに追加します。
$ gs_adduser -p opensesame gs#someone
$ gs_stopcluster -u admin/admin
全てのノードで以下を実施
$ gs_stopnode -u admin/admin
$ cp [ユーザを追加したユーザ定義ファイル] /var/lib/gridstore/conf/password
$ gs_startnode
$ gs_joincluster -c clsA -n XX -u admin/admin
コマンド
コマンド | オプション/引数 |
---|---|
gs_deluser | ユーザ名 |
【メモ】
【例】
指定した管理ユーザ(gs#someone)を削除します。
$ gs_deluser gs#someone
$ gs_stopcluster -u admin/admin
全てのノードで以下を実施
$ gs_stopnode -u admin/admin
$ cp [ユーザを削除したユーザ定義ファイル] /var/lib/gridstore/conf/password
$ gs_startnode
$ gs_joincluster -c clsA -n XX -u admin/admin
コマンド
コマンド | オプション/引数 |
---|---|
gs_passwd | ユーザ名 [-p|–password パスワード] |
オプション
オプション | 説明 |
---|---|
ユーザ名 | パスワードを変更する管理ユーザ名を指定します。 |
-p|–password パスワード | 管理ユーザのパスワードを指定します。省略時は対話的にパスワードを入力するためのプロンプトが表示されます。 |
【メモ】
【例】
指定した管理ユーザ(「ユーザ名(gs#someone)」)のパスワードを(foobarxyzに)変更します。
$ gs_passwd -p foobarxyz gs#someone
$ gs_stopcluster -u admin/admin
全てのノードで以下を実施
$ gs_stopnode -u admin/admin
$ cp [変更したユーザ定義ファイル] /var/lib/gridstore/conf/password
$ gs_startnode
$ gs_joincluster -c clsA -n XX -u admin/admin
GridDBクラスタにノードを参加させてクラスタを構成します。
コマンド
コマンド | オプション/引数 |
---|---|
gs_joincluster | [-c|–clusterName クラスタ名] [-n|–nodeNum 構成ノード数] [-w|–wait [秒数]] [-s サーバ[:ポート番号]| -p ポート番号] -u ユーザ名/パスワード [–ssl|–ssl-verify] |
オプション
オプション | 説明 |
---|---|
-c|–clusterName クラスタ名 | クラスタ名を指定します。デフォルトは、”defaultCluster”です。 |
-n|–nodeNum 構成ノード数 | 構成するクラスタのノード数を指定します。デフォルトは、1(シングルノード構成)です。 |
【メモ】
/cluster/clusterName
)が設定されている場合、指定したクラスタ名が設定した値と一致しないとエラーとなります。【例】ノードA~C 3台でクラスタ名「example_three_nodes_cluster」のクラスタを構成する。
クラスタを構成する各ノードで、ノードの起動およびノードへの参加を行います。
ノードAで実行
$ gs_startnode
$ gs_joincluster -c example_three_nodes_cluster -n 3 -u admin/admin -w
ノードBで実行
$ gs_startnode
$ gs_joincluster -c example_three_nodes_cluster -n 3 -u admin/admin -w
ノードCで実行
$ gs_startnode
$ gs_joincluster -c example_three_nodes_cluster -n 3 -u admin/admin -w
ノードの起動は各ノードから行い、ノードへの参加はある特定のノードから行います。
ノードA~Cそれぞれで実行
$ gs_startnode
ノードAで実行
$ gs_joincluster -c example_three_nodes_cluster -n 3 -s ノードBのサーバアドレス -u admin/admin
$ gs_joincluster -c example_three_nodes_cluster -n 3 -s ノードCのサーバアドレス -u admin/admin
$ gs_joincluster -c example_three_nodes_cluster -n 3 -u admin/admin -w
ノードをクラスタから離脱させます。
コマンド
コマンド | オプション/引数 |
---|---|
gs_leavecluster | [-f|–force] [-w|–wait [秒数]] [-s サーバ[:ポート番号]| -p ポート番号] -u ユーザ名/パスワード [–ssl|–ssl-verify] |
オプション
オプション | 説明 |
---|---|
-f|–force | 強制的にノードを離脱させます。 |
【メモ】
ノードを離脱させることで有効ノード数が構成ノード数の過半数に満たなくなる場合、クラスタは停止します。
【例】
離脱させたいノードでクラスタ離脱コマンドを実行します。
$ gs_leavecluster -u admin/admin
クラスタを停止します。
コマンド
コマンド | オプション/引数 |
---|---|
gs_stopcluster | [-w|–wait [秒数]] [-s サーバ[:ポート番号]|-p ポート番号] -u ユーザ名/パスワード [–ssl|–ssl-verify] |
【メモ】
【例】
クラスタ停止コマンドを実行します。
$ gs_stopcluster -u admin/admin
クラスタ構成情報(クラスタに参加しているノードの一覧情報)を取得します。
コマンド
コマンド | オプション/引数 |
---|---|
gs_config | [-s サーバ[:ポート番号]| -p ポート番号] -u ユーザ名/パスワード [-a|–address-type アドレス種別] [–ssl|–ssl-verify] |
オプション
オプション | 説明 |
---|---|
-a|–address-type アドレス種別 | 表示するアドレス、ポートのサービス種別を指定します system : 運用コマンドの接続アドレス cluster : クラスタ管理のために使用する受信アドレス transaction : トランザクション処理の受付アドレス sync : 同期処理のために使用する受信アドレス |
【メモ】
【例】
クラスタが3台のノードで構成されている場合、マスタからクラスタ構成情報取得を行うと以下のような出力となります。
$ gs_config -u admin/admin
{
"follower": [ // [array] フォロワ情報
{
"address": "192.168.11.10", // [string] 運用コマンドの接続アドレス
"port": 10040 // [number] 運用コマンドの接続ポート
},
{
"address": "192.168.11.11",
"port": 10040
}
],
"master": { // マスタ情報
"address": "192.168.11.12", // [string] 運用コマンドの接続アドレス
"port": 10040 // [number] 運用コマンドの接続ポート
},
"multicast": { // マルチキャスト情報
"address": "239.0.0.20", // [string] クライアントへのマルチキャスト用アドレス
"port": 31999 // [number] クライアントへのマルチキャスト用ポート
},
"self": { // 自ノード情報
"address": "192.168.11.12", // [string] 運用コマンドの接続アドレス
"port": 10040, // [number] 運用コマンドの接続ポート
"status": "ACTIVE" // [string] システム状態
}
}
クラスタ情報(クラスタ構成情報および内部情報)、または、バックアップ進捗状況を取得します。
コマンド
コマンド | オプション/引数 |
---|---|
gs_stat | [-t|–type タイプ] [-a|–address-type アドレス種別] [–csv] [-s サーバ[:ポート番号]|-p ポート番号] -u ユーザ名/パスワード [–ssl|–ssl-verify] |
オプション
オプション | 説明 |
---|---|
-t|–type タイプ | 指定されたタイプの情報を表示します。 backup:バックアップ状態を表示 |
-a|–address-type アドレス種別 | 表示するアドレス、ポートのサービス種別を指定します。 system : 運用コマンドの接続アドレス cluster : クラスタ管理のために使用する受信アドレス transaction : トランザクション処理の受付アドレス sync : 同期処理のために使用する受信アドレス |
–csv | クラスタ情報をCSV形式で表示します。 |
【メモ】
【例】
稼働しているクラスタに参加しているノードでクラスタ情報取得を行うと以下のような出力となります。
$ gs_stat -u admin/admin
{
:
:
"cluster": {
"activeCount": 1,
"clusterName": "defaultCluster",
"clusterStatus": "MASTER",
"designatedCount": 1,
"loadBalancer": "ACTIVE",
"master": {
"address": "192.168.10.11",
"port": 10010
},
"nodeList": [
{
"address": "192.168.10.11",
"port": 10010
}
],
"nodeStatus": "ACTIVE",
"partitionStatus": "NORMAL",
"startupTime": "2014-08-29T09:56:20+0900",
"syncCount": 3
},
:
:
}
稼働中のクラスタに新たにノードを増設します(追加します)。
コマンド
コマンド | オプション/引数 |
---|---|
gs_appendcluster | –cluster サーバ:ポート番号 [-w|–wait [秒数]] [-s サーバ[:ポート番号] | -p ポート番号] -u ユーザ名/パスワード [–ssl|–ssl-verify] |
オプション
オプション | 説明 |
---|---|
–cluster サーバ:ポート番号 | 増設対象のクラスタに参加しているノードのサーバ名(アドレス)とポート番号を指定します。 |
【メモ】
【例】
稼働中のクラスタに新たにノードを追加します。
追加対象のクラスタの状態を確認
$ gs_stat -s 192.168.33.29:10040 -u admin/admin
{
:
"cluster":{ //クラスタ関連
"activeCount":5, //有効ノード数
"clusterName":"function_1", //クラスタ名
"clusterStatus":"MASTER", //クラスタ状態
"designatedCount":5, //構成ノード数
:
}
構成ノード=有効ノード数であることを確認
構成ノード数>有効ノード数の場合、gs_joincluster(クラスタ構成への参加)を実行
追加したいノードを起動し、稼働中のクラスタに参加しているノードのサーバアドレスおよびポート番号を指定
$ gs_startnode
$ gs_appendcluster --cluster 192.168.33.29:10040 -u admin/admin
クラスタに追加できているか、クラスタの状態を確認
$ gs_stat -u admin/admin
{
:
"cluster":{ //クラスタ関連
"activeCount":6, //有効ノード数
"clusterName":"function_1", //クラスタ名
"clusterStatus":"MASTER", //クラスタ状態
"designatedCount":6, //構成ノード数
:
}
GridDBクラスタのフェイルオーバーを実行します。
コマンド
コマンド | オプション/引数 |
---|---|
gs_failovercluster | [–repair] [-s サーバ[:ポート番号] | -p ポート番号] -u ユーザ名/パスワード [–ssl|–ssl-verify] |
オプション
オプション | 説明 |
---|---|
–repair | データロストを許容して強制的にフェイルオーバーを実行します。 |
【メモ】
【例】
クラスタのフェイルオーバーを実行します。
$ gs_failovercluster -u admin/admin
GridDBノードのパーティション情報を表示します。
コマンド
コマンド | オプション/引数 |
---|---|
gs_partition | [-n|–partitionId パーティションID] [–loss] [-a|–address-type アドレス種別] [-s サーバ[:ポート番号] | -p ポート番号] -u ユーザ名/パスワード [–ssl|–ssl-verify] |
オプション
オプション | 説明 |
---|---|
-n|–partitionId パーティションID | 情報を表示するパーティションIDを指定します。(省略時は全ての情報を表示) |
–loss | 欠損パーティションの情報のみ表示します。 |
-a|–address-type アドレス種別 | 表示するアドレス、ポートのサービス種別を指定します。 system : 運用コマンドの接続アドレス cluster : クラスタ管理のために使用する受信アドレス transaction : トランザクション処理の受付アドレス sync : 同期処理のために使用する受信アドレス |
【メモ】
【例】
稼働中のクラスタの特定のノードのパーティション情報を取得します。
$ gs_partition -u admin/admin
[
{
"backup": [],
"catchup": [],
"maxLsn": 300008,
"owner": {
"address": "192.168.11.10",
"lsn": 300008,
"port": 10010
},
"pId": "0",
"status": "ON"
},
:
]
GridDBクラスタの構成ノード数を拡張します。
コマンド
コマンド | オプション/引数 |
---|---|
gs_increasecluster | [-s サーバ[:ポート番号] | -p ポート番号] -u ユーザ名/パスワード [–ssl|–ssl-verify] |
【メモ】
【例】
クラスタ構成ノード数を拡張して、クラスタにノードを増設します。
ノードを増設したいクラスタの状態を確認
$ gs_stat -s 192.168.33.29:10040 -u admin/admin
{
:
"cluster":{ //クラスタ関連
"activeCount":5, //有効ノード数
"clusterName":"function_1", //クラスタ名
"clusterStatus":"MASTER", //クラスタ状態
"designatedCount":5, //構成ノード数
:
}
構成ノード=有効ノード数であることを確認
増設したいノードを起動し、増設後のノード数(6)を指定して、gs_joincluster(クラスタ構成への参加)を実行(増設対象に指定)
$ gs_startnode -u admin/admin -w
$ gs_joincluster -u admin/admin -c function_1 -n 6
ノードを増設したいクラスタに対して、gs_increasecluster(クラスタ構成ノード数の拡張)を実行
$ gs_increasecluster -s 192.168.33.29:10040 -u admin/admin
増設対象のノードがクラスタに追加できているか、クラスタの状態を確認
$ gs_stat -u admin/admin
{
:
"cluster":{ //クラスタ関連
"activeCount":6, //有効ノード数
"clusterName":"function_1", //クラスタ名
"clusterStatus":"MASTER", //クラスタ状態
"designatedCount":6, //構成ノード数
:
}
GridDBクラスタの自律的データ配置機能の有効無効の設定および設定の表示を行います。 ローリングアップデートを行う際など、計画的にノードを停止して再びクラスタに戻す場合には、一時的に自律的データ配置機能を無効に設定しておくと、不要なデータ再配置が行われずに負荷を軽減することができます。
コマンド
コマンド | オプション/引数 |
---|---|
gs_loadbalance | [–on|–off] [–cluster] [-s サーバ[:ポート番号] | -p ポート番号] -u ユーザ名/パスワード [–ssl|–ssl-verify] |
オプション
オプション | 説明 |
---|---|
–on|–off | 自律的データ配置を有効(–on)、無効(–off)に設定します。 本オプションを省略した場合は、現在の設定値が表示されます。 |
–cluster | クラスタの全ノードに対して設定を行います。 本オプションを省略した場合は、指定されたノードのみに設定を行います。 |
【メモ】
【例】
クラスタを構成する全ノードの自律的データ配置の設定を確認
$ gs_loadbalance -s 192.168.33.29:10040 -u admin/admin --cluster
192.168.33.29 ACTIVE
192.168.33.30 ACTIVE
192.168.33.31 ACTIVE
"192.168.33.31"のノードを無効に設定
$ gs_loadbalance -s 192.168.33.31:10040 -u admin/admin --off
GridDBクラスタのデータ配置目標の自動設定の有効無効の設定、および、現在のデータ配置目標の表示や手動設定を行います。 ローリングアップグレードの際に、安全にノードを離脱させるために使用します。
コマンド
コマンド | オプション/引数 |
---|---|
gs_goalconf | [–on|–off] [–cluster] [-s サーバ[:ポート番号] | -p ポート番号] -u ユーザ名/パスワード [–ssl|–ssl-verify] |
コマンド | オプション/引数 |
---|---|
gs_goalconf | –manual [[–set JSON_FILE | –switch PARTITION_ID | –leaveNode HOST[:PORT]] [–cluster]] [-s サーバ[:ポート番号] | -p ポート番号] -u ユーザ名/パスワード [–ssl|–ssl-verify] |
オプション
オプション | 説明 |
---|---|
–on|–off | データ配置目標の自動設定を有効(–on)、無効(–off)に設定します。 本オプションを省略した場合は、現在の設定値が表示されます。 |
–cluster | クラスタの全ノードに対して設定を行います。 本オプションを省略した場合は、指定されたノードのみに設定を行います。 |
–manual | 現在のデータ配置目標を表示します。配置目標を設定する場合は、set、switchまたはleaveNodeのうち、いずれかのオプションを合わせて指定します。 |
–set JSON_FILE | 指定されたJSONファイルを配置目標として設定します。 |
–switch PARTITION_ID | 指定されたパーティションIDのオーナとバックアップを入れ替えた配置目標を設定します。 |
–leaveNode HOST[:PORT] | 指定されたノードのすべてのオーナとバックアップを入れ替えた配置目標を設定します。 |
【例】
クラスタを構成する全ノードのデータ配置目標の自動設定を確認
$ gs_goalconf -s 192.168.33.29:10040 -u admin/admin --cluster
192.168.33.29 ACTIVE
192.168.33.30 ACTIVE
192.168.33.31 ACTIVE
"192.168.33.31"のノードを無効に設定
$ gs_goalconf -s 192.168.33.31:10040 -u admin/admin --off
クラスタの全ノードに対して、"192.168.33.31"のノードを離脱対象とするための配置目標を設定
$ gs_goalconf -u admin/admin --manual --leaveNode 192.168.33.31 --cluster
Switching 43 owners to backup on 192.168.33.31:10040 ...
Setting goal requests have been sent. Sync operations will be started when loadbalancer is active.
GridDBの定期チェックポイント機能の有効無効の設定および表示、手動チェックポイント処理の実行を行います。
コマンド
コマンド | オプション/引数 |
---|---|
gs_checkpoint | [–on|–off]|[–manual [-w|–wait [秒数]]] [-s サーバ[:ポート番号] | -p ポート番号] -u ユーザ名/パスワード [–ssl|–ssl-verify] |
オプション
オプション | 説明 |
---|---|
–on|–off | 定期チェックポイントを有効(–on)、無効(–off)に設定します。 本オプションを省略した場合は、現在の設定値が表示されます。 |
–manual | 手動チェックポイント処理を実行します。 |
【メモ】
【例】
定期チェックポイントを無効にします。
$ gs_checkpoint -u admin/admin --off
手動チェックポイント処理を実行します。
$ gs_checkpoint -u admin/admin --manual -w
...
The manual checkpoint has been completed.
定期チェックポイントを有効にします。
$ gs_checkpoint -u admin/admin --on
直近のGridDBのイベントログを取得します。
コマンド
コマンド | オプション/引数 |
---|---|
gs_logs | [-l|–lines 取得行数] [-g|–ignore 除外キーワード] [-s サーバ[:ポート番号] | -p ポート番号] [–tracestats] [–slowlogs] [–csv] -u ユーザ名/パスワード [第一キーワード [第二キーワード]] [–ssl|–ssl-verify] |
オプション
オプション | 説明 |
---|---|
-l|–lines 取得行数 | 取得行数を指定します。 |
-g|–ignore 除外キーワード | 除外キーワードを含む行を無視します。 |
–tracestats | イベントログに含まれる性能トレースの情報をJSON形式にして表示します。 |
–slowlogs | イベントログに含まれるスロークエリの情報をJSON形式にして表示します。 |
–csv | –tracestatsと共に指定した際、イベントログに含まれる性能トレースの情報をCSV形式にして表示します。 –slowlogsと共に指定した際、イベントログに含まれるスロークエリの情報をCSV形式にして表示します。 |
第一キーワード [第二キーワード] | キーワードを含む行のみ取得します。 |
【メモ】
【例】
チェックポイントが終了したログを3回分取得します。
$ gs_logs -u admin/admin CP_END -l 3
2014-08-04T11:02:52.754+0900 NODE1 1143 INFO CHECKPOINT_SERVICE ../server/checkpoint_service.cpp void CheckpointService::runCheckpoint(EventContext&, int32_t, const std::string&) line=866 : [CP_END] mode=NORMAL_CHECKPOINT, backupPath=, commandElapsedMillis=132
2014-08-04T11:22:54.095+0900 NODE1 1143 INFO CHECKPOINT_SERVICE ../server/checkpoint_service.cpp void CheckpointService::runCheckpoint(EventContext&, int32_t, const std::string&) line=866 : [CP_END] mode=NORMAL_CHECKPOINT, backupPath=, commandElapsedMillis=141
2014-08-04T11:42:55.433+0900 NODE1 1143 INFO CHECKPOINT_SERVICE ../server/checkpoint_service.cpp void CheckpointService::runCheckpoint(EventContext&, int32_t, const std::string&) line=866 : [CP_END] mode=NORMAL_CHECKPOINT, backupPath=, commandElapsedMillis=138
イベントログ出力レベルを表示または変更します。引数指定なしの場合は設定一覧を取得します。
コマンド
コマンド | オプション/引数 |
---|---|
gs_logconf | [-s サーバ[:ポート番号]|-p ポート番号] -u ユーザ名/パスワード [カテゴリ名 出力レベル] [–ssl|–ssl-verify] |
オプション
オプション | 説明 |
---|---|
カテゴリ名 出力レベル | ログ出力レベルを変更したいカテゴリのカテゴリ名と出力レベルを指定します。 |
【メモ】
【例】
ログの出力レベルを変更し、イベントログの状態を表示します。
$ gs_logconf -u admin/admin CHUNK_MANAGER INFO
$ gs_logconf -u admin/admin
{
"levels": {
"CHECKPOINT_SERVICE": "INFO",
"CHECKPOINT_SERVICE_DETAIL": "ERROR",
"CHUNK_MANAGER": "INFO",
"CLUSTER_OPERATION": "INFO",
:
:
}
}
サービスを継続しながら、GridDBのバックアップをノード単位で取得します。
クラスタを構成する全ノードに対して順次行うことで、サービスを継続しながら、クラスタ全体としてのバックアップが行えます。
コマンド
コマンド | オプション/引数 |
---|---|
gs_backup | [–mode モード [–skipBaseline]] -u ユーザ名/パスワード バックアップ名 [–ssl|–ssl-verify] |
オプション
オプション | 説明 |
---|---|
–mode モード | バックアップモードを指定します。 - auto : 自動バックアップ - auto_nostop : 自動バックアップ(エラー時にノード停止無し) - baseline : 差分・増分バックアップのベースラインのフルバックアップを作成 - since :ベースライン作成後、更新されたデータブロックをベースラインからの差分バックアップ - incremental:ベースライン作成後、もしくは前回のincremental、sinceバックアップ後に更新されたデータブロックの増分バックアップ。 |
–skipBaseline | modeがautoまたはauto_nostopの場合、ベースラインとなるフルバックアップの取得処理を省略します。 modeがそれ以外の場合、本オプションは無視されます。 |
バックアップ名 | バックアップデータのディレクトリ名を指定します。 |
<modeオプション>
【メモ】
【例】
起動中のノードでバックアップを実行します。
バックアップファイルが保管されるディレクトリ(バックアップディレクトリ)を確認
$ cat /var/lib/gridstore/conf/gs_node.json # 設定の確認
{
"dataStore":{
"dbPath":"/var/lib/gridstore/data",
"transactionLogPath":"/var/lib/gridstore/txnlog",
"backupPath":"/var/lib/gridstore/backup", # バックアップディレクトリ
"storeMemoryLimit":"1024MB",
"concurrency":4,
"logWriteMode":1,
"persistencyMode":"NORMAL"
:
:
}
バックアップを実行
$ gs_backup -u admin/admin 20150425 # バックアップの実行
データ規模や負荷状態により、バックアップ完了まで数時間以上かかる場合があります。
バックアップの進捗状況を、gs_statコマンドで確認
$ gs_stat -u admin/admin --type backup
BackupStatus: Processing # バックアップの実行中
/var/lib/gridstore/backup
)の下に、BACKUPNAMEに指定したディレクトリが作成されます。 なお、差分・増分バックアップの際は、BACKUPNAME_lv0 ( 差分・増分バックアップのベースラインディレクトリ)、BACKUPNAME_lv1_NNN_MMM( 差分・増分バックアップの差分(Since)と増分(Incremental)のディレクトリ)が作成されます。ノード定義ファイル(gs_node.json)で設定されているバックアップディレクトリにあるバックアップデータの一覧を取得します。
コマンド
コマンド | オプション/引数 |
---|---|
gs_backuplist | -u ユーザ名/パスワード [–partitionId パーティションID|バックアップ名] [–ssl|–ssl-verify] |
オプション
オプション | 説明 |
---|---|
–partitionId パーティションID | 指定したパーティションのLSN情報を一覧表示します。 |
バックアップ名 | バックアップ名を指定します。 |
【メモ】
【例】
バックアップデータの一覧を確認したいノードで、バックアップデータの確認を実行します。
バックアップ名の一覧を表示します。
$ gs_backuplist -u admin/admin
BackupName Status StartTime EndTime
-------------------------------------------------------------------------
*201912 -- 2019-12-01T05:20:00+09:00 2019-12-01T06:10:55+09:00
*201911 -- 2019-11-01T05:20:00+09:00 2019-11-01T06:10:55+09:00
:
20191025NO2 OK 2019-10-25T06:37:10+09:00 2019-10-25T06:38:20+09:00
個別のバックアップ名を指定し、詳細情報を表示します。
$ gs_backuplist -u admin/admin 201911
BackupName : 201911
BackupData Status StartTime EndTime
--------------------------------------------------------------------------------
201911_lv0 OK 2019-11-01T05:20:00+09:00 2019-11-01T06:10:55+09:00
201911_lv1_000_001 OK 2019-11-02T05:20:00+09:00 2019-11-02T05:20:52+09:00
201911_lv1_000_002 OK 2019-11-03T05:20:00+09:00 2019-11-03T05:20:25+09:00
201911_lv1_000_003 OK 2019-11-04T05:20:00+09:00 2019-11-04T05:20:33+09:00
201911_lv1_000_004 OK 2019-11-05T05:20:00+09:00 2019-11-05T05:21:25+09:00
201911_lv1_000_005 OK 2019-11-06T05:20:00+09:00 2019-11-06T05:21:05+09:00
201911_lv1_001_000 OK 2019-11-07T05:20:00+09:00 2019-11-07T05:22:11+09:00
201911_lv1_001_001 OK 2019-11-08T05:20:00+09:00 2019-11-08T05:20:55+09:00
パーティションの保持するデータのLSN番号を調べる場合。
$ gs_backuplist -u admin/admin --partitionId=50
BackupName ID LSN
----------------------------------------------------------
*201912 50 2349
*201911 50 118
20190704 50 0
GridDBのバックアップファイルをリストアします。
コマンド
コマンド | オプション/引数 |
---|---|
gs_restore | [–test] [–updateLogs] バックアップ名 |
オプション
オプション | 説明 |
---|---|
–test | リストアは行わず、リストアで利用するバックアップの情報を取得します。 |
–updateLogs | トランザクションログファイルとバックアップ情報ファイルのみをコピーします。 既存のファイルは上書きします。 |
バックアップ名 | リストアするバックアップファイルのディレクトリ名を指定します。 |
【メモ】
【例】
バックアップデータをリストアします。リストアを実行するノードが停止した状態で実行します。
データベースファイルディレクトリ内のファイルを移動
データベースファイルディレクトリは、ノード定義ファイル(gs_node.json)で指定
$ mv ${GS_HOME}/data/* ${GS_HOME}/temp_db # データファイル、チェックポイントログファイルの移動
$ mv ${GS_HOME}/txnlog/* ${GS_HOME}/temp_txnlog # トランザクションログファイルの移動
リストア前にリストアされるデータの確認
$ gs_restore --test 20190901
BackupName : 20190901
BackupFolder : /var/lib/gridstore/backup
RestoreData Status StartTime EndTime
--------------------------------------------------------------------------------
20190901_lv0 OK 2019-09-01T17:50:00+09:00 2019-09-01T17:52:10+09:00
20190901_lv1_001_000 OK 2019-09-02T17:50:00+09:00 2019-09-02T17:50:15+09:00
リストアの実行
$ gs_restore 20190901 # リストア
/var/lib/gridstore/backup
)の下にある、20190901_lv0ディレクトリから、バックアップファイル群をデータベースディレクトリ( /var/lib/gridstore/data
,/var/lib/gridstore/txnlog
)にコピー後、同様に20190901_lv1_001_000のデータもコピーします。ノードのパラメータの表示または変更を行います。
コマンド
コマンド | オプション/引数 |
---|---|
gs_paramconf | [-s サーバ[:ポート番号] | -p ポート番号] -u ユーザ名/パスワード –show [パラメータ名] | –set パラメータ名 値 [–ssl|–ssl-verify] |
オプション
オプション | 説明 |
---|---|
–show [パラメータ名] | 指定したパラメータを表示します。パラメータを指定しなかった場合は、全パラメータの一覧が表示されます。 |
–set パラメータ名 値 | 指定したパラメータを指定した値に変更します。 |
【メモ】
【例】
パラメータ storeMemoryLimit
を変更して、値を表示します。
$ gs_paramconf -u admin/admin --set storeMemoryLimit 2048MB
$ gs_paramconf -u admin/admin --show storeMemoryLimit
"2048MB"
パラメータ traceLimitExecutionTime
を変更して、値を表示します。
$ gs_paramconf -u admin/admin --set traceLimitExecutionTime 30s
$ gs_paramconf -u admin/admin --show traceLimitExecutionTime
"30s"
一般ユーザの認証やLDAP認証の高速化のためにキャッシュで保持するユーザ情報の一覧表示と削除を行います。
認証方式の詳細は、『GridDB 機能リファレンス』を参照してください。
コマンド
コマンド | オプション/引数 |
---|---|
gs_authcache | –show [-s サーバ[:ポート番号] | -p ポート番号] -u ユーザ名/パスワード [–db データベース名] [–username ユーザ名 ] [–cluster] [–ssl|–ssl-verify] |
gs_authcache | –clear [-s サーバ[:ポート番号] | -p ポート番号] -u ユーザ名/パスワード –db データベース名 | –username ユーザ名 [–cluster] [–ssl|–ssl-verify] |
オプション
| オプション | 説明 |
|—————————|————————————————|
| –show | キャッシュで保持するユーザ情報一覧を表示します。 |
| –clear | キャッシュで保持するユーザ情報の削除を行います。|
| –db | ユーザ情報キャッシュの操作対象となるデータベース名を指定します。|
| –username | ユーザ情報キャッシュの操作対象となるユーザ名を指定します。|
| –cluster | クラスタの全ノードに対して設定を行います。
本オプションを省略した場合は、指定されたノードのみに設定を行います。 |
【メモ】
【例】
キャッシュで保持する全ユーザ情報の一覧を表示します。
$ gs_authcache -u admin/admin --show
{
"usercache": [
{
"count": 30,
"dbname": "mydb",
"username": "user01"
},
{
"count": 8,
"dbname": "mydb",
"username": "user02"
},
・・・
]
}
}
クラスタ運用管理コマンド・インタプリタ(以降gs_shと記載します)は、GridDBクラスタの運用管理、およびデータ操作を提供するコマンドラインインターフェースツールです。
gs_shにより次のことができます。
gs_shを利用するには、あらかじめ以下を実施ください。
※ 手順の詳細に関しては、『GridDB クイックスタートガイド』の「GridDBのインストール」の章を参照してください。
$ vi /etc/ssh/sshd_config
...
Kexalgorithms +diffie-hellman-group14-sha1
$ sudo systemctl reload sshd
gs_shには2種類の起動モードがあります。
gs_shを引数なしで実行すると、対話モードで起動されます。gs_shのプロンプトが表示され、サブコマンドの入力が可能になります。
$ gs_sh
//サブコマンド「version」の実行
gs> version
gs_sh version 5.0.0
gs_shにユーザ作成のスクリプトファイルを指定すると、バッチモードで起動されます。スクリプトファイルに記述した一連のサブコマンドをバッチ処理します。バッチ処理実行後に、gs_shは終了します。
//スクリプトファイル(test.gsh)を指定して実行
$ gs_sh test.gsh
【メモ】
GridDBクラスタの運用管理やデータ操作を実行するにあたり、事前に以下の定義が必要です。
ノード変数、クラスタ変数、ユーザ情報の定義方法について、以下に説明します。また、任意の変数定義、変数定義内容の表示、変数定義内容のスクリプトファイルへの保存および読み込み方法についても説明します。
GridDBノードのIPアドレスとポート番号を、ノード変数に定義します。
サブコマンド
setnode ノード変数名 IPアドレス ポート番号 [SSHポート番号] |
引数
引数 | 説明 |
---|---|
ノード変数名 | ノード変数名を指定します。既に同じ変数名が存在する場合は、定義を上書きします。 |
IPアドレス | GridDBノードのIPアドレス(運用管理ツール接続用)を指定します。 |
ポート番号 | GridDBノードのポート番号(運用管理ツール接続用)を指定します。 |
SSHポート番号 | SSHのポート番号を指定します。省略する場合は22番を使用します。 |
例)
//4つのGridDBノードを定義
gs> setnode node0 192.168.0.1 10000
gs> setnode node1 192.168.0.2 10000
gs> setnode node2 192.168.0.3 10000
gs> setnode node3 192.168.0.4 10000
【メモ】
GridDBクラスタの構成を、クラスタ変数に定義します。
サブコマンド
マルチキャスト方式 | setcluster <クラスタ変数名> <クラスタ名> <マルチキャストアドレス> <ポート番号> [<ノード変数>…] |
固定リスト方式 | setcluster <クラスタ変数名> <クラスタ名> FIXED_LIST <固定リスト方式のアドレスリスト> [<ノード変数>…] |
プロバイダ方式 | setcluster <クラスタ変数名> <クラスタ名> PROVIDER <プロバイダ方式のURL> [<ノード変数>…] |
引数
引数 | 説明 |
---|---|
クラスタ変数名 | クラスタ変数名を指定します。既に同じ変数名が存在する場合は、定義を上書きします。 |
クラスタ名 | クラスタ名を指定します。 |
マルチキャストアドレス | [マルチキャスト方式で指定する場合] GridDBクラスタのマルチキャストアドレス(クライアント接続用)を指定します。 |
ポート番号 | [マルチキャスト方式で指定する場合]GridDBクラスタのマルチキャストポート番号(クライアント接続用)を指定します。 |
ノード変数… | GridDBクラスタを構成するノードをノード変数で指定します。GridDBクラスタの運用管理操作を行わない場合、ノード変数の指定は省略可能です。 |
固定リスト方式のアドレスリスト | [固定リスト方式で指定する場合] アドレスとポートのリストを指定します。例) 192.168.15.10:10001,192.168.15.11:10001 クラスタ定義ファイル(gs_cluster.json)に設定されたクラスタ構成が固定リスト方式である場合、クラスタ定義ファイルの/cluster/notificationMemberのtransactionのアドレスとポートのリストを指定します。 |
プロバイダ方式のURL | [プロバイダ方式で指定する場合] アドレスプロバイダのURLを指定します。 クラスタ定義ファイル(gs_cluster.json)に設定されたクラスタ構成がプロバイダ方式である場合、クラスタ定義ファイルの/cluster/notificationProvider/urlの値を指定します。 |
例)
//GridDBクラスタ構成を定義
gs> setcluster cluster0 name 200.0.0.1 1000 $node0 $node1 $node2
【メモ】
ポート番号 : /transaction/notificationPort
※GridDBクラスタを構成するノードのクラスタ定義ファイルは、すべて同一の設定内容である必要があります。設定内容が異なる場合、クラスタを構成することはできません。
また、定義したクラスタ変数に対して、ノード変数の追加、削除を行うことができます。
サブコマンド
modcluster クラスタ変数名 add|remove ノード変数… |
引数
引数 | 説明 |
---|---|
クラスタ変数名 | ノードの追加、削除を行うクラスタ変数名を指定します。 |
add|remove | ノード変数を追加する場合にはadd、ノード変数を削除する場合にはremoveを指定します。 |
ノード変数… | クラスタ変数に追加、もしくは削除するノード変数を指定します。 |
例)
//定義済みのGridDBクラスタ構成にノードを追加
gs> modcluster cluster0 add $node3
//定義済みのGridDBクラスタ構成からノードを削除
gs> modcluster cluster0 remove $node3
【メモ】
GridDBクラスタ構成にSQLの接続先を定義します。 GridDB NewSQLインターフェースを使用する場合のみ設定します。
サブコマンド
マルチキャスト方式 | setclustersql <クラスタ変数名> <クラスタ名> <SQLアドレス> <SQLポート番号> |
固定リスト方式 | setclustersql <クラスタ変数名> <クラスタ名> FIXED_LIST <固定リスト方式のSQLアドレスリスト> |
プロバイダ方式 | setclustersql <クラスタ変数名> <クラスタ名> PROVIDER <プロバイダ方式のURL> |
引数
引数 | 説明 |
---|---|
クラスタ変数名 | クラスタ変数名を指定します。既に同じ変数名が存在する場合は、SQL接続情報を上書きします。 |
クラスタ名 | クラスタ名を指定します。 |
SQLアドレス | [マルチキャスト方式で指定する場合] SQLクライアント接続用の受信アドレスを指定します。 |
SQLポート番号 | [マルチキャスト方式で指定する場合] SQLクライアント接続用のポート番号を指定します。 |
固定リスト方式のSQLアドレスリスト | [固定リスト方式で指定する場合] アドレスとポートのリストを指定します。 例) 192.168.15.10:20001,192.168.15.11:20001 クラスタ定義ファイル(gs_cluster.json)に設定されたクラスタ構成が固定リスト方式である場合、クラスタ定義ファイルの/cluster/notificationMemberのsqlのアドレスとポートのリストを指定します。 |
プロバイダ方式のURL | [プロバイダ方式で指定する場合] アドレスプロバイダのURLを指定します。 クラスタ定義ファイル(gs_cluster.json)に設定されたクラスタ構成がプロバイダ方式である場合、クラスタ定義ファイルの/cluster/notificationProvider/urlの値を指定します。 |
例)
// NewSQLサーバに対して、NoSQLインターフェースとNewSQLインターフェースの両方を用いて接続する場合の定義方法
gs> setcluster cluster0 name 239.0.0.1 31999 $node0 $node1 $node2
gs> setclustersql cluster0 name 239.0.0.1 41999
【メモ】
GridDBクラスタにアクセスするユーザおよびパスワードを定義します。
サブコマンド
setuser ユーザ名 パスワード [gsadmパスワード] |
引数
引数 | 説明 |
---|---|
ユーザ名 | GridDBクラスタにアクセスするユーザ名を指定します。 |
パスワード | 対応するパスワードを指定します。 |
gsadm パスワード | OSユーザ gsadmのパスワードを指定します。ノード起動(startnodeサブコマンド)を実行しない場合は、省略可能です。 |
例)
//GridDBクラスタにアクセスするユーザ、パスワード、およびgsadmのパスワードを定義
gs> setuser admin admin gsadm
【メモ】
ユーザ定義を行うと次の変数が定義されます。
変数名 | 格納する情報 |
---|---|
user | ユーザ名 |
password | パスワード |
ospassword | gsadmパスワード |
複数ユーザは定義できません。後から定義したユーザ、パスワードで上書きします。gs_shで複数のGridDBクラスタを操作する場合には、接続先クラスタを変更する度にsetuserサブコマンドでユーザ、パスワードを再設定してください。
任意の変数を定義します。
サブコマンド
set 変数名 [値] |
引数
引数 | 説明 |
---|---|
変数名 | 変数名を指定します。 |
値 | 設定値を指定します。指定を省略することで、当該変数の設定値をクリアできます。 |
例)
//変数を定義
gs> set GS_PORT 10000
//変数の設定をクリア
gs> set GS_PORT
【メモ】
指定した変数の定義内容を表示します。
サブコマンド
show [変数名] |
引数
引数 | 説明 |
---|---|
変数名 | 定義内容を表示する変数名を指定します。指定を省略すると、すべての定義済み変数の内容を表示します。 |
例)
//定義した全変数を定表示
gs> show
ノード変数:
node0=Node[192.168.0.1:10000,ssh=22]
node1=Node[192.168.0.2:10000,ssh=22]
node2=Node[192.168.0.3:10000,ssh=22]
node3=Node[192.168.0.4:10000,ssh=22]
クラスタ変数:
cluster0=Cluster[name=name,200.0.0.1:1000,nodes=(node0,node1,node2)]
その他の変数:
user=admin
password=*****
ospassword=*****
【メモ】
変数に定義した内容をスクリプトファイルに保存します。
サブコマンド
save [スクリプトファイル名] |
引数
引数 | 説明 |
---|---|
スクリプトファイル名 | 保存先となるスクリプトファイル名を指定します。スクリプトファイルの拡張子はgshです。 指定を省略すると、gsadmユーザホームディレクトリの.gsshrcファイルに保存します。 |
例)
//定義した変数をファイルに保存
gs> save test.gsh
【メモ】
スクリプトファイルを読み込み、記載された処理を実行します。
サブコマンド
load [スクリプトファイル名] |
引数
引数 | 説明 |
---|---|
スクリプトファイル名 | 実行するスクリプトファイルを指定します。 指定を省略すると、gsadmユーザホームディレクトリの.gsshrcファイルを再度読み込みます。 |
例)
//スクリプトファイルを実行
gs> load test.gsh
【メモ】
稼働中のGridDBクラスタに接続し、クラスタ変数とノード変数の定義を自動で行います。
サブコマンド
sync IPアドレス ポート番号 [クラスタ変数名 [ノード変数] ] |
引数
引数 | 説明 |
---|---|
IPアドレス | GridDBクラスタに参加している任意のGridDBノードのIPアドレスを指定します。 |
ポート番号 | GridDBノードのポート番号(運用管理ツール接続用)を指定します。 |
クラスタ変数名 | クラスタ変数名を指定します。 指定を省略した場合、クラスタ変数名は「scluster」です。 |
ノード変数名 | ノード変数名を指定します。 指定を省略した場合、ノード変数名は「snode+連番」です。 |
例)
gs> sync 192.168.0.1 10040 mycluster mynode
//設定を確認
gs> show
Node variable:
mynode1=Node[192.168.0.1:10040,ssh=22]
mynode2=Node[192.168.0.2:10040,ssh=22]
mynode3=Node[192.168.0.3:10040,ssh=22]
mynode4=Node[192.168.0.4:10040,ssh=22]
mynode5=Node[192.168.0.5:10040,ssh=22]
Cluster variable:
mycluster=Cluster[name=mycluster,mode=MULTICAST,transaction=239.0.0.20:31999,sql=239.0.0.20:41999,nodes=($mynode1,$mynode2,$mynode3,$mynode4,$mynode5)]
//設定を保存
gs> save
【メモ】
GridDBクラスタの運用を管理するための機能として、管理ユーザのみ、以下の操作を実行できます。
本節では、GridDBノードとGridDBクラスタのステータスについて説明します。
クラスタは、1台以上のノードから構成されます。 ノードは、起動・停止などのノード自身の状態をステータスとして持ちます。 クラスタは、クライアントからのデータ操作の受付可否の状態を表すステータスを持ちます。クラスタステータスは、クラスタを構成するノード群のステータスに応じて決まります。
以下は、gs_shのサブコマンド操作による、ノードステータスとクラスタステータスの遷移の例です。 クラスタはノード4台で構成されています。 クラスタを構成するノードを起動(startnode)すると、ノードステータスが「起動」になります。ノードを起動したうえでクラスタを開始(startcluster)すると、各ノードステータスがクラスタへの「参加」に変わり、さらに、クラスタステータスが「稼働」になります。
以下、ノードステータスとクラスタステータスについての詳細を説明します。
ノードステータス
ノードの起動・停止・参加・離脱の操作により、ノードのステータスが「停止」「起動」「参加」に遷移します。 ノードがクラスタに参加した場合には、参加したクラスタのステータスに応じて2種類の状態があります。
ステータス | ステータス名 | 説明 |
---|---|---|
参加 | SERVICING | ノードはクラスタに参加済みで、参加しているクラスタのステータスが「稼働」 |
WAIT | ノードはクラスタに参加済みで、参加しているクラスタのステータスが「中断」 | |
起動 | STARTED | ノードは起動済みで、クラスタには参加していない |
STARTING | ノード起動中 | |
停止 | STOP | ノード停止 |
STOPPING | ノード停止処理中 |
クラスタステータス
GridDBクラスタの稼働開始・稼働停止、または、GridDBノードの参加・離脱の操作により、GridDBクラスタの状態が、「停止」、「中断」、「稼働」のステータスに遷移します。 GridDBクラスタのステータスが「稼働」の場合のみ、クライアントからのデータ操作を受け付けることが可能です。
ステータス | ステータス名 | 説明 |
---|---|---|
稼働 | SERVICE_STABLE | クラスタ構成に定義されているすべてのノードがクラスタに参加している |
SERVICE_UNSTABLE | クラスタ構成に定義されているノードの半数超がクラスタに参加している | |
中断 | WAIT | クラスタ構成に定義されているノードの半数以上がクラスタから離脱している |
INIT_WAIT | クラスタ構成に定義されているノードの1台以上がクラスタから離脱している(初めてクラスタを稼働するときは、すべてのノードがクラスタに参加しなければ「稼働」状態にならない) | |
停止 | STOP | クラスタ構成に定義されているすべてのノードがクラスタから離脱している |
GridDBクラスタを構成する全ノードをクラスタへ参加させることで、GridDBクラスタのステータスが「停止」から「稼働」へ遷移します。また、半数以上のノード離脱でGridDBクラスタは「中断」、全ノード離脱でGridDBクラスタは「停止」します。
クラスタステータスを遷移させる参加・離脱の操作については、クラスタ構成の全ノードに対して行われる操作と、1台のノードに行われる操作の2種類があります。
操作 | 操作対象が全ノードの場合 | 操作対象がノード1台の場合 |
---|---|---|
参加 | startcluster 未参加の稼働ノード群を一括参加 | joincluster 未参加の稼働ノードを参加 |
離脱 | stopcluster 参加中のノード群を一括離脱 | leavecluster 参加中のノードを離脱 |
【メモ】
各操作方法について、以下に説明します。
指定ノードを起動します。
サブコマンド
startnode ノード変数|クラスタ変数 [タイムアウト秒数] |
引数
引数 | 説明 |
---|---|
ノード変数|クラスタ変数 | 起動するノードを、ノード変数もしくはクラスタ変数で指定します。 クラスタ変数を指定した場合、クラスタ変数に定義された全ノードを起動します。 |
タイムアウト秒数 | ノード起動完了の待合わせ時間を指定します。 -1を指定した場合、即時復帰します。指定がない、または0を指定した場合、時間制限無しで待ち合わせます。 |
例)
//ノードの起動
gs> startnode $node1
ノード node1 を起動します。
すべてのノードが起動しました。
【メモ】
指定ノードを停止します。
サブコマンド
stopnode ノード|クラスタ変数 [ タイムアウト秒数 ] |
引数
引数 | 説明 |
---|---|
ノード|クラスタ変数 | 停止するノードを、ノード変数もしくはクラスタ変数で指定します。 クラスタ変数を指定した場合、クラスタ変数に定義された全ノードを停止します。 |
タイムアウト秒数 | ノード停止完了の待合わせ時間を指定します。 -1を指定した場合、即時復帰します。指定がない、または0を指定した場合、時間制限無しで待ち合わせます。 |
例)
//ノードの停止
gs> stopnode $node1
ノード node1 を停止します。
ノード node1 が停止処理を開始しました。
ノードの停止処理の完了を待っています。
すべてのノードが停止しました。
また、指定ノードを強制停止することもできます。
サブコマンド
stopnodeforce ノード|クラスタ変数 [ タイムアウト秒数 ] |
引数
引数 | 説明 |
---|---|
ノード|クラスタ変数 | 強制停止するノードを、ノード変数もしくはクラスタ変数で指定します。 クラスタ変数を指定した場合、クラスタ変数に定義された全ノードを強制停止します。 |
タイムアウト秒数 | ノード停止完了の待合わせ時間を指定します。 -1を指定した場合、即時復帰します。指定がない、または0を指定した場合、時間制限無しで待ち合わせます。 |
例)
//ノードの強制停止
gs> stopnodeforce $node1
ノード node1 を停止します。
ノード node1 が停止処理を開始しました。
ノードの停止処理の完了を待っています。
すべてのノードが停止しました。
【メモ】
指定クラスタを稼働状態にするため、クラスタ未参加の稼働ノード群を一括参加させます。
サブコマンド
startcluster クラスタ変数 [タイムアウト秒数] |
引数
引数 | 説明 |
---|---|
クラスタ変数 | GridDBクラスタを、クラスタ変数で指定します。 |
タイムアウト秒数 | クラスタへのノード参加の完了の待合わせ時間を指定します。 -1を指定した場合、即時復帰します。指定がない、または0を指定した場合、時間制限無しで待ち合わせます。 |
例)
//GridDBクラスタの起動
gs> startcluster $cluster1
クラスタの開始を待っています。
クラスタが開始しました。
【メモ】
GridDBクラスタを停止するために、GridDBクラスタ参加中のノード群を一括離脱させます。
サブコマンド
stopcluster クラスタ変数 [タイムアウト秒数] |
引数
引数 | 説明 |
---|---|
クラスタ変数 | GridDBクラスタを、クラスタ変数で指定します。 |
タイムアウト秒数 | クラスタからノードの離脱完了の待合わせ時間を指定します。 -1を指定した場合、即時復帰します。指定がない、または0を指定した場合、時間制限無しで待ち合わせます。 |
例)
//GridDBクラスタを停止
gs> stopcluster $cluster1
クラスタの停止を待っています。
クラスタが停止しました。
【メモ】
leaveclusterサブコマンドや障害などによってGridDBクラスタから一旦離脱したノードを、GridDBクラスタに再度参加させます。
サブコマンド
joincluster クラスタ変数 ノード変数 [タイムアウト秒数] |
引数
引数 | 説明 |
---|---|
クラスタ変数 | GridDBクラスタを、クラスタ変数で指定します。 |
ノード変数 | 参加させるノードを、ノード変数で指定します。 |
タイムアウト秒数 | クラスタへの参加完了の待合わせ時間を指定します。 -1を指定した場合、即時復帰します。指定がない、または0を指定した場合、時間制限無しで待ち合わせます。 |
例)
//ノード起動
gs> startnode $node2
ノード node2 を起動します。
すべてのノードが起動しました。
//ノード参加
joincluster $cluster1 $node2
ノードがクラスタに参加するのを待っています。
ノードがクラスタに参加しました。
【メモ】
指定ノードを稼働中のGridDBクラスタから離脱させます。また、指定ノードを稼働中のGridDBクラスタから強制離脱させることもできます。
サブコマンド
leavecluster ノード変数 [タイムアウト秒数] |
leaveclusterforce ノード変数 [タイムアウト秒数] |
引数
引数 | 説明 |
---|---|
ノード変数 | 離脱するノードを、ノード変数で指定します。 |
タイムアウト秒数 | クラスタからのノードが離脱完了の待合わせ時間を指定します。 -1を指定した場合、即時復帰します。指定がない、または0を指定した場合、時間制限無しで待ち合わせます。 |
例)
//ノードの離脱
gs> leavecluster $node2
ノードがクラスタから離脱するのを待っています。
ノードがクラスタから離脱しました。
【メモ】
クラスタ変数に定義していないノードを、稼働中のGridDBクラスタに参加させます。
サブコマンド
appendcluster クラスタ変数 ノード変数 [タイムアウト秒数] |
引数
引数 | 説明 |
---|---|
クラスタ変数 | GridDBクラスタを、クラスタ変数で指定します。 |
ノード変数 | 参加させるノードを、ノード変数で指定します。 |
タイムアウト秒数 | クラスタへノード増設完了の待合わせ時間を指定します。 -1を指定した場合、即時復帰します。指定がない、または0を指定した場合、時間制限無しで待ち合わせます。 |
例)
//ノードを定義
gs> setnode node5 192.168.0.5 10044
//ノードを起動
gs> startnode $node5
//ノードを増設
gs> appendcluster $cluster1 $node5
ノードがクラスタに追加されるのを待っています。
ノードがクラスタに追加されました。
クラスタ変数 $cluster1にノード変数$node5を追加します。(変数の変更を保存する場合はsaveコマンドを実行してください。)
Cluster[name=name1,239.0.5.111:33333,nodes=($node1,$node2,$node3,$node4,$node5)]
【メモ】
稼働中のGridDBクラスタのステータス、クラスタを構成する各ノードのステータスを表示します。
サブコマンド
configcluster クラスタ変数 |
引数
引数 | 説明 |
---|---|
クラスタ変数 | GridDBクラスタを、クラスタ変数で指定します。 |
例)
//クラスタの情報を表示
gs> configcluster $cluster1
Name : cluster1
ClusterName : defaultCluster
Designated Node Count : 4
Active Node Count : 4
ClusterStatus : SERVICE_STABLE
Nodes:
Name Role Host:Port Status
-------------------------------------------------
node1 F 10.45.237.151:10040 SERVICING
node2 F 10.45.237.152:10040 SERVICING
node3 M 10.45.237.153:10040 SERVICING
node4 F 10.45.237.154:10040 SERVICING
【メモ】
GridDBクラスタの構成情報を表示します。
サブコマンド
config ノード変数 |
引数
引数 | 説明 |
---|---|
ノード変数 | 表示対象のGridDBクラスタに所属するノードを、ノード変数で指定します。 |
例)
//クラスタの構成情報を表示
gs> config $node1
{
"follower" : [ {
"address" : "10.45.237.151",
"port" : 10040
}, {
"address" : "10.45.237.152",
"port" : 10040
}, {
"address" : "10.45.237.153",
"port" : 10040
}, {
"address" : "10.45.237.154",
"port" : 10040
} ],
"master" : {
"address" : "10.45.237.155",
"port" : 10040
},
"multicast" : {
"address" : "239.0.5.111",
"port" : 33333
},
"self" : {
"address" : "10.45.237.150",
"port" : 10040,
"status" : "ACTIVE"
}
}
【メモ】
指定ノードの状態および統計情報を表示します。
サブコマンド
stat ノード変数 |
引数
引数 | 説明 |
---|---|
ノード変数 | 表示対象のノードを、ノード変数で指定します。 |
例)
//ノードの状態、統計情報を表示
gs> stat $node1
{
"checkpoint" : {
"archiveLog" : 0,
"backupOperation" : 0,
"duplicateLog" : 0,
"endTime" : 1413852025843,
"mode" : "NORMAL_CHECKPOINT",
:
:
}
【メモ】
指定ノードのログを表示します。
サブコマンド
logs ノード変数 |
引数
引数 | 説明 |
---|---|
ノード変数 | 表示対象のノードを、ノード変数で指定します。 |
例)
//ノードのログを表示
gs> logs $node0
2013-02-26T13:45:58.613+0900 c63x64n1 4051 INFO SYSTEM_SERVICE ../server/system_service.cpp void SystemService::joinCluster(const char8_t*, uint32_t) line=179 : joinCluster requested (clusterName="defaultCluster", minNodeNum=1)
2013-02-26T13:45:58.616+0900 c63x64n1 4050 INFO SYSTEM_SERVICE ../server/system_service.cpp virtual void SystemService::JoinClusterHandler::callback(EventEngine&, util::StackAllocator&, Event*, NodeDescriptor) line=813 : ShutdownClusterHandler called g
2013-02-26T13:45:58.617+0900 c63x64n1 4050 INFO SYSTEM_SERVICE ../server/system_service.cpp void SystemService::completeClusterJoin() line=639 : completeClusterJoin requested
2013-02-26T13:45:58.617+0900 c63x64n1 4050 INFO SYSTEM_SERVICE ../server/system_service.cpp virtual void SystemService::CompleteClusterJoinHandler::callback(EventEngine&, util::StackAllocator&, Event*, NodeDescriptor) line=929 : CompleteClusterJoinHandler called
また、ログの出力レベルの表示、および変更ができます。
サブコマンド
logconf ノード変数 [カテゴリ名 [ログレベル]] |
引数
引数 | 説明 |
---|---|
ノード変数 | 操作対象のノードを、ノード変数で指定します。 |
カテゴリ名 | 操作対象のログカテゴリ名を指定します。省略した場合、全ログカテゴリの出力レベルを 表示 します。 |
ログレベル | ログレベルを指定すると、指定カテゴリのログレベルを 変更 します。 省略すると、指定カテゴリのログレベルを 表示 します。 |
例)
//ノードのログレベルを表示
gs> logconf $node0
{
"CHECKPOINT_SERVICE" : "INFO",
"CHUNK_MANAGER" : "ERROR",
:
}
// ログレベルの変更
gs> logconf $node0 SYSTEM WARNING
// カテゴリ名を指定したログレベルの表示
gs> logconf $node0 SYSTEM
{
"SYSTEM" : "WARNING"
}
【メモ】
実行中のSQL処理を表示します。
サブコマンド
showsql [クエリID] |
引数
引数 | 説明 |
---|---|
クエリID | 表示する対象のSQL処理を特定するIDです。 指定した場合は、指定したクエリIDのSQL処理情報のみ表示します。 未指定の場合は実行中のSQL処理の一覧を表示します。 クエリIDの値は実行中のSQL処理の表示にて取得できます。 |
gs[public]> showsql
=======================================================================
query id: e6bf24f5-d811-4b45-95cb-ecc643922149:3
start time: 2019-04-02T06:02:36.939+09:00
elapsed time: 53
database name: public
application name: gs_admin
node: 192.168.56.101:10040
sql: INSERT INTO TAB_711_0101 SELECT a.id, b.longval FROM TAB_711_0001 a LEFT OU
job id: e6bf24f5-d811-4b45-95cb-ecc643922149:3:5:0
node: 192.168.56.101:10040
#---------------------------
【メモ】
接続先クラスタの各ノード内のスレッドが実行中のイベント一覧を表示します。
サブコマンド
showevent |
例)
gs[public]> showevent
=======================================================================
worker id: 0
start time: 2019-03-05T05:28:21.000+09:00
elapsed time: 1
application name:
node: 192.168.56.101:10040
service type: TRANSACTION_SERVICE
event type: PUT_MULTIPLE_ROWS
cluster partition id: 5
#---------------------------
【メモ】
コネクションの一覧を表示します。
サブコマンド
showconnection |
例)
gs[public]> showconnection
=======================================================================
application name: gs_admin
creation time: 2019-04-02T06:09:42.523+09:00 service type: TRANSACTION
elapsed time: 106 node: 192.168.56.101:10001 remote: 192.168.56.101:56166
dispatching event count: 5 sending event count: 5
#---------------------------
【メモ】
実行中のSQL処理をキャンセルします。
サブコマンド
killsql クエリID |
引数
引数 | 説明 |
---|---|
クエリID | キャンセルする対象のSQL処理を特定するIDです。 指定する値は実行中のSQL処理の表示にて取得できます。 |
例)
gs[public]> killsql 5b9662c0-b34f-49e8-92e7-7ca4a9c1fd4d:1
【メモ】
データ操作を実行するには、操作対象のクラスタに接続する必要があります。 接続時に設定したデータベース(データベース名省略時は「public」)のデータが操作対象になります。
データ操作を実行するGridDBクラスタに接続します。
サブコマンド
connect クラスタ変数 [データベース名] |
引数
引数 | 説明 |
---|---|
クラスタ変数 | 接続先となるGridDBクラスタを、クラスタ変数で指定します。 |
データベース名 | データベース名を指定します。 |
例)
//GridDBクラスタに接続
//NoSQLの場合
gs> connect $cluster1
接続に成功しました(NoSQL)。
gs[public]>
gs> connect $cluster1 userDB
接続に成功しました(NoSQL)。
gs[userDB]>
//NewSQLの場合(NoSQL/NewSQLインターフェースの両方を設定)
gs> connect $cluster1
接続に成功しました(NoSQL)。
接続に成功しました(NewSQL)。
gs[public]>
【メモ】
検索を実行し、検索結果を保持します。
サブコマンド
tql コンテナ名 クエリ ; |
引数
引数 | 説明 |
---|---|
コンテナ名 | 検索対象となるコンテナを指定します。 |
クエリ ; | 実行するTQL文を指定します。TQL文の最後にはセミコロン(;)が必要です。 |
例)
//検索を実行
gs[public]> tql c001 select *;
5 件ヒットしました。(25 ms)
【メモ】
SQL文を実行し、検索結果を保持します。
サブコマンド
sql SQL文 ; |
引数
引数 | 説明 |
---|---|
SQL文 ; | 実行するSQL文を指定します。SQL文の最後にはセミコロン(;)が必要です。 |
例)
gs[public]> sql select * from con1; → SQLの検索
10,000 件ヒットしました。(52 ms)
gs[public]> get 1 → SQLの結果表示
id,name
----------------------
0,tanaka
1 件の取得が完了しました。
SQL文の先頭が下記文字列のいずれかである場合、サブコマンド名sqlを省略することができます。
【メモ】
SQL文の種類により、以下のように結果が表示されます。
処理 | 正常終了時の実行結果 |
---|---|
検索 SELECT | 検索結果の件数を表示します。検索結果はサブコマンドget/getcsv/getnoprintで表示します。 |
更新 INSERT/UPDATE/DELETE | 更新したロウ数を表示します。 |
DDL文 | 何も表示されません。 |
保持する検索結果から、指定件数を取得します。結果の出力方法には以下の3種類があります。
(A) 取得した結果を標準出力に表示します。
サブコマンド
get [取得件数] |
引数
引数 | 説明 |
---|---|
取得件数 | 検索結果の取得件数を指定します。省略すると、全ての検索結果を取得して表示します。 |
(B) 取得した結果をCSV形式でファイルに保存します。
サブコマンド
getcsv CSVファイル名 [取得件数] |
引数
引数 | 説明 |
---|---|
CSVファイル名 | 検索結果を保存するCSVファイル名を指定します。 |
取得件数 | 検索結果の取得件数を指定します。省略すると、全ての検索結果を取得してファイルに保存します。 |
(C) 取得した結果を出力しません。
サブコマンド
getnoprint [取得件数] |
引数
引数 | 説明 |
---|---|
取得件数 | 検索結果の取得件数を指定します。省略すると、全ての検索結果を取得します。 |
例)
//検索を実行
gs[public]> tql c001 select *;
5 件ヒットしました。
//1件目を取得して表示
gs[public]> get 1
name,status,count
mie,true,2
1 件の取得が完了しました。
//2~3件目を取得してファイルに保存
gs[public]> getcsv /var/lib/gridstore/test2.csv 2
2 件の取得が完了しました。
//4件目を取得
gs[public]> getnoprint 1
1 件の取得が完了しました。
//5件目を取得して表示
gs[public]> get 1
name,status,count
akita,true,45
1 件の取得が完了しました。
【メモ】
指定TQL文の実行計画を表示します。検索は実行しません。
サブコマンド
tqlexplain コンテナ名 クエリ ; |
引数
引数 | 説明 |
---|---|
コンテナ名 | 対象となるコンテナを指定します。 |
クエリ ; | 実行計画を取得するTQL文を指定します。TQL文の最後にはセミコロン(;)が必要です。 |
例)
//実行計画を取得
gs[public]> tqlexplain c001 select * ;
0 0 SELECTION CONDITION NULL
1 1 INDEX BTREE ROWMAP
2 0 QUERY_EXECUTE_RESULT_ROWS INTEGER 0
また、指定TQL文を実際に実行して、実行計画とともに処理行数等の実測値を表示することもできます。
サブコマンド
tqlanalyze コンテナ名 クエリ ; |
引数
引数 | 説明 |
---|---|
コンテナ名 | 対象となるコンテナを指定します。 |
クエリ ; | 実行計画を取得するTQL文を指定します。TQL文の最後にはセミコロン(;)が必要です。 |
例)
//検索を実行して実行計画を取得
gs[public]> tqlanalyze c001 select *;
0 0 SELECTION CONDITION NULL
1 1 INDEX BTREE ROWMAP
2 0 QUERY_EXECUTE_RESULT_ROWS INTEGER 5
3 0 QUERY_RESULT_TYPE STRING RESULT_ROW_ID_SET
4 0 QUERY_RESULT_ROWS INTEGER 5
【メモ】
tqlをクローズして、保持する検索結果を破棄します。
サブコマンド
tqlclose |
クエリをクローズして、保持する検索結果を破棄します。
サブコマンド
queryclose |
例)
//検索結果を破棄
gs[public]> tqlclose
gs[public]> queryclose
【メモ】
GridDBクラスタから切断します。
サブコマンド
disconnect |
例)
//GridDBクラスタから切断
gs[public]> disconnect
gs>
【メモ】
SQLの検索実行時、件数取得処理を実行するかどうかを設定します。
サブコマンド
sqlcount boolean |
引数
引数 | 説明 |
---|---|
boolean | FALSEを指定するとsqlサブコマンドによる検索時に件数取得処理を実行しません。また、ヒット件数も表示されなくなります。既定値はTRUEです。 |
例)
gs[public]> sql select * from mycontainer;
25550 件ヒットしました。(33 ms)
gs[public]> sqlcount FALSE
gs[public]> sql select * from mycontainer;
検索を実行しました。(33 ms)
【メモ】
データベース管理を実行するサブコマンドについて説明します。 データベース管理は、操作対象のクラスタに接続してから実行してください。(サブコマンド connect)
指定された名前のデータベースを作成します。
サブコマンド
createdatabase データベース名 |
引数
引数 | 説明 |
---|---|
データベース名 | 作成するデータベースの名前を指定します。 |
例)
//"db1"という名前のデータベースを作成
gs[public]> createdatabase db1
【メモ】
指定された名前のデータベースを削除します。
サブコマンド
dropdatabase データベース名 |
引数
引数 | 説明 |
---|---|
データベース名 | 削除するデータベースの名前を指定します。 |
例)
//以下のようなデータベースを削除
//db1:データベース内にコンテナがない
//db2:データベースが存在しない
//db3:データベース内にコンテナがある
gs[public]> dropdatabase db1 // 正常終了
gs[public]> dropdatabase db2 // 異常終了
D20340: データベース "db2"は存在しません。
gs[public]> dropdatabase db3 // 異常終了
D20336: データベース削除でエラーが発生しました。 : msg=[[145045:JC_DATABASE_NOT_EMPTY]
Illegal target error by non-empty database.]
【メモ】
現在のカレントデータベース名を表示します。
サブコマンド
getcurrentdatabase |
例)
gs[db1]> getcurrentdatabase
db1
データベース一覧およびアクセス権情報を表示します。
サブコマンド
showdatabase [データベース名] |
引数
引数 | 説明 |
---|---|
データベース名 | 表示するデータベースの名前を指定します。 |
例)
gs[public]> showdatabase
Name ACL
---------------------------------
public ALL_USER
DATABASE001 user01 ALL
DATABASE001 user02 READ
DATABASE002 user03 ALL
DATABASE003
gs[public]> showdatabase DATABASE001
Name ACL
---------------------------------
DATABASE001 user01 ALL
DATABASE001 user02 READ
【メモ】
データベースへのアクセス権を付与します。
サブコマンド
grantacl 権限 データベース名 ユーザ名 |
引数
引数 | 説明 |
---|---|
権限 | アクセス権の権限(ALL、READ)を指定します。 「ALL」権限はコンテナ作成やロウ登録、検索、索引作成などコンテナに関するすべての操作が実行できます。 「READ」権限は検索の操作のみ実行できます。 |
データベース名 | アクセス権付与の対象となるデータベース名を指定します。 |
ユーザ名 | アクセス権を付与するユーザの名前を指定します。 |
例)
gs[public]> grantacl ALL DATABASE001 user01
【メモ】
データベースへのアクセス権を剥奪します。
サブコマンド
revokeacl 権限 データベース名 ユーザ名 |
引数
引数 | 説明 |
---|---|
権限 | アクセス権の権限(ALL、READ)を指定します。 |
データベース名 | アクセス権剥奪の対象となるデータベース名を指定します。 |
ユーザ名 | アクセス権を剥奪するユーザの名前を指定します。 |
例)
gs[public]> revokeacl ALL DATABASE001 user02
【メモ】
ユーザ管理を実行するサブコマンドについて説明します。 ユーザ管理は、操作対象のクラスタに接続してから実行してください(サブコマンド connect)。
指定された名前の一般ユーザを作成します。
サブコマンド
createuser ユーザ名 パスワード |
引数
引数 | 説明 |
---|---|
ユーザ名 | 作成するユーザの名前を指定します。 |
パスワード | 作成するユーザのパスワードを指定します。 |
例)
gs[public]> createuser user01 pass001
【メモ】
指定された名前のユーザを削除します。
サブコマンド
dropuser ユーザ名 |
引数
引数 | 説明 |
---|---|
ユーザ名 | 削除するユーザの名前を指定します。 |
例)
gs[public]> dropuser user01
【メモ】
パスワードを変更します。
サブコマンド
一般ユーザのみ実行 | setpassword パスワード |
管理ユーザのみ実行 | setpassword ユーザ名 パスワード |
引数
引数 | 説明 |
---|---|
パスワード | 変更するパスワードを指定します。 |
ユーザ名 | パスワードを変更するユーザの名前を指定します。 |
例)
gs[public]> setpassword newPass009
【メモ】
一般ユーザとロールの情報を表示します。
サブコマンド
showuser [ユーザ名|ロール名] |
引数
引数 | 説明 |
---|---|
ユーザ名 | 表示するユーザ名またはロール名を指定します。 |
例)
gs[public]> showuser
Name Type
--------------------------------------------
user001 General User
ldapUser Role
ldapGroup Role
gs[public]> showuser user01
Name : user001
Type : General User
GrantedDB: public
DATABASE001 ALL
DATABASE003 READ
gs[public]> showuser ldapUser
Name : ldapUser
Type : Role
GrantedDB: public
DATABASE002 ALL
【メモ】
コンテナへの操作を実行するサブコマンドについて説明します。 コンテナ管理は、操作対象のクラスタに接続してから実行してください(サブコマンド connect)。 接続先のデータベース上のコンテナが操作対象になります。
コンテナを作成します。
サブコマンド(簡易版)
コンテナ(コレクション) | createcollection コンテナ名 カラム名 タイプ [カラム名 タイプ …] |
コンテナ(時系列コンテナ) | createtimeseries コンテナ名 圧縮方式 カラム名 タイプ [カラム名 タイプ …] |
サブコマンド(詳細版)
コンテナ(コレクション/時系列コンテナ) | createcontainer コンテナ定義ファイル [コンテナ名] |
各引数の説明
引数 | 説明 |
---|---|
コンテナ名 | 作成するコンテナの名前を指定します。createcontainerコマンドの場合に省略すると、コンテナ定義ファイルに記述されているコンテナ名でコンテナ作成します。 |
カラム名 | カラム名を指定します。 |
タイプ | カラムのタイプを指定します。 |
圧縮方式 | 時系列データの場合、データの圧縮方式を指定します。 |
コンテナ定義ファイル | コンテナ定義情報をJSON形式で格納したファイルを指定します。 |
簡易版
コンテナ名とカラム情報(カラム名とタイプ)を指定してコンテナを作成します。
詳細版
コンテナ定義情報をjsonファイルで指定してコンテナを作成します。
コンテナ定義ファイルを利用する場合、エクスポートの機能で–outオプションを指定するとメタ情報ファイルが出力されます。出力されたメタ情報ファイルを編集して、コンテナ定義ファイルとして流用することができます。
例) 出力されたメタ情報ファイルをコンテナ定義ファイルとして流用する場合
{
"version":"2.1.00", ←無効
"container":"container_354",
"database":"db2", ←無効
"containerType":"TIME_SERIES",
"containerFileType":"binary", ←無効
"containerFile":"20141219_114232_098_div1.mc", ←無効
"rowKeyAssigned":true,
"partitionNo":0, ←無効
"columnSet":[
{
"columnName":"timestamp",
"type":"timestamp",
"notNull":true
},
{
"columnName":"active",
"type":"boolean",
"notNull":true
},
{
"columnName":"voltage",
"type":"double",
"notNull":true
}
]
}
コンテナを削除します。
サブコマンド
dropcontainer コンテナ名 |
引数
引数 | 説明 |
---|---|
コンテナ名 | 削除するコンテナの名前を指定します。 |
例)
gs[public]> dropcontainer Con001
【メモ】
コンテナにロウを登録します。
サブコマンド
putrow コンテナ名 値 [値…] |
引数
引数 | 説明 |
---|---|
コンテナ名 | ロウを登録するコンテナの名前を指定します。 |
値 | 登録するロウの値を指定します。 |
例)
gs[public]> putrow mycontainer 'key1' 1 1.0
gs[public]> putrow mycontainer 'key2' 2 2.0
gs[public]> putrow mycontainer 'key3' 3 null
//結果確認
gs[public]> tql mycontainer select *;
3 results. (1 ms)
gs[public]> get
key,val1,val2
key1,1,1.0
key2,2,2.0
key3,3,(NULL)
3 results had been acquired.
コンテナのロウを削除します。
サブコマンド
removerow コンテナ名 ロウキー値 [ロウキー値…] |
引数
引数 | 説明 |
---|---|
コンテナ名 | ロウを削除するコンテナの名前を指定します。 |
値 | 削除するロウのロウキー値を指定します。 |
例)
gs[public]> removerow mycontainer 'key1'
gs[public]> removerow mycontainer 'key2'
//結果確認
gs[public]> tql mycontainer select *;
1 results. (1 ms)
gs[public]> get
key,val1,val2
key3,3,(NULL)
1 results had been acquired.
【メモ】
コンテナ情報を表示します。
サブコマンド
showcontainer [コンテナ名] |
引数
引数 | 説明 |
---|---|
コンテナ名 | 表示対象のコンテナ名を指定します。省略した場合、全てのコンテナの一覧を表示します。 |
例)
//コンテナ一覧を表示
gs[public]> showcontainer
Database : public
Name Type PartitionId
---------------------------------------------
TEST_TIME_0001 TIME_SERIES 3
TEST_TIME_0004 TIME_SERIES 12
TEST_TIME_0005 TIME_SERIES 26
cont003 COLLECTION 27
TABLE_01 COLLECTION 58
TEST_COLLECTION_0001 COLLECTION 79
//指定コンテナの情報を表示
gs[public]> showcontainer cont003
Database : public
Name : cont003
Type : COLLECTION
Partition ID: 27
DataAffinity: -
Columns:
No Name Type CSTR RowKey
------------------------------------------------------------------------------
0 col1 INTEGER NN [RowKey]
1 col2 STRING
2 col3 TIMESTAMP
Indexes:
Name :
Type : TREE
Columns:
No Name
--------------------------
0 col1
Name :
Type : TREE
Columns:
No Name
--------------------------
0 col2
Name : myIndex
Type : TREE
Columns:
No Name
--------------------------
0 col2
1 col3
【メモ】
「テーブルパーティショニング情報」は、JDBC接続されている場合は詳細な情報が表示されます。表示される項目は、「パーティショニングの種別」(Partition Type)、「パーティショニングキーのカラム名」(Partition Column)、さらに、インターバルの場合は「分割幅値」(Partition Interval Value)「単位」(Partition Interval Unit)、ハッシュの場合は「分割数」(Partition Division Count)です。インターバル-ハッシュパーティショニングの場合は、インターバルとハッシュのそれぞれについて各項目が表示されます。
//指定コンテナの情報を表示 (JDBC接続されている場合)
gs[userDB]> showcontainer time018
Database : userDB
Name : time018
Type : TIME_SERIES
Partition ID: 37
DataAffinity: -
Partitioned : true
Partition Type : INTERVAL
Partition Column : date
Partition Interval Value : 730
Partition Interval Unit : DAY
Sub Partition Type : HASH
Sub Partition Column : date
Sub Partition Division Count : 16
:
:
//指定コンテナの情報を表示 (JDBC接続されていない場合)
gs[userDB]> showcontainer time018
Database : userDB
Name : time018
Type : TIME_SERIES
Partition ID: 37
DataAffinity: -
Partitioned : true (need SQL connection for details)
:
:
テーブル情報を表示します。showcontainerとの互換コマンドです。
サブコマンド
showtable [テーブル名] |
引数
引数 | 説明 |
---|---|
テーブル名 | 表示対象のテーブル名を指定します。省略した場合、全てのテーブルの一覧を表示します。 |
コンテナ名からコンテナを検索します。
サブコマンド
searchcontainer [コンテナ名] |
引数
引数 | 説明 |
---|---|
コンテナ名 | 検索対象のコンテナ名を指定します。指定しない場合、すべてのコンテナを表示します。また、コンテナ名にワイルドカード(「%」は任意の0文字以上、「_」は任意の一文字)が指定できます。 |
例)
gs[public]> searchcontainer mycontainer
mycontainer
gs[public]> searchcontainer my%
my
my_container
mycontainer
gs[public]> searchcontainer my\_container
my_container
ビュー名からビューを検索します。
サブコマンド
searchview [ビュー名] |
引数
引数 | 説明 |
---|---|
ビュー名 | 検索対象のビュー名を指定します。指定しない場合、すべてのビューを表示します。また、ビュー名にワイルドカード(「%」は任意の0文字以上、「_」は任意の一文字)が指定できます。 |
例)
gs[public]> searchview myview
myview
gs[public]> searchview my%
my
my_view
myview
gs[public]> searchview my\_view
my_view
指定したコンテナのカラムに索引を作成します。
サブコマンド
createindex コンテナ名 カラム名 索引タイプ… |
引数
引数 | 説明 |
---|---|
コンテナ名 | 索引操作対象のカラムが所属するコンテナ名を指定します。 |
カラム名 | 索引操作対象のカラム名を指定します。 |
索引タイプ… | 索引タイプを指定します。索引タイプはTREE、SPATIALのいずれかを指定します。 |
例)
//索引の作成
gs[public]> createindex cont003 col2 tree
gs[public]> showcontainer cont003
Database : public
Name : cont003
Type : COLLECTION
Partition ID: 27
DataAffinity: -
Columns:
No Name Type CSTR RowKey
------------------------------------------------------------------------------
0 col1 INTEGER NN [RowKey]
1 col2 STRING
2 col3 TIMESTAMP
Indexes:
Name :
Type : TREE
Columns:
No Name
--------------------------
0 col1
Name :
Type : TREE
Columns:
No Name
--------------------------
0 col2
【メモ】
指定したコンテナのカラムに複合索引を作成します。
サブコマンド
createcompindex コンテナ名 カラム名… |
引数
引数 | 説明 |
---|---|
コンテナ名 | 索引操作対象のカラムが所属するコンテナ名を指定します。 |
カラム名 | 索引操作対象のカラム名を指定します。複数指定します。 |
例)
//索引の作成
gs[public]> createcompindex cont003 col2 col3
gs[public]> showcontainer cont003
Database : public
Name : cont003
Type : COLLECTION
Partition ID: 27
DataAffinity: -
Columns:
No Name Type CSTR RowKey
------------------------------------------------------------------------------
0 col1 INTEGER NN [RowKey]
1 col2 STRING
2 col3 TIMESTAMP
Indexes:
Name :
Type : TREE
Columns:
No Name
--------------------------
0 col1
Name :
Type : TREE
Columns:
No Name
--------------------------
0 col2
1 col3
【メモ】
指定したコンテナのカラムの索引を削除します。
サブコマンド
dropindex コンテナ名 カラム名 索引タイプ… |
引数
引数 | 説明 |
---|---|
コンテナ名 | 索引操作対象のカラムが所属するコンテナ名を指定します。 |
カラム名 | 索引操作対象のカラム名を指定します。 |
索引タイプ… | 索引タイプを指定します。索引タイプはTREE、SPATIALのいずれかを指定します。 |
例)
//索引の削除
gs[public]> showcontainer cont004
Database : public
Name : cont004
:
:
Indexes:
Name :
Type : TREE
Columns:
No Name
--------------------------
0 id
Name : myIndex
Type : TREE
Columns:
No Name
--------------------------
0 value
gs[public]> dropindex cont004 value tree
gs[public]> showcontainer cont004
Database : public
Name : cont004
:
:
Indexes:
Name :
Type : TREE
Columns:
No Name
--------------------------
0 id
【メモ】
指定したコンテナのカラムの複合索引を削除します。
サブコマンド
dropcompindex コンテナ名 カラム名… |
引数
引数 | 説明 |
---|---|
コンテナ名 | 索引操作対象のカラムが所属するコンテナ名を指定します。 |
カラム名 | 索引操作対象のカラム名を指定します。複数指定します。 |
例)
//索引の削除
gs[public]> showcontainer cont003
Database : public
Name : cont003
Type : COLLECTION
Partition ID: 27
DataAffinity: -
Columns:
No Name Type CSTR RowKey
------------------------------------------------------------------------------
0 col1 INTEGER NN [RowKey]
1 col2 STRING
2 col3 TIMESTAMP
Indexes:
Name :
Type : TREE
Columns:
No Name
--------------------------
0 col1
Name :
Type : TREE
Columns:
No Name
--------------------------
0 col2
1 col3
gs[public]> dropcompindex cont003 col2 col3
gs[public]> showcontainer cont003
Database : public
Name : cont003
Type : COLLECTION
Partition ID: 27
DataAffinity: -
Columns:
No Name Type CSTR RowKey
------------------------------------------------------------------------------
0 col1 INTEGER NN [RowKey]
1 col2 STRING
2 col3 TIMESTAMP
Indexes:
Name :
Type : TREE
Columns:
No Name
--------------------------
0 col1
【メモ】
SQL実行計画を表示するサブコマンドについて説明します。
SQL分析結果(グローバルプラン)をテキスト形式またはJSON形式で表示します。
サブコマンド
getplantxt [テキストファイル名] |
引数
引数 | 説明 |
---|---|
テキストファイル名 | 結果を保存するファイル名を指定します。 |
例)
gs[public]> EXPLAIN ANALYZE select * from table1, table2 where table1.value=0 and table1.id=table2.id;
検索を実行しました。 (11 ms)
gs[public]> getplantxt
Id Type Input Rows Lead time Actual time Node And more..
--------------------------------------------------------------------------------------------------------------------
0 SCAN - - 0 0 192.168.15.161:10001 table: {table1} INDEX SCAN
1 SCAN 0 0 2 2 192.168.15.161:10001 table: {table1, table2} INDEX SCAN JOIN_EQ_HASH
2 RESULT 1 0 0 0 192.168.15.161:20001
【メモ】
サブコマンド
getplanjson [JSONファイル名] |
引数
引数 | 説明 |
---|---|
JSONファイル名 | 結果を保存するファイル名を指定します。 |
例)
gs[public]> getplanjson
{
"nodeList" : [ {
"cmdOptionFlag" : 65,
"id" : 0,
"indexInfoList" : [ 2, 0, 0 ],
"inputList" : [ ],
"outputList" : [ {
"columnId" : 0,
"columnType" : "STRING",
"inputId" : 0,
"op" : "EXPR_COLUMN",
"qName" : {
"db" : "public",
"name" : "id",
"table" : "collection_nopart_AA22"
},
"srcId" : 1
}, {
・
・
・
【メモ】
SQL分析結果の詳細情報をJSON形式で表示します。
サブコマンド
gettaskplan プランID |
引数
引数 | 説明 |
---|---|
プランID | 表示する対象のプランIDを指定します。 |
例)
gs[public]> gettaskplan 0
{
"cmdOptionFlag" : 65,
"id" : 0,
"indexInfoList" : [ 2, 0, 0 ],
"inputList" : [ ],
"outputList" : [ {
"columnId" : 0,
"columnType" : "STRING",
"inputId" : 0,
"op" : "EXPR_COLUMN",
"qName" : {
"db" : "public",
"name" : "id",
"table" : "collection_nopart_AA22"
},
"srcId" : 1
}, {
・
・
・
【メモ】
その他のサブコマンドについて説明します。
実行したサブコマンドを標準出力に表示します。
サブコマンド
echo boolean |
引数
引数 | 説明 |
---|---|
boolean | TRUEを指定すると、実行したサブコマンドを標準出力に表示します。既定値はFALSEです。 |
例)
//実行したサブコマンドを標準出力に表示
gs> echo TRUE
【メモ】
指定した文字列、もしくは変数の定義内容を表示します。
サブコマンド
print メッセージ |
引数
引数 | 説明 |
---|---|
メッセージ | 表示する文字列もしくは変数を指定します。 |
例)
//文字列の表示
gs> print printを実行しました。
printを実行しました。
【メモ】
指定した秒数スリープします。
サブコマンド
sleep 秒数 |
引数
引数 | 説明 |
---|---|
秒数 | スリープする秒数を指定します。 |
例)
//10秒間スリープ
gs> sleep 10
【メモ】
外部コマンドを実行します。
サブコマンド
exec 外部コマンド [外部コマンド引数] |
引数
引数 | 説明 |
---|---|
外部コマンド | 外部コマンドを指定します。 |
外部コマンド引数 | 外部コマンドの引数を指定します。 |
例)
//カレントディレクトリのファイル情報を表示
gs> exec ls -la
【メモ】
gs_shを終了します。
サブコマンド
exit quit |
例)
//gs_shを終了します。
gs> exit
また、サブコマンドでエラーが発生した場合に、gs_shを終了するように設定できます。
サブコマンド
errexit boolean |
引数
引数 | 説明 |
---|---|
boolean | TRUEを指定すると、サブコマンドでエラーが発生した場合に、gs_shが終了します。デフォルトはFALSEです。 |
例)
//サブコマンドでエラーが発生した場合にgs_shが終了するように設定
gs> errexit TRUE
【メモ】
サブコマンドの説明を表示します。
サブコマンド
help [サブコマンド名] |
引数
引数 | 説明 |
---|---|
サブコマンド名 | 説明を表示するサブコマンド名を指定します。省略した場合、サブコマンドの一覧を表示します。 |
例)
//サブコマンドの説明表示
gs> help exit
exit
gs_shを終了します。
【メモ】
gs_shのバージョンを表示します。
サブコマンド
version |
例)
//バージョンの表示
gs> version
gs_sh version 2.0.0
【メモ】
タイムゾーンの設定を行います。
サブコマンド
settimezone [設定値] |
引数
引数 | 説明 |
---|---|
設定値 | 設定値の形式は「±hh:mm」「±hhmm」「Z」「auto」です。例えば、日本時間の場合、設定値は「+09:00」です。 値が未設定の場合、タイムゾーンの設定値をクリアします。 |
【メモ】
認証方式の設定を行います。LDAP認証の詳細は、『GridDB 機能リファレンス』を参照してください。
サブコマンド
setauthmethod [認証方式] |
引数
引数 | 説明 |
---|---|
認証方式 | 認証方式として、INTERNAL(内部認証) / LDAP(LDAP認証)のいずれかを指定します。値が未設定の場合、設定値をクリアします。設定値はauthentication変数で確認できます。 |
例)
gs[public]> setauthmethod ldap
//設定の確認
gs[public]> print $authentication
ldap
【メモ】
SSLにより、GridDBクラスタとの通信を保護します。
GridDBクラスタでSSL接続設定を有効に設定した後に、以下のサブコマンドでgs_shのSSL接続設定を有効にしてください。SSL接続の詳細は、『GridDB 機能リファレンス』を参照してください。
サブコマンド
setsslmode [SSL接続設定] |
引数
引数 | 説明 |
---|---|
SSL接続設定 | SSL接続設定として、DISABLED(SSL無効)、REQUIRED(SSL有効)、VERIFY(SSL有効かつサーバ証明書検証実施)のいずれかを指定します。規定値はDISABLEDです。設定値はsslMode変数で確認できます。 |
例)
gs> setsslmode REQUIRED
//設定の確認
gs[public]> print $sslMode
REQUIRED
【メモ】
GS_COMMON_JVM_ARGS
に指定してください。信頼する認証局の証明書の有効期限切れ確認は未サポートです。例)
GS_COMMON_JVM_ARGS="-Djavax.net.ssl.trustStore=/var/lib/gridstore/admin/keystore.jks -Djavax.net.ssl.trustStorePassword=changeit"
export GS_COMMON_JVM_ARGS
複数のネットワークインターフェースがあるときにクラスタのネットワーク構成をマルチキャスト方式にする場合、マルチキャストパケットを受信するインターフェースのIPアドレスを指定します。
サブコマンド
setntfif [IPアドレス] |
引数
引数 | 説明 |
---|---|
IPアドレス | マルチキャストパケットを受信するインターフェースのIPアドレスをIPv4形式で指定します。値が未設定の場合、設定値をクリアします。設定値はnotificationInterfaceAddress変数で確認できます。 |
例)
gs[public]> setntfif 192.168.1.100
//設定の確認
gs[public]> print $notificationInterfaceAddress
192.168.1.100
【メモ】
実行したサブコマンドの履歴を表示します。
サブコマンド
history |
historyサブコマンドで表示した履歴よりサブコマンドを再実行します。
サブコマンド
!履歴番号 |
引数
引数 | 説明 |
---|---|
履歴番号 | historyサブコマンドで表示した履歴より、再実行したいサブコマンドを番号で指定します。 |
直前に実行したサブコマンドを再実行します。
サブコマンド
!! |
例)
gs> history
1 connect $mycluster
2 showcontainer
3 select * from mytable;
:
210 configcluster $mycluster
211 history
gs> !210
gs> configcluster $mycluster
:
gs> !!
gs> configcluster $mycluster
:
【メモ】
コマンド一覧
gs_sh [スクリプトファイル] |
gs_sh -v | –version |
gs_sh -h | –help |
オプション仕様
オプション | 必須 | 説明 |
---|---|---|
-v | –version | ツールのバージョンを表示します。 | |
-h | –help | ヘルプメッセージとしてコマンド一覧を表示します。 |
【メモ】
GridDBクラスタ定義 サブコマンド一覧
サブコマンド | 引数 | 説明 | *1 |
---|---|---|---|
setnode | ノード変数名 IPアドレス ポート番号 [SSHポート番号] | ノード変数を定義します。 | |
setcluster | クラスタ変数名 クラスタ名 マルチキャストアドレス ポート番号 [ノード変数… ] | クラスタ変数を定義します。 | |
setclustersql | クラスタ変数名 クラスタ名 SQLアドレス SQLポート番号 | クラスタ構成にSQLの接続先を定義します。 | |
modcluster | クラスタ変数名 add|remove ノード変数… | クラスタ変数に対してノード変数を追加、削除します。 | |
setuser | ユーザ名 パスワード [OSユーザgsadmのパスワード] | クラスタにアクセスするユーザおよびパスワードを定義します。 | |
set | 変数名 [値] | 任意の変数を定義します。 | |
show | [変数名] | 変数の定義内容を表示します。 | |
save | [スクリプトファイル名] | 変数定義をスクリプトファイルに保存します。 | |
load | [スクリプトファイル名] | スクリプトファイルを読み込み、実行します。 | |
sync | IPアドレス ポート番号 [クラスタ変数名 [ノード変数] ] | 稼働中のGridDBクラスタに接続し、クラスタ変数とノード変数の定義を自動で行います。 | * |
GridDBクラスタ操作 サブコマンド一覧
サブコマンド | 引数 | 説明 | *1 |
---|---|---|---|
startnode | ノード変数|クラスタ変数 [ タイムアウト秒数 ] | 指定ノードを起動します。 | * |
stopnode | ノード変数|クラスタ変数 [ タイムアウト秒数 ] | 指定ノードを停止します。 | * |
stopnodeforce | ノード変数|クラスタ変数 [ タイムアウト秒数 ] | 指定ノードを強制停止します。 | * |
startcluster | クラスタ変数 [ タイムアウト秒数 ] | 指定クラスタに未参加の稼働ノード群を一括参加させます | * |
stopcluster | クラスタ変数 [ タイムアウト秒数 ] | クラスタ参加中のノード群を一括離脱させます。 | * |
joincluster | クラスタ変数 ノード変数 [ タイムアウト秒数 ] | 指定ノードをクラスタに参加させます。 | * |
leavecluster | ノード変数 [ タイムアウト秒数 ] | 指定ノードをクラスタから離脱させます。 | * |
leaveclusterforce | ノード変数 [ タイムアウト秒数 ] | 指定ノードをクラスタから強制的に離脱させます。 | * |
appendcluster | クラスタ変数 ノード変数 [ タイムアウト秒数 ] | クラスタ変数に未定義のノードをクラスタに参加させます。 | * |
configcluster | クラスタ変数 | クラスタステータス情報を表示します。 | * |
config | ノード変数 | クラスタ構成情報を表示します。 | * |
stat | ノード変数 | 指定ノードのステータスおよび統計情報を表示します。 | * |
logs | ノード変数 | 指定ノードのログを表示します。 | * |
logconf | ノード変数 [ カテゴリ名 [ 出力レベル ] ] | ログ設定を表示、変更します。 | * |
showsql | [クエリID] | 実行中のSQL処理を表示します。 | |
showevent | 実行中のイベント一覧を表示します。 | ||
showconnection | コネクションの一覧を表示します。 | ||
killsql | クエリID | 実行中のSQL処理をキャンセルします。 | * |
データベース内データ操作 サブコマンド一覧
サブコマンド | 引数 | 説明 | *1 |
---|---|---|---|
connect | クラスタ変数 [データベース名] | GridDBクラスタに接続します。 | |
tql | コンテナ名 クエリ ; | 検索を実行し、検索結果を保持します。 | |
get | [ 取得件数 ] | 検索結果を取得し、標準出力に表示します。 | |
getcsv | CSVファイル名 [ 取得件数 ] | 検索結果を取得し、CSV形式でファイルに保存します。 | |
getnoprint | [ 取得件数 ] | クエリの結果を取得しますが、標準出力に表示しません。 | |
tqlclose | TQLをクローズし、保持する検索結果を破棄します。 | ||
tqlexplain | コンテナ名 クエリ ; | 指定TQL文の実行計画を表示します。 | |
tqlanalyze | コンテナ名 クエリ ; | 指定TQL文を実行し、実行計画と処理件数等の実測値を表示します。 | |
sql | SQL文 ; | SQL文を実行し、検索結果を保持します。 | |
sqlcount | boolean | SQLの検索実行時、件数取得処理を実行するかどうかを設定します。 | |
queryclose | クエリをクローズし、保持する検索結果を破棄します。 | ||
disconnect | GridDBクラスタから切断します。 |
データベース管理 サブコマンド一覧
サブコマンド | 引数 | 説明 | *1 |
---|---|---|---|
createdatabase | データベース名 | データベースを作成します。 | * |
dropdatabase | データベース名 | データベースを削除します。 | * |
getcurrentdatabase | カレントデータベース名を表示します。 | ||
showdatabase | [データベース名] | データベース一覧およびアクセス権情報を表示します。 | |
grantacl | 権限 データベース名 ユーザ名 | データベースへのアクセス権を付与します。 | * |
revokeacl | 権限 データベース名 ユーザ名 | データベースへのアクセス権を剥奪します。 | * |
ユーザ管理 サブコマンド一覧
サブコマンド | 引数 | 説明 | *1 |
---|---|---|---|
createuser | ユーザ名 パスワード | 一般ユーザを作成します。 | * |
dropuser | ユーザ名 | 一般ユーザを削除します。 | * |
setpassword | パスワード | 自分のパスワードを変更します。 | |
setpassword | ユーザ名 パスワード | 一般ユーザのパスワードを変更します。 | * |
showuser | [ユーザ名|ロール名] | 一般ユーザとロールの情報を表示します。 | * |
コンテナ管理 サブコマンド一覧
サブコマンド | 引数 | 説明 | *1 |
---|---|---|---|
createcollection | コンテナ名 カラム名 タイプ [カラム名 タイプ …] | コンテナ(コレクション)を作成します。 | |
createtimeseries | コンテナ名 圧縮方式 カラム名 タイプ [カラム名 タイプ …] | コンテナ(時系列コンテナ)を作成します。 | |
createcontainer | コンテナ定義ファイル [コンテナ名] | コンテナ定義ファイルを元にコンテナを作成します。 | |
dropcontainer | コンテナ名 | コンテナを削除します。 | |
putrow | コンテナ名 値 [値…] | コンテナにロウを登録します。 | |
removerow | コンテナ名 ロウキー値 [ロウキー値…] | コンテナのロウを削除します。 | |
showcontainer | [ コンテナ名 ] | コンテナ情報を表示します。 | |
showtable | [ テーブル名 ] | テーブル情報を表示します。 | |
searchcontainer | [コンテナ名] | コンテナ名からコンテナを検索します。 | |
searchview | [ビュー名] | ビュー名からビューを検索します。 | |
createindex | コンテナ名 カラム名 索引タイプ… | 指定カラムに索引を作成します。 | |
createcompindex | コンテナ名 カラム名… | 指定カラムに複合索引を作成します。 | |
dropindex | コンテナ名 カラム名 索引タイプ… | 指定カラムの索引を削除します。 | |
dropcompindex | コンテナ名 カラム名… | 指定カラムの複合索引を削除します。 |
実行計画 サブコマンド一覧
サブコマンド | 引数 | 説明 | *1 |
---|---|---|---|
getplantxt | [テキストファイル名] | SQL分析結果をテキスト形式で表示します。 | |
getplanjson | [JSONファイル名] | SQL分析結果をJSON形式で表示します。 | |
gettaskplan | プランID | SQL分析結果の詳細情報をJSON形式で表示します。 |
その他の操作 サブコマンド一覧
サブコマンド | 引数 | 説明 | *1 |
---|---|---|---|
echo | boolean | エコーバックの有無を設定します。 | |
メッセージ | 指定した文字列、もしくは変数の定義内容を表示します。 | ||
sleep | 秒数 | 指定した秒数スリープします。 | |
exec | 外部コマンド [ 外部コマンド引数 ] | 外部コマンドを実行します。 | |
exit | gs_shを終了します。 | ||
quit | gs_shを終了します。 | ||
errexit | boolean | エラー発生時にgs_shを終了するかを設定します。 | |
help | [ サブコマンド名 ] | サブコマンドの説明を表示します。 | |
version | バージョン情報を表示します。 | ||
settimezone | [ 設定値 ] | タイムゾーンの設定を行います。 | |
setauthmethod | [ 認証方式 ] | 認証方式の設定を行います。 | |
sslMode | [ SSL接続設定 ] | GridDBクラスタとの通信をSSLで保護するかを指定します。 | |
setntfif | [ IPアドレス ] | マルチキャストパケットを受信するインターフェースのIPアドレスを指定します。 | |
history | 実行したサブコマンドの履歴を表示します。 | ||
![ 履歴番号 ] | historyサブコマンドで表示した履歴よりサブコマンドを再実行します。 | ||
!! | 直前に実行したサブコマンドを再実行します。 |
統合運用管理GUI(以降gs_adminと記載します)は、GridDBのクラスタ運用機能を統合したWebアプリケーションです。
gs_adminを用いて次のことができます。
gs_adminは、クラスタにアクセスするために、クラスタを構成するノードを起動しているマシン、もしくはサブネットが等しく、マルチキャストが配送されるネットワーク上のマシンに配置する必要があります。
gs_adminはWebコンテナを内包したWebアプリケーションです。
gs_adminを利用するには、事前にJavaをインストールする必要があります。 対応するバージョンは以下のとおりです。
また、gs_admin Ver.5.0が対応するGridDBのバージョンは以下のとおりです。
gs_adminの利用までの手順は、以下のとおりです。
GridDBノードを設定する手順に関しては、『GridDB クイックスタートガイド』を参照してください。
gs_adminのインストールと設定の手順は、以下のとおりです。
GridDBのWeb UIパッケージ(griddb-ee-webui)をインストールします。
Webアプリケーションを配置するマシンに、以下のコマンドでパッケージをインストールします。
$ sudo rpm -Uvh griddb-ee-webui-X.X.X-linux.x86_64.rpm
``` example(Ubuntu Server) $ sudo dpkg -i griddb-ee-webui_X.X.X_amd64.deb
※X.X.XはGridDBのバージョン
クライアントパッケージをインストールすると、GridDBホームディレクトリ( `/var/lib/gridstore` )にadminというディレクトリが作成されます。このディレクトリ( `/var/lib/gridstore/admin` )を、以降では **adminHome** と記載します。
adminHome下の構成は以下のとおりです。
``` example
capture/ # スナップショットの保存ディレクトリ(※)
ノードアドレス_ポート番号/YYYYMMDDHHMMSS.json # スナップショットファイル(※)
conf/ # 設定ファイルディレクトリ
gs_admin.properties # 初期に設定する静的パラメータファイル
gs_admin.settings # 表示に関する設定をする動的パラメータファイル
password # gs_adminユーザ定義ファイル
repository.json # ノードリポジトリファイル
log/ # gs_adminのログファイルディレクトリ(※)
gs_admin-YYYYMMDD.log # ログファイル(※)
tree/ # コンテナツリーの構造ファイルディレクトリ(※)
foldertree-クラスタ名-ユーザ名.json # フォルダツリーファイル(※)
(※)のファイルおよびディレクトリはgs_adminが自動的に作成します。
【注意】
gs_adminの利用の際、gs_admin利用ユーザで認証を行います。
管理対象のGridDBクラスタの管理ユーザをgs_admin利用ユーザとして設定する必要があります。
gs_adminのユーザ定義ファイルは、 /var/lib/gridstore/admin/conf/password
です。
クライアントパッケージのインストール時、このファイルは作成されません。
簡単に作成するには、管理したいクラスタのノードのユーザ定義ファイル( /var/lib/gridstore/conf/password
)をgs_adminのユーザ定義ファイル( /var/lib/gridstore/admin/conf/password
)へ上書きコピーしてください。この場合、コピーしたユーザ定義ファイルに記載されている管理ユーザすべてがgs_admin利用ユーザとなります。
【メモ】
設定ファイルは、 /var/lib/gridstore/admin/conf/gs_admin.properties
です。gsadmユーザでGridDBクラスタ構成に合わせて設定します。
プロパティファイルを書き換えた場合は、griddb-webuiサービスを再起動してください。
gs_admin.propertiesには以下の設定項目があります。
パラメータ | 初期値 | 説明 |
---|---|---|
adminUser | admin | gs_adminの管理ユーザを設定します。カンマで区切ることで、複数のユーザ名を設定することができます。gs_adminの管理ユーザは、下記の機能を利用することができます。 ・クラスタ操作機能 ・リポジトリ管理機能 |
ospassword | なし | ノードのgsadmユーザ(OSユーザ)のパスワードを設定します。設定すると下記の機能を利用することができます。 ・クラスタ操作機能のノード起動操作(Start) ・OS情報表示画面 |
timeZone | なし | クラスタ接続時のプロパティとしてtimeZoneを設定します。 設定値は、TQL画面、SQL画面における、TIMESTAMP型のカラム値のタイムゾーンとして使用します。指定なしの場合、タイムゾーンはUTCとなります。 |
logging.performance | FALSE | パフォーマンスログを取得する場合はTRUEを設定します。 |
gs_admin.debug | FALSE | デバッグモードで起動する場合はTRUEを設定します。 |
sqlLoginTimeout | SQLログインタイムアウト(秒)を指定します。 | |
authenticationMethod | ※GridDBクラスタ設定に依存 | 認証方式として、INTERNAL(内部認証) / LDAP(LDAP認証)のいずれかを指定します |
notificationInterfaceAddress | ※OSに依存 | 複数のネットワークインターフェースがあるときにクラスタのネットワーク構成をマルチキャスト方式にする場合、マルチキャストパケットを受信するインターフェースのIPアドレスを指定します |
sslMode | DISABLED | SSL接続設定として、DISABLED(SSL無効)、REQUIRED(SSL有効)、VERIFY(SSL有効かつサーバ証明書検証実施)のいずれかを指定します |
【メモ】
ospassword
を設定する場合は、gsadmユーザにパスワードを設定する必要があります。GS_COMMON_JVM_ARGS
に指定してください。信頼する認証局の証明書の有効期限切れ確認は未サポートです。GS_COMMON_JVM_ARGS
は、以下を参考に/etc/environmentへ設定してください。設定を反映させるにはgs_adminを再起動する必要があります。例)
GS_COMMON_JVM_ARGS="-Djavax.net.ssl.trustStore=/var/lib/gridstore/admin/keystore.jks -Djavax.net.ssl.trustStorePassword=changeit"
例)
server.ssl.enabled=true
server.port=8443
server.ssl.key-store-type=JKS
server.ssl.key-store=/var/lib/gridstore/admin/keystore.jks
server.ssl.key-store-password=changeit
server.ssl.key-alias=tomcat
ノードリポジトリファイル( /var/lib/gridstore/admin/conf/repository.json
)は、クラスタ構成情報とノード情報を一元管理するファイルです。管理対象のクラスタの指定や、クラスタ操作機能に用いられます。 gsadmユーザでGridDBクラスタ構成に合わせて設定します。
デフォルトのファイル内容は下記のとおりです。
{
"header" : {
"lastModified" : "",
"version" : "5.0.0"
},
"clusters" : [
{
"name" : "INPUT_YOUR_CLUSTER_NAME_HERE",
"address" : "239.0.0.1",
"port" : 31999,
"jdbcAddress" : "239.0.0.1",
"jdbcPort" : 41999
}
],
"nodes" : [
{
"address" : "192.168.1.10",
"port" : 10040,
"sshPort" : 22,
"clusterName" : "INPUT_YOUR_CLUSTER_NAME_HERE"
}
]
}
ノードリポジトリを設定するには、ファイルを直接編集するか、リポジトリ管理画面を利用します。リポジトリ管理画面が推奨の方法です。 リポジトリ管理画面を利用した設定を行う場合は、リポジトリ管理画面の機能およびgs_adminで稼働中のクラスタの管理を始めるを参照してください。
クラスタ構成を初めて行う場合は、運用管理コマンドやコマンドインタプリタ(gs_sh)を利用することを推奨します。
gs_adminは、systemctlコマンドで起動、停止を行います。
$ sudo systemctl [start|stop|status|restart] griddb-webui
gs_adminにアクセスするには以下のアプリケーションURIにアクセスします。
http://Tomcat動作マシンアドレス:8080/gs_admin
gs_adminのアプリケーションURIにアクセスすると、ログイン画面が表示されます。
cluster欄で管理対象クラスタを選択してログインした場合は統合運用管理画面へログインします。
repository managerを選択してログインした場合はリポジトリ管理画面へログインします。
ログインする際、userとpasswordにgs_admin利用ユーザ名とパスワードをそれぞれ入力し、Loginボタンを押してください。
【メモ】
統合運用管理画面は、以下の画面です。
統合運用管理画面は以下の要素で構成されます。
要素 | 略称 | 位置 | 機能 |
---|---|---|---|
ツリービュー | Tree | 左部 | 操作対象の一覧表示、選択 |
情報表示・入力部 | View | 右部 | 操作対象の情報表示、情報入力 |
メニュー領域 | ― | 上部 | ログアウト |
メッセージ領域 | ― | 下部 | ― |
Treeの機能
Treeでは、主な操作対象をクラスタとするかコンテナとするかを上部のタブで切り替えることができます。
タブ | ツリーの名前 | 主な機能 |
---|---|---|
ClusterTree | クラスタツリー | クラスタやノードの一覧表示、操作対象の選択 |
ContainerTree | コンテナツリー | データベースの一覧表示、コンテナの検索、操作対象の選択 |
Viewの機能
Viewでは、Treeで選択した操作対象ごとにViewの上部に表示されるタブが異なります。 機能を上部のタブで切り替えることができます。
詳しくは各ツリーおよび画面の項目を参照してください。
gs_adminの管理ユーザのみ、この機能を使用できます。
ログイン画面でrepository managerを選択してgs_adminの管理ユーザでログインすると、リポジトリ管理画面に移動します。
リポジトリ管理画面は、以下の画面です。
リポジトリ管理画面には以下の機能があります。
/var/lib/gridstore/admin/conf/repository.json
)の情報をクラスタ情報とノード情報に分けてそれぞれ表で表示します。/system/serviceAddress
を指定します。/system/servicePort
を指定します。入力欄の仕様は以下のとおりです。
クラスタ
/cluster/clusterName
を指定します。/transaction/notificationAddress
を指定します。/transaction/notificationPort
を指定します。/sql/notificationAddress
を指定します。/sql/notificationPort
を指定します。/cluster/notificationMember/transaction/address
と /cluster/notificationMember/transaction/port
を:で連結して、各ノードの値をカンマ区切りで指定します。/cluster/notificationMember/sql/address
と /cluster/notificationMember/sql/port
を:で連結して、各ノードの値をカンマ区切りで指定します。/cluster/notificationProvider/url
を指定します。ノード
/system/serviceAddress
を指定します。/system/servicePort
を指定します。概要
クラスタツリーでは、管理対象クラスタを構成するノード、つまり、リポジトリのノード(clusterNameが管理対象クラスタ)をツリー形式で表示します。
リポジトリに登録されていないノードの先頭には*が表示されます。
クラスタツリーに表示されるアイコンの説明は以下のとおりです。
アイコン | 説明 |
---|---|
クラスタ | |
マスタノード | |
フォロワノード | |
起動済みノード | |
未起動ノード | |
状態未確認ノード | |
メッセージ |
コンテキストメニュー
ツリー内の要素を右クリックすると要素に応じたコンテキストメニューが表示されます。 メニューから項目を選択することで、情報更新や要素に対する操作ができます。
それぞれの選択要素に対するメニューと機能は以下のとおりです。
選択要素 | メニュー | 機能 |
---|---|---|
クラスタ | refresh | Treeのノード一覧の再取得 |
ノード | refresh | Viewにノードの最新情報を表示 |
操作対象とViewのタブ
ツリー内の要素を左クリックすると、要素に応じた機能がViewに表示されます。 機能はViewの上部のタブで切り替えます。
選択要素 | タブ | 画面の名前 | 機能 |
---|---|---|---|
クラスタ | Dashboard | ダッシュボード画面 | クラスタ全体の様々な情報が表示されます。 |
Status | クラスタステータス画面 | 管理対象クラスタの構成情報やデータ情報が表示されます。 | |
Monitor | OS情報表示画面 | ノードが動作するマシンのOS情報が表示されます。 | |
Configuration | クラスタ操作画面 | ノードの起動、終了を含む、クラスタ操作を行うことができます。 | |
ノード | System | システム情報画面 | ノードのシステム情報が表示されます。 |
Container | コンテナ一覧画面 | ノードが格納しているコンテナの一覧が表示されます。 | |
Performance | 性能情報画面 | ノードの性能情報がグラフで表示されます。 | |
Snapshot | スナップショット画面 | 採取した性能値を表に表示します。以前に採取した値と比較することができます。 | |
Log | ログ画面 | ノードのイベントログの表示や、イベントログの出力レベルの設定ができます。 |
【メモ】
概要
クラスタ全体の様々な情報が表示されます。
利用方法
ツリーの種類 | 操作対象 | タブ名 |
---|---|---|
クラスタツリー | クラスタ | Dashboard |
画面
機能
ダッシュボード画面には以下の機能があります。
概要
管理対象クラスタの構成情報やデータ情報が表示されます。
利用方法
ツリーの種類 | 操作対象 | タブ名 |
---|---|---|
クラスタツリー | クラスタ | Status |
画面
機能
クラスタステータス画面には以下の機能があります。
データに関する情報表示 (◆Stored Data Information)
概要
ノードの動作するマシンのリソース情報やOS性能が表示されます。GridDBの性能分析やCPUやネットワークなどの負荷状況が分かります。
利用方法
ツリーの種類 | 操作対象 | タブ名 |
---|---|---|
クラスタツリー | クラスタ | Monitor |
画面
機能
OS情報表示には以下の機能があります。
【メモ】
ospassword
を設定していない場合、本機能は利用できません。この機能はgs_admin管理者のみ利用可能です。
概要
ノードの起動、終了を含む、クラスタ操作を行うことができます。
利用方法
ツリーの種類 | 操作対象 | タブ名 |
---|---|---|
クラスタツリー | クラスタ | Configuration |
画面
機能
クラスタ操作画面には以下の機能があります。
【メモ】
概要
ノードのシステム情報が表示されます。
利用方法
ツリーの種類 | 操作対象 | タブ名 |
---|---|---|
クラスタツリー | ノード | System |
画面
機能
システム情報画面には以下の機能があります。
概要
ノードが格納しているコンテナの一覧が表示されます。
利用方法
ツリーの種類 | 操作対象 | タブ名 |
---|---|---|
クラスタツリー | ノード | Container |
画面
機能
コンテナ一覧画面には以下の機能があります。
【メモ】
概要
ノードの性能情報がグラフで表示されます。
利用方法
ツリーの種類 | 操作対象 | タブ名 |
---|---|---|
クラスタツリー | ノード | Performance |
画面
機能
性能情報画面には以下の機能があります。
概要
採取した性能値を表に表示します。以前に採取した値と比較することができます。
利用方法
ツリーの種類 | 操作対象 | タブ名 |
---|---|---|
クラスタツリー | ノード | Snapshot |
画面
機能
スナップショット画面には以下の機能があります。
概要
ノードのイベントログの表示や、イベントログの出力レベルの設定ができます。
利用方法
ツリーの種類 | 操作対象 | タブ名 |
---|---|---|
クラスタツリー | ノード | Log |
画面
機能
ログ画面には以下の機能があります。
【注意】
概要
コンテナツリーでは、管理対象クラスタ上に存在するデータベースやコンテナをツリー形式で表示します。
ツリーの一番上には、管理対象クラスタが表示されます(()内はクラスタの総データベース数)。
コンテナツリーに表示されるアイコンの説明は以下のとおりです。
アイコン | 説明 |
---|---|
クラスタ | |
データベース | |
データベース(存在しない) | |
コンテナ(コレクション) | |
コンテナ(時系列コンテナ) | |
パーティションテーブル(コンテナ) | |
検索フォルダ | |
一時ワークフォルダ | |
メッセージ |
機能
コンテナツリーには以下の機能があります。
/var/lib/gridstore/admin/tree/foldertree-クラスタ名-ユーザ名.json
に保存されます。ログイン後にはClusterTreeタブとノード一覧が自動的に表示されます。ContainerTreeタブに切替えると、コンテナツリーのツリー構造が保存されている場合、ツリー構造が自動的に追加されます。 ただし、検索フォルダの再検索は自動では行われません。
コンテナツリーでは以下の操作は行えません。
コンテキストメニュー
ツリー内の要素を右クリックすると要素に応じたコンテキストメニューが表示されます。 メニューから項目を選択することで、情報更新や要素に対する操作ができます。
それぞれの選択要素に対するメニューと機能は以下のとおりです。
選択要素 | メニュー | 機能 |
---|---|---|
クラスタ | refresh | Treeのツリー構造再読込、データベース自動検出 |
データベース | refresh | データベース存在確認、コンテナの再検索 |
コンテナ | refresh | Viewにコンテナの最新情報を表示 |
drop | コンテナの削除(確認ダイアログあり) | |
検索フォルダ | refresh | コンテナの再検索 |
remove | 検索フォルダの削除 | |
一時ワークフォルダ | remove | 一時ワークフォルダの削除 |
【メモ】
操作対象とViewのタブ
ツリー内の要素を左クリックすると、要素に応じた機能がViewに表示されます。 機能はViewの上部のタブで切り替えます。
選択要素 | タブ | 画面の名前 | 機能概要 |
---|---|---|---|
クラスタ | Database | データベース管理画面 | データベースの作成、削除、権限操作ができます。 |
User | ユーザ管理画面 | 一般ユーザの作成、削除、パスワード変更ができます。 | |
SQL | SQL画面 | データベースに対してSQLを実行し、その結果を表示できます。 | |
データベース | Create | コンテナ作成画面 | データベースにコンテナを作成できます。 |
SQL | SQL画面 | データベースに対してSQLを実行し、その結果を表示できます。 | |
コンテナ | Details | コンテナ詳細画面 | コンテナのカラムや索引の設定情報が表示されます。 |
Index | 索引設定画面 | コンテナのカラムごとの索引の作成、削除ができます。 | |
TQL | TQL画面 | コンテナに対してTQL(問合せ言語)を実行し、その結果を表示します。 | |
パーティション | Details | コンテナ詳細画面 | コンテナのカラムや索引の設定情報、テーブルパーティショニング情報が表示されます。 |
概要
データベースの作成、削除、権限操作ができます。
利用方法
ツリーの種類 | 操作対象 | タブ名 |
---|---|---|
コンテナツリー | クラスタ | Database |
画面
機能
データベース管理画面には以下の機能があります。
概要
一般ユーザの作成、削除、パスワード変更ができます。
利用方法
ツリーの種類 | 操作対象 | タブ名 |
---|---|---|
コンテナツリー | クラスタ | User |
画面
機能
概要
データベースに対してSQLを実行し、その結果を表示できます。
利用方法
ツリーの種類 | 操作対象 | タブ名 |
---|---|---|
コンテナツリー | クラスタ | SQL |
コンテナツリー | データベース | SQL |
画面
機能
SQL画面には以下の機能があります。
【メモ】
概要
データベースにコンテナを作成できます。
利用方法
ツリーの種類 | 操作対象 | タブ名 |
---|---|---|
コンテナツリー | データベース | Create |
画面
機能
コンテナ作成画面には以下の機能があります。
【メモ】
概要
コンテナのカラムや索引の設定情報が表示されます。
利用方法
ツリーの種類 | 操作対象 | タブ名 |
---|---|---|
コンテナツリー | コンテナ | Details |
画面
機能
コンテナ詳細画面には以下の機能があります。
概要
コンテナごとの索引の作成、削除ができます。
利用方法
ツリーの種類 | 操作対象 | タブ名 |
---|---|---|
コンテナツリー | コンテナ | Index |
画面
機能
索引設定画面には以下の機能があります。
【メモ】
概要
コンテナに対してTQL(問合せ言語)を実行し、その結果を表示します。
利用方法
ツリーの種類 | 操作対象 | タブ名 |
---|---|---|
コンテナツリー | コンテナ | TQL |
画面
機能
TQL画面には以下の機能があります。
【メモ】
各機能を利用したgs_adminの活用方法を紹介します。
既に稼働中のクラスタをgs_adminで管理するには、リポジトリ管理機能を活用します。 以下の手順を実施します。
/system/serviceAddress
を指定します。/system/servicePort
を指定します。1つのgs_adminで複数クラスタの管理を行う場合には、gs_admin利用ユーザの設定に注意が必要です。
gs_admin利用ユーザは単一のファイルで管理を行うため、例えば、複数のクラスタで別々のパスワードを使っている管理ユーザを、すべてのクラスタを管理するgs_admin利用ユーザとして指定することはできません。
そのため、管理の方法によって適切な設定を行う必要があります。
以下では、新たにgs_admin利用ユーザを登録する手順を示します。
新しいユーザで管理したいクラスタのうち1つのノードで、gs_adduserコマンドを使用し、管理ユーザを追加します。
例:新規ユーザ名/パスワードがgs#newuser/newuserの場合
$ su - gsadm
$ gs_adduser gs#newuser -p newuser
$ cat /var/lib/gridstore/conf/password
admin,8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
gs#newuser,9c9064c59f1ffa2e174ee754d2979be80dd30db552ec03e7e327e9b1a4bd594e
system,6ee4a469cd4e91053847f5d3fcb61dbcc91e8f0ef10be7748da4c4a1ba382d17
Tomcat実行ユーザで、上記で追加したユーザ名およびパスワードを、gs_adminのユーザ定義ファイルに追加します。
例:新規ユーザ名/パスワードがgs#newuser/newuserの場合
$ echo gs#newuser,9c9064c59f1ffa2e174ee754d2979be80dd30db552ec03e7e327e9b1a4bd594e >> /var/lib/gridstore/admin/conf/password
gs_adminのエラー情報等のログは、adminHomeのlogディレクトリに出力されます。
出力レベルのデフォルトはinfoです。
gs_adminでの問題発生、サポート窓口の依頼等で情報を採取する時に利用します。
ログの出力レベルは、Tomcatホーム(デフォルトは/usr/local/tomcat
)下の /webapps/gs_admin/WEB-INF/classes/logback.xml
で設定できます。
エラー種別 | エラー番号 | メッセージ | 対処方法 |
---|---|---|---|
Internal Server Error | E00104 | Cluster is not servicing. | 管理対象クラスタが稼働していません。Configurationタブや他の運用ツールを用いてクラスタを稼働させて、クラスタツリーのクラスタのRefreshまたは再ログインを行ってください。 |
Internal Server Error | E00105 | D10135: Failed to check a node status. | リポジトリに登録されているノードに、Ver.1.5以下のノードが登録されている可能性があります。各ノードのバージョンを確認してください。 |
Internal Server Error | Failed to create <ファイルパス>. | ファイルの作成に失敗しました。表示されているパス上に存在しないディレクトリや、Tomcatユーザのアクセス権限が与えられていないディレクトリが無いかをご確認ください。 | |
Internal Server Error | E0030C | [Code:******] <エラーメッセージ> | GridDBノードのエラーメッセージです。 『GridDB エラーコード』を参照し、該当コードの対策をご確認ください。 |
Bad Request | E00300 | Container “コンテナ名” already exists. | コンテナ名が重複しています。別のコンテナ名を指定してコンテナを作成してください。 |
Bad Request | E00303 | Container “コンテナ名” not found. | 指定したコンテナが存在しません。コンテナツリー(ContainerTree)のクラスタを右クリックしてrefreshを選択し、コンテナを再検索してください。 |
Bad Request | [Code:******] <エラーメッセージ> | GridDBノードのエラーメッセージです。 『GridDB エラーコード』を参照し、該当コードの対策をご確認ください。 |
|
Input Error | <フィールド名> is required. | 必須入力欄が入力されていません。<フィールド名>の入力欄に値を入力してください。 | |
Input Error | <フィールド名> is invalid. | <フィールド名>の入力欄に無効な値が入力されています。『GridDB 運用ツールリファレンス』に従い、適切な値を入力してください。 |
GridDBの エクスポート/インポート ツールでは、データベースの局所的な破壊に対して復旧を行う障害回復処理や、システム構成が変更された際のデータベースの移行(マイグレーション)処理などを実現するために、データベースやコンテナ単位での保存/復元機能を提供します。
エクスポートツールは、GridDBクラスタのコンテナおよびロウデータを、以下のファイルに保存します。コンテナ名を指定して特定コンテナのみエクスポートすることもできます。
インポートツールは、エクスポートデータを保存したコンテナデータファイルとエクスポート実行情報ファイルを読み込んで、コンテナおよびロウデータをGridDBに復元します。特定のコンテナデータを指定して、インポートすることもできます。
コンテナデータファイルは、コンテナ情報を記載した メタデータファイル と、コンテナに格納するデータを記載した ロウデータファイル からなります。
メタデータファイルは、コンテナのタイプや、スキーマ、設定されている索引情報を含むjson形式のファイルです。
ロウデータファイルには、コンテナの格納データをCSV形式で記載する CSVデータファイル と、zip形式で記載する バイナリデータファイル の2種類があります。
各ファイルの記述内容の詳細は、コンテナデータファイルの形式を参照してください。
また、コンテナデータファイルには、記載対象となるコンテナ数によって、以下の2種類があります。
以降では、各構成のコンテナデータファイルを シングルコンテナデータファイル 、 マルチコンテナデータファイル と記載します。
シングルコンテナデータファイルで大量のコンテナを指定してエクスポートを実行すると、大量のメタデータファイルとロウデータファイルが作成されるため、管理が煩雑となります。 一方、マルチコンテナデータファイルでは、大量のコンテナを指定しても出力されるのは1つのメタデータファイルとロウデータファイルのみです。
そこで、2つの構成は 用途に応じて使い分ける ことを推奨します。
シングルコンテナデータファイルは、以下のようなケースで利用します。
マルチコンテナデータファイルは、以下のようなケースで利用します。
エクスポート実行情報ファイルには、エクスポート実行時の日時、コンテナ数、コンテナ名などの情報を保存します。このファイルはエクスポートしたデータを、そのままGridDBクラスタに復元するために必要です。
【メモ】
エクスポート/インポートコマンドを実行するには、以下の設定が必要です。
エクスポート/インポートコマンドを実行するには、エクスポート/インポート機能が含まれているクライアントパッケージおよびJavaライブラリパッケージのインストールが必要です。
【例】
# rpm -Uvh griddb-ee-client-X.X.X-linux.x86_64.rpm
準備中... ########################################### [100%]
User and group has already been registered correctly.
GridDB uses existing user and group.
1:griddb-ee-client ########################################### [100%]
# rpm -Uvh griddb-ee-java_lib-X.X.X-linux.x86_64.rpm
準備中... ########################################### [100%]
1:griddb-ee-java_lib ########################################### [100%]
gsadmユーザで利用するGridDBクラスタ構成にあわせてプロパティファイルを設定します。プロパティファイルは、 /var/lib/gridstore/expimp/conf/gs_expimp.properties
です。
プロパティファイルには以下のような設定項目があります。
パラメータ | 必須 | デフォルト値 | 説明 |
---|---|---|---|
mode | 必須 | MULTICAST | 接続方式の種類を指定します。指定を省略した場合はマルチキャスト方式になります。 MULTICAST ・・マルチキャスト方式 FIXED_LIST・・固定リスト方式 PROVIDER ・・プロバイダ方式 |
hostAddress | mode=MULTICASTの場合は必須 | 239.0.0.1 | GridDBのクラスタ定義ファイル(gs_cluster.json)の/transaction/notificationAddressを指定します。エクスポート・インポートツールがクラスタにアクセスする際に利用するマルチキャストアドレスです。 |
hostPort | mode=MULTICASTの場合は必須 | 31999 | GridDBのクラスタ定義ファイル(gs_cluster.json)の/transaction/notificationPortを指定します。エクスポート・インポートツールがクラスタにアクセスする際に利用するマルチキャストアドレスのポートです。 |
jdbcAddress | mode=MULTICASTの場合は必須 | 239.0.0.1 | マルチキャスト方式を利用する場合は、GridDBのクラスタ定義ファイル(gs_cluster.json)の/sql/notificationAddressを指定します。 |
jdbcPort | mode=MULTICASTの場合は必須 | 41999 | マルチキャスト方式を利用する場合は、GridDBのクラスタ定義ファイル(gs_cluster.json)の/sql/notificationPortを指定します。 |
notificationMember | mode=FIXED_LISTの場合は必須 | - | 固定リスト方式の接続方法を使用する場合は、各ノードのクラスタ定義ファイルgs_cluster.jsonに指定した/cluster/notificationMemberの/transaction/addressと/transaction/portを:で繋いで記述します。複数ノードの場合は、カンマで連結してください。 例)192.168.0.100:10001,192.168.0.101:10001 |
jdbcNotificationMember | mode=FIXED_LISTの場合は必須 | - | 固定リスト方式の接続方法を使用する場合は、クラスタ定義ファイルgs_cluster.jsonの/cluster/notificationMemberの各ノードの/sql/addressと/sql/portを:で繋いで記述します。複数ノードの場合は、カンマで連結してください。 例)192.168.0.100:20001,192.168.0.101:20001 |
notificationProvider.url | mode=PROVIDERの場合は必須 | - | プロバイダ方式の接続方法を使用する場合は、クラスタ定義ファイルgs_cluster.jsonの/cluster/notificationProvider/urlを指定します。 |
restAddress | - | 127.0.0.1 | GridDBのノード定義ファイル(gs_node.json)の/system/listenerAddressを指定します。将来の拡張用のパラメータです。 |
restPort | - | 10040 | GridDBのノード定義ファイル(gs_node.json)の/system/listenerPortを指定します。将来の拡張用のパラメータです。 |
clusterName | 必須 | INPUT_YOUR_CLUSTER_NAME_HERE | クラスタ構成を組む(gs_joinclusterコマンドで指定)際に指定しているクラスタ名を指定します。 |
logPath | - | /var/lib/gridstore/log | エクスポート・インポートツールの実行時のエラー情報などのログを出力するディレクトリを指定します。ディレクトリ下に、gs_expimp-YYYYMMDD.log でログが出力されます。 |
commitCount | - | 1000 | インポートでコンテナデータを登録する際にデータを登録する単位として、ロウ件数を指定します。数値を大きくするとデータ処理のためのバッファが大きくなります。ロウサイズが小さい場合は数値を上げ、ロウサイズが大きい場合は数値を下げてください。データインポートの登録性能に影響するパラメータです。 |
transactionTimeout | - | 2147483647 | トランザクション開始から終了までの時間を指定します。大量データの登録・取得時には、データ量に合わせた大きな数値を設定する必要があります。デフォルトは、大量データ処理用に最大値が指定されています。(単位:秒) |
failoverTimeout | - | 10 | ツールがノード障害を検知してからリトライを繰り返すフェイルオーバー時間を指定します。インポート/エクスポートの対象クラスタへの初期接続のタイムアウトにも用いられます。コンテナへの大量データ登録・取得などの処理を行う場合は、値を増やしてください。(単位:秒) |
jdbcLoginTimeout | - | 10 | JDBCの初期接続のタイムアウト時間です。(単位:秒) |
authenticationMethod | - | ※GridDBクラスタ設定に依存 | 認証方式として、INTERNAL(内部認証) / LDAP(LDAP認証)のいずれかを指定します。 |
notificationInterfaceAddress | - | ※OSに依存 | 複数のネットワークインターフェースがあるときにクラスタのネットワーク構成をマルチキャスト方式にする場合、マルチキャストパケットを受信するインターフェースのIPアドレスを指定します。 |
sslMode | - | DISABLED | SSL接続設定として、DISABLED(SSL無効)、REQUIRED(SSL有効)、VERIFY(SSL有効かつサーバ証明書検証実施)のいずれかを指定します。 |
【メモ】
GS_COMMON_JVM_ARGS
に指定してください。信頼する認証局の証明書の有効期限切れ確認は未サポートです。例)
GS_COMMON_JVM_ARGS="-Djavax.net.ssl.trustStore=/var/lib/gridstore/admin/keystore.jks -Djavax.net.ssl.trustStorePassword=changeit"
export GS_COMMON_JVM_ARGS
ここでは、エクスポート機能を利用する際に指定できるオプションについてエクスポートの使用例を元に説明します。
GridDBクラスタからコンテナを取り出すには、クラスタの全コンテナを指定する方法、データベースを指定する方法、コンテナを個別に指定する方法があります。
(1) 全てのコンテナの指定
–allオプションを指定。
【例】
$ gs_export --all -u admin/admin
(2) データベースの指定
–dbオプションでデータベース名を指定。複数のデータベース名を” “(ブランク)で区切って繰返し指定することも可能。
【例】
$ gs_export --db db001 db002 -u admin/admin //DB名を列挙。DB内のコンテナ
(3) コンテナの個別指定
【例】
$ gs_export --container c001 c002 -u admin/admin //コンテナ名を列挙
$ gs_export --containerregex "^c0" -u admin/admin //正規表現指定:コンテナ名がc0で始まるコンテナの指定
コンテナからロウを取り出す検索クエリを指定することで、検索クエリにヒットするロウのみエクスポートすることができます。 検索クエリが指定されていないコンテナは、コンテナに格納されているすべてのロウがエクスポートされます。
検索クエリの指定
【例】実行例
$ gs_export -c c001 c002 -u admin/admin --filterfile filter1.txt
$ gs_export --all -u admin/admin --filterfile filter2.txt
【例】定義ファイルの記述
^cont_month :select * where time > 100 [改行]
^cont_minutes_.*:select * where flag = 0 [改行]
cont_year2014 :select * where timestamp > TIMESTAMP('2014-05-21T08:00:00.000Z') [改行]
【メモ】
GridDBクラスタのユーザやアクセス権の情報もエクスポートすることができます。 クラスタ上のすべてのデータを移行する場合にご利用ください。
【例】
$ gs_export --all -u admin/admin --acl
【メモ】
GridDBクラスタのビューもコンテナと合わせてエクスポートすることができます。
–allオプションまたは–dbオプションを指定したとき、エクスポート対象のデータベースのビューがエクスポートされます。
$ gs_export --db public -u admin/admin
エクスポートを開始します
出力ディレクトリ : /tmp/export
:
対象コンテナ数 : 5 ( 成功:5 失敗:0 )
対象ビュー数 : 15
エクスポートを終了しました
ロウデータファイルの出力形式として、CSVデータファイル、もしくはバイナリデータファイルが指定できます。
【例】
$ gs_export -c c001 c002 -u admin/admin --binary
$ gs_export --all -u admin/admin --binary 500 //500Mbytesごとにバイナリデータファイルを分割
コンテナ単位にコンテナデータファイルを作成するシングルコンテナデータファイル、もしくは全コンテナを1つのコンテナデータファイルに出力するマルチコンテナデータファイルが指定できます。
【例】
$ gs_export -c c001 c002 -u admin/admin --out test
$ gs_export --all -u admin/admin --out //日付でファイルが作成される
コンテナデータファイルの出力先として、ディレクトリを指定できます。指定したディレクトリが存在しなかった場合にはディレクトリを作成します。 ディレクトリの指定を省略した場合、コマンド実行時のカレントディレクトリにデータを出力します。出力先の指定は-dオプションを用います。
【例】
$ gs_export --all -u admin/admin --out test -d /tmp
【メモ】
エクスポートツールで並列にクラスタにアクセスしてデータを取得します。クラスタが複数のノードで構成されている場合に並列実行すると、ノードごとに並列アクセスするので高速に取得することができます。
【メモ】
【例】
$ gs_export --all -u admin/admin --binary --out --parallel 4
利用者がコンテナをエクスポートする前に、正しくエクスポートが行えるかを評価することができます。
【例】
$ gs_export -u admin/admin --all --test
エクスポートを開始します
[テストモード]
出力ディレクトリ : /var/lib/gridstore/export
対象コンテナ数 : 5
Name PartitionId Row
------------------------------------------------------------------
public.container_2 15 10
public.container_3 25 20
public.container_0 35 10
public.container_1 53 10
public.container_4 58 20
対象コンテナ数 : 5 ( 成功:5 失敗:0 )
対象ビュー数 : 15
エクスポートを終了しました
別アプリケーションとのロック競合によってロウデータ取得エラーが発生した場合も、エクスポート処理を継続できます。
【例】
$ gs_export --all -u admin/admin --force
【メモ】
動作表示の詳細指定
【例】
$ gs_export --containerregex "^c0" -u admin/admin --verbose
エクスポートを開始します
出力ディレクトリ : /data/exp
対象コンテナ数 : 4
public.c003 : 1
public.c002 : 1
public.c001 : 1
public.c010 : 1
ロウデータの取得を完了しました: time=[5080]
対象コンテナ数 : 4 ( 成功:4 失敗:0 )
エクスポートを終了しました
動作表示の抑止指定
【例】
$ gs_export -c c002 c001 -u admin/admin --silent
コンテナデータファイルのデータを、GridDBクラスタにインポートします。
Importツールの入力データソースには、以下があります。
エクスポート機能でエクスポートしたデータ形式のデータをGridDBクラスタにインポートします。
コンテナデータファイルの中からインポートする処理対象のデータを指定する必要があります。
コンテナデータファイル内の全コンテナを指定する方法、データベースを指定する方法、コンテナを個別に指定する方法があります。
(1) 全てのコンテナの指定
–allオプションを指定
【例】
$ gs_import --all -u admin/admin
(2) データベースの指定
【例】
$ gs_import --db db001 db002 -u admin/admin //DB名を列挙。DB内のコンテナ
(3) コンテナの個別指定
【例】
$ gs_import --container c001 c002 -u admin/admin //コンテナ名を列挙
$ gs_import --containerregex "^c0" -u admin/admin //正規表現指定:コンテナ名がc0で始まるコンテナの指定
【注意事項】
【メモ】
エクスポート機能で–aclオプションを指定してエクスポートしたデータの場合、ユーザやアクセス権の情報もインポートすることができます。 クラスタ上のすべてのデータを移行する場合にご利用ください。
【例】
$ gs_import --all --acl -u admin/admin
【メモ】
エクスポート機能でビューをエクスポートしたデータの場合、コンテナデータと共にビューもインポートすることができます。
–allオプションまたは–dbオプションを指定したとき、インポート対象のデータベースのビューが インポートされます。
【メモ】
コンテナデータファイルを指定します。指定を省略した場合は、カレントディレクトリのファイルが処理対象となります。
【例】
//カレントディレクトリから全コンテナを指定
$ gs_import --all -u admin/admin
//特定ディレクトリからデータベースを複数指定
$ gs_import --db db002 db001 -u admin/admin -d /data/expdata
//特定ディレクトリからコンテナを複数指定
$ gs_import -c c002 c001 -u admin/admin -d /data/expdata
【メモ】
コンテナデータファイル内に格納されたコンテナ情報をインポートする前に確認することができます。
【例】
$ gs_import --list
エクスポートデータファイルのコンテナ一覧を表示します
DB Name Type FileName
public container_2 COLLECTION container_2.csv
public container_0 TIME_SERIES container_0.csv
public container_1 COLLECTION container_1.csv
userDB container_1_db TIME_SERIES userDB.container_1_db.csv
userDB container_2_db TIME_SERIES userDB.container_2_db.csv
userDB container_0_db COLLECTION userDB.container_0_db.csv
インポートでは、特定のオプションの指定がないときは、登録しようとしたコンテナが既にGridDBクラスタ内に存在するとエラーとなります。 次のオプションを指定することで、データの追加や、置き換えができます。データ登録では、登録に成功したコンテナ数と失敗したコンテナ数を表示します。
コンテナの種類に応じた登録の動作は以下となります。
コンテナの種類 | Rowkey指定 | 動作 |
---|---|---|
コレクション | 有り | キーが等しいカラムは更新され、キーが異なるデータは追加される。 |
無し | ロウデータはすべて追加登録される | |
時系列コンテナ | 有り | 時刻が既存の登録データより新しい場合、追加登録される。 時刻が既存のものと同じ場合カラムデータが更新される。 |
【例】
$ gs_import -c c002 c001 -u admin/admin --append
..インポートを開始します(追記モード)
インポートを完了しました
成功:2 失敗:0
$ gs_import -c c002 c001 -u admin/admin --replace //特定のディレクトリから
..インポートを開始します(再配置モード)
インポートを完了しました
成功:2 失敗:0
$ gs_import --all -u admin/admin -d /datat/expdata --replace
コンテナデータファイルのユーザ編集ミスによって特定のロウデータで登録エラーが発生した場合も、インポート処理を継続できます。
【例】
$ gs_import --all -u admin/admin -d /data/expdata --force
【メモ】
動作表示の詳細指定
コマンド一覧
コマンド | オプション/引数 |
---|---|
gs_export | -u|–user ユーザ名/パスワード –all | –db データベース名 [データベース名] | ( –container コンテナ名 [コンテナ名] … | –containerregex 正規表現 [正規表現] …) [-d|–directory 出力先ディレクトリパス] [–out [ファイル識別子] [–binary [ファイルサイズ]] [–filterfile 定義ファイル名] [–parallel 並列実行数] [–acl] [–prefixdb データベース名] [–force] [-t|–test] [-v|–verbose] [–silent] [–schemaOnly] |
gs_export | –version |
gs_export | [-h|–help] |
オプション仕様
オプション | 必須 | 説明 |
---|---|---|
-u|–user ユーザ/パスワード | 〇 | 認証に使用するユーザ、パスワードを指定します。 |
–all | 〇 | クラスタの全コンテナをエクスポート対象とします。–all、–containerまたは–containerregex、–dbオプションのいずれかの指定が必要です。 |
–db | 〇 | 指定されたデータベース上のすべてのコンテナをエクスポート対象とします。–all、–containerまたは–containerregex、–dbオプションのいずれかの指定が必要です。 |
-c|–container コンテナ名 … | 〇 | エクスポート対象となるコンテナを指定します。ブランク区切りで複数指定可能です。–all、–containerまたは–containerregex、–dbオプションのいずれかの指定が必要です。 |
–containerregex 正規表現 … | 〇 | エクスポート対象となるコンテナを正規表現で指定します。ブランク区切りで複数指定可能です。正規表現を使用する場合はダブルクォートで囲んで指定します。–all、–containerまたは–containerregex、–dbオプションのいずれかの指定が必要です。–containerオプションとの併用可能です。 |
-d|–directory 出力先ディレクトリパス | エクスポート先のディレクトリパスを指定します。デフォルトはカレントディレクトリです。 | |
–out [ファイル識別子] | 出力データのファイル形式をマルチコンテナ形式とする場合に指定します。省略した場合は、シングルコンテナ形式となります。ファイル識別子の長さは20文字までです。 ファイル識別子が指定された場合はファイル識別子を含むファイル名として、省略された場合は、出力開始日時をファイル名として出力します。 |
|
–binary [ファイルサイズ] | ロウデータファイルの出力形式をバイナリ形式とする場合に指定します。省略した場合は、CSV形式となります。 出力ファイルサイズはMB単位で指定します。デフォルトは、100MBです。指定範囲は1から1000(1GB)までです。 |
|
–filterfile 定義ファイル名 | ロウを取り出す検索クエリを記述した定義ファイルを指定します。省略した場合は、すべてのロウがエクスポートされます。 | |
–parallel 並列実行数 | 指定された数で並列実行を行います。並列実行を行うと、エクスポートデータは並列実行数と同じ数で分割されます。マルチコンテナ形式の場合(–outオプションを指定した場合)のみ指定できます。指定範囲は、2から32までです。 | |
–acl | データベース、ユーザ、アクセス権の情報もエクスポートします。管理者ユーザで、かつ –allオプションを指定している場合のみ指定できます。 | |
–prefixdb データベース名 | –containerオプションを指定した場合に、コンテナのデータベース名を指定します。省略した場合は、デフォルトデータベースのコンテナが処理対象になります。 | |
–force | エラーが発生しても処理を継続します。エラー内容は処理終了後に一覧表示されます。 | |
-t|–test | テストモードでツールを実行します。 | |
-v|–verbose | 動作表示を詳細出力します。 | |
–silent | 動作表示を出力しません。 | |
–schemaOnly | コンテナの定義のみエクスポートします。ロウデータはエクスポートしません。 | |
–version | ツールのバージョンを表示します。 | |
-h|–help | ヘルプメッセージとしてコマンド一覧を表示します。 |
【メモ】
コマンド一覧
コマンド | オプション/引数 |
---|---|
gs_import | -u|–user ユーザ名/パスワード –all | –db データベース名 [データベース名] | ( –container コンテナ名 [コンテナ名] … | –containerregex 正規表現 [正規表現] …) –db データベース名 [データベース名] [–append|–replace] [-d|–directory インポート対象ディレクトリパス] [-f|–file ファイル名 [ファイル名…]] [–count コミット数] [–acl] [–prefixdb データベース名] [–force] [–schemaCheckSkip] [-v|–verbose] [–silent] |
gs_import | -l|–list [-d|–directory ディレクトリパス] [-f|–file ファイル名 [ファイル名…]] |
gs_import | –version |
gs_import | [-h|–help] |
オプション仕様
オプション | 必須 | 説明 |
---|---|---|
-u|–user ユーザ/パスワード | 〇 | 認証に使用するユーザ、パスワードを指定します。 |
–all | 〇 | インポート元のファイルの全コンテナをインポート対象とします。–all、–containerまたは–containerregex、–dbオプションのいずれかの指定が必要です。 |
–db | 〇 | 指定されたデータベース上のすべてのコンテナをインポート対象とします。–all、–containerまたは–containerregex、–dbオプションのいずれかの指定が必要です。 |
-c|–container コンテナ名 … | 〇 | インポート対象となるコンテナを指定します。ブランク区切りで複数指定可能です。–all、–containerまたは–containerregex、–dbオプションのいずれかの指定が必要です。 |
–containerregex 正規表現 … | 〇 | インポート対象となるコンテナを正規表現で指定します。ブランク区切りで複数指定可能です。正規表現を使用する場合はダブルクォートで囲んで指定します。–all、–containerまたは–containerregex、–dbオプションのいずれかの指定が必要です。–containerオプションとの併用可能です。 |
–append | 既存のコンテナに、データを追加登録・更新します。 | |
–replace | 既存のコンテナを削除して再作成します。 | |
-d|–directory ディレクトリパス | インポート元のディレクトリパスを指定します。デフォルトはカレントディレクトリです。 | |
-f|–file ファイル名 [ファイル名…] | インポート対象となるコンテナデータファイルを指定します。複数指定可能です。省略時は-d(–directory)で指定したディレクトリまたはカレントディレクトリのすべてのコンテナデータファイルを対象とします。 | |
–count コミット数 | 入力データを一括コミットするまでの入力件数を指定します。 | |
–acl | データベース、ユーザ、アクセス権の情報もインポートします。–aclオプションを指定してエクスポートしたデータに対して、管理者ユーザで、かつ –allオプションを指定している場合のみ指定できます。 | |
–prefixdb データベース名 | –containerオプションを指定した場合に、コンテナのデータベース名を指定します。省略した場合は、デフォルトデータベースのコンテナが処理対象になります。 | |
–force | エラーが発生しても処理を継続します。エラー内容は処理終了後に一覧表示されます。 | |
–schemaCheckSkip | –appendオプションを指定した場合に、既存コンテナとのスキーマチェックを行いません。 | |
-v|–verbose | 動作表示を詳細出力します。 | |
–silent | 動作表示を出力しません。 | |
-l|–list | 指定したインポート対象のコンテナの一覧を表示します。 | |
–version | ツールのバージョンを表示します。 | |
-h|–help | ヘルプメッセージとしてコマンド一覧を表示します。 |
【メモ】
コンテナデータファイルを構成するそれぞれのファイル形式を以下に示します。
コンテナ情報をJSON形式で格納します。 格納するコンテナ情報を以下に示します。
項目 | 説明 |
---|---|
コンテナ名 | コンテナの名称です。 |
コンテナ種別 | コレクションまたは時系列コンテナを指定します。 |
スキーマ情報 | ロウを構成するカラム集合の情報です。カラム名、データ型、カラム制約を指定します。 |
索引設定情報 | コンテナに設定する索引種別の情報です。索引設定の有無。ツリー索引、空間索引等の種別を指定します。 |
ロウキー設定情報 | コレクションの場合、ロウキーを設定します。時系列コンテナの場合、ロウキー設定なしであるか、デフォルトが設定されている場合はその値が有効となります。 |
テーブルパーティショニング情報 | テーブルパーティショニングの定義情報を指定します。 |
以下にメタ情報のJSON形式のタグとデータ項目を示します。利用者が新規に作成する際に必須となるタグについても記載します(タグの設定条件)。
タグ名 | 項目 | 説明 | 設定条件 |
---|---|---|---|
共通パラメータ | |||
database | データベース名 | データベース名 | 任意 省略した場合は”public” |
container | コンテナ名 | コンテナ名 | 必須 |
containerType | コンテナ種別 | COLLECTION/TIME_SERIES のいずれかを指定 | 必須 |
containerFileType | コンテナデータファイル種別 | csv/binary のいずれかを指定 | 必須 |
containerFile | コンテナデータファイル名 | ファイル名 | 任意 |
dataAffinity | データアフィニティ名 | データアフィニティの名前を指定 | 任意 |
partitionNo | パーティション | 空文字列で未設定 | 任意 エクスポート時出力される。(インポート時は指定不要。指定しても値は利用されない。) |
columnSet | カラム情報セット、(スキーマ情報) | 既存コンテナへのデータ追加時は、カラム情報が合致している必要あり | 必須 |
columnName | カラム名 | 必須 | |
type | データ型 | BOOLEAN/ STRING/ BYTE/ SHORT/ INTEGER/ LONG/ FLOAT/ DOUBLE/ TIMESTAMP/ GEOMETRY/ BLOB/ BOOLEAN[]/ STRING[]/ BYTE[]/ SHORT[]/ INTEGER[]/ LONG[]/ FLOAT[]/ DOUBLE[]/ TIMESTAMP[] のいずれかを指定 | 必須 |
notNull | NOT NULL制約 | true/false のどちらかを指定 | 任意 省略した場合は”false” |
rowKeyAssigned | ロウキー設定(*1) | true/false のいずれかを指定 rowKeySetと同時指定はエラー |
任意 省略した場合は”false” |
rowKeySet | ロウキーカラム名セット | ロウキーのカラム名を配列形式で指定 既存コンテナへのデータ追加時は、ロウキーが合致している必要あり |
任意 (*2) |
indexSet | 索引情報セット | カラム毎に設定可能。 存在しないカラム名は無視/エラー出力はする | 任意 |
columnNames | カラム名セット | カラム名を配列形式で指定 | 任意(indexSet指定時は必須) |
type | 索引種別 | TREE ( STRING/ BOOLEAN/ BYTE/ SHORT/ INTEGER/ LONG/ FLOAT/ DOUBLE/ TIMESTAMP ) 、 SPATIAL ( GEOMETRY )のいずれかを指定 | 任意 (indexSet指定時は必須) |
indexName | 索引名 | 索引名 | 任意 nullを指定した場合や省略した場合は未設定 |
テーブルパーティショニング情報 | |||
tablePartitionInfo | テーブルパーティショニング情報 | インターバル-ハッシュパーティショニングの場合は、インターバル、ハッシュの順番で以下の情報を配列形式で記述します | 任意 |
type | テーブルパーティショニング種別 | 指定する値は次の2種類 ハッシュ:HASH、インターバル:INTERVAL | tablePartitionInfoを記載した場合は必須 |
column | パーティショニングキー | 指定できるカラムの型は type=HASHの場合 制限なし type=INTERVALの場合 BYTE型,SHORT型,INTEGER型,LONG型,TIMESTAMP型 |
tablePartitionInfoを記載した場合は必須 |
divisionCount | ハッシュの分割数 | (type=HASHの場合のみ有効)ハッシュの分割数 | type=HASHの場合は必須 |
intervalValue | 分割基準値 | (type=INTERVALの場合のみ有効)分割する間隔 | type=INTERVALの場合は必須 |
intervalUnit | 分割単位 | (type=INTERVALの場合のみ有効)単位 DAY | type=INTERVAL,パーティショニングキーがTIMESTAMP型の場合は必須 |
インターバルまたはインターバル-ハッシュパーティショニングのみのパラメータ | |||
expirationType | 期限解放種別 | パーティション期限解放を指定する場合は”partition”を指定 | 任意 |
expirationTime | 解放対象の有効期限の基準とする経過期間 | 整数値を指定 | expirationType指定時は必須 |
expirationTimeUnit | 時間情報のENUM | DAY/ HOUR/ MINUTE/ SECOND/ MILLISECONDのいずれかを指定 | expirationType指定時は必須 |
【メモ】
マルチコンテナデータファイルのメタデータファイルには、コンテナのメタ情報がjsonの 配列 で記述されます。
ファイル名のデータベース名とコンテナ名の文字列はURLエンコードします。「エンコードしたデータベース名.エンコードしたコンテナ名」の文字長が140文字を超える場合は、140文字までで文字列を切り、最後に識別子(連番)を追加します。
例)
次の3つのコンテナをエクスポートした時、
・データベース「db1」、コンテナ「container_・・・_2017/08/01」(140文字以上のコンテナ名)
・データベース「db1」、コンテナ「container_・・・_2017/09/01」(140文字以上のコンテナ名)
・データベース「db2」、コンテナ「container_・・・_2017/10/01」(140文字以上のコンテナ名)
メタデータファイルのファイル名は下記のようになります。(エンコードした文字列を140文字までで切り、連番を付加します)
db1.container・・・2017%2f08_0_properties.json
db1.container・・・2017%2f09_1_properties.json
db2.container・・・2017%2f10_2_properties.json
【注意】
【例1】 シングルコンテナデータファイルでのコレクションの記述例 (public.c001_properties.json)
1つのコレクションを記述しています。
{
"container": "c001",
"containerFile": "public.c001.csv",
"containerFileType": "csv",
"containerType": "COLLECTION",
"columnSet": [
{ "columnName": "COLUMN_ID", "type": "INTEGER" },
{ "columnName": "COLUMN_STRING", "type": "STRING"}
],
"indexSet": [
{ "columnName": "COLUMN_ID", "type": "TREE"},
{ "columnName": "COLUMN_STRING", "type": "TREE" }
],
"rowKeyAssigned": true
}
【例2】 マルチコンテナデータファイルでのコレクションおよび時系列コンテナの記述例 (public.container01_properties.json)
コレクションおよび時系列コンテナの場合
[
{
"container": "c001",
"containerType": "collection",
"containerFileType":"csv",
"containerFile":"public.container01.csv",
"rowKeyAssigned":true,
"columnSet": [
{ "columnName": "COLUMN_FLAG", "type": "BOOLEAN" },
{ "columnName": "COLUMN_BLOB_DATA", "type": "BLOB" },
{ "columnName": "COLUMN_STRING", "type": "STRING" }
],
"indexSet":[
{ "columnName":" COLUMN_STRING ", "indexType": "TREE" }
]
},
{
"container": "c002",
"containerType": "timeSeries",
"containerFileType":"csv",
"containerFile":"public.container01.csv",
"rowKeyAssigned":true,
"dataAffinity":"month",
"columnSet": [
{ "columnName": "COLUMN_TIMESTAMP", "type": "TIMESTAMP" },
{ "columnName": "COLUMN_FLAG", "type": "BOOLEAN" },
{ "columnName": "COLUMN_BLOB_DATA", "type": "BLOB" },
{ "columnName": "COLUMN_INTEGER", "type": "INTEGER" }
],
"indexSet":[
{ "columnName":" COLUMN_FLAG ", "indexType": "TREE" }
]
}
]
【例3】 テーブルパーティショニングの場合の記述例
ハッシュパーティショニングの場合(テーブルパーティショニング情報の部分のみ抜粋)
"tablePartitionInfo":{
"type": "HASH",
"column": "column03",
"divisionCount": 16
}
インターバルパーティショニングの場合(テーブルパーティショニング情報の部分のみ抜粋)
"tablePartitionInfo":{
"type": "INTERVAL",
"column": "timecolumn05",
"intervalValue": 20,
"intervalUnit": "DAY"
}
インターバル-ハッシュパーティショニングの場合(テーブルパーティショニング情報の部分のみ抜粋)
"tablePartitionInfo":[
{
"type": "INTERVAL",
"column": "timecolumn05",
"intervalValue": 10,
"intervalUnit": "DAY"
},
{
"type": "HASH",
"column": "column03",
"divisionCount": 16
}
]
【メモ】
ロウデータファイル(バイナリデータファイル)はzip形式であり、gs_exportでのみ作成が可能です。可読性はなく、編集もできません。
ロウデータファイル(CSVデータファイル)はCSV形式であり、コンテナデータファイル情報部にはロウの定義であるメタデータファイルへの参照を記述します。
【メモ】
<CSVデータファイルの形式>
1.ヘッダ部(1~2行目)
ヘッダ部は、エクスポート時に出力される情報です。インポート時にヘッダ情報は不要です。
文頭に「#」を付与し区別します。フォーマットは以下とします。
"#(日時情報)(空白)GridDBリリースバージョン"
"#User:(ユーザ名)"
【例】
"#2017-10-01T17:34:36.520+0900 GridDB V4.0.00"
"#User:admin "
2.コンテナデータファイル情報部(3行目以降)
メタデータファイルへの参照を記述します。
文頭に「%」を付与し区別します。一行のフォーマットは以下とします。
"%","メタデータファイルのファイル名"
3.ロウデータ部(コンテナ情報部以降)
ロウデータを記述します。
カンマ区切りでカラムのロウデータをCSVファイルの1行に記述します。
"$","データベース名.コンテナ名"
"値","値","値",..(カラム定義個数)
"値","値","値",..(カラム定義個数)
:
: //登録したいロウの数だけ記述する
:
【メモ】
4.コメント部
コメント部はCSVデータファイルのヘッダ部以外であればどこでも記述できます。
【メモ】
<ファイル名形式>
エクスポートツールで出力するCSVデータファイルのファイル名は以下となります。
【例】CSVデータファイル(外部オブジェクトファイル含む)の記述例 メタデータファイル 例1の場合のデータの記述
"#2017-10-01T11:19:03.437+0900 GridDB V4.0.00"
"#User:admin"
"%","public.c001_properties.json"
"$","public.c001"
"1","Tokyo"
"2","Kanagawa"
"3","Osaka"
CSVデータファイルのロウの一部に以下のデータが含まれるとき、外部オブジェクトとしてCSVデータファイルとは別に外部オブジェクトファイルを用意します。外部データファイルの参照をCSVファイルの対象カラムに以下のように記載します。 “@データ型:”(ファイル名称)
外部オブジェクトファイルをエクスポートしたとき、エクスポート時の外部オブジェクトファイル名は、以下の規則に従い作成されます。
インポートで利用する外部オブジェクトファイルのファイル名は任意です。CSVデータファイルの該当カラムに、@データ型:任意のファイル名で記載します。
【例】外部オブジェクトファイルの命名例
//BYTE配列を3カラム目に持つ コレクション(colb)をエクスポートした場合
10月 4 12:51 2017 public.colb.csv
10月 4 12:51 2017 public.colb_0_3.byte_array
10月 4 12:51 2017 public.colb_1_3.byte_array
10月 4 12:51 2017 public.colb_2_3.byte_array
10月 4 12:51 2017 public.colb_3_3.byte_array
10月 4 12:51 2017 public.colb_4_3.byte_array
10月 4 12:51 2017 public.colb_properties.json
【例】シングルコンテナデータファイルでの外部オブジェクトファイルの記述
メタデータファイル public.col01_properties.json
{
"version": "4.0.0",
"container": "col01",
"containerFile": "public.col01.csv",
"containerFileType": "csv",
"containerType": "COLLECTION",
"columnSet": [
{ "columnName": "name","type": "string" },
{ "columnName": "status", "type": "boolean"},
{ "columnName": "count", "type": "long" },
{ "columnName": "lob", "type": "byte[]"
}
],
"indexSet": [
{
"columnName": "name",
"type": "TREE"
},
{
"columnName": "count",
"type": "TREE"
}
],
"rowKeyAssigned": true
}
CSVデータファイル public.col01.csv
"#2017-10-01T19:41:35.320+0900 GridDB V4.0.00"
"#User:admin"
"%","public.col01_properties.json"
"$","public.col01"
"name02","false","2","@BYTE_ARRAY:public.col01_0_3.byte_array"
外部オブジェクトファイル public.col01_03.byte_array
1,10,15,20,40,70,71,72,73,74
GridDB V4で作成したデータベースファイルを、GridDB V5で使用可能なファイル形式に移行します。以下に、同一マシン上で本ツールを利用した移行手順について説明します。
【注意】
移行を実施する前に、必ずデータベースファイルのバックアップを取得してください。
V4の設定ファイル(gs_node.json/gs_cluster.json)は、V5の設定ファイルとしても利用可能です。V5で追加されたパラメータはデフォルト値で動作します。また、V5で廃止されたパラメータは無視しますが、イベントログに以下の警告が記録されます。
2021-12-26T16:10:41.211+09:00 RHEL83-1 31897 WARNING MAIN [100002:CT_PARAMETER_INVALID] Unknown parameter (source=gs_node.json, group=dataStore, name=storeWarmStart)
本ツールは、GridDB V4で作成したデータベースファイルの移行をサポートします。GridDB V3以前のデータベースファイルの移行には、エクスポート、インポートツールをご利用ください。
V5で未サポートの機能(トリガ/Hash/ロウ期限解放/時系列圧縮)は移行できません。SQLで未サポート機能の使用を確認し、削除する必要があります。手順については、事前準備をご参照ください。
V4データベースが以下の場合、データベースファイル移行ツールは実行に失敗します。
データベースファイル移行ツールを利用する前に、移行対象データベースからのV5未サポート機能の削除、およびバックグラウンド処理を完了させる必要があります。
V4データベースを確認するために、GridDB V4クラスタを起動します。GridDBクラスタの起動は、サービスや各種ツールで行うことができます。操作の詳細については、下記を参照ください。
V5で未サポートの機能(トリガ/Hash/ロウ期限解放/時系列圧縮)は移行できません。SQLで未サポート機能の使用を確認し、削除する必要があります。以下の説明では、クラスタ運用管理コマンド・インタプリタ(gs_sh)、およびエクスポート/インポートツールを利用しています。
gs_shで以下のSQLを実行し、トリガの有無を確認してください。
gs[public]> select database_name, table_name, trigger_name from "#event_triggers";
結果が0件の場合、トリガは存在しません。
結果が1件以上の場合、トリガが存在するため、gs_shのdroptriggerサブコマンドを利用してトリガを削除してください。
■トリガが存在した場合の出力例
#トリガを検索します。
gs[public]> select count(*) from "#event_triggers"
3 件ヒットしました。
gs[public]> get
DATABASE_NAME,TABLE_NAME,TRIGGER_NAME
public,c01,trigger1
public,c01,trigger1
public,c01,trigger1
3 件の取得が完了しました。
■トリガの削除例
#c01コンテナのtrigger1トリガを削除します。
gs[public]> droptrigger c01 trigger1
gs[public]> select database_name, table_name, trigger_name from "#event_triggers";
0 件ヒットしました。
gs_shで以下のSQLを実行し、Hash索引の有無を確認してください。
gs[public]> select database_name, table_name, column_name from "#index_info" where index_type='HASH';
結果が0件の場合、Hash索引は存在しません。
結果が1件以上の場合、Hash索引が存在するため、gs_shのdropindexサブコマンドを利用してHash索引を削除してください。
■Hash索引が存在した場合の出力例
#Hash索引を検索します。
gs[public]> select database_name, table_name, column_name from "#index_info" where index_type='HASH';
1 件ヒットしました。
gs[public]> get
DATABASE_NAME,TABLE_NAME,COLUMN_NAME
public,c02,status
1 件の取得が完了しました。
■Hash索引の削除例
#c02コンテナのstatusカラムに設定されたHash索引を削除します。
gs[public]> dropindex c02 status HASH
gs[public]> select database_name, table_name, column_name from "#index_info" where index_type='HASH';
0 件ヒットしました。
gs_shで以下のSQLを実行し、ロウ期限解放を設定したコンテナの有無を確認してください。
gs[public]> select database_name, table_name from "#tables" where EXPIRATION_TYPE='ROW';
結果が0件の場合、ロウ期限解放を設定したコンテナは存在しません。
結果が1件以上の場合、ロウ期限解放を設定したコンテナが存在します。gs_exportでバックアップを取得後、gs_shのdropcontainerサブコマンドを利用してコンテナを削除してください。
■ロウ期限解放を設定したコンテナが存在した場合の出力例
#ロウ期限解放を設定したコンテナを検索します。
gs[public]> select database_name, table_name from "#tables" where EXPIRATION_TYPE='ROW';
1 件ヒットしました。
gs[public]> get
DATABASE_NAME,TABLE_NAME
public,c03
1 件の取得が完了しました。
■ロウ期限解放を設定したコンテナのバックアップ例
#gs_exportコマンドで、c03コンテナのバックアップを取得します。
$ mkdir c03
$ cd c03
$ gs_export -u admin/admin -d public -c c03
■ロウ期限解放を設定したコンテナの削除例
#ロウ期限解放が設定されたc03コンテナを削除します。
gs[public]> dropcontainer c03
gs[public]> select database_name, table_name from "#tables" where EXPIRATION_TYPE='ROW';
0 件ヒットしました。
gs_shで以下のSQLを実行し、時系列圧縮を設定したコンテナの有無を確認してください。
gs[public]> select database_name, table_name from "#tables" where COMPRESSION_METHOD is not null;
結果が0件の場合、時系列圧縮を設定したコンテナは存在しません。
結果が1件以上の場合、時系列圧縮を設定したコンテナが存在します。gs_exportでバックアップを取得後、gs_shのdropcontainerサブコマンドを利用してコンテナを削除してください。
■時系列圧縮を設定したコンテナが存在した場合の出力例
#時系列圧縮を設定したコンテナを検索します。
gs[public]> select database_name, table_name from "#tables" where COMPRESSION_METHOD is not null;
1 件ヒットしました。
gs[public]> get
DATABASE_NAME,TABLE_NAME
public,c04
1 件の取得が完了しました。
■時系列圧縮を設定したコンテナのバックアップ例
#gs_exportコマンドで、c04コンテナのバックアップを取得します。
$ mkdir c04
$ cd c04
$ gs_export -u admin/admin -d public -c c04
■時系列圧縮を設定したコンテナの削除例
#時系列圧縮を設定されたc04コンテナを削除します。
gs[public]> dropcontainer c04
gs[public]> select database_name, table_name from "#tables" where EXPIRATION_TYPE='ROW';
0 件ヒットしました。
クラスタ情報取得コマンドgs_statを利用して、バックグラウンド処理の完了確認を行います。numBackgroundが0であれば、バックグラウンド処理は完了しています。
$ gs_stat -u admin/admin | grep numBackground
"numBackground": 0,
GridDBクラスタの全ノードで確認してください。もし、numBackgroundが1以上の場合は、バックグラウンド処理を実行中です。バックグラウンド処理が完了するまで(numBackgroundが0になるまで)、GridDBクラスタを稼働したままお待ちください。
V5未サポート機能の削除、およびバックグラウンド処理の完了を確認したら、V4クラスタを停止後、各ノードを停止してください。また、GridDB V5インストールに備え、データベースファイルの格納ディレクトリをリネームしてください。
例)
$ mv /var/lib/gridstore/data /var/lib/gridstore/data-v4
GridDB V5をインストールする前に、GridDB V4パッケージを全てアンインストールしてください。
[CentOS実行例]
$ sudo rpm -e griddb-ee-server
$ sudo rpm -e griddb-ee-client
$ sudo rpm -e griddb-ee-java-lib
$ sudo rpm -e griddb-ee-c-lib
[メモ]
$ sudo dpkg -r griddb-ee-server
GridDB V4のアンインストール完了後、GridDB V5をインストールしてください。インストールの詳細は、『GridDB データベース管理者ガイド』を参照してください。
V4データベースが存在するマシン上で、データベースファイル移行ツールを実行します。
コマンド
コマンド | オプション/引数 |
---|---|
gs_convdbv4tov5 | –v4data V4データベースファイルの格納ディレクトリ –v5data V5データファイルの格納先ディレクトリ –v5txnlog V5トランザクションログファイルの格納先ディレクトリ [ –v5splitCount データファイル分割数 ] [ –parallel 並列実行数 ] |
オプション
オプション | 説明 |
---|---|
–v4data V4データベースファイルの格納ディレクトリ | V4データベースファイルの格納ディレクトリを指定します。 |
–v5data V5データファイルの格納先ディレクトリ | V4データベースファイルから生成されるV5データファイルの格納先ディレクトリを指定します。 |
–v5txnlog V5トランザクションログファイルの格納先ディレクトリ | V4データベースから生成されるV5トランザクションログファイルの格納先ディレクトリを指定します。 |
–v5splitCount データファイル分割数 | V4データベースファイルから生成されるV5データファイルの分割数を指定します。デフォルト値は0(分割なし)です。 |
–parallel 並列実行数 | 指定された値で並列実行を行います。並列実行数には1,2,4,8が指定できます。デフォルト値は1です。 |
【実行例】
$ gs_convdbv4tov5 --v4data /var/lib/gridstore/data-v4 --v5data /var/lib/gridstore/data --v5txnlog /var/lib/gridstore/txnlog
【注意】
データベースファイル移行ツールを実行する前に、gsadmユーザが利用可能なプロセス数とオープン可能なファイル数の上限値を変更してください。変更していない場合、データベースファイル移行ツールの実行に失敗する可能性があります。/etc/security/limits.confを編集後、gsadmユーザで再ログインすると設定が反映されます。ulimit -aで設定内容をご確認ください。
[limits.confの設定例]
gsadm soft nproc 16384
gsadm hard nproc 16384
gsadm soft nofile 65536
gsadm hard nofile 65536
データベースファイル移行ツールの実行完了後、GridDB V5クラスタを起動して、データが移行できていることを確認してください。また、必要に応じて、7.2.2 未サポート機能の確認と削除方法でエクスポートしたコンテナをインポートしてください。
[注意]
[インポートの実行例]
$ cd c03
$ gs_import --all -u admin/admin