sidekiq이 방해를 해서 복원할 수 없어요

ECS에서 RDS와 함께 실행 중인 사이트가 있습니다. (여기서 설명된 대로) 데이터베이스를 복원하려고 합니다: Restore failed `entity2char already exists' RDS Postgres 13.7 - #7 by RGJ

현재 문제는 백업이 sidekiq를 기다리면서 일시 중지되어 시작되지 않는 것입니다. 60초를 기다린다고 표시하지만, 60분을 기다려도 대기 상태가 끝나지 않습니다.

이후 복원 전에 데이터베이스를 삭제(drop), 생성(create), 마이그레이션(migrate)하기로 결정했습니다(지난번에 이것이 작동했던 것으로 확신합니다). 하지만 여전히 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에서 온 유휴(idle) 연결만 표시됩니다.)

sidekiq를 종료하려면 어떻게 해야 하나요? redis에 들어가서 모든 내용을 지워야 하나요? (이전에 그렇게 해본 적이 있고, 구글링해서 다시 방법을 찾을 수 있습니다).

sidekiq가 실행 중인 모든 인스턴스(컨테이너, 유니콘)를 중지하기만 하면 됩니다.

그렇게 생각했을 텐데, sidekiq가 실행되던 컨테이너를 종료한 후에도 postgres에서는 여전히 활성 연결이 표시되었습니다. 마찬가지로 ECS 인스턴스에서 sv stop unicorn을 실행했지만 postgres에서는 여전히 활성 연결이 표시되었습니다.

RDS 서버를 재부팅하고 EC2의 컨테이너를 다시 시작했습니다(ECS 인스턴스는 복구를 위한 여유 디스크 공간이 부족합니다). 그런 다음 sv stop unicorn을 실행하고, 데이터베이스를 삭제한 후 생성하고, 복원했으며, 현재 복구를 시도하고 있습니다.

도와주셔서 정말 감사합니다. 진심으로 감사드립니다!