Was ist der empfohlene Weg, um eine Heroku Postgres Produktionsdatenbank mit minimaler Ausfallzeit auf 9.2 zu aktualisieren? Ist es möglich, einen Follower zu verwenden, oder sollten wir die Route pgbackups/snapshots nehmen?Upgrade auf Postgres auf Heroku
Antwort
Bis logical followers in 9.4 müssen Sie dump und wiederherstellen (aus den Gründen, die Craig beschreibt). Sie können dies mit pgbackups vereinfachen: Übertragen. Die direkte Übertragung ist schneller als das Sichern und Wiederherstellen, aber Sie müssen wissen, dass Sie keinen Snapshot behalten müssen.
Das folgende Skript ist im Wesentlichen Herokus Using PG Backups to Upgrade Heroku Postgres Databases mit Änderung für pgbackups:transfer. (Wenn Sie mehrere Instanzen haben, sagen, ein Staging-Server, fügen Sie „-a“ oder „--remote“ zu jeder Heroku Zeile angeben, welche Server.)
# get the pgbackups plugin
heroku plugins:install git://github.com/heroku/heroku-pg-extras.git
# provision new db
heroku addons:add heroku-postgresql:crane --version=9.2
# wait for it to come online, make note of new color
heroku pg:wait
# prevent new data from arriving during dump
heroku ps:scale worker=0 web=0
heroku maintenance:on
# copy over the DB. could take a while.
heroku pgbackups:transfer OLDCOLOR NEWCOLOR
# promote new database as default for DATABASE_URL
heroku pg:promote NEWCOLOR
# start everything back up and test
heroku ps:scale worker=N web=N
heroku maintenance:off
heroku open
# remove old database
heroku addons:remove HEROKU_POSTGRESQL_OLDCOLOR
Beachten Sie, dass, wenn Sie vergleichen Sie Ihre Datengröße zwischen ihnen , der neue kann wegen der Effizienzen in 9.2 viel kleiner sein. (Meine 9.2 war etwa 70% der 9.1.)
Heroku-Anhänger sind, AFAIK, nur PostgreSQL-Streaming-Replikatserver. Das bedeutet, dass Sie sie nicht versionsübergreifend verwenden können, Sie müssen binärkompatible Datenbanken haben.
Die gleichen Techniken sollten wie gewöhnliche PostgreSQL gelten, außer dass Sie möglicherweise pg_upgrade
auf Heroku nicht verwenden können. Dies erfordert Shell (ssh, etc) Zugriff als postgres
Benutzer auf dem System, das die Datenbank hostet, so bezweifle ich, dass es auf Heroku möglich ist, es sei denn, sie haben ein Tool zum Ausführen von pg_upgrade
für Sie bereitgestellt. Ich kann dazu nicht viele Informationen finden.
Sie müssen wahrscheinlich Slony-I, Bucardo oder eine andere triggerbasierte Replikationslösung verwenden, um das Upgrade durchzuführen, sofern Sie keine Möglichkeit finden, pg_upgrade
auf einer Heroku-Datenbankinstanz auszuführen. Die allgemeine Idee ist, dass Sie eine neue 9.2-Instanz einrichten, Slony verwenden, um Daten von der 9.1-Instanz in diese zu klonen. Sobald sie vollständig synchronisiert sind, stoppen Sie die 9.1-Instanz, entfernen die Slony-Trigger und wechseln zu den Clients 9.2 Instanz.
Suche nach weiteren Informationen über "Postgresql Low Downtime Upgrade-Slony" usw., sehen, wie Sie gehen.
Craig ist korrekt, sie streamen Replikate: Sie können diese Route nicht für das Upgrade verwenden. Momentan wäre der beste Weg, den Befehl pgbackups: transfer zu verwenden, der im Plugin pg-extras (https://github.com/heroku/heroku-pg-extras#pgbackuptransfer) verfügbar ist, um die Daten schnell zu übertragen (solange Sie es sind) App ist im Wartungsmodus). In Zukunft werden wir einfachere Upgrade-Optionen unterstützen. – hgmnz
@hgmnz Warum nicht [heroku-pgupgrade] (https://github.com/hgmnz/heroku-pgupgrade) verwenden? – thejaz
@thejaz aha! Nun, weil es derzeit in der Betaversion ist und es bis auf weiteres kaputt ist (Serverseite). Sobald es für die Primetime fertig ist, werde ich darauf achten, es in diesem Repo zu notieren. – hgmnz
- 1. Upgrade Heroku Postgres DB-Plan
- 2. ConnectionTimeoutError auf Heroku mit Postgres
- 3. Set locale auf Heroku postgres
- 4. Zugriff auf Heroku Postgres-Instanz von EC2
- 5. Postgres Fehler auf Heroku mit Resque
- 6. Postgres auf Heroku SQL-Anweisung schlägt fehl
- 7. Verbindung abgelehnt mit Go + Postgres auf Heroku
- 8. Postgres auf Heroku und Dumping einzelne Tabelle auf Dump-Datei
- 9. Ruby 2.0/Rails 4.0.0beta Upgrade schlägt auf Push zu Heroku
- 10. Gibt es eine Möglichkeit, Postgres auf Heroku neu zu starten?
- 11. Programmierbare Möglichkeit, eigenständige Datenbanken auf Heroku Postgres zu verwalten
- 12. Spring Boot Verbindung zu Postgres-Datenbank auf Heroku
- 13. pg_largeobject Zugriff auf heroku
- 14. Einstellung application_name auf Postgres/SQLAlchemy
- 15. Rubin auf Schienen heroku wiederherstellen
- 16. Wie postgresql db auf Heroku wiederherstellen
- 17. Upgrade auf MsXml6.dll
- 18. Upgrade auf msysgit 1.7.0.2?
- 19. Upgrade auf SVN 1.5
- 20. Upgrade auf MVC 3
- 21. lokale PostgreSQL-Datenbank auf Remote-Server Heroku
- 22. Wie bekomme ich einen Postgres-Datenbank-Dump auf plain text auf heroku?
- 23. Sichern und Wiederherstellen von Redis auf Heroku
- 24. Konvertieren von SQLITE3 zu Postgres für Heroku
- 25. Automatische heroku tägliche Postgres Datenbank-Duplizierung
- 26. Heroku weigert Verbindung zu Postgres-Datenbank
- 27. Exportieren von Sicherungskopien von Heroku Postgres
- 28. DevDependencies auf Heroku installieren
- 29. Geplante woker auf Heroku
- 30. Gerbv auf Heroku installieren
Da die (am besten gewählte) Lösung für 9.2 und 9.3 gilt, könnten Sie in Betracht ziehen, die Versionsnummer aus Ihrem Fragentitel zu entfernen. –