Skip to content

Latest commit

 

History

History
3341 lines (2429 loc) · 130 KB

Specification_ja.md

File metadata and controls

3341 lines (2429 loc) · 130 KB

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

概要

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

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

  • GridDBクラスタの運用管理
    • GridDBクラスタの定義
    • GridDBノードおよびクラスタの起動、停止
    • ステータス、ログ表示
  • GridDBクラスタのデータ操作
    • データベース・ユーザ管理
    • コンテナ管理
    • 索引設定、削除
    • TQL/SQLによる検索

gs_shを利用するには

事前準備

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

  • GridDBのセットアップ

    • GridDBノード、クライアントライブラリのインストール
    • ユーザ作成
    • ネットワーク設定(GridDBクラスタ定義ファイル、ノード定義ファイル)

     ※ 手順の詳細に関しては、GridDB クイックスタートガイドの「GridDBのインストール」の章を参照してください。

  • SSHによるリモート接続設定

    • gs_sh実行環境から各GridDBノード実行環境へ、OSユーザ「gsadm」でSSH接続するために必要な設定
      ※ SSH接続の手順の詳細に関しては、各OSのマニュアルを参照してください。

    [メモ]

    以下のOSでは、鍵交換アルゴリズムの追加が必要です。

    RHEL9系の場合:

    $ sudo update-crypto-policies --set DEFAULT:SHA1
    $ sudo reboot   # OSの再起動
    

    Ubuntu 20.04の場合:

    $ vi /etc/ssh/sshd_config # エディタで設定ファイルを編集
    ...
    Kexalgorithms +diffie-hellman-group14-sha1
    
    $ sudo systemctl reload sshd
    

    Ubuntu 22.04の場合:

    $ vi /etc/ssh/sshd_config  # エディタで設定ファイルを編集
    ...
    Kexalgorithms +diffie-hellman-group14-sha1
    HostKeyAlgorithms +ssh-rsa
     
    $ sudo systemctl reload sshd
    

gs_sh起動

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
      

【メモ】

  • 対話モードでサブコマンドを起動すると、
    • 実行ユーザのホームディレクトリに.gssh_historyファイルが作成され、履歴が保存されます。
    • 矢印キーを押すと以前起動したサブコマンドを20個まで、表示/実行することができます。
    • サブコマンドの一部を入力しTabキーを押すと、サブコマンドの入力候補が一覧表示されます。
  • gs_shは、OSユーザ「gsadm」で実行してください。
  • gs_sh起動時に、gsadmユーザホームディレクトリ下の.gsshrcスクリプトファイルを自動的に読み込みます。.gsshrcの内容は、他のスクリプトファイルよりも先に読み込みます。
  • スクリプトファイルの拡張子はgshです。
  • スクリプトファイルは、文字コードUTF-8で記載します。

 

GridDBクラスタの定義

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

  • 各ノード情報を ノード変数に定義
  • ノード変数を利用して、GridDBクラスタ構成を クラスタ変数に定義
  • GridDBクラスタの ユーザ情報を定義

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

 

ノード変数の定義

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

  • サブコマンド

    setnode ノード変数名 IPアドレス ポート番号 [SSHポート番号]
  • 引数

    引数 説明
    ノード変数名 ノード変数名を指定します。既に同じ変数名が存在する場合は、定義を上書きします。
    IPアドレス GridDBノードのIPアドレス(運用管理ツール接続用)を指定します。
    ポート番号 GridDBノードのポート番号(運用管理ツール接続用)を指定します。
    SSHポート番号 SSHのポート番号を指定します。省略する場合は22番を使用します。
  • 例)

    //4つのGridDBノードを定義
    gs> setnode node0 192.168.0.1 10040
    gs> setnode node1 192.168.0.2 10040
    gs> setnode node2 192.168.0.3 10040
    gs> setnode node3 192.168.0.4 10040
    

【メモ】

  • ノード変数名に利用できるのは半角英数字と記号"_"のみです。
  • 運用管理ツール接続用GridDBノード「IPアドレス」および「ポート番号」は、各ノードの ノード定義ファイル で確認してください。
    • IPアドレス: /system/serviceAddress
    • ポート番号: /system/servicePort

  

クラスタ変数の定義

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
    

【メモ】

  • クラスタ変数名に利用できるのは半角英数字と記号"_"のみです。
  • ノード変数を利用する際には、変数名の先頭に"$"をつけます。
  • クラスタ変数に定義する「クラスタ名」、「マルチキャストアドレス」、「ポート番号」は、各GridDBノードのクラスタ定義ファイルで確認してください。
    • クラスタ名 :  /cluster/clusterName

    • マルチキャストアドレス:  /transaction/notificationAddress

    • ポート番号 :  /transaction/notificationPort

      ※GridDBクラスタを構成するノードのクラスタ定義ファイルは、すべて同一の設定内容である必要があります。設定内容が異なる場合、クラスタを構成することはできません。

 

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

  • サブコマンド

    modcluster クラスタ変数名 add|remove ノード変数...
  • 引数

    引数 説明
    クラスタ変数名 ノードの追加、削除を行うクラスタ変数名を指定します。
    add|remove ノード変数を追加する場合にはadd、ノード変数を削除する場合にはremoveを指定します。
    ノード変数... クラスタ変数に追加、もしくは削除するノード変数を指定します。
  • 例)

    //定義済みのGridDBクラスタ構成にノードを追加
    gs> modcluster cluster0 add $node3
    //定義済みのGridDBクラスタ構成からノードを削除
    gs> modcluster cluster0 remove $node3
    

【メモ】

  • ノード変数を利用する際には、変数名の先頭に"$"をつけます。

 

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

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
    

【メモ】

  • クラスタ変数名に利用できるのは半角英数字と記号"_"のみです。
  • 既存のクラスタ変数名を指定するとSQL接続情報部分のみ上書きします。上書きする際は、既存の接続方式と同じ方式を指定する必要があります。
  • SQLのみ使用する場合はこのコマンドだけ実行します。
  • クラスタ変数に定義する「SQLアドレス」、「SQLポート番号」は、各GridDBノードのクラスタ定義ファイルで確認ください。
    • SQLアドレス :  /sql/notificationAddress
    • SQLポート番号 :  /sql/notificationPort

 

ユーザの定義

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 10040
    //変数の設定をクリア
    gs> set GS_PORT
    

【メモ】

  • setサブコマンドにより、ノード変数やクラスタ変数の設定もクリアできます。
  • 変数名に利用できるのは半角英数字と記号"_"のみです。

 

変数定義の表示

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

  • サブコマンド

    show [変数名]
  • 引数

    引数 説明
    変数名 定義内容を表示する変数名を指定します。指定を省略すると、すべての定義済み変数の内容を表示します。
  • 例)

    //定義した全変数を定表示
    gs> show
    ノード変数:
      node0=Node[192.168.0.1:10040,ssh=22]
      node1=Node[192.168.0.2:10040,ssh=22]
      node2=Node[192.168.0.3:10040,ssh=22]
      node3=Node[192.168.0.4:10040,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
    

【メモ】

  • 保存先スクリプトファイルが存在しない場合、ファイルを新規作成します。保存先スクリプトファイルが存在する場合、内容を上書きします。
  • スクリプトファイルは、文字コードUTF-8で記載します。
  • ユーザ定義に関する内容(ユーザ、パスワード、gsadmパスワード)はスクリプトファイルに出力しません。
  • .gsshrcスクリプトファイルの内容は、gs_sh起動時に自動的に読み込みます。

 

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

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

  • サブコマンド

    load [スクリプトファイル名]
  • 引数

    引数 説明
    スクリプトファイル名 実行するスクリプトファイルを指定します。
    指定を省略すると、gsadmユーザホームディレクトリの.gsshrcファイルを再度読み込みます。
  • 例)

    //スクリプトファイルを実行
    gs> load test.gsh
    

【メモ】

  • スクリプトファイルの拡張子はgshです。
  • スクリプトファイルは、文字コードUTF-8で記載します。

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

稼働中の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
    

【メモ】

  • 本コマンドは管理者ユーザのみ実行できます。
  • 変数名に利用できるのは半角英数字と記号"_"のみです。
  • gs_shを終了すると変数は破棄されます。saveサブコマンドで保存してください。
  • 既存の変数名が存在する場合は、すべて上書きします。

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

GridDBクラスタの運用を管理するための機能として、管理ユーザのみ、以下の操作を実行できます。

  • GridDBノードの起動、停止、クラスタへの参加、クラスタからの離脱 (startnode/stopnode/joincluster/leavecluster)
  • GridDBクラスタの稼働開始、稼働停止 (startcluster/stopcluster)
  • 各種情報取得

ステータス

本節では、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クラスタのステータスは、クラスタステータス情報表示サブコマンド(configcluster)で確認することができます。

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

ノードの起動

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

  • サブコマンド

    startnode ノード変数|クラスタ変数 [タイムアウト秒数]
  • 引数

    引数 説明
    ノード変数|クラスタ変数 起動するノードを、ノード変数もしくはクラスタ変数で指定します。
    クラスタ変数を指定した場合、クラスタ変数に定義された全ノードを起動します。
    タイムアウト秒数 ノード起動完了の待合わせ時間を指定します。
    -1を指定した場合、即時復帰します。指定がない、または0を指定した場合、時間制限無しで待ち合わせます。
  • 例)

    //ノードの起動
    gs> startnode $node1
    ノード node1 を起動します。
    すべてのノードが起動しました。
    

【メモ】

  • 管理ユーザのみが実行可能なコマンドです。
  • ノード変数またはクラスタ変数を利用する際には、変数名の先頭に"$"をつけます。
  • 起動完了を待ち合わせることで、クラスタ起動処理(startclusterサブコマンド)をバッチ実行できます。

ノードの停止

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

  • サブコマンド

    stopnode ノード|クラスタ変数 [ タイムアウト秒数 ]
  • 引数

    引数 説明
    ノード|クラスタ変数 停止するノードを、ノード変数もしくはクラスタ変数で指定します。
    クラスタ変数を指定した場合、クラスタ変数に定義された全ノードを停止します。
    タイムアウト秒数 ノード停止完了の待合わせ時間を指定します。
    -1を指定した場合、即時復帰します。指定がない、または0を指定した場合、時間制限無しで待ち合わせます。
  • 例)

    //ノードの停止
    gs> stopnode $node1
    ノード node1 を停止します。
    ノード node1 が停止処理を開始しました。
    ノードの停止処理の完了を待っています。
    すべてのノードが停止しました。
    

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

  • サブコマンド

    stopnodeforce ノード|クラスタ変数 [ タイムアウト秒数 ]
  • 引数

    引数 説明
    ノード|クラスタ変数 強制停止するノードを、ノード変数もしくはクラスタ変数で指定します。
    クラスタ変数を指定した場合、クラスタ変数に定義された全ノードを強制停止します。
    タイムアウト秒数 ノード停止完了の待合わせ時間を指定します。
    -1を指定した場合、即時復帰します。指定がない、または0を指定した場合、時間制限無しで待ち合わせます。
  • 例)

    //ノードの強制停止
    gs> stopnodeforce $node1
    ノード node1 を停止します。
    ノード node1 が停止処理を開始しました。
    ノードの停止処理の完了を待っています。
    すべてのノードが停止しました。
    

【メモ】

  • 管理ユーザのみが実行可能なコマンドです。
  • ノード変数またはクラスタ変数を利用する際には、変数名の先頭に"$"をつけます。
  • stopnodeサブコマンドでは、GridDBクラスタに参加中のノードは停止できません。stopnodeforceコマンドではGridDBクラスタに参加中のノードも停止できますが、データがロストする恐れがあります。

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

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

  • サブコマンド

    startcluster クラスタ変数 [タイムアウト秒数]
  • 引数

    引数 説明
    クラスタ変数 GridDBクラスタを、クラスタ変数で指定します。
    タイムアウト秒数 クラスタへのノード参加の完了の待合わせ時間を指定します。
    -1を指定した場合、即時復帰します。指定がない、または0を指定した場合、時間制限無しで待ち合わせます。
  • 例)

    //GridDBクラスタの起動
    gs> startcluster $cluster1
    クラスタの開始を待っています。
    クラスタが開始しました。
    

【メモ】

  • 管理ユーザのみが実行可能なコマンドです。
  • クラスタ変数を利用する際には、変数名の先頭に"$"をつけます。
  • 「停止」状態のGridDBクラスタを「稼働」状態にするには、全ノードをクラスタに参加させる必要があります。あらかじめGridDBクラスタを構成する全ノードが稼働中であることを確認してください。

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

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

  • サブコマンド

    leavecluster ノード変数 [タイムアウト秒数]
    leaveclusterforce ノード変数 [タイムアウト秒数]
  • 引数

    引数 説明
    ノード変数 離脱するノードを、ノード変数で指定します。
    タイムアウト秒数 クラスタからのノードが離脱完了の待合わせ時間を指定します。
    -1を指定した場合、即時復帰します。指定がない、または0を指定した場合、時間制限無しで待ち合わせます。
  • 例)

    //ノードの離脱
    gs> leavecluster $node2
    ノードがクラスタから離脱するのを待っています。
    ノードがクラスタから離脱しました。
    

【メモ】

  • 管理ユーザのみが実行可能なコマンドです。
  • ノード変数を利用する際には、変数名の先頭に"$"をつけます。  

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

稼働中の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
    

【メモ】

  • 管理ユーザのみが実行可能なコマンドです。
  • ClusterStatusは、以下のいずれかになります。
    • INIT_WAIT :クラスタ構成待ち
    • SERVICE_STABLE :稼働中
    • SERVICE_UNSTABLE :稼働中(指定した構成ノード数に達していない)
  • Roleは、以下のいずれかになります。
    • M:MASTER(マスタ)
    • F:FOLLOWER(フォロワ)
    • S:SUB_CLUSTER(マスタになる候補で一時的な状態)
    • -:未稼働

 

構成情報の表示

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"
      }
    }
    

【メモ】

  • 管理ユーザのみが実行可能なコマンドです。
  • ノード変数を利用する際には、変数名の先頭に"$"をつけます。
  • 出力内容は、GridDBノードのバージョンにより異なります。詳細については、サポート窓口にお問い合わせください。

 

ステータス表示

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

  • サブコマンド

    stat ノード変数
  • 引数

    引数 説明
    ノード変数 表示対象のノードを、ノード変数で指定します。
  • 例)

    //ノードの状態、統計情報を表示
    gs> stat $node1
    {
      "checkpoint" : {
        "archiveLog" : 0,
        "backupOperation" : 0,
        "duplicateLog" : 0,
        "endTime" : 1413852025843,
        "mode" : "NORMAL_CHECKPOINT",
                 :
                 :
    }
    

【メモ】

  • 管理ユーザのみが実行可能なコマンドです。
  • ノード変数を利用する際には、変数名の先頭に"$"をつけます。
  • 出力内容は、GridDBノードのバージョンにより異なります。

 

ログ表示

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

  • サブコマンド

    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"
    }
    

【メモ】

  • 管理ユーザのみが実行可能なコマンドです。
  • ログレベルはERROR、WARNING、INFO、DEBUGです。ログレベルの変更は、必ずサポート窓口の指示に従ってください。
  • ノードの再起動により、ログレベルは初期化されます。ログレベルの変更内容は保持されません。
  • 複数カテゴリのログレベルを一括変更することはできません。

 

実行中SQL処理の表示

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

  • サブコマンド

    showsql [クエリID]
  • 引数

    引数 説明
    クエリID 表示する対象のSQL処理を特定するIDです。
    指定した場合は、指定したクエリIDのSQL処理情報のみ表示します。
    未指定の場合は実行中のSQL処理の一覧を表示します。
    クエリIDの値は実行中のSQL処理の表示にて取得できます。
  • 表示項目

    • elapsed time: start timeの値とgs_shを実行している端末のシステム時刻より計算した経過時間です。単位は秒です。
  • 例)

    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
    #---------------------------
    

【メモ】

  • start timeはsettimezoneサブコマンドによるタイムゾーン設定が反映された値が表示されます。タイムゾーン未設定の場合はデフォルトのタイムゾーンの値が表示されます。

   

実行中イベントの表示

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

  • サブコマンド

    showevent
  • 表示項目

    • elapsed time: start timeの値とgs_shを実行している端末のシステム時刻より計算した経過時間です。単位は秒です。
  • 例)

    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
    #---------------------------
    

【メモ】

  • start timeはsettimezoneサブコマンドによるタイムゾーン設定が反映された値が表示されます。タイムゾーン未設定の場合はデフォルトのタイムゾーンの値が表示されます。

 

コネクションの表示

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

  • サブコマンド

    showconnection
  • 表示項目

    • elapsed time: creation timeの値とgs_shを実行している端末のシステム時刻より計算した経過時間です。単位は秒です。
  • 例)

    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
    #---------------------------
    

【メモ】

  • creation timeはsettimezoneサブコマンドによるタイムゾーン設定が反映された値が表示されます。タイムゾーン未設定の場合はデフォルトのタイムゾーンの値が表示されます。

 

SQLキャンセル

実行中の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]>
    

【メモ】

  • データベース名が指定されていると、そのデータベースに接続します。データベース名省略時は「public」データベースに接続します。
  • connectが成功するとプロンプトに接続先データベース名が表示されます。
  • クラスタ変数を利用する際には、変数名の先頭に"$"をつけます。
  • データ操作サブコマンドを実行する場合、GridDBクラスタに接続する必要があります。
  • SQL接続先が指定されている場合(setclustersqlサブコマンドの実行)は、SQL接続も行われます。
  • connectサブコマンド実行後に、settimezoneサブコマンドでタイムゾーン設定を変更した場合、変更後のタイムゾーン設定は再度、connectサブコマンドを実行するまで反映されません。タイムゾーン設定変更を行った後には再度、connectサブコマンドを実行してください。

 

検索 (TQL)

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

  • サブコマンド

    tql コンテナ名 クエリ ;
  • 引数

    引数 説明
    コンテナ名 検索対象となるコンテナを指定します。
    クエリ ; 実行するTQL文を指定します。TQL文の最後にはセミコロン(;)が必要です。
  • 例)

    //検索を実行
    gs[public]> tql c001 select *;
    5 件ヒットしました。(25 ms)
    

【メモ】

  • データ操作サブコマンドを実行する場合、GridDBクラスタに接続する必要があります。

  • TQL文の途中に改行を挿入可能です。

  • 検索の実行時間がミリ秒で表示されます。

  • 最新の検索結果を保持します。検索結果は、tqlまたはsqlサブコマンド実行時に破棄します。

  • TQLの詳細に関しては、GridDB TQLリファレンスの「TQL構文・演算機能」の章を参照してください。

  • TQL文の中に変数組み込みが可能です。ただし、組み込み可能な変数はsetサブコマンドまたはgetvalサブコマンドで定義した変数のみです。変数を利用する際には、変数名の先頭に"$"をつけます。変数として定義していない場合は"$文字列"として扱います。

  • 例)

    //変数を定義する
    gs[public]> set TABLENAME c001
    
    //TQLを実行する
    gs[public]> tql $TABLENAME select *;
    5 件ヒットしました。(25 ms)
    //内部では「tql c001 select *;」を実行した
    

 

SQL文実行

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を省略することができます。

  • select update insert replace delete create drop alter grant revoke pragma explain

【メモ】

  • sqlサブコマンド実行前に、SQL接続先を指定して接続connectを行っている必要があります。

  • 最新の検索結果を保持します。検索結果は、sqlまたはtqlサブコマンド実行時に破棄します。

  • set password構文や先頭にコメントを含むSQL文の場合、サブコマンド名sqlは省略できません。

  • 検索時、ヒット件数の取得処理が行われます。

  • 検索の実行時間がミリ秒で表示されます。ヒット件数の取得にかかる時間は含まれません。

  • SQL文の種類により、以下のように結果が表示されます。

    処理 正常終了時の実行結果
    検索 SELECT 検索結果の件数を表示します。検索結果はサブコマンドget/getcsv/getnoprintで表示します。
    更新 INSERT/UPDATE/DELETE 更新したロウ数を表示します。
    DDL文 何も表示されません。
  • SQLの詳細に関しては、GridDB SQLリファレンスを参照してください。

  • SQL文の中に変数組み込みが可能です。ただし、組み込み可能な変数はsetサブコマンドまたはgetvalサブコマンドで定義した変数のみです。変数を利用する際には、変数名の先頭に"$"をつけます。変数として定義していない場合は"$文字列"として扱います。

  • 例)

    //変数を定義する
    gs[public]> set TABLENAME c001
    
    //SQLを実行する
    gs[public]> sql select * from $TABLENAME;
    5 件ヒットしました。(25 ms)
    //内部では「sql select * from c001;」を実行した
    

検索結果の取得

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

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

  • サブコマンド

    get [取得件数]
  • 引数

    引数 説明
    取得件数 検索結果の取得件数を指定します。省略すると、全ての検索結果を取得して表示します。

標準出力の表示形式にはTABLE形式とCSV形式の2種類があります。
V5.5から表示形式のデフォルトがTABLE形式になります。以前の形式に戻す場合は「表示形式がCSVの場合」を実施してください。

(A-1) 標準出力の表示形式を設定します。

  • サブコマンド

    setresultformat [TABLE|CSV]
  • 引数

    引数 説明
    TABLE|CSV 標準出力の表示形式をTABLEまたはCSVで設定します。デフォルトはTABLE形式で標準出力します。

例)

  • 表示形式がTABLEの場合

    //表示形式をTABLEに設定
    gs[public]> setresultformat TABLE
    
    //検索を実行
    gs[public]> select * from tim1;
    検索を実行しました。 (1 ms)
    
    //結果を表示
    gs[public]> get
    +--------------------------+-----------------------------+--------------------------------+
    | date                     | micro                       | nano                           |
    +--------------------------+-----------------------------+--------------------------------+
    | 2022-12-31T00:00:00.123Z | 2022-12-31T00:00:00.123456Z | 2022-12-31T00:00:00.123456789Z |
    +--------------------------+-----------------------------+--------------------------------+
    1 件の取得が完了しました。
    
  • 表示形式がCSVの場合

    //表示形式をCSVに設定
    gs[public]> setresultformat CSV
    
    //検索を実行
    gs[public]> select * from tim1;
    検索を実行しました。 (2 ms)
    
    //結果を表示
    gs[public]> get
    date,micro,nano
    2022-12-31T00:00:00.123Z,2022-12-31T00:00:00.123456Z,2022-12-31T00:00:00.123456789Z
    1 件の取得が完了しました。
    

【メモ】

  • 一度設定するとgs_shの起動中はgetサブコマンドで、設定した表示形式が有効になります。
  • 何度でも表示形式の切り替えは可能です。

(A-2) 標準出力の文字列長を設定します。

  • サブコマンド

    setresultmaxwidth [文字列長]
  • 引数

    引数 説明
    文字列長 標準出力の文字列長を自然数で設定します。値はバイト数で設定され、半角英数字の場合は1バイト、日本語の場合は2バイトで設定されます。表示形式がTABLEの場合のみ適用されます。

例)

//検索を実行
gs[public]> select * from tim1;
検索を実行しました。 (28 ms)
gs[public]> get
+--------------------------+-----------------------------+--------------------------------+
| date                     | micro                       | nano                           |
+--------------------------+-----------------------------+--------------------------------+
| 2022-12-31T00:00:00.123Z | 2022-12-31T00:00:00.123456Z | 2022-12-31T00:00:00.123456789Z |
+--------------------------+-----------------------------+--------------------------------+
1 件の取得が完了しました。

//文字列長を設定
gs[public]> setresultmaxwidth 29

//検索を実行
gs[public]> select * from tim1;
検索を実行しました。 (2 ms)

//結果を表示
gs[public]> get
+--------------------------+-----------------------------+-------------------------------+
| date                     | micro                       | nano                          |
+--------------------------+-----------------------------+-------------------------------+
| 2022-12-31T00:00:00.123Z | 2022-12-31T00:00:00.123456Z | 2022-12-31T00:00:00.123456... |
+--------------------------+-----------------------------+-------------------------------+
1 件の取得が完了しました。

//文字列長を設定
gs[public]> setresultmaxwidth 26

//検索を実行
gs[public]> select * from tim1;
検索を実行しました。 (2 ms)

//結果を表示
gs[public]> get
+--------------------------+----------------------------+----------------------------+
| date                     | micro                      | nano                       |
+--------------------------+----------------------------+----------------------------+
| 2022-12-31T00:00:00.123Z | 2022-12-31T00:00:00.123... | 2022-12-31T00:00:00.123... |
+--------------------------+----------------------------+----------------------------+
1 件の取得が完了しました。

//文字列長を設定
gs[public]> setresultmaxwidth 22

//検索を実行
gs[public]> select * from tim1;
検索を実行しました。 (1 ms)

//結果を表示
gs[public]> get
+------------------------+------------------------+------------------------+
| date                   | micro                  | nano                   |
+------------------------+------------------------+------------------------+
| 2022-12-31T00:00:00... | 2022-12-31T00:00:00... | 2022-12-31T00:00:00... |
+------------------------+------------------------+------------------------+
1 件の取得が完了しました。

【メモ】

  • 一度設定するとgs_shの起動中はgetサブコマンドのTABLE形式の表示で、設定した文字列長が有効になります。
  • 何度でも文字列長の設定は可能です。
  • 取得した結果の値が設定した文字列長より長い場合、設定した文字列長で区切って末尾に「...」が付与されます。

(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 件の取得が完了しました。

【メモ】

  • データ操作サブコマンドを実行する場合、GridDBクラスタに接続する必要があります。
  • 検索結果の1行目には、列名を出力します。
  • 検索未実行、検索結果の全件取得、もしくは検索結果の破棄後に、検索結果の取得を行うとエラーとなります。
  • NULL値はコマンドによってそれぞれ以下のように出力されます。
    • get: (NULL)
    • getcsv: 引用符のない空文字
  • TIMESTAMP型のカラム値は次の形式で出力されます。
    • 時刻フォーマット: ISO8601形式
    • タイムゾーン: settimezoneサブコマンドによるタイムゾーン設定値 未設定の場合はUTC
    • 例: 2018-11-07T12:30:00.417Z、2019-05-01T09:30:00.000+09:00

 

検索結果の変数の定義

保持する検索結果を取得して、任意の変数に設定します。

  • サブコマンド

    getval 変数名 [変数名...]
  • 引数

    引数 説明
    変数名 変数名を指定します。
  • 例)

    //SQLを実行
    gs> sql select id, name from con1;
    2件ヒットしました。
    //1件目の検索結果を取得し、変数に設定
    gs> getval ID NAME
    1件の検索結果を取得し、変数に値を定義しました。
    //表示
    gs> show ID
    1
    gs> show NAME
    tanaka
    //2件目の検索結果を取得し、変数に設定
    gs> getval ID NAME
    1件の検索結果を取得し、変数に値を定義しました。
    //表示
    gs> show ID
    2
    gs> show NAME
    suzuki
    //3件目は結果なし
    gs> getval ID NAME
    0件の検索結果を取得し、変数をクリアしました。
    //表示
    gs> show ID
    gs> show NAME
    

【メモ】

  • 変数名に利用できるのは半角英数字と記号"_"のみです。
  • 変数名には大文字小文字の区別があります。
  • 変数名の最大文字列長は256文字です。
  • 結果がNULLの場合、当該変数の値はクリアされます。
  • EXPLAIN、EXPLAIN ANALYZEの検索結果を変数に代入することはできません。
  • 変数に利用可能な値の型は、GSTypeのBOOL、BYTE、DOUBLE、FLOAT、INTEGER、LONG、SHORT、STRING、TIMESTAMPのみです。
  • 変数に代入可能な値はsqlサブコマンドもしくはtqlサブコマンドの検索結果のみです。
  • 検索結果のカラム数より変数名の個数を多く定義することはできません。変数名の個数より検索結果のカラム数が多い場合は定義した変数名分の検索結果を設定します。  

実行計画の取得

指定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
    

【メモ】

  • データ操作サブコマンドを実行する場合、GridDBクラスタに接続する必要があります。
  • 検索結果は保持しないため、検索結果の取得はできず、tqlcloseサブコマンド実行の必要もありません。検索結果が必要な場合は、tqlサブコマンドでクエリを実行してください。
  • パーティションテーブル(コンテナ)は非対応です。実行した場合はエラーとなります。

 

検索結果の破棄

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

  • サブコマンド

    tqlclose

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

  • サブコマンド

    queryclose

例)

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

gs[public]> queryclose

【メモ】

  • 検索結果は、下記のタイミングで破棄されます。
    • tqlclose または querycloseサブコマンド実行時
    • tqlまたはsqlサブコマンドによる新規検索実行時
    • disconnectサブコマンドによるGridDBクラスタからの切断時
  • 検索結果の破棄後に検索結果の取得(getサブコマンドなど)を行うとエラーとなります。

 

クラスタから切断

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)
    

【メモ】

  • FALSEを指定した場合、検索時のヒット件数が表示されない代わりにレスポンスが早くなります。なお、表示される実行時間には影響しません。

 

データベース管理

データベース管理を実行するサブコマンドについて説明します。 データベース管理は、操作対象のクラスタに接続してから実行してください。(サブコマンド 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.]
    

【メモ】

  • 管理ユーザのみが実行可能なコマンドです。
  • デフォルト接続先であるpublicデータベースは削除できません。

 

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

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

  • サブコマンド

    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サブコマンド)を実行後、本コマンドを実行ください。
  • データベース1つに対して複数ユーザにアクセス権を付与することができます。  

アクセス権の剥奪

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

  • サブコマンド

    revokeacl 権限 データベース名 ユーザ名
  • 引数

    引数 説明
    権限 アクセス権の権限(ALL、READ)を指定します。
    データベース名 アクセス権剥奪の対象となるデータベース名を指定します。
    ユーザ名 アクセス権を剥奪するユーザの名前を指定します。
  • 例)

    gs[public]> revokeacl ALL DATABASE001 user02
    

【メモ】

  • 管理ユーザのみが実行可能なコマンドです。

ユーザ管理

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

一般ユーザ作成

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

  • サブコマンド

    createuser ユーザ名 パスワード
  • 引数

    引数 説明
    ユーザ名 作成するユーザの名前を指定します。
    パスワード 作成するユーザのパスワードを指定します。
  • 例)

    gs[public]> createuser user01 pass001
    

【メモ】

  • 管理ユーザのみが実行可能なコマンドです。
  • 先頭が"gs#"で始まる名前は管理ユーザ用なので、一般ユーザの名前としては指定できません。
  • 管理ユーザを作成する場合、クラスタを構成する全ノードでgs_adduserコマンドを使用して作成してください。

 

一般ユーザ削除

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

  • サブコマンド

    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形式で格納したファイルを指定します。

 

簡易版

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

  • 時系列圧縮機能はGridDB V5.0で廃止されました。時系列データの圧縮方式は"NO"のみ指定できます。"SS"と"HI"は指定できません。
  • コレクションは、ロウキー指定ありで作成されます。第一カラムがロウキーになります。
  • 複合ロウキー、複合索引、カラム制約、索引名を指定する場合は、詳細版を利用してください。

詳細版

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

  • コンテナ定義情報は、エクスポートツールで出力されるメタ情報ファイルの定義と同じです。カラムのタイプやデータの圧縮方式、コンテナ定義の形式などは、コンテナデータファイルの形式メタデータファイルを参照してください。ただし、以下の情報は、エクスポートコマンドのメタ情報ファイルでは定義されていますが、本コマンドでは無効となります。

    • version :エクスポートツールバージョン
    • database  :データベース名
    • containerFileType :エクスポートデータファイルタイプ
    • containerFile :エクスポートファイル名
    • partitionNo :パーティション番号
  • 1つのコンテナ定義ファイルには、1つのコンテナ定義を記述してください。

  • 引数でコンテナ名を省略した場合、コンテナ定義ファイルに記述されているコンテナ名で作成します。

  • 引数でコンテナ名を指定した場合、コンテナ定義ファイルのコンテナ名は無視して引数のコンテナ名で作成します。

  • コンテナ定義ファイルにデータベース名が記述されていてもエラーとはなりませんが、その名前は無視され接続中のデータベース上に作成します。

  • パーティションテーブルは作成対象外です。コンテナ定義ファイルにテーブルパーティショニング情報が設定されていた場合はエラーになります。

  • コンテナ定義ファイルを利用する場合、エクスポートの機能で--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
    

【メモ】

  • パーティションテーブル(コンテナ)は非対応です。実行した場合はエラーとなります。
    • パーティションテーブル(コンテナ)の削除にはSQLを使用してください。

ロウ登録

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

  • サブコマンド

    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
    

【メモ】

  • カレントデータベースのコンテナ情報が表示されます。

  • コンテナ一覧で表示するのは、「コンテナ名」、「コンテナタイプ」、「パーティションID」です。

  • 指定コンテナの情報で表示するのは、「コンテナ名」、「コンテナタイプ」、「パーティションID」、「定義したカラム名」、「カラムのデータ型」、「カラム制約(CSTR)」、「索引情報」、「テーブルパーティショニング情報」です。

  • 「カラム制約(CSTR)」には、NOT NULL制約(NN)の有無が表示されます。

  • 「テーブルパーティショニング情報」は、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
    

【メモ】

  • 作成済みの索引を指定しても、エラーは発生しません。
  • 索引名は未対応です。索引名を付加する場合は、コンテナ作成(詳細版)またはSQLを使用してください。

 

複合索引の作成

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

  • サブコマンド

    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
    

【メモ】

  • 作成済みの索引を指定しても、エラーは発生しません。
  • 索引名は未対応です。索引名を付加する場合は、コンテナ作成(詳細版)またはSQLを使用してください。
  • パーティションテーブルに対する操作は非対応です。コンテナ名にパーティションテーブルを指定した場合はエラーとなります。

 

索引の削除

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

  • サブコマンド

    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分析結果(グローバルプラン)の取得

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
    

【メモ】

  • 本サブコマンドの直前にEXPLAINまたはEXPLAIN ANALYZEで実行したSQLが対象です。
  • 表示内容
    • ID: プランID
    • Type: 処理の種類
    • Input: 入力値となるプランのプランID
    • Rows: 入力件数
    • Lead time: 処理時間
    • Actual time: 処理のためにスレッドが占有された時間
    • Node: 処理が実施されたノード

JSON形式

  • サブコマンド

    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
        }, {
    ・
    ・
    ・
    

【メモ】

  • 本サブコマンドの直前にEXPLAINまたはEXPLAIN ANALYZEで実行したSQLが対象です。

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

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
      }, {
    ・
    ・
    ・
    

【メモ】

  • 本サブコマンドの直前にEXPLAINまたはEXPLAIN ANALYZEで実行したSQLが対象です。

その他の操作

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

エコーバック設定

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

  • サブコマンド

    echo boolean
  • 引数

    引数 説明
    boolean TRUEを指定すると、実行したサブコマンドを標準出力に表示します。既定値はFALSEです。
  • 例)

    //実行したサブコマンドを標準出力に表示
    gs> echo TRUE
    

【メモ】

  • gs_shのプロンプト"gs>"は常に標準出力に表示します。

 

メッセージの表示

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

  • サブコマンド

    print メッセージ
  • 引数

    引数 説明
    メッセージ 表示する文字列もしくは変数を指定します。
  • 例)

    //文字列の表示
    gs> print printを実行しました。
    printを実行しました。
    

【メモ】

  • 変数を利用する際には、変数名の先頭に"$"をつけます。

 

スリープ

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

  • サブコマンド

    sleep 秒数
  • 引数

    引数 説明
    秒数 スリープする秒数を指定します。
  • 例)

    //10秒間スリープ
    gs> sleep 10
    

【メモ】

  • 秒数は正の整数を指定してください。

 

外部コマンドの実行

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

  • サブコマンド

    exec 外部コマンド [外部コマンド引数]
  • 引数

    引数 説明
    外部コマンド 外部コマンドを指定します。
    外部コマンド引数 外部コマンドの引数を指定します。
  • 例)

    //カレントディレクトリのファイル情報を表示
    gs> exec ls -la
    

【メモ】

  • パイプ、リダイレクト、ヒアドキュメントは利用できません。

 

gs_shの終了

gs_shを終了します。

  • サブコマンド

    exit
    quit
  • 例)

    //gs_shを終了します。
    gs> exit
    

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

  • サブコマンド

    errexit boolean
  • 引数

    引数 説明
    boolean TRUEを指定すると、サブコマンドでエラーが発生した場合に、gs_shが終了します。デフォルトはFALSEです。
  • 例)

    //サブコマンドでエラーが発生した場合にgs_shが終了するように設定
    gs> errexit TRUE
    

【メモ】

  • exitサブコマンド、quitサブコマンドに機能差はありません。

 

ヘルプ

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

  • サブコマンド

    help [サブコマンド名]
  • 引数

    引数 説明
    サブコマンド名 説明を表示するサブコマンド名を指定します。省略した場合、サブコマンドの一覧を表示します。
  • 例)

    //サブコマンドの説明表示
    gs> help exit
    exit
    gs_shを終了します。
    

【メモ】

  • gs_shの説明は、「gs_sh --help」で取得できます。

 

バージョン

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

  • サブコマンド

    version
  • 例)

    //バージョンの表示
    gs> version
    gs_sh version 2.0.0
    

【メモ】

  • gs_shのバージョン情報は、「gs_sh --version」でも取得できます。

タイムゾーン設定

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

  • サブコマンド

    settimezone [設定値]
  • 引数

    引数 説明
    設定値 設定値の形式は「±hh:mm」「±hhmm」「Z」「auto」です。例えば、日本時間の場合、設定値は「+09:00」です。
    値が未設定の場合、タイムゾーンの設定値をクリアします。

【メモ】

  • connectサブコマンド実行後に、settimezoneサブコマンドでタイムゾーン設定を変更した場合、変更後のタイムゾーン設定は再度、connectサブコマンドを実行するまで反映されません。タイムゾーン設定変更を行った後には再度、connectサブコマンドを実行してください。

マルチキャストパケットを受信するインターフェースの設定

複数のネットワークインターフェースがあるときにクラスタのネットワーク構成をマルチキャスト方式にする場合、マルチキャストパケットを受信するインターフェースのIPアドレスを指定します。

  • サブコマンド

    setntfif [IPアドレス]
  • 引数

    引数 説明
    IPアドレス マルチキャストパケットを受信するインターフェースのIPアドレスをIPv4形式で指定します。値が未設定の場合、設定値をクリアします。設定値はnotificationInterfaceAddress変数で確認できます。
  • 例)

    gs[public]> setntfif 192.168.1.100
    
    //設定の確認
    gs[public]> print $notificationInterfaceAddress
    192.168.1.100
    

【メモ】

  • 設定変更を行った後には再度、connectサブコマンドを実行してください。

履歴表示と実行

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

  • サブコマンド

    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
               :
    
    

【メモ】

  • 表示できる履歴の最大数は500までです。

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

オプション

  • コマンド一覧

    gs_sh [スクリプトファイル]
    gs_sh -v | --version
    gs_sh -h | --help
  • オプション仕様

    オプション 必須 説明
    -v | --version ツールのバージョンを表示します。
    -h | --help ヘルプメッセージとしてコマンド一覧を表示します。

【メモ】

  • gs_shサブコマンドをバッチ処理するために、スクリプトファイルが作成できます。スクリプトファイルの拡張子はgshです。
  • gs_sh起動時に、gsadmユーザホームディレクトリ下の.gsshrcスクリプトファイルを自動的に読み込みます。.gsshrcの内容は、他のスクリプトファイルよりも先に読み込みます。

 

サブコマンド一覧

  • GridDBクラスタ定義 サブコマンド一覧

    サブコマンド 引数 説明 *1
    setnode ノード変数名 IPアドレス ポート番号 [SSHポート番号] ノード変数を定義します。
    setcluster クラスタ変数名 クラスタ名 マルチキャストアドレス ポート番号 [ノード変数... ] クラスタ変数を定義します。
    setclustersql クラスタ変数名 クラスタ名 SQLアドレス SQLポート番号 クラスタ構成にSQLの接続先を定義します。
    modcluster   クラスタ変数名 add|remove ノード変数... クラスタ変数に対してノード変数を追加、削除します。
    setuser ユーザ名 パスワード [OSユーザgsadmのパスワード] クラスタにアクセスするユーザおよびパスワードを定義します。
    set 変数名 [値] 任意の変数を定義します。
    show [変数名] 変数の定義内容を表示します。
    save [スクリプトファイル名] 変数定義をスクリプトファイルに保存します。
    load [スクリプトファイル名] スクリプトファイルを読み込み、実行します。  
    sync IPアドレス ポート番号 [クラスタ変数名 [ノード変数] ] 稼働中のGridDBクラスタに接続し、クラスタ変数とノード変数の定義を自動で行います。 * 
    • *1 : *は、管理ユーザのみ実行可能なコマンドです。
  • GridDBクラスタ操作 サブコマンド一覧

    サブコマンド 引数 説明 *1
    startnode ノード変数|クラスタ変数 [ タイムアウト秒数 ] 指定ノードを起動します。 *
    stopnode ノード変数|クラスタ変数 [ タイムアウト秒数 ] 指定ノードを停止します。 *
    stopnodeforce ノード変数|クラスタ変数 [ タイムアウト秒数 ] 指定ノードを強制停止します。 *
    startcluster クラスタ変数 [ タイムアウト秒数 ] 指定クラスタに未参加の稼働ノード群を一括参加させます *
    stopcluster クラスタ変数 [ タイムアウト秒数 ] クラスタ参加中のノード群を一括離脱させます。 *
    joincluster クラスタ変数 ノード変数   [ タイムアウト秒数 ] 指定ノードをクラスタに参加させます。 *
    leavecluster ノード変数 [ タイムアウト秒数 ] 指定ノードをクラスタから離脱させます。 *
    leaveclusterforce ノード変数 [ タイムアウト秒数 ] 指定ノードをクラスタから強制的に離脱させます。 *
    configcluster クラスタ変数 クラスタステータス情報を表示します。 *
    config ノード変数 クラスタ構成情報を表示します。 *
    stat ノード変数 指定ノードのステータスおよび統計情報を表示します。 *
    logs ノード変数 指定ノードのログを表示します。 *
    logconf ノード変数 [ カテゴリ名 [ 出力レベル ] ] ログ設定を表示、変更します。 *
    showsql [クエリID] 実行中のSQL処理を表示します。
    showevent 実行中のイベント一覧を表示します。
    showconnection コネクションの一覧を表示します。
    killsql クエリID 実行中のSQL処理をキャンセルします。 *
    • *1 : *は、管理ユーザのみ実行可能なコマンドです。

 

  • データベース内データ操作 サブコマンド一覧

    サブコマンド 引数 説明 *1
    connect クラスタ変数 [データベース名] GridDBクラスタに接続します。
    tql コンテナ名 クエリ ; 検索を実行し、検索結果を保持します。
    get [ 取得件数 ] 検索結果を取得し、標準出力に表示します。
    setresultformat [ TABLE|CSV ] 標準出力の表示形式を設定します。
    setresultmaxwidth [文字列長] 標準出力の文字列長を設定します。
    getcsv CSVファイル名 [ 取得件数 ] 検索結果を取得し、CSV形式でファイルに保存します。
    getnoprint [ 取得件数 ] クエリの結果を取得しますが、標準出力に表示しません。
    getval 変数名 [ 変数名... ] 検索結果を取得し、任意の変数に設定します。
    tqlclose TQLをクローズし、保持する検索結果を破棄します。
    tqlexplain コンテナ名 クエリ ; 指定TQL文の実行計画を表示します。
    tqlanalyze コンテナ名 クエリ ; 指定TQL文を実行し、実行計画と処理件数等の実測値を表示します。
    sql SQL文 ; SQL文を実行し、検索結果を保持します。
    sqlcount boolean SQLの検索実行時、件数取得処理を実行するかどうかを設定します。
    queryclose クエリをクローズし、保持する検索結果を破棄します。
    disconnect GridDBクラスタから切断します。  
    • *1 : *は、管理ユーザのみ実行可能なコマンドです。

 

  • データベース管理 サブコマンド一覧

    サブコマンド 引数 説明 *1
    createdatabase データベース名 データベースを作成します。 *
    dropdatabase データベース名 データベースを削除します。 *
    getcurrentdatabase カレントデータベース名を表示します。
    showdatabase [データベース名] データベース一覧およびアクセス権情報を表示します。
    grantacl 権限 データベース名 ユーザ名 データベースへのアクセス権を付与します。 *
    revokeacl 権限 データベース名 ユーザ名 データベースへのアクセス権を剥奪します。 *
    • *1 : *は、管理ユーザのみ実行可能なコマンドです。

 

  • ユーザ管理 サブコマンド一覧

    サブコマンド 引数 説明 *1
    createuser ユーザ名 パスワード 一般ユーザを作成します。 *
    dropuser ユーザ名 一般ユーザを削除します。 *
    setpassword パスワード 自分のパスワードを変更します。
    setpassword ユーザ名 パスワード 一般ユーザのパスワードを変更します。 *
    showuser [ユーザ名|ロール名] 一般ユーザとロールの情報を表示します。 *
    • *1 : *は、管理ユーザのみ実行可能なコマンドです。

   

  • コンテナ管理 サブコマンド一覧

    サブコマンド 引数 説明 *1
    createcollection コンテナ名 カラム名 タイプ [カラム名 タイプ …] コンテナ(コレクション)を作成します。
    createtimeseries コンテナ名 圧縮方式 カラム名 タイプ [カラム名 タイプ …] コンテナ(時系列コンテナ)を作成します。
    createcontainer コンテナ定義ファイル [コンテナ名] コンテナ定義ファイルを元にコンテナを作成します。
    dropcontainer コンテナ名 コンテナを削除します。
    putrow コンテナ名 値 [値...] コンテナにロウを登録します。  
    removerow コンテナ名 ロウキー値 [ロウキー値...] コンテナのロウを削除します。  
    showcontainer [ コンテナ名 ] コンテナ情報を表示します。
    showtable [ テーブル名 ] テーブル情報を表示します。
    searchcontainer [コンテナ名] コンテナ名からコンテナを検索します。  
    searchview [ビュー名] ビュー名からビューを検索します。  
    createindex コンテナ名 カラム名 索引タイプ... 指定カラムに索引を作成します。
    createcompindex コンテナ名 カラム名... 指定カラムに複合索引を作成します。
    dropindex コンテナ名 カラム名 索引タイプ... 指定カラムの索引を削除します。
    dropcompindex コンテナ名 カラム名... 指定カラムの複合索引を削除します。
    • *1 : *は、管理ユーザのみ実行可能なコマンドです。

 

  • 実行計画 サブコマンド一覧

    サブコマンド 引数 説明 *1
    getplantxt [テキストファイル名] SQL分析結果をテキスト形式で表示します。
    getplanjson [JSONファイル名] SQL分析結果をJSON形式で表示します。
    gettaskplan プランID SQL分析結果の詳細情報をJSON形式で表示します。
    • *1 : *は、管理ユーザのみ実行可能なコマンドです。

 

  • その他の操作 サブコマンド一覧

    サブコマンド 引数 説明 *1
    echo boolean エコーバックの有無を設定します。
    print メッセージ 指定した文字列、もしくは変数の定義内容を表示します。
    sleep 秒数 指定した秒数スリープします。
    exec 外部コマンド [ 外部コマンド引数 ] 外部コマンドを実行します。
    exit gs_shを終了します。
    quit gs_shを終了します。
    errexit boolean エラー発生時にgs_shを終了するかを設定します。
    help [ サブコマンド名 ] サブコマンドの説明を表示します。
    version バージョン情報を表示します。
    settimezone [ 設定値 ] タイムゾーンの設定を行います。
    setntfif [ IPアドレス ] マルチキャストパケットを受信するインターフェースのIPアドレスを指定します。
    history 実行したサブコマンドの履歴を表示します。
    ![ 履歴番号 ] historyサブコマンドで表示した履歴よりサブコマンドを再実行します。
    !! 直前に実行したサブコマンドを再実行します。
    • *1 : *は、管理ユーザのみ実行可能なコマンドです。