griddb.github.io

— はじめに —

本書の目的と構成

本書はGridDBの提供する運用ツールについて説明したものです。

本書は、GridDBを用いたシステム構築を行う設計者、GridDBの運用管理を行う管理者の方を対象としています。

各章は次の内容です。

— サービス —

サービスを利用するには

サービスのインストールと設定の手順は、以下のとおりです。

  1. GridDBサーバパッケージ、クライアントパッケージのインストール
  2. クラスタを構成するすべてのノードの設定
  3. 起動設定ファイルの設定

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 )を編集します。

サーバパッケージのアップデートインストールやアンインストールのとき、起動設定ファイルは上書き・アンインストールされません。

【注意】

ログ

サービスのログに関しては、ブートログ( /var/log/boot.log )や運用コマンドのログ( $GS_HOME/log )を参照してください。

コマンド

GridDBのサービスのコマンドを以下に説明します。

【注意】

vi .bash_profile
GS_SSL_MODE=VERIFY
export GS_SSL_MODE
SSL_CERT_FILE=$GS_HOME/security/ca.crt
export SSL_CERT_FILE

start

動作:

$ sudo systemctl start gridstore

【注意】

stop

動作:

$ sudo systemctl stop gridstore

【注意】

status

動作:

$ sudo systemctl status gridstore

restart

動作:

condrestart

動作:

エラーメッセージ一覧

サービスのエラーメッセージは以下のとおりです。

コード メッセージ 意味
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

【メモ】

 

GridDBコマンド共通

【コマンドオプション】

以下のオプションは、すべてのコマンドで共通して使えるオプションです。

オプション 説明
-h|–help コマンドのヘルプを表示します。
–version 運用コマンドのバージョンを表示します。

【例】

以下のオプションは、一部のコマンドで共通して使えるオプションです。

オプション 説明
-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_LOG}/コマンド名.logに保存されます。

【例】 GS_LOGの値が”/var/lib/gridstore/log(デフォルト)”の場合、”gs_startnode”コマンドを実行すると以下のログファイルが作成されます。

利用上の注意

【運用コマンドを利用する前に】

【クラスタを構成するには】

クラスタは、1台以上のノードから成り、1台のマスタとその他のフォロワと呼ばれるノードの集合から構成されます。

クラスタ構成では、有効ノード数と構成ノード数が重要になります。有効ノード数は、クラスタを構成している実際のノード数です。構成ノード数は、クラスタに参加できるノード数で、gs_joinclusterコマンドで指定します。

有効ノード数と構成ノード数はマスタノードに対してgs_statコマンドを実行することで確認でき、それぞれ/cluster/activeCountと/cluster/designatedCountの値となります。

参考までに、以下にクラスタ構成を作成/変更するための主な手順を示します。 各コマンドの詳細については以降の節を参照してください。

ノードの起動/停止

ノードの起動

ノードを実行するマシン上でGridDBノード起動コマンドを実行します。このコマンドはGridDBノード毎に実行する必要があります。

【メモ】

 

ノードの停止

GridDBノードを停止します。ノードを停止するためには、まず、GridDBクラスタ管理処理を停止させる必要があります。

【メモ】

 

ユーザ管理

GridDBの管理ユーザの登録/削除/パスワード変更を行います。

インストール直後、下記のデフォルトユーザが存在します。

【注意】

 

管理ユーザの登録

【メモ】

【例】

 

管理ユーザの削除

【メモ】

【例】

 

パスワード変更

【メモ】

【例】

クラスタ管理

クラスタ構成への参加

GridDBクラスタにノードを参加させてクラスタを構成します。

【メモ】

【例】ノードA~C 3台でクラスタ名「example_three_nodes_cluster」のクラスタを構成する。

クラスタ構成からの離脱

ノードをクラスタから離脱させます。  

【メモ】

【例】

 

クラスタの全停止

クラスタを停止します。  

【メモ】

【例】

 

クラスタ構成情報取得

クラスタ構成情報(クラスタに参加しているノードの一覧情報)を取得します。  

【メモ】

【例】

 

クラスタ情報取得

クラスタ情報(クラスタ構成情報および内部情報)、または、バックアップ進捗状況を取得します。

【メモ】

【例】

 

クラスタへのノード増設

稼働中のクラスタに新たにノードを増設します(追加します)。  

【メモ】

【例】

 

クラスタの手動フェイルオーバー

GridDBクラスタのフェイルオーバーを実行します。

【メモ】

【例】

 

パーティション情報取得

GridDBノードのパーティション情報を表示します。

【メモ】

【例】

 

クラスタ構成ノード数の拡張

GridDBクラスタの構成ノード数を拡張します。

【メモ】

【例】

クラスタの自律的データ配置の設定

GridDBクラスタの自律的データ配置機能の有効無効の設定および設定の表示を行います。 ローリングアップデートを行う際など、計画的にノードを停止して再びクラスタに戻す場合には、一時的に自律的データ配置機能を無効に設定しておくと、不要なデータ再配置が行われずに負荷を軽減することができます。

【メモ】

【例】

  クラスタを構成する全ノードの自律的データ配置の設定を確認
  $ 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 -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 -u admin/admin --off

  手動チェックポイント処理を実行します。
  $ gs_checkpoint -u admin/admin --manual -w
  ...
  The manual checkpoint has been completed.

  定期チェックポイントを有効にします。
  $ gs_checkpoint -u admin/admin --on

 

ログ情報

ログの表示

直近のGridDBのイベントログを取得します。  

【メモ】

【例】

 

イベントログ出力レベル表示と変更

イベントログ出力レベルを表示または変更します。引数指定なしの場合は設定一覧を取得します。  

【メモ】

【例】

 

バックアップ/リストア

バックアップ

サービスを継続しながら、GridDBのバックアップをノード単位で取得します。

クラスタを構成する全ノードに対して順次行うことで、サービスを継続しながら、クラスタ全体としてのバックアップが行えます。

<modeオプション>

バックアップ
バックアップ

【メモ】

【例】

バックアップデータ確認

ノード定義ファイル(gs_node.json)で設定されているバックアップディレクトリにあるバックアップデータの一覧を取得します。  

【メモ】

【例】

 

リストア

GridDBのバックアップファイルをリストアします。

【メモ】

【例】

保守

パラメータ表示と変更

ノードのパラメータの表示または変更を行います。

【メモ】

【例】

認証用ユーザキャッシュの管理

一般ユーザの認証やLDAP認証の高速化のためにキャッシュで保持するユーザ情報の一覧表示と削除を行います。

認証方式の詳細は、『GridDB 機能リファレンス』を参照してください。

【例】

キャッシュで保持する全ユーザ情報の一覧を表示します。
$ gs_authcache -u admin/admin --show
{
    "usercache": [
      {
        "count": 30,
        "dbname": "mydb",
        "username": "user01"
      },
      {
        "count": 8,
        "dbname": "mydb",
        "username": "user02"
      },
      ・・・
    ]
  }
}

— 0クラスタ運用管理コマンド・インタプリタ(gs_sh) —

概要

クラスタ運用管理コマンド・インタプリタ(以降gs_shと記載します)は、GridDBクラスタの運用管理、およびデータ操作を提供するコマンドラインインターフェースツールです。

gs_shにより次のことができます。

gs_shを利用するには

事前準備

gs_shを利用するには、あらかじめ以下を実施ください。

gs_sh起動

gs_shには2種類の起動モードがあります。

【メモ】

 

GridDBクラスタの定義

GridDBクラスタの運用管理やデータ操作を実行するにあたり、事前に以下の定義が必要です。

ノード変数、クラスタ変数、ユーザ情報の定義方法について、以下に説明します。また、任意の変数定義、変数定義内容の表示、変数定義内容のスクリプトファイルへの保存および読み込み方法についても説明します。

 

ノード変数の定義

GridDBノードのIPアドレスとポート番号を、ノード変数に定義します。

【メモ】

  

クラスタ変数の定義

GridDBクラスタの構成を、クラスタ変数に定義します。

【メモ】

 

また、定義したクラスタ変数に対して、ノード変数の追加、削除を行うことができます。

【メモ】

 

クラスタのSQL接続先を定義

GridDBクラスタ構成にSQLの接続先を定義します。 GridDB NewSQLインターフェースを使用する場合のみ設定します。

【メモ】

 

ユーザの定義

GridDBクラスタにアクセスするユーザおよびパスワードを定義します。

【メモ】

  

任意の変数の定義

任意の変数を定義します。

【メモ】

 

変数定義の表示

指定した変数の定義内容を表示します。

【メモ】

 

変数定義のスクリプトファイル保存

変数に定義した内容をスクリプトファイルに保存します。

【メモ】

 

スクリプトファイルの実行

スクリプトファイルを読み込み、記載された処理を実行します。

【メモ】

クラスタ変数とノード変数の定義の同期

稼働中のGridDBクラスタに接続し、クラスタ変数とノード変数の定義を自動で行います。

【メモ】

GridDBクラスタの運用管理操作

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 参加中のノードを離脱

【メモ】

各操作方法について、以下に説明します。

ノードの起動

指定ノードを起動します。

【メモ】

ノードの停止

指定ノードを停止します。

また、指定ノードを強制停止することもできます。

【メモ】

クラスタへノード一括参加

指定クラスタを稼働状態にするため、クラスタ未参加の稼働ノード群を一括参加させます。

【メモ】

クラスタからノード一括離脱

GridDBクラスタを停止するために、GridDBクラスタ参加中のノード群を一括離脱させます。

【メモ】

クラスタへノード参加

leaveclusterサブコマンドや障害などによってGridDBクラスタから一旦離脱したノードを、GridDBクラスタに再度参加させます。

【メモ】

クラスタからノード離脱

指定ノードを稼働中のGridDBクラスタから離脱させます。また、指定ノードを稼働中のGridDBクラスタから強制離脱させることもできます。

【メモ】

 

クラスタへノード増設

クラスタ変数に定義していないノードを、稼働中のGridDBクラスタに参加させます。

【メモ】

クラスタステータス情報の表示

稼働中のGridDBクラスタのステータス、クラスタを構成する各ノードのステータスを表示します。

【メモ】

 

構成情報の表示

GridDBクラスタの構成情報を表示します。

【メモ】

 

ステータス表示

指定ノードの状態および統計情報を表示します。

【メモ】

 

ログ表示

指定ノードのログを表示します。

 

また、ログの出力レベルの表示、および変更ができます。

【メモ】

 

実行中SQL処理の表示

実行中のSQL処理を表示します。

   

実行中イベントの表示

接続先クラスタの各ノード内のスレッドが実行中のイベント一覧を表示します。

 

コネクションの表示

コネクションの一覧を表示します。

 

SQLキャンセル

実行中のSQL処理をキャンセルします。

【メモ】

 

データベース内のデータ操作

データ操作を実行するには、操作対象のクラスタに接続する必要があります。 接続時に設定したデータベース(データベース名省略時は「public」)のデータが操作対象になります。

クラスタへ接続

データ操作を実行するGridDBクラスタに接続します。

【メモ】

 

検索 (TQL)

検索を実行し、検索結果を保持します。

【メモ】

 

SQL文実行

SQL文を実行し、検索結果を保持します。

 

SQL文の先頭が下記文字列のいずれかである場合、サブコマンド名sqlを省略することができます。

【メモ】

 

検索結果の取得

保持する検索結果から、指定件数を取得します。結果の出力方法には以下の3種類があります。

(A) 取得した結果を標準出力に表示します。

(B) 取得した結果をCSV形式でファイルに保存します。

(C) 取得した結果を出力しません。

例)

  //検索を実行
  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文の実行計画を表示します。検索は実行しません。

また、指定TQL文を実際に実行して、実行計画とともに処理行数等の実測値を表示することもできます。

【メモ】

 

検索結果の破棄

tqlをクローズして、保持する検索結果を破棄します。

クエリをクローズして、保持する検索結果を破棄します。

例)

  //検索結果を破棄
  gs[public]> tqlclose

  gs[public]> queryclose

【メモ】

 

クラスタから切断

GridDBクラスタから切断します。

【メモ】

 

件数取得の設定

SQLの検索実行時、件数取得処理を実行するかどうかを設定します。

【メモ】

 

データベース管理

データベース管理を実行するサブコマンドについて説明します。 データベース管理は、操作対象のクラスタに接続してから実行してください。(サブコマンド connect)

データベース作成

指定された名前のデータベースを作成します。

【メモ】

 

データベース削除

指定された名前のデータベースを削除します。

【メモ】

 

カレントデータベースの表示

現在のカレントデータベース名を表示します。

 

データベース一覧

データベース一覧およびアクセス権情報を表示します。

【メモ】

 

アクセス権の付与

データベースへのアクセス権を付与します。

【メモ】

アクセス権の剥奪

データベースへのアクセス権を剥奪します。

【メモ】

ユーザ管理

ユーザ管理を実行するサブコマンドについて説明します。 ユーザ管理は、操作対象のクラスタに接続してから実行してください(サブコマンド connect)。

一般ユーザ作成

指定された名前の一般ユーザを作成します。

【メモ】

 

一般ユーザ削除

指定された名前のユーザを削除します。

【メモ】

 

パスワード変更

パスワードを変更します。

【メモ】

 

一般ユーザ一覧

一般ユーザとロールの情報を表示します。

【メモ】

 

コンテナ管理

コンテナへの操作を実行するサブコマンドについて説明します。 コンテナ管理は、操作対象のクラスタに接続してから実行してください(サブコマンド connect)。 接続先のデータベース上のコンテナが操作対象になります。

コンテナ作成

コンテナを作成します。

 

簡易版

コンテナ名とカラム情報(カラム名とタイプ)を指定してコンテナを作成します。

詳細版

コンテナ定義情報をjsonファイルで指定してコンテナを作成します。

 

コンテナ削除

コンテナを削除します。

【メモ】

ロウ登録

コンテナにロウを登録します。

ロウ削除

コンテナのロウを削除します。

【メモ】

コンテナの表示

コンテナ情報を表示します。

【メモ】

 

テーブルの表示

テーブル情報を表示します。showcontainerとの互換コマンドです。

 

コンテナの検索

コンテナ名からコンテナを検索します。

ビューの検索

ビュー名からビューを検索します。

索引の作成

指定したコンテナのカラムに索引を作成します。

【メモ】

 

複合索引の作成

指定したコンテナのカラムに複合索引を作成します。

 

索引の削除

指定したコンテナのカラムの索引を削除します。

【メモ】

 

複合索引の削除

指定したコンテナのカラムの複合索引を削除します。

【メモ】

実行計画

SQL実行計画を表示するサブコマンドについて説明します。

SQL分析結果(グローバルプラン)の取得

SQL分析結果(グローバルプラン)をテキスト形式またはJSON形式で表示します。

テキスト形式

【メモ】

JSON形式

【メモ】

SQL分析結果詳細情報の取得

SQL分析結果の詳細情報をJSON形式で表示します。

【メモ】

その他の操作

その他のサブコマンドについて説明します。

エコーバック設定

実行したサブコマンドを標準出力に表示します。

【メモ】

 

メッセージの表示

指定した文字列、もしくは変数の定義内容を表示します。

【メモ】

 

スリープ

指定した秒数スリープします。

【メモ】

 

外部コマンドの実行

外部コマンドを実行します。

【メモ】

 

gs_shの終了

gs_shを終了します。

また、サブコマンドでエラーが発生した場合に、gs_shを終了するように設定できます。

【メモ】

 

ヘルプ

サブコマンドの説明を表示します。

【メモ】

 

バージョン

gs_shのバージョンを表示します。

【メモ】

タイムゾーン設定

タイムゾーンの設定を行います。

【メモ】

認証方式の設定

認証方式の設定を行います。LDAP認証の詳細は、『GridDB 機能リファレンス』を参照してください。

【メモ】

SSL接続の設定

SSLにより、GridDBクラスタとの通信を保護します。

GridDBクラスタでSSL接続設定を有効に設定した後に、以下のサブコマンドでgs_shのSSL接続設定を有効にしてください。SSL接続の詳細は、『GridDB 機能リファレンス』を参照してください。

【メモ】

例)

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アドレスを指定します。

【メモ】

履歴表示と実行

実行したサブコマンドの履歴を表示します。

historyサブコマンドで表示した履歴よりサブコマンドを再実行します。

直前に実行したサブコマンドを再実行します。

【メモ】

オプション・サブコマンド仕様

オプション

【メモ】

 

サブコマンド一覧

 

 

 

   

 

 

 

— 統合運用管理GUI (gs_admin) —

概要

統合運用管理GUI(以降gs_adminと記載します)は、GridDBのクラスタ運用機能を統合したWebアプリケーションです。

gs_adminを用いて次のことができます。

gs_adminの構成

gs_adminは、クラスタにアクセスするために、クラスタを構成するノードを起動しているマシン、もしくはサブネットが等しく、マルチキャストが配送されるネットワーク上のマシンに配置する必要があります。

gs_adminを利用するには

gs_adminはWebコンテナを内包したWebアプリケーションです。

gs_adminを利用するには、事前にJavaをインストールする必要があります。 対応するバージョンは以下のとおりです。

また、gs_admin Ver.5.0が対応するGridDBのバージョンは以下のとおりです。

gs_adminの利用までの手順は、以下のとおりです。

  1. GridDBクラスタを構成するGridDBノードをそれぞれ設定する。
  2. gs_adminのインストールと設定を行う。
  3. gs_adminのアプリケーションURIにブラウザでアクセスし、 gs_admin利用ユーザで ログインする。

GridDBノードを設定する手順に関しては、『GridDB クイックスタートガイド』を参照してください。

gs_adminのインストールと設定の手順は、以下のとおりです。

  1. GridDBクライアントパッケージのインストール
  2. gs_admin利用ユーザの設定
  3. gs_admin.propertiesファイルの設定
  4. ノードリポジトリの設定

クライアントパッケージのインストール

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の利用の際、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利用ユーザとなります。

【メモ】

gs_admin.propertiesファイルの設定

設定ファイルは、 /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有効かつサーバ証明書検証実施)のいずれかを指定します

【メモ】

例)

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の管理ユーザでログインすると、リポジトリ管理画面に移動します。

リポジトリ管理画面は、以下の画面です。

リポジトリ管理画面
リポジトリ管理画面

リポジトリ管理画面には以下の機能があります。

入力欄の仕様は以下のとおりです。

クラスタ

ノード

クラスタツリーに関する機能

クラスタツリー

概要

クラスタツリーでは、管理対象クラスタを構成するノード、つまり、リポジトリのノード(clusterNameが管理対象クラスタ)をツリー形式で表示します。

クラスタツリー
クラスタツリー

リポジトリに登録されていないノードの先頭には*が表示されます。

クラスタツリーに表示されるアイコンの説明は以下のとおりです。

アイコン 説明
クラスタ
マスタノード
フォロワノード
起動済みノード
未起動ノード
状態未確認ノード
メッセージ

コンテキストメニュー

ツリー内の要素を右クリックすると要素に応じたコンテキストメニューが表示されます。 メニューから項目を選択することで、情報更新や要素に対する操作ができます。

それぞれの選択要素に対するメニューと機能は以下のとおりです。

選択要素 メニュー 機能
クラスタ refresh Treeのノード一覧の再取得
ノード refresh Viewにノードの最新情報を表示

操作対象とViewのタブ

ツリー内の要素を左クリックすると、要素に応じた機能がViewに表示されます。 機能はViewの上部のタブで切り替えます。

選択要素 タブ 画面の名前 機能
クラスタ Dashboard ダッシュボード画面 クラスタ全体の様々な情報が表示されます。
  Status クラスタステータス画面 管理対象クラスタの構成情報やデータ情報が表示されます。
  Monitor OS情報表示画面 ノードが動作するマシンのOS情報が表示されます。
  Configuration クラスタ操作画面 ノードの起動、終了を含む、クラスタ操作を行うことができます。
ノード System システム情報画面 ノードのシステム情報が表示されます。
  Container コンテナ一覧画面 ノードが格納しているコンテナの一覧が表示されます。
  Performance 性能情報画面 ノードの性能情報がグラフで表示されます。
  Snapshot スナップショット画面 採取した性能値を表に表示します。以前に採取した値と比較することができます。
  Log ログ画面 ノードのイベントログの表示や、イベントログの出力レベルの設定ができます。

【メモ】

ダッシュボード画面

概要

クラスタ全体の様々な情報が表示されます。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー クラスタ Dashboard

画面

ダッシュボード画面
ダッシュボード画面

機能

ダッシュボード画面には以下の機能があります。

クラスタステータス画面

概要

管理対象クラスタの構成情報やデータ情報が表示されます。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー クラスタ Status

画面

クラスタステータス画面
クラスタステータス画面

機能

クラスタステータス画面には以下の機能があります。

OS情報表示画面

概要

ノードの動作するマシンのリソース情報やOS性能が表示されます。GridDBの性能分析やCPUやネットワークなどの負荷状況が分かります。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー クラスタ Monitor

画面

OS情報表示画面
OS情報表示画面

機能

OS情報表示には以下の機能があります。

【メモ】

クラスタ操作画面

この機能はgs_admin管理者のみ利用可能です。

概要

ノードの起動、終了を含む、クラスタ操作を行うことができます。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー クラスタ Configuration

画面

クラスタ操作画面
クラスタ操作画面

機能

クラスタ操作画面には以下の機能があります。

【メモ】

システム情報画面

概要

ノードのシステム情報が表示されます。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー ノード System

画面

システム情報画面
システム情報画面

機能

システム情報画面には以下の機能があります。

コンテナ一覧画面

概要

ノードが格納しているコンテナの一覧が表示されます。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー ノード Container

画面

コンテナ一覧画面
コンテナ一覧画面

機能

コンテナ一覧画面には以下の機能があります。

【メモ】

性能情報画面

概要

ノードの性能情報がグラフで表示されます。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー ノード Performance

画面

性能情報画面
性能情報画面

機能

性能情報画面には以下の機能があります。

スナップショット画面

概要

採取した性能値を表に表示します。以前に採取した値と比較することができます。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー ノード Snapshot

画面

スナップショット画面
スナップショット画面

機能

スナップショット画面には以下の機能があります。

ログ画面

概要

ノードのイベントログの表示や、イベントログの出力レベルの設定ができます。

利用方法

ツリーの種類 操作対象 タブ名
クラスタツリー ノード Log

画面

ログ画面
ログ画面

機能

ログ画面には以下の機能があります。

【注意】

コンテナツリーに関する機能

コンテナツリー

概要

コンテナツリーでは、管理対象クラスタ上に存在するデータベースやコンテナをツリー形式で表示します。

ツリーの一番上には、管理対象クラスタが表示されます(()内はクラスタの総データベース数)。

コンテナツリー
コンテナツリー

コンテナツリーに表示されるアイコンの説明は以下のとおりです。

アイコン 説明
クラスタ
データベース
データベース(存在しない)
コンテナ(コレクション)
コンテナ(時系列コンテナ)
パーティションテーブル(コンテナ)
検索フォルダ
一時ワークフォルダ
メッセージ

機能

コンテナツリーには以下の機能があります。

ログイン後には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

画面

SQL画面
SQL画面

機能

SQL画面には以下の機能があります。

【メモ】

コンテナ作成画面

概要

データベースにコンテナを作成できます。

利用方法

ツリーの種類 操作対象 タブ名
コンテナツリー データベース Create

画面

コンテナ作成画面(コレクション)
コンテナ作成画面(コレクション)
コンテナ作成画面(時系列コンテナ)
コンテナ作成画面(時系列コンテナ)

機能

コンテナ作成画面には以下の機能があります。

【メモ】

コンテナ詳細画面

概要

コンテナのカラムや索引の設定情報が表示されます。

利用方法

ツリーの種類 操作対象 タブ名
コンテナツリー コンテナ Details

画面

コンテナ詳細画面
コンテナ詳細画面

機能

コンテナ詳細画面には以下の機能があります。

索引設定画面

概要

コンテナごとの索引の作成、削除ができます。

利用方法

ツリーの種類 操作対象 タブ名
コンテナツリー コンテナ Index

画面

索引設定画面
索引設定画面

機能

索引設定画面には以下の機能があります。

【メモ】

TQL画面

概要

コンテナに対してTQL(問合せ言語)を実行し、その結果を表示します。

利用方法

ツリーの種類 操作対象 タブ名
コンテナツリー コンテナ TQL

画面

TQL画面
TQL画面

機能

TQL画面には以下の機能があります。

【メモ】

gs_adminの活用方法

各機能を利用したgs_adminの活用方法を紹介します。

稼働中のクラスタの管理を始める

既に稼働中のクラスタをgs_adminで管理するには、リポジトリ管理機能を活用します。 以下の手順を実施します。

  1. ログイン画面でrepository managerを選択し、gs_adminの管理ユーザでログインします。
  2. Syncボタンを押し、稼働中のクラスタのいずれかのノードの下記の情報を入力してSyncを押して同期を行います。
    • IPアドレスにはノード定義ファイル(gs_node.json)の /system/serviceAddress を指定します。
    • ポートにはノード定義ファイル(gs_node.json)の /system/servicePort を指定します。
  3. 稼働中のクラスタの情報がクラスタ一覧とノード一覧に反映されます。
  4. Saveボタンを押してリポジトリ情報を保存します。
  5. Logoutボタンを押してログイン画面に戻ります。
  6. ログイン画面のclusterから稼働中のクラスタ名を選択します。
  7. gs_adminの管理ユーザまたは利用ユーザでログインして運用機能の利用を開始します。

複数クラスタの管理を行う

1つのgs_adminで複数クラスタの管理を行う場合には、gs_admin利用ユーザの設定に注意が必要です。

gs_admin利用ユーザは単一のファイルで管理を行うため、例えば、複数のクラスタで別々のパスワードを使っている管理ユーザを、すべてのクラスタを管理するgs_admin利用ユーザとして指定することはできません。

そのため、管理の方法によって適切な設定を行う必要があります。

以下では、新たにgs_admin利用ユーザを登録する手順を示します。

  1. 新しいユーザで管理したいクラスタのうち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
  1. そのユーザで管理したいクラスタの他のすべてのノードに、上記のユーザ定義ファイルを配布します。
  2. すべてのノードを再起動、クラスタを再構成します。
  3. 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クラスタに復元するために必要です。

【メモ】

エクスポート/インポートの実行環境の設定

エクスポート/インポートコマンドを実行するには、以下の設定が必要です。

RPMでのパッケージインストール

エクスポート/インポートコマンドを実行するには、エクスポート/インポート機能が含まれているクライアントパッケージおよび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="-Djavax.net.ssl.trustStore=/var/lib/gridstore/admin/keystore.jks -Djavax.net.ssl.trustStorePassword=changeit"
export GS_COMMON_JVM_ARGS

エクスポートの機能

ここでは、エクスポート機能を利用する際に指定できるオプションについてエクスポートの使用例を元に説明します。

処理対象の指定

コンテナの指定方法

GridDBクラスタからコンテナを取り出すには、クラスタの全コンテナを指定する方法、データベースを指定する方法、コンテナを個別に指定する方法があります。

(1) 全てのコンテナの指定

(2) データベースの指定

(3) コンテナの個別指定

ロウの指定方法

コンテナからロウを取り出す検索クエリを指定することで、検索クエリにヒットするロウのみエクスポートすることができます。 検索クエリが指定されていないコンテナは、コンテナに格納されているすべてのロウがエクスポートされます。

検索クエリの指定

【例】実行例

$ 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) 全てのコンテナの指定

(2) データベースの指定

(3) コンテナの個別指定

【注意事項】

【メモ】

ユーザ・アクセス権の指定方法

エクスポート機能で–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クラスタ内に存在するとエラーとなります。 次のオプションを指定することで、データの追加や、置き換えができます。データ登録では、登録に成功したコンテナ数と失敗したコンテナ数を表示します。

【例】

$ 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

【メモ】

その他の機能

動作表示の詳細指定

コマンド/オプション仕様

エクスポートコマンド

【メモ】

インポートコマンド

【メモ】

コンテナデータファイルの形式

コンテナデータファイルを構成するそれぞれのファイル形式を以下に示します。

メタデータファイル

コンテナ情報を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指定時は必須

【メモ】

【注意】

【例1】 シングルコンテナデータファイルでのコレクションの記述例 (public.c001_properties.json)

【例2】 マルチコンテナデータファイルでのコレクションおよび時系列コンテナの記述例 (public.container01_properties.json)

【例3】 テーブルパーティショニングの場合の記述例

【メモ】

ロウデータファイル(バイナリデータファイル)

ロウデータファイル(バイナリデータファイル)はzip形式であり、gs_exportでのみ作成が可能です。可読性はなく、編集もできません。

ロウデータファイル(CSVデータファイル)

ロウデータファイル(CSVデータファイル)はCSV形式であり、コンテナデータファイル情報部にはロウの定義であるメタデータファイルへの参照を記述します。

【メモ】

<CSVデータファイルの形式>

1.ヘッダ部(1~2行目)

ヘッダ部は、エクスポート時に出力される情報です。インポート時にヘッダ情報は不要です。

【例】

"#2017-10-01T17:34:36.520+0900 GridDB V4.0.00"
"#User:admin "

2.コンテナデータファイル情報部(3行目以降)

メタデータファイルへの参照を記述します。

3.ロウデータ部(コンテナ情報部以降)

ロウデータを記述します。

【メモ】

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

  

【例】シングルコンテナデータファイルでの外部オブジェクトファイルの記述

— データベースファイル移行ツール—

概要

GridDB V4で作成したデータベースファイルを、GridDB 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)

事前準備

V4データベースが以下の場合、データベースファイル移行ツールは実行に失敗します。

データベースファイル移行ツールを利用する前に、移行対象データベースからのV5未サポート機能の削除、およびバックグラウンド処理を完了させる必要があります。

GridDB V4クラスタの起動

V4データベースを確認するために、GridDB V4クラスタを起動します。GridDBクラスタの起動は、サービスや各種ツールで行うことができます。操作の詳細については、下記を参照ください。

未サポート機能の確認と削除方法

V5で未サポートの機能(トリガ/Hash/ロウ期限解放/時系列圧縮)は移行できません。SQLで未サポート機能の使用を確認し、削除する必要があります。以下の説明では、クラスタ運用管理コマンド・インタプリタ(gs_sh)、およびエクスポート/インポートツールを利用しています。

トリガの確認と削除

gs_shで以下のSQLを実行し、トリガの有無を確認してください。

gs[public]> select database_name, table_name, trigger_name from "#event_triggers";

Hash索引の確認と削除

gs_shで以下のSQLを実行し、Hash索引の有無を確認してください。

gs[public]> select database_name, table_name, column_name from "#index_info" where index_type='HASH';

ロウ期限解放の確認と削除

gs_shで以下のSQLを実行し、ロウ期限解放を設定したコンテナの有無を確認してください。

gs[public]> select database_name, table_name from "#tables" where EXPIRATION_TYPE='ROW';

時系列圧縮の確認と削除

gs_shで以下のSQLを実行し、時系列圧縮を設定したコンテナの有無を確認してください。

gs[public]> select database_name, table_name from "#tables" where COMPRESSION_METHOD is not null;

バックグラウンド処理の完了確認

クラスタ情報取得コマンドgs_statを利用して、バックグラウンド処理の完了確認を行います。numBackgroundが0であれば、バックグラウンド処理は完了しています。

$ gs_stat -u admin/admin | grep numBackground
        "numBackground": 0,

GridDBクラスタの全ノードで確認してください。もし、numBackgroundが1以上の場合は、バックグラウンド処理を実行中です。バックグラウンド処理が完了するまで(numBackgroundが0になるまで)、GridDBクラスタを稼働したままお待ちください。

GridDB V4クラスタの停止

V5未サポート機能の削除、およびバックグラウンド処理の完了を確認したら、V4クラスタを停止後、各ノードを停止してください。また、GridDB V5インストールに備え、データベースファイルの格納ディレクトリをリネームしてください。

例)

$ mv /var/lib/gridstore/data /var/lib/gridstore/data-v4

GridDB V5のインストール

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

[メモ]

GridDB V4のアンインストール完了後、GridDB V5をインストールしてください。インストールの詳細は、『GridDB データベース管理者ガイド』を参照してください。

データベースファイル移行ツールの実行

V4データベースが存在するマシン上で、データベースファイル移行ツールを実行します。

【実行例】

  $ gs_convdbv4tov5 --v4data /var/lib/gridstore/data-v4 --v5data /var/lib/gridstore/data --v5txnlog /var/lib/gridstore/txnlog

【注意】

GridDB V5クラスタの起動

データベースファイル移行ツールの実行完了後、GridDB V5クラスタを起動して、データが移行できていることを確認してください。また、必要に応じて、7.2.2 未サポート機能の確認と削除方法でエクスポートしたコンテナをインポートしてください。

[注意]