
複数のユーザーがNextcloudインストールと対話するたびにエラーが発生する可能性があります。家族が古い写真を削除したり、同僚が誤って仕事やカレンダーの予定を確認したりして、他のユーザーに問題を引き起こす可能性があります。
フルファイルシステムスナップショットまたはフルNextcloudディレクトリのバックアップが利用可能な場合は、それを使用してサーバー全体を以前の状態に復元できます。システムが完全にクラッシュしても大丈夫です。
しかし、時間が経つと問題が検出され、ユーザーが他のデータを修正すると問題が発生します。その後、古いデータを回復し、すべての進行状況を破棄するか、現在の状態を維持することから選択する必要があります。
これNextcloud ドキュメントインストール全体を復元する方法のみ説明します。
すべてのNextcloudデータ(ファイル、メッセージ、カレンダー、ジョブなど)をよりインテリジェントに自動的にバックアップして独立して復元する方法はありますか? (たぶんオンラインでも?)
答え1
オンライン状態を復元するには、フルディスクバックアップが必要です(もちろん増分式で実行可能)。
もちろん、ユーザーの対話を通じて実際に変更されることは次のとおりです。
- データベース(すべてのユーザー情報、ファイルメタデータ、権限などを含む)
- データストレージ
- nextcloud自体(更新することができます)
3. nextcloudをバックアップするたびに、3つすべてのフルバックアップを必要とすることで「解決」できます(データベース形式は以前のバージョンと互換性がない可能性があります)。
一般的なコンテナ化されたnextcloud設定には2〜3個のコンテナがあります。
- データベースコンテナ「DB」を最初に起動する必要があります(通常はpostgresqlの実行)。
- 実際にDBのデータベースに接続し、データディレクトリを外部ボリューム「V」としてマウントするnextcloud「NC」を実行するコンテナ
- (リバースプロキシを使用すると、HTTPSの後ろにnextcloudを簡単に隠し、nextcloudコンテナからSSL証明書処理を分離できます)
これで、定期バックアップには次のものが含まれます。
- nextcloudを停止するか、少なくともNCを凍結するか、NCを完全に停止します。
- Vをバックアップします(増分バックアップはうまく機能します。すべての最新のバックアップユーティリティで可能です)。
- データベースにバックアップ(
pg_backup_start
)を実行するように指示すると、一貫した状態でバックアップが開始されます。データベースは、新しいジョブがバックアップの状態に影響しないことを保証します。 - ステップ3起動後に機能を復元するためのnextcloudの再起動(または凍結解除、NCの再起動)
- データベースにダンプをファイルに書き込むようにします(
pg_backup_stop
)。どのデータバックアップがどのデータベースバックアップに属しているかを確認してください(時間と日付を明確にする必要があります)。
通常、実際のnextcloudコンテナはどうしてもそれほど大きくはなく、データ自体もデータベースも含まないため、データとデータベースのバックアップとともに保存することも意味があります。
その後、データベースコンテナのコピーを開始し、データバックアップを解凍しながらデータベースバックアップを復元し、データベースの起動後にデータとしてnextcloudコンテナのインストールを開始して、まったく異なる(仮想)マシンで復元を実行できます。
実際にコンテナランタイム(podmanとDocker)を使用すると、独立したネットワーキングを実行できるため、LVMスナップショット+ XFSシンプロビジョニング、bachefs ...)を一緒にナビゲートできるだけ多くのデータベースサーバーを並列に実行できます。以前の状態は、現在の状態と並行して邪魔されることなく維持されます。
答え2
カレンダー、メッセージなど
理論的にデータベースダンプでは、1つ以上のINSERTクエリを使用してカレンダーエントリなどを生成する必要があります。
正しいINSERTを見つけて現在のデータベースに再挿入するだけです。 (試みる前に現在の状態をバックアップします)
私の考えでは、ごみ箱とバージョンは、ユーザーにデータ復旧のための良いオプションを提供します。
ファイルとごみ箱
デフォルトでは、ごみ箱は有効になっています。ユーザーがファイルを削除すると、そのファイルはごみ箱に保存されます。config/config.php
次の項目を使用して、ごみ箱内のファイルの保存期間を指定できます。 (trashbin_retention_obligation' => 'auto, 128',
詳細についてはマニュアルを参照してください。)ただし、空き容量/ユーザークォータが50%未満の場合、または手動で管理を実行すると、早期クリーンアップが発生する可能性がありますocc trashbin:expire;occ trashbin:cleanup
。 (またはユーザーの選択に応じて)
私はカレンダーを使用しません。おそらく、削除されたカレンダーアイテムもごみ箱に入り、回復することができます。 - よくわかりません。
ファイルとバージョン
もう一つは、古いバージョンのファイルを復元するオプションを追加する「バージョンnextcloudアプリ」です。年齢を'versions_retention_obligation' => 'auto, 128',
使用して設定できます config.php
。 nextcloudアプリケーションセクションで有効にします。私はこのアプリを使ったことがありません。シャドウコピーと同じです。
単一ファイルの回復
暗号化を使用せずにローカルアカウントのみを使用する限り、ユーザーデータはこのnextcloud/data/username
ディレクトリに保存されます。 Active Directory / openldapに接続している場合、そのディレクトリはnextcloud/data/uuid
データベースで確認できるUUIDです。 (SELECT ldap_dn FROM oc_ldap_user_mapping WHERE owncloud_name='$U_ID'
)は、
バックアップされたユーザーディレクトリからファイルを手動で復元し、現在のユーザーデータディレクトリにコピーできます。後ですべてのファイルを確認してくださいocc files:scan
。
暗号化が有効になっている場合 - :) 幸運です。