nodetool snapshot

テーブル・データのスナップショットを取得してバックアップを作成します。

data

すべてのインストールで、dataディレクトリーのデフォルトの場所は次のとおりです。
  • /var/lib/cassandra/data

テーブル・データのスナップショットを取得してバックアップを作成します。スナップショットは、スナップショットが実行された時のスキーマ・テーブルのデータ・ディレクトリー内のSSTableファイルへのハードリンクです。

スナップショット・ディレクトリーのパスは、data/keyspace_name/table-UID/snapshots/snapshot_nameです。データは複数の.dbファイルにバックアップされ、テーブル・スキーマはschema.cqlに保存されます。schema.cqlファイルは、スナップショットを復元するにはテーブルが同じ構造を持つ必要があるため、スナップショット時のテーブルの構造を捕捉します。DataStaxサポート・ナレッジ・ベースの記事「特定時点およびテーブル・レベルの復元を使用した手動バックアップと復元」を参照してください。

警告: 復元のためのスナップショットを取得する前に、必ずnodetool cleanupを実行します。そのようにしない場合、無効なレプリカ、すなわち新たに追加されたノードの新しい有効なレプリカにより上書きされたレプリカが、ターゲットにコピーされてしまう可能性があります。そのような状況になると、古いデータがターゲットに表示されてしまいます。
注: DataStax Enterpriseをアップグレードする前に、すべてのキースペースのバックアップを必ず作成してください。「スナップショットの取得」を参照してください。

構文

nodetool [connection_options] snapshot 
[--table table_name | -kt keyspace_name.table_name,...] 
[-sf] [-t snapshotname] [--] 
[keyspace_name [keyspace_name...]]
1. 凡例
構文規則 説明
大文字 リテラル・キーワード。
小文字 リテラル以外。
Italics 変数値。有効なオプションまたはユーザー定義値と置き換えます。
[ ] 任意。角かっこ( [] )で任意のコマンド引数を囲みます。角かっこは入力しないでください。
( ) グループ。丸かっこ(( ))は、選択肢を含むグループを示します。丸かっこは入力しないでください。
| または。縦棒(|)で代替要素を区切ります。要素のいずれかを入力してください。縦棒は入力しないでください。
... 繰り返し可能。省略記号(...)は、構文要素を必要な回数だけ繰り返すことができることを示します。
'Literal string' 単一引用符( ' )でCQL文内のリテラル文字を囲みます。大文字を維持するには、単一引用符を使用します。
{ key:value } マップ・コレクション。中かっこ( { } )でマップ・コレクションまたはキーと値のペアを囲みます。コロンでキーと値を区切ります。
<datatype1,datatype2> セット、リスト、マップ、またはタプル。山かっこ(< >)で、セット、リスト、マップまたはタプル内のデータ型を囲みます。データ型をカンマで区切ります。
cql_statement; CQL文の終了。セミコロン( ; )ですべてのCQL文を終了します。
[ -- ] コマンドライン・オプションとコマンド引数は、2つのハイフン(--)で区切ります。この構文は、引数がコマンドライン・オプションと間違われる可能性がある場合に役立ちます。
' <schema> ...</schema> ' 検索CQLのみ:単一引用符( ' )でXMLスキーマ宣言全体を囲みます。
@xml_entity='xml_entity_type' 検索CQLのみ:スキーマ・ファイルおよびsolrconfigファイル内のXML要素を上書きする実体とリテラル値を示します。

定義

短い形式と長い形式のパラメーターはカンマで区切られています。

接続オプション

-h, --host hostname
リモート・ノードのホスト名またはIPアドレス。省略した場合、デフォルトはローカル・マシンです。
-p, --port jmx_port
JMXポート番号。
-pw, --password jmxpassword
セキュアなJMXで認証するためのJMXパスワード。パスワードを入力しないと、入力するように求められます。
-pwf, --password-file jmx_password_filepath
JMX認証用の資格情報を格納するファイルへのファイルパス。
-u, --username jmx_username
セキュアなJMXで認証するためのユーザー名。

コマンド引数

--
オプションと間違えられる可能性のある引数とオプションを区切ります。
--table, -cf, --column-family table_name
指定されたキースペースのテーブル名。
-kt, --kt-list, -kc, --kc.list keyspace_name.table_name,...
カンマの後にスペースを付けないkeyspace_name.table_nameのカンマ区切りのリスト。例:

cycling.cyclist,basketball.players

-sf, --skip_flush
スナップショットが作成されるまでテーブルをフラッシュしません。
注意: スナップショットには、フラッシュされていないデータは含まれません。
-t snapshotname, --tag snapshotname
スナップショットのファイルパス。指定しないと、ディレクトリー名に現在の時刻が使用されます。たとえば、1489076973698です。

ノード上のすべてのキースペースのスナップショットを取得します。

nodetool snapshot

メッセージは、スナップショット・ディレクトリーの名前が付いた状態で表示されます。

Requested creating snapshot(s) for [all keyspaces] with snapshot name [1489076973698] and options {skipFlush=false}
Snapshot directory: 1489076973698

cycling_2017-3-9ファイルパスに単一のキースペースのスナップショットを作成します

nodetool snapshot -t cycling_2017-3-9 cycling

以下の出力が表示されます。

Requested creating snapshot(s) for [cycling] with snapshot name [2015.07.17]
Snapshot directory: cycling_2017-3-9

2つのテーブルを持つ単一のキースペースのスナップショットを取得します

cyclingキースペースには、cyclist_nameおよびupcoming_calendarの2つのテーブルが含まれます。このスナップショットは、cycling_2017-3-9という名前の複数のスナップショット・ディレクトリーを作成します。データを含む多数の.dbファイルは、テーブル・スキーマとともにこれらのディレクトリーに配置されます。たとえば、DSEインストール・ディレクトリーから以下を実行します。
ls -1 data/cycling/cyclist_name-9e516080f30811e689e40725f37c761d/snapshots/cycling_2017-3-9
manifest.json
mc-1-big-CompressionInfo.db
mc-1-big-Data.db
mc-1-big-Digest.crc32
mc-1-big-Filter.db
mc-1-big-Index.db
mc-1-big-Statistics.db
mc-1-big-Summary.db
mc-1-big-TOC.txt
schema.cql

複数のキースペース(mykeyspaceとcycling)のスナップショットを取得します

nodetool snapshot mykeyspace cycling
Requested creating snapshot(s) for [mykeyspace, cycling] with snapshot name [1391460334889]
Snapshot directory: 1391460334889

単一テーブルのスナップショットを取得します

cyclingキースペース内のcyclist_nameテーブルのみのスナップショットを取得します。

nodetool snapshot --table cyclist_name cycling
Requested creating snapshot(s) for [cycling] with snapshot name [1391461910600]
Snapshot directory: 1391461910600

結果のスナップショット・ディレクトリー1391461910600は、data/cycling/cyclist_name-a882dca02aaf11e58c7b8b496c707234/snapshotsに作成され、データ・ファイルとcyclist_nameテーブルのスキーマが含まれます。

異なるキースペースの複数のテーブルのスナップショットを取得します

cyclingキースペースのcyclist_nameテーブルおよびtestキースペースのsample_timesテーブルのスナップショットを取得します。コマンド引数を-ktにすると、スペースのないコンマ区切りリストの表をリストします。

nodetool snapshot -kt cycling.cyclist_name,test.sample_times
Requested creating snapshot(s) for [cycling.cyclist_name,test.sample_times] with snapshot name [1431045288401]
Snapshot directory: 1431045288401