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에 들어가서 모든 내용을 지워야 하나요? (이전에 그렇게 해본 적이 있고, 구글링해서 다시 방법을 찾을 수 있습니다).