システムの開発中には、データベースの状態を特定の時点に戻したい場合が良くあります。今回はキーを指定して、Couchbase Serverで特定のドキュメントだけをリストアする方法を紹介します。
バックアップ内容の確認
まずは、リストア対象のドキュメントが期待するものかどうか事前に確認しましょう。誤って他のドキュメントを復元してしまっては大変ですからー。
バックアップファイルの中身をみてみよう
事前に戻したいドキュメントを確認したいときはsqlite3コマンドで中身を参照できます。
別名のバケットを作ってそこにリストアしてから確認という手もありますね。
リストアオプションの解説
使用するオプションを説明します。
-k: キーに対する正規表現を指定
今回は対象が1件だけだったので、完全一致として”^id$”という形にしました。
-n: dry-runで実行すると、パラメータのチェックのみ
実行前に-nつけて確認しておくと安心ですね。
対象期間の指定
バックアップファイルが複数取得されている場合、日付オプションを指定して対象を絞ることができます。
対象バケットの指定
- -b: source bucket 指定しない場合はバックアップ内の全バケットが対象
- -B: distination bucket 一緒の場合は省略しても良い
リストア対象を明確にするためにも、指定することをお勧めします。
最終的なリストアコマンド
最終的なコマンドがこちら:
“skipping msg with key:”で対象外のドキュメントがスキップされているのがわかります。
“(1/estimated 363 msgs)”で、1件だけリストアされていますね!