Ich betreibe eine Website in ECS mit RDS. Ich versuche, die Datenbank wiederherzustellen (wie hier beschrieben: Restore failed `entity2char already exists' RDS Postgres 13.7 - #7 by RGJ).
Das Problem an diesem Punkt ist, dass das Backup nicht startet, weil es auf Sidekiq wartet. Es behauptet, 60 Sekunden zu warten, aber ich habe 60 Minuten gewartet und es hat nie aufgehört zu warten.
Dann entschied ich, dass ich die Datenbank vor der Wiederherstellung löschen, erstellen und migrieren würde (ich bin mir ziemlich sicher, dass das letztes Mal funktioniert hat), aber ich kann die DB immer noch nicht löschen, da 6 Tasks sie geöffnet haben.
SELECT application_name,client_addr FROM pg_stat_activity;
Zeigt dies an (und es gibt 6 Sidekiqs mit aktiven Verbindungen)
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
Eine dieser Adressen ist die ECS, die andere ein Container, den ich in einem EC2 gestartet habe. In beiden Containern habe ich sv stop unicorn ausgeführt, was in anderen Kontexten ausgereicht hat, um die Datenbank löschen zu können.
Oh. Und jetzt habe ich den Container auf dem EC2 gestoppt, also hängen diese Verbindungen nur noch, da er heruntergefahren wurde, ohne sie zu schließen? Vielleicht muss ich die Datenbank neu starten. (Das Neustarten der Datenbank hat diese Verbindungen gestoppt, und jetzt werden nur noch Idle-Verbindungen vom heruntergefahrenen Unicorn angezeigt).
Was mache ich, um Sidekiq zu beenden? Gehe ich in Redis und lösche alles? (Das habe ich schon mal gemacht und kann googeln, um es wieder herauszufinden).