Cassandra でキースペース全体をバックアップする最善の方法は何だろうと思っていたのですが、どう思いますか?
以前は、データ フォルダーをバックアップ ハード ドライブにコピーしただけでしたが、更新後にデータベースを復元する際に問題が発生しました。
最良の方法は、スナップショットを作成することです(nodetool snapshot
)。このDatastaxドキュメントで、それがどのように機能し、どのように使用するのが最適かについて多くを学ぶことができます(免責事項:私はDatastaxで働いています)。
JNAが有効になっていることを確認する必要があります(いくつかの関連する手順はこのページにあります)。その場合、スナップショットは非常に高速です。それらは既存の安定版へのハードリンクにすぎません。コピーする必要はありません。特定の方法でバックアップを追跡したい場合は、スナップショットを他のバックアップツール(または単にrsync、cpなど)と組み合わせることができます。
もう 1 つのオプションは、書き込まれている sstables を監視し、それらのファイルを増分バックアップすることです。
たとえば、 tablesnapを確認してください。
ドキュメントから:
Tablesnap は、inotify を使用して IN_MOVED_TO イベントのディレクトリを監視し、新しいスレッドを生成してそのファイルを Amazon S3 にアップロードすることでそれらに反応するスクリプトです。コピー。
Cassandra クラスターを実行している場合、SSTable の自動ポイント イン タイム バックアップが可能になるため、この動作は非常に便利です。理論的には、tablesnap は、ファイルが一時的な場所に書き込まれ、データがディスクに書き込まれると最終的な場所に移動されるアプリケーションで機能するはずです。また、Tablesnap は、一度書き込まれたファイルは不変であると想定しています。