nodetool snapshot

データとテーブル・スキーマをバックアップします。

データとテーブル・スキーマをバックアップします。

構文

$ nodetool options snapshot ( -cf table_name | --column-family table_name ) (-kc ktlist | --kc.list ktlist | -kt ktlist | --kt-list ktlist) (-sf | --skip-flush) (-t tag | --tag tag ) -- ( keyspace_name | keyspace_name ...)
tarボールおよびInstaller-No Servicesのパス:
installation_location/resources/cassandra/bin
表 1. オプション
短い形式 長い形式 説明
-h --host ホスト名またはIPアドレス。
-p --port ポート番号。
-pwf --password-file パスワード・ファイルのパス。
-pw --password パスワード。
-u --username リモートJMXエージェントのユーザー名。
-cf table --column-family table スナップショットを作成するtableの名前。キースペースを1つだけ指定する必要があります。
--table table スナップショットを作成するtableの名前。キースペースを1つだけ指定する必要があります。
-kc ktlist --kc.list ktlist keyspace_name.table_nameのスペースなしのコンマ区切りリスト。

たとえば、-kc cycling.cyclist,basketball.players

-kt ktlist --kt-list ktlist keyspace_name.table_nameのスペースなしのコンマ区切りリスト。

たとえば、-kc cycling.cyclist,basketball.players

-sf --skip-flush 最初にテーブルをフラッシュせずにスナップショットを実行します。
-t --tag スナップショット・ディレクトリーinstallation_path/data/keyspace_name/table-UID/snapshots/snapshot_nameの名前
注: 指定しなかった場合は、現在の時刻が使用されます。たとえば、1489076973698です。
keyspace スペースで区切られたオプションの1つ以上のキースペース名です。デフォルト:すべてのキースペース
-- オプションと間違えられる可能性のある引数とオプションを区切ります。

説明

スナップショットは、まず、すべてのインメモリーの書き込みをディスクにフラッシュしてから、各キースペースのSSTableファイルのハード・リンクを作成します。データ・ファイルのスナップショットの作成に対応するには、ノードに十分な空きディスク領域があることが必要です。1つのスナップショットは、ディスク領域をほとんど必要としません。ただし、スナップショットは、使わなくなった古いデータ・ファイルが削除されるのを防ぐため、時間の経過に伴ってディスク使用量がさらに急速に増加する原因となります。スナップショットが完了したら、必要に応じて、バックアップ・ファイルを別の場所に移動できます。または、そのまま置いておくこともできます。
注: スナップショットから復元するには、テーブル・スキーマが必要です。

スナップショット・ディレクトリーのパスは、data/keyspace_name/table-UID/snapshots/snapshot_nameです。データは複数の.dbファイルにバックアップされ、テーブル・スキーマはschema.cqlに保存されます。

注: アップグレードの前に、DataStax Enterpriseはすべてのキースペースをバックアップします。「スナップショットの取得」を参照してください。

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

例:すべてのキースペース

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

$ nodetool snapshot

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

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

例:1つのキースペースのスナップショット

キースペースcyclingを作成したうえで、そのキースペースのスナップショットを取得し、そのスナップショットに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
cyclingキースペースに2つのテーブルcyclist_nameupcoming_calendarがあると仮定すると、キースペースのスナップショットを取得すると、cycling_2017-3-9という名前の複数のスナップショット・ディレクトリーが作成されます。データを含む多数の.dbファイルは、テーブル・スキーマと同様にこれらのディレクトリーに配置されます。たとえば、インストール・ディレクトリーから以下を実行します。
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

例:複数のキースペースのスナップショット

cyclingキースペースのほかに、mykeyspaceという名前のキースペースをすでに作成しており、両方のキースペースのスナップショットを取得するとします。

nodetool snapshot mykeyspace cycling

以下のメッセージが表示されます。

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

例:1つのテーブルのスナップショット

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

nodetool snapshot --table cyclist_name cycling
Requested creating snapshot(s) for [cycling] with snapshot name [1391461910600]
Snapshot directory: 1391461910600
DSEは、データ・ファイルとcyclist_nameテーブルのスキーマを含む1391461910600という名前のスナップショット・ディレクトリーを、data/cycling/cyclist_name-a882dca02aaf11e58c7b8b496c707234/snapshotsに作成します。

例:異なるキースペースの複数のテーブル

cyclingキースペース内のcyclist_nameテーブルやtestキースペース内のsample_timesテーブルなど、異なるキースペースのスナップショットを取得します。スペースなしのコンマ区切りリストでテーブルを一覧表示します。

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