CMS風のアプリケーション用のCouchdDBを検討しています。本番データベースのバックアップに関する一般的なパターン、ベストプラクティス、ワークフローのアドバイスは何ですか?
開発とテストで使用するためにデータベースのクローンを作成するプロセスに特に興味があります。
ライブ実行中のインスタンスの下からディスク上のファイルをコピーするだけで十分ですか?2つのライブ実行インスタンス間でデータベースデータのクローンを作成できますか?
使用するテクニックのアドバイスと説明をいただければ幸いです。
CMS風のアプリケーション用のCouchdDBを検討しています。本番データベースのバックアップに関する一般的なパターン、ベストプラクティス、ワークフローのアドバイスは何ですか?
開発とテストで使用するためにデータベースのクローンを作成するプロセスに特に興味があります。
ライブ実行中のインスタンスの下からディスク上のファイルをコピーするだけで十分ですか?2つのライブ実行インスタンス間でデータベースデータのクローンを作成できますか?
使用するテクニックのアドバイスと説明をいただければ幸いです。
もう 1 つ知っておくべきことは、ライブ データベースからファイルをコピーできることです。おそらく大規模なデータベースを使用している可能性があるため、テスト/運用マシンから別のマシンに OOB でコピーできます。
マシンの書き込み負荷によっては、コピー後にレプリケーションをトリガーして、ファイルのコピー時に進行中だった書き込みを収集することをお勧めします。ただし、いくつかのレコードの複製は、データベース全体の複製よりも高速です。
参照については、http ://wiki.apache.org/couchdb/FilesystemBackups を参照してください。
CouchDBはレプリケーションをサポートしているため、CouchDBの別のインスタンスにレプリケートし、そこからバックアップするだけで、変更を書き込む場所を邪魔することはありません。
https://docs.couchdb.org/en/latest/maintenance/backups.html
文字通り、CouchDBインスタンスにPOSTリクエストを送信して、どこにレプリケートするかを指示します。これにより、Works(tm)が機能します。
編集:I / Oヒットを受け入れることができる限り、実行中のデータベースの下からデータディレクトリ内の.couchファイルをcpアウトすることができます。
CouchDB は、 ZFSなどの最新のファイルシステムが提供するファイルシステムのスナップショットともうまく連携します。データベース ファイルは常に一貫した状態にあるため、CouchDB が提供する整合性の保証を弱めることなく、いつでもファイルのスナップショットを取得できます。
これにより、I/O オーバーヘッドはほとんどなくなります。たとえば、誤ってデータベースからドキュメントを削除してしまった場合は、スナップショットを別のマシンに移動して、そこにある欠落データを抽出できます。本番データベースに複製することさえできるかもしれませんが、私はそれを試したことはありません.
ただし、データベース ファイルを移動するときは、常にまったく同じリビジョンを使用していることを確認してください。オンディスク フォーマットは、互換性のない方法で進化し続けています。
Paul の提案を支持したいと思いcpます。I/O 負荷の影響を受けることができる場合は、ライブ サーバーの下からデータベース ファイルだけを取得してください。とにかく複製されたコピーを実行する場合、マスターのパフォーマンスに影響を与えることなく、そこからも安全にコピーできます。