ファイルシステムバックアップからのリカバリ:再構築も起動もできません

数日前にサーバーの RAID が故障し、ファイルシステムのバックアップから Discourse インスタンスを復元しようとしていますが、まだ成功していません。

./launcher rebuild app を実行すると、以下のエラーメッセージが表示されます。

FAILED
--------------------
Pups::ExecError: /root/upgrade_postgres failed with return #<Process::Status: pid 46 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params "/root/upgrade_postgres"

この出力では ./launcher start app で復旧できるとされていますが、実行すると以下のエラーで失敗します。

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=3 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e DISCOURSE_DEVELOPER_EMAILS=bravit111@gmail.com,ulysses4ever@gmail.com -e DISCOURSE_HOSTNAME=forum.mmcs.sfedu.ru -e DISCOURSE_SMTP_ADDRESS=class.mmcs.sfedu.ru -e DISCOURSE_ENABLE_CORS=true -e 'DISCOURSE_CORS_ORIGIN=*' -e DONT_PRECOMPILE_CSS=1 -h users-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 8088:80 -p 2222:22 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:b1:c6:37:24:01 local_discourse/app /sbin/boot
Unable to find image 'local_discourse/app:latest' locally
docker: Error response from daemon: pull access denied for local_discourse/app, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.

両方のコマンドの完全な出力はこちら で確認できます。

念のため、私の docker ps の出力は空です。

次にどう進めればよいか見当がつかず、お手伝いいただけると幸いです。

公式のバックアップ機能を使用して、バックアップファイルを新しいサーバーに復元するのはどうでしょうか?

これがサポートされている復旧方法であり、以下のページでドキュメント化されています:Discourse データベースのバックアップの作成・ダウンロードと復元

この方法は、実行中の Discourse インスタンスによって作成されたバックアップが存在することを前提としています。私は(もう)持っていません :cry:

バックアップはデフォルトで有効化され、ホストファイルシステムに保存されます。ファイルシステムのバックアップを取得している場合、バックアップファイルは「backups」フォルダにあります。

バックアップ機能が有効になっていないようです。日付がかなり古いバックアップ用tarballが数個表示されるのみです。

通常の Discourse インストールでは、週次バックアップがデフォルトで有効になっていると思います。

いずれはそれらの一つを使うことになるかもしれませんが、それでも動作するインスタンスが必要で、実行しようとするたびにそのエラーが発生し続けています。

バックアップファイルを別のサーバーに移動し、Restore a backup from the command line に従う方がはるかに簡単です。

「別のサーバー」とはどういう意味ですか?私はサーバーを1台しか持っていません。

はい、一度立ち止まって考えましょう。

再構築を実行するとエラーが発生します。何が失敗しているのか正確に把握できるよう、エラーメッセージを4行以上貼り付けていただけますか?

見逃してしまったかもしれません。トップ投稿の更新にのみ、両方のコマンドの完全な出力へのリンクを追加しました。

両方のコマンドの完全な出力はこちらで確認できます

おお、素晴らしい!

つまり、

ソースクラスターは正常にシャットダウンされませんでした。

というエラーですね。

まずは以下の手順に従ってください。

これにより、データベースをアップグレードなしで起動し、その後にアップデートを実行できます。

動作しました。どうもありがとうございます!