Vraag Moest Postgres upgraden op Ubuntu; nu, hoe toegang te krijgen tot oude, ontbrekende databases?


Mijn lokale verbinding op mijn Ubuntu-server (14.04) werkte niet naar mijn Postgres-database (9.3), dus ik heb geprobeerd deze te upgraden naar 9.4 om de verbindingsproblemen op te lossen. Gelukkig kan ik nu verbinding maken met de database, maar ... Mijn oude databases (en tabellen, views, enz.) Ontbreken nu ...

Is het mogelijk om deze te herstellen? Hoe zou ik dat doen?


2
2018-04-02 22:52


oorsprong




antwoorden:


Tenzij u het oude 9.3-cluster hebt verwijderd, moeten er twee clusters worden uitgevoerd:

$ service postgresql status
9.3/main (port 5432): online
9.4/main (port 5433): online

(of gebruik pg_lsclusters om bestaande PostgreSQL-clusters weer te geven).

PostgresSQL-opdrachten accepteren -p argument om te onderscheiden welk DB-cluster u gebruikt (het accepteert ook Unix-socketpad). U kunt oude gegevens exporteren met (ervan uitgaande dat de oude DB op poort draait 5432):

su - postgres
pg_dump -p 5432 my_db -f my_db.dump
# import data into new DB cluster
pg_restore -p 5433 -d my_db my_db.dump

0
2018-04-22 08:07





Tenzij u een back-up dump rondslingeren, de veiligste manier om dit te doen is om:

  • installatie van Postgres 9.4 ongedaan maken,
  • installeer 9.3,
  • maak een back-up van de database met pg_dumpall > backup.sql,
  • verwijderen Postgres 9.3,
  • installeer Postgres 9.4,
  • herstel de databases met behulp van psql -d postgres -f backup.sql.

De 9.3-databases hebben een ander formaat dan wat 9.4 verwacht en er is geen eenvoudige manier om ze te converteren met alleen 9.4-tools.


-1
2018-04-03 09:07



Het verwijderen en opnieuw installeren van Postgres 9.4 is echt niet nodig. - Tombart