sql >> Database teknologi >  >> RDS >> PostgreSQL

Gendan en postgres backup-fil ved hjælp af kommandolinjen?

Der er to værktøjer at se på, afhængigt af hvordan du oprettede dump-filen.

Din første referencekilde bør være man-siden pg_dump(1) da det er det, der skaber selve lossepladsen. Der står:

Dumps kan udskrives i script- eller arkivfilformater. Script-dumps er almindelige tekstfiler, der indeholder de SQL-kommandoer, der kræves for at rekonstruere databasen til den tilstand, den var i på det tidspunkt, den blev gemt. For at genskabe fra sådan et script, foder det med topsql(1). Script-filer kan bruges til at rekonstruere databasen selv på andre maskiner og andre arkitekturer; med nogle ændringer, selv på andre SQL-databaseprodukter.

De alternative arkivfilformater skal bruges sammen med pg_restore(1) for at genopbygge databasen. De tillader pg_restore at være selektive med hensyn til, hvad der gendannes, eller endda at omarrangere emnerne, før de gendannes. Arkivfilformaterne er designet til at være bærbare på tværs af arkitekturer.

Så det afhænger af, hvordan det blev dumpet ud. Du kan sikkert finde ud af det ved at bruge den fremragende file(1) kommando - hvis den nævner ASCII-tekst og/eller SQL, skal den gendannes med psql ellers skal du nok bruge pg_restore

Gendannelse er ret let:

psql -U username -d dbname < filename.sql

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

eller

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

Tjek deres respektive manpages - der er en del muligheder, der påvirker, hvordan gendannelsen fungerer. Du skal muligvis rense dine "live" databaser eller genskabe dem fra skabelon0 (som påpeget i en kommentar) før gendannelse, afhængigt af hvordan dumpene blev genereret.



  1. Sådan får du størrelsen på en tabel i MySQL

  2. Grundlæggende om tabeludtryk, del 11 - Synspunkter, ændringsovervejelser

  3. Mysql-forespørgsel til dynamisk at konvertere rækker til kolonner på basis af to kolonner

  4. Databasebelastningsbalancering:Distribuerede vs centraliserede opsætninger