sql >> Database >  >> RDS >> PostgreSQL

Een postgres-back-upbestand herstellen via de opdrachtregel?

Er zijn twee tools om naar te kijken, afhankelijk van hoe je het dumpbestand hebt gemaakt.

Uw eerste referentiebron zou de man-pagina pg_dump(1) moeten zijn want dat is wat de dump zelf creëert. Er staat:

Dumps kunnen worden uitgevoerd in script- of archiefbestandsindelingen. Scriptdumps zijn bestanden met platte tekst die de SQL-opdrachten bevatten die nodig zijn om de database te reconstrueren in de staat waarin deze zich bevond op het moment dat deze werd opgeslagen. Om van zo'n script te herstellen, voer het topsql(1) in. Scriptbestanden kunnen worden gebruikt om de database te reconstrueren, zelfs op andere machines en andere architecturen; met enkele aanpassingen, zelfs op andere SQL-databaseproducten.

De alternatieve archiefbestandsformaten moeten worden gebruikt met pg_restore(1) om de database opnieuw op te bouwen. Ze stellen pg_restore in staat selectief te zijn over wat er wordt hersteld, of zelfs om de items opnieuw te ordenen voordat ze worden hersteld. De bestandsindelingen van het archief zijn ontworpen om over verschillende architecturen te kunnen worden overgedragen.

Het hangt dus af van de manier waarop het is gedumpt. Je kunt het waarschijnlijk achterhalen met behulp van het uitstekende file(1) commando - als het ASCII-tekst en/of SQL vermeldt, moet het worden hersteld met psql anders moet u waarschijnlijk pg_restore . gebruiken

Herstellen is vrij eenvoudig:

psql -U username -d dbname < filename.sql

-- For Postgres versions 9.0 or earlier
psql -U username -d dbname -1 -f filename.sql

of

pg_restore -U username -d dbname -1 filename.dump

Bekijk hun respectievelijke manpages - er zijn nogal wat opties die van invloed zijn op hoe het herstel werkt. Het kan zijn dat u uw "live" databases moet opschonen of ze opnieuw moet maken vanuit template0 (zoals aangegeven in een opmerking) voordat u herstelt, afhankelijk van hoe de dumps zijn gegenereerd.



  1. MAAK TABEL INDIEN NIET BESTAAT equivalent in SQL Server

  2. SQL-server negeer hoofdletters in een waar-expressie

  3. Getallen converteren naar woorden in MYSQL resultaat! Query gebruiken

  4. MySQL-update GEVAL WANNEER/DAN/ELSE