adopilot
(Admir Hodzic)
2025 年 10 月 25 日午後 8:11
1
サーバーにディスク容量が少ないため、まず以下のことを行いたいと考えています。
初期アップロード後に画像最適化を一時停止し、復元する方法を教えてください。
これにより、復元が正常に完了したかを確認し、バックアップファイルを削除できます。
私のバックアップファイルは約200GBで、「サムネイルをバックアップに含める」の設定はチェックされていません。これを無効にするとバックアップは小さくなりますが、復元後にすべての投稿を再ベイクする必要があります。
そのため、インスタンスがバックアップファイルを保持し、画像の最適化を開始すると、ディスク容量が不足します。
pfaffman
(Jay Pfaffman)
2025 年 10 月 26 日午後 4:48
2
より多くのスペースが必要な場合は、より多くのスペースが必要です。
しかし、データベースのみを復元して画像をrsyncしたい場合もあります。その場合、アップロードのすべてのコピーを2つ持つ必要がなくなり(サムネイルを再度作成する必要もなくなります)。
adopilot
(Admir Hodzic)
2025 年 10 月 26 日午後 5:51
3
お手伝いいただきありがとうございます。
試してみましたが、リストアがうまくいかなかった理由がよくわかりませんでした。
私の主な問題は、古いインスタンスがPostgreSQLバージョン12でスタックしており、アップグレードする方法が見つからず、新しいクリーンなインスタンスに移行しようとしたことです。
新しいインストールにデータベースのみをリストアすることは可能でしょうか?
試したところ、インスタンスはエラーコード500を返し始めたため、すべてをやり直さなければなりませんでした。
pfaffman
(Jay Pfaffman)
2025 年 10 月 26 日午後 8:21
4
私は、rsync を使用して Discourse サイトを別の VPS に移動する を実行しますが、PostgreSQL ファイルはコピーしません。
その後、データベースのみのバックアップを作成し、それを復元します。バックアップも rsync で転送し、コマンドラインから復元します。
これは非常に古いバージョンですか?復元は正常に完了したように見えましたか?
「いいね!」 1
adopilot
(Admir Hodzic)
2025 年 10 月 27 日午前 7:44
5
ご協力ありがとうございます。
はい、しかし、Web GUIと想定される手順を使用した直接的な復元には、バックアップファイルの空き容量の4倍以上が必要です。
手順は以下の通りです。
バックアップファイルをアップロードします(または /var/discourse/shared/standalone/backups/default にrsyncします)。
復元が初期化されると、バックアップファイルは /var/discourse/shared/standalone/tmp/restores/ にコピーされます。
復元中、/var/discourse/shared/standalone/tmp/restores/ フォルダ内のバックアップファイルが展開されます。
tmpフォルダからアップロードがネイティブの場所にrsyncされ、SQLダンプがpgデータベースに挿入されます。
復元に成功した方法。
復元プロセス中に、Discourseがファイルを復元フォルダから一時フォルダにコピーした後、SSH経由でアップロードした元のバックアップファイルを削除しました。
DiscourseがSQL挿入とstat rsyncを完了し、一時フォルダから /var/discourse/shared/standalone/uploads/ にファイルを展開した後、SSH経由で一時フォルダ内の bakupxxx.tar.gz ファイルを、復元プロセスを中断することなく手動で削除しました。
インスタンスがオンラインになり、rsyncが完了したら、
rm -rf /var/discourse/shared/standalone/tmp/restores/default/*
を実行しました。
大きな復元プロセスをバックアップする場合、私の場合は復元が失敗し、Web経由でインスタンスがエラーコード500を返すようになりました(私の場合、2回発生しました)。アプリに入って復元プロセスを確認できます。
cd /var/discourse
./launcher enter app
ps aux | grep restore
また、データベースの復元に時間がかかりすぎたため、
cd /var/discourse
./launcher enter app
watch -n 10 “sudo -u postgres psql discourse -c "SELECT now(), state, query FROM pg_stat_activity WHERE state != ‘idle’;””
データベースの復元がまだ生きていることを確認するために、データベース復元の進行状況を監視するのに役立ちました。
pfaffman
(Jay Pfaffman)
2025 年 10 月 27 日午後 2:49
6
それは素晴らしい解決策ですね!もし他の誰かがこれを見つけた場合、データベースのみの復元で済んだのではないかと思いますが、問題が解決してよかったです!
「いいね!」 1