Я только что установил Discourse на новый сервер и теперь пытаюсь загрузить резервную копию размером около 400 МБ.
Загрузка зависает на 40% с следующей ошибкой: Слишком много запросов с этого IP-адреса. Пожалуйста, повторите попытку через 2 секунды. Код ошибки: ip_10_secs_limit.
В качестве обходного пути вы можете загрузить резервную копию через SCP. Дополнительную информацию см. по адресу Restore a backup from the command line. @martin Не может ли это быть вызвано переходом на Uppy?
Я перешел по вашей ссылке для восстановления резервной копии через 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.
Я понимаю, о чём вы. Но я всё сделал в точности по инструкции (без ошибок, скопировал пути), поэтому спрашиваю: не ошибочны ли сами инструкции или что-то изменилось в путях за последние два года?
Я попробую ещё раз, но, возможно, мне придётся переустановить Discourse, потому что сейчас у меня только пустой сайт.
Итак, я мог бы восстановить резервную копию с помощью discourse restore, но некоторые категории отсутствуют, полностью отсутствует заголовок, я не могу войти в систему, файл app.yml всё ещё такой же, как при чистой установке, и многое другое.
Резервная копия была сделана 06.12.21, и я выбрал опцию резервного копирования всего, но половина данных отсутствует.
Таким образом, для меня весь процесс резервного копирования и восстановления — это полный хаос!
Об этом следовало сообщить в момент создания резервной копии (в виде уведомления в конце). У меня нет доступа к старому файлу, создать новый можно, но я не помню, какие у меня были плагины.
Но тогда остаётся вопрос: почему отсутствуют некоторые категории и темы, почему пропал заголовок и почему я не могу войти в систему.
Это была чистая установка на новом сервере, и я думал, что app.yml есть в резервной копии, но ошибся. У меня нет доступа к «старому» экземпляру Discourse, поэтому, похоже, восстановить файл app.yml невозможно.
Вы можете отредактировать существующий файл app.yml, чтобы добавить то, что, по вашему мнению, в нём отсутствует? Однако я не уверен, что могло помешать копированию категорий или данных для входа.
Вы восстанавливали полный файл резервной копии? Тот, о котором говорится в первом сообщении, остановился на 40%. Если вы восстановили эту версию, это может объяснить, почему половина ваших данных отсутствует?
Пока я лишь предполагаю. Извините, что не смог помочь больше.
Извините, что у вас возникли такие проблемы. Я не могу объяснить, как это могло произойти.
Не могу представить, чтобы резервная копия восстанавливала только некоторые категории. Если восстановлены только некоторые категории, значит именно они и содержались в той резервной копии, которую вы сделали. Возможно, у вас старая резервная копия.
Файл app.yml не имеет никакого отношения к вашим данным, он содержит только имя хоста и другие настройки, необходимые для установки Discourse. Вы можете восстановить любую базу данных на любой сайт.
Я переустановлю Discourse (с новым образом сервера) и снова попробую восстановить резервную копию.
Зависание на 40% произошло при загрузке непосредственно в Discourse; после этого я скопировал резервную копию на сервер через SCP.
Да, это верно, но я думал, что в резервной копии также сохранятся какие-то важные данные. Теперь я не знаю, какие плагины были установлены в старом экземпляре и какие у них были настройки.
Резервная копия была сделана 6 декабря этого года, то есть всего несколько дней назад.