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
これらのアドレスの 1 つは ECS で、もう 1 つは EC2 で開始したコンテナです。両方のコンテナで sv stop unicorn を実行しましたが、これは他のコンテキストではデータベースを削除するのに十分でした。
ああ。そして、EC2 のコンテナを停止しました。そのため、シャットダウン時に接続を閉じずにハングしているだけなのでしょうか?データベースを再起動する必要があるかもしれません。(データベースを再起動すると、これらの接続は停止し、シャットダウンされたユニコーンからのアイドル接続のみが表示されるようになりました。)
sidekiq を停止するにはどうすればよいですか?redis に入ってすべてをクリアしますか?(以前にやったことがあり、再度 Google で調べることができます。)