У меня запущен сайт в ECS с RDS. Я пытаюсь восстановить базу данных (как описано здесь: Restore failed `entity2char already exists' RDS Postgres 13.7 - #7 by RGJ).
Проблема сейчас в том, что резервное копирование не запускается, потому что оно приостановлено в ожидании Sidekiq. Заявляется, что ожидание длится 60 секунд, но я жду уже 60 минут, и оно так и не прекращается.
Затем я решил сбросить, создать и выполнить миграцию базы данных перед восстановлением (я почти уверен, что в прошлый раз это сработало), но всё равно не могу удалить БД, потому что 6 задач держат её открытой.
SELECT application_name,client_addr FROM pg_stat_activity;
Показывает следующее (и есть 6 процессов Sidekiq с активными подключениями):
psql | 10.3.2.155
PostgreSQL JDBC Driver | 127.0.0.1
| 127.0.0.1
sidekiq 6.5.8 discourse [0 of 5 busy] | 10.3.2.155
sidekiq 6.5.8 discourse [0 of 5 busy] | 10.x.2.155
sidekiq 6.5.8 discourse [0 of 5 busy] | 10.x.2.34
sidekiq 6.5.8 discourse [0 of 5 busy] | 10.x.2.155
sidekiq 6.5.8 discourse [0 of 5 busy] | 10.x.2.155
sidekiq 6.5.8 discourse [0 of 5 busy] | 10.x.2.34
Один из этих адресов — ECS, другой — контейнер, который я запустил на EC2. В обоих контейнерах я выполнил sv stop unicorn, что в других случаях уже позволяло удалить базу данных.
О. И теперь я остановил контейнер на EC2, так что эти подключения, вероятно, просто зависли, поскольку он завершил работу без закрытия соединений? Возможно, мне нужно снова перезагрузить базу данных. (Перезагрузка БД действительно прекратила эти подключения, и теперь отображаются только неактивные соединения от остановленного Unicorn).
Что мне делать, чтобы завершить Sidekiq? Нужно ли зайти в Redis и очистить всё содержимое? (Я уже делал это раньше и могу найти инструкцию в Google).