スナップショットを取得する

グローバルまたはノードごとにスナップショットを取得する手順。

スナップショットは、nodetool snapshotコマンドを使用して、ノードごとに取ります。グローバル・スナップショットを取得するには、psshなどのパラレルsshユーティリティーを使用して、nodetool snapshotコマンドを実行します。

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

注: Cassandraは、テーブルのスキーマが存在する場合にのみスナップショットからデータを復元できます。スキーマのバックアップを行うことを推奨します。

手順

ホスト名、JMXポート、およびキースペースを指定してnodetool snapshotコマンドを実行します。例:
$ nodetool -h localhost -p 7199 snapshot mykeyspace

タスクの結果

スナップショットは、データ・ディレクトリーの場所/キースペース名/テーブル名-UUID/snapshots/スナップショット名ディレクトリーに作成されます。各スナップショット・ディレクトリーには、スナップショット時のデータを含む多数の.dbファイルが含まれています。

例:

  • パッケージ・インストール: /var/lib/cassandra/data/mykeyspace/users-081a1500136111e482d09318a3b15cc2/snapshots/1406227071618/mykeyspace-users-ka-1-Data.db
  • tarボール・インストール: install_location/data/data/mykeyspace/users-081a1500136111e482d09318a3b15cc2/snapshots/1406227071618/mykeyspace-users-ka-1-Data.db