スナップショットを取得する
グローバルまたはノードごとにスナップショットを取得する手順。
スナップショットは、nodetool snapshotコマンドを使用して、ノードごとに取ります。グローバル・スナップショットを取得するには、psshなどのパラレルsshユーティリティーを使用して、nodetool snapshotコマンドを実行します。
スナップショットは、まず、すべてのインメモリーの書き込みをディスクにフラッシュしてから、各キースペースのSSTableファイルのハード・リンクを作成します。データ・ファイルのスナップショットの作成に対応するには、ノードに十分な空きディスク領域があることが必要です。スナップショット1つではディスク領域をほとんど必要としません。ただし、スナップショットは、使わなくなった古いデータ・ファイルが削除されるのを防ぐため、時間の経過に伴ってディスク使用量がさらに急速に増加する原因となります。スナップショットが完了したら、必要に応じて、バックアップ・ファイルを別の場所に移動できます。または、そのまま置いておくこともできます。
注: スナップショットから復元するには、テーブル・スキーマが必要です。
手順
-
nodetool cleanupを実行して無効なレプリカが削除されていることを確認します。
nodetool cleanup cycling
-
ホスト名、JMXポート、およびキースペースを指定してnodetool snapshotコマンドを実行します。例を次に示します。
nodetool snapshot -t cycling_2017-3-9 cycling
tarボールのパス:installation_location/resources/cassandra/bin
タスクの結果
スナップショット・ディレクトリーの名前が表示されます。
Requested creating snapshot(s) for [cycling] with snapshot name [2015.07.17]
Snapshot directory: cycling_2017-3-9
スナップショット・ファイルは、data/keyspace_name/table_name-UUID/snapshots/snapshot_nameディレクトリーに作成されます。
ls -1 data/cycling/cyclist_name-9e516080f30811e689e40725f37c761d/snapshots/cycling_2017-3-9
データのファイル拡張子は.dbで、テーブルを作成するための完全なCQLはschema.cqlファイルにあります。
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