バックアップをアップロードできません

こんにちは!

Discourse を新しいサーバーにインストールしたばかりで、約 400MB のバックアップをアップロードしようとしています。
次のエラーで 40% でスタックします。
Slow down, too many requests from this IP address. Please retry again in 2 seconds. Error code: ip_10_secs_limit.

これは何ですか?また、どのように解決できますか?

「いいね!」 1

回避策として、SCP経由でバックアップをアップロードできます。詳細については、Restore a backup from the command line を参照してください。

@martin Uppyへの切り替えが原因である可能性がありますか?

「いいね!」 2

CLIからバックアップを復元するためにリンクをたどりましたが、何も復元されず、クリーンインストールと同じ状態でした。

バックアップに「古い」app.ymlファイルが含まれており、バックアップを復元すると上書きされますか?そうでない場合、バックアップ全体は無意味です。

Discourse内からバックアップを復元しようとしましたが、今は空白のサイトになっています。

これは、バックアップを復元しようとしたときのコマンドラインからのものです。もちろん、リンクのコマンドに従いましたが、何かが変更されたようです。

Starting restore: backup-2021-12-06-185610-v20211201221028.tar.gz
[STARTED]
'system' has started the restore!
Marking restore as running...
Making sure /var/www/discourse/tmp/restores/default/2021-12-18-163225 exists...
Copying archive to tmp directory...
EXCEPTION: lib/discourse.rb:127:in `exec': Failed to copy archive to tmp directory.
cp: cannot stat '/var/www/discourse/public/backups/default/backup-2021-12-06-185610-v20211201221028.tar.gz': No such file or directory
lib/discourse.rb:154:in `execute_command'
lib/discourse.rb:127:in `exec'
lib/discourse.rb:34:in `execute_command'
/var/www/discourse/lib/backup_restore/local_backup_store.rb:42:in `download_file'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:62:in `copy_archive_to_tmp_directory'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:22:in `decompress'
/var/www/discourse/lib/backup_restore/restorer.rb:42:in `run'
script/discourse:149:in `restore'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.1.0/lib/thor/base.rb:485:in `start'
script/discourse:290:in `<top (required)>'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/cli/exec.rb:58:in `load'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/cli/exec.rb:58:in `kernel_load'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/cli.rb:477:in `exec'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/cli.rb:31:in `dispatch'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/cli.rb:25:in `start'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/exe/bundle:49:in `block in <top (required)>'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/lib/bundler/friendly_errors.rb:128:in `with_friendly_errors'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.26/exe/bundle:37:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Trying to rollback...
There was no need to rollback
Cleaning stuff up...
Removing tmp '/var/www/discourse/tmp/restores/default/2021-12-18-163225' directory...
Marking restore as finished...
Notifying 'system' of the end of the restore...
Finished!
[FAILED]
Restore done.
「いいね!」 1

ファイルを間違った場所に置いたか、ファイル名を間違えたかのどちらかです。後者の場合は、

   discourse restore

ファイル名を指定せずに実行すると、利用可能なファイルが提案されます。

もし

     discourse backup

を実行すれば、ファイルがどこに保存されたかを確認できます。携帯電話から正しいパスを入力しようとはしません。

「いいね!」 1

いいえ、ここに書かれている通りにやりました。

もしこれが間違ったパスなら、チュートリアルが間違っていることになります。だから、どこにファイルを置けばいいのか尋ねたのです。

入力ミスは本当によくあることです。だからこそ、正しい場所に配置したかどうかを確認する方法を提案しました。「discourse restore」をファイル名なしで試しましたか?

おっしゃることは分かります。しかし、指示通りに(間違いなく、パスをコピーして)実行しましたので、指示が間違っているのか、それとも過去2年間でパスが変更されたのかお尋ねします。

もう一度試しますが、今は真っ白なサイトしか表示されないため、Discourseを再インストールする必要があるかもしれません。

これを変更せずにコピー&ペーストすることはできないと思いますか?

「いいね!」 1

移動先のパスは正しいと思います。そうでなければ、どこに移動すべきかを正確に伝えるべきです。

「いいね!」 1

なるほど。投稿を「ガイドからすべてコピー&ペーストしたので、何も間違って入力できなかった」と読んだのですね。:slightly_smiling_face:

discourse restore でバックアップを復元できましたが、一部のカテゴリが欠落しており、ヘッダー全体が欠落しており、ログインできず、app.yml はクリーンインストール時と同じで、他にも多くの問題があります。
バックアップは 2021 年 12 月 6 日のもので、すべてをバックアップすることを選択しましたが、半分のものが欠落しています。

そのため、私にとってバックアップと復元のプロセス全体は完全にめちゃくちゃです!

これは非常にフラストレーションがたまることでしょう。お察しいたします。

app.yml は Discourse のバックアップには含まれていません。古いインスタンスからコピーするか、新しいものを編集する必要があります。

「いいね!」 2

これは、バックアップが作成されたときに(最後に情報として)言われるべきです。古いファイルにアクセスできず、新しいファイルを作成することは可能ですが、どのプラグインがあったか覚えていません。

しかし、なぜ一部のカテゴリやトピックが欠落しているのか、ヘッダーが欠落していてログインできないのかという疑問が残ります。

それについては確信が持てません。:slightly_smiling_face: 新しいインスタンスで ./launcher discourse-setup を実行しましたか?

はい、もちろんです。それとも、復元するために実行しないほうがよかったのでしょうか?それとも、復元後ということでしょうか?

それがいくつかの欠けているピースを埋めるかもしれないと思ったのですが、確信はありません。

バックアップファイルを取得し、更新されたapp.ymlを使用して新しいDiscourseに復元して、それが改善されるかどうかを確認する価値があるかもしれません。

「いいね!」 1

サーバーは新規インストールで、app.yml はバックアップにあると思っていましたが、間違いでした。古い Discourse インスタンスにはアクセスできないため、app.yml ファイルを復元する方法はないようです。

既存の app.yml を編集して、不足していると思われるものを追加できますか? カテゴリやログインがコピーされない原因がわかりません。

完全なバックアップファイルを復元しましたか? OP のものは 40% で停止しました。そのバージョンを復元した場合、半分が欠けている理由が説明されるかもしれません。

現時点では推測にすぎませんが。 :slightly_smiling_face: お役に立てず申し訳ありません。

ご迷惑をおかけして申し訳ありません。どのようにして発生したのか説明できません。

バックアップが一部のカテゴリのみを復元したとは考えられません。一部のカテゴリのみが復元された場合、それはあなたが取得したバックアップに含まれていたものです。古いバックアップを使用している可能性があります。

app.yml は、データとは関係ありません。ホスト名や Discourse のセットアップに必要なその他のものだけです。データベースは、どのサイトにも復元できます。

「いいね!」 1

Discourse を再度再インストールし(サーバーイメージをクリーンにして)、バックアップを再度復元してみます。

40% でスタックしたのは Discourse への直接アップロード時で、その後 SCP でサーバーにバックアップをコピーしました。

はい、その通りですが、バックアップにも何か重要なものが保存されていると思ったのです。しかし、古いインスタンスにどのプラグインをインストールしていたか、またそれらの設定がどうだったかはもうわかりません。
バックアップは今年の12月6日のものなので、ほんの数日前です。