Een postgres-back-upbestand herstellen via de opdrachtregel?

Ik ben nieuw in postgresql en lokaal gebruik ik pgadmin3. Op de externe server heb ik die luxe echter niet.

Ik heb de back-up van de database al gemaakt en gekopieerd, maar is er een manier om een back-up vanaf de opdrachtregel te herstellen? Ik zie alleen dingen die te maken hebben met GUI of pg_dumps, dus als iemand me kan vertellen hoe ik dit moet aanpakken, zou dat geweldig zijn!


Antwoord 1, autoriteit 100%

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

Je eerste referentiebron zou de man-pagina pg_dump(1)moeten zijn, want dat is wat de dump zelf maakt. Er staat:

Dumps kunnen worden uitgevoerd in script of
bestandsformaten archiveren. Scriptdumps zijn
platte-tekstbestanden met de SQL
commando’s die nodig zijn om te reconstrueren
de database in de staat waarin hij was
op het moment dat het werd opgeslagen. Tot
herstel vanuit zo’n script, voer het in naar
psql(1). Scriptbestanden kunnen worden gebruikt
om de database zelfs te reconstrueren
op andere machines en andere
architecturen; met enkele aanpassingen
zelfs op andere SQL-databaseproducten.

De alternatieve bestandsindelingen voor archieven
moet worden gebruikt met pg_restore(1) om
de database opnieuw opbouwen. Zij staan toe
pg_restore om selectief te zijn over wat
wordt hersteld, of zelfs om de
items voordat ze worden hersteld. De
archiefbestandsindelingen zijn ontworpen om
draagbaar zijn in verschillende architecturen.

Het hangt dus af van de manier waarop het is gedumpt. Je kunt er waarschijnlijk achter komen met het uitstekende commando file(1)– als het ASCII-tekst en/of SQL vermeldt, moet het worden hersteld met psql, anders zou je het waarschijnlijk moeten gebruiken pg_restore

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 het herstelt, afhankelijk van hoe de dumps zijn gegenereerd.


Antwoord 2, autoriteit 53%

back-up maken

pg_dump -h localhost -p 5432 -U postgres -F c -b -v -f 
"/usr/local/backup/10.70.0.61.backup" old_db

-F c is een aangepaste indeling (gecomprimeerd en kan parallel worden uitgevoerd met -j N) -b bevat blobs, -v is uitgebreid, -f is de naam van het back-upbestand

herstel vanaf back-up

pg_restore -h localhost -p 5432 -U postgres -d old_db -v 
"/usr/local/backup/10.70.0.61.backup"

belangrijk om -h localhostin te stellen – optie


Antwoord 3, autoriteit 23%

Mogelijk moet u zijn aangemeld als postgresom volledige rechten op databases te hebben.

su - postgres
psql -l                      # will list all databases on Postgres cluster

pg_dump/pg_restore

 pg_dump -U username -f backup.dump database_name -Fc 

schakel -Fgeef het formaat van het back-upbestand op:

  • cgebruikt de aangepaste PostgreSQL-indeling die is gecomprimeerd en resulteert in de kleinste back-upbestandsgrootte
  • dvoor map waarin elk bestand één tabel is
  • tvoor TAR-archief (groter dan aangepast formaat)
  • -h/--hostSpecificeert de hostnaam van de machine waarop de server draait
  • -W/--passwordForceer pg_dumpom een wachtwoord te vragen voordat verbinding wordt gemaakt met een database

back-up terugzetten:

  pg_restore -d database_name -U username -C backup.dump

Parameter -Cmoet een database maken voordat gegevens worden geïmporteerd. Als het niet werkt, kunt u altijd een database maken, bijv. met commando (als gebruiker postgresof ander account dat rechten heeft om databases aan te maken) createdb db_name -O owner

pg_dump/psql

In het geval dat u het argument -Fniet specificeerde, werd de standaard platte tekst SQL-indeling gebruikt (of met -F p). Dan kun je pg_restoreniet gebruiken. U kunt gegevens importeren met psql.

back-up:

pg_dump -U username -f backup.sql database_name

herstellen:

psql -d database_name -f backup.sql

Antwoord 4, autoriteit 14%

POSTGRESQL 9.1.12

DUMP:

pg_dump -U user db_name > archive_name.sql

voer het gebruikerswachtwoord in en druk op enter.

HERSTEL:

psql -U user db_name < /directory/archive.sql

voer het gebruikerswachtwoord in en druk op enter.


Antwoord 5, autoriteit 8%

Hieronder staat mijn versie van pg_dumpdie ik gebruik om de database te herstellen:

pg_restore -h localhost -p 5432 -U postgres -d my_new_database my_old_database.backup

of gebruik psql:

psql -h localhost -U postgres -p 5432 my_new_database < my_old_database.backup

waar -hhost, -ppoort, -ulogin gebruikersnaam, -dnaam van database


Antwoord 6, autoriteit 5%

Back-up en herstel met GZIP

Voor een grotere database is dit erg goed

back-up

pg_dump -U user -d mydb | gzip > mydb.pgsql.gz

herstellen

gunzip -c mydb.pgsql.gz | psql dbname -U user

https://www.postgresql.org/docs/9.1/ static/backup-dump.html


Antwoord 7, autoriteit 5%

Dit werkte voor mij:

pg_restore --verbose --clean --no-acl --no-owner --host=localhost --dbname=db_name --username=username latest.dump

Antwoord 8, autoriteit 3%

Backup:  $ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}
Restore: $ psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}

Antwoord 9

probeer dit:

psql -U <username> -d <dbname> -f <filename>.sql

DB psql herstellen vanuit .sql-bestand


Antwoord 10

1. Open de terminal.

2. Maak een back-up van uw database met het volgende commando

uw postgres-bin -> /opt/PostgreSQL/9.1/bin/

uw brondatabaseserver -> 192.168.1.111

de locatie en naam van uw back-upbestand -> /home/dinesh/db/mydb.backup

uw bron db naam -> mydatabase

/opt/PostgreSQL/9.1/bin/pg_dump --host '192.168.1.111' --port 5432 --username "postgres" --no-password  --format custom --blobs --file "/home/dinesh/db/mydb.backup" "mydatabase"

3. Herstel mydb.backup-bestand naar bestemming.

uw doelserver -> localhost

de naam van uw bestemmingsdatabase -> mydatabase

Maak een database om de back-up te herstellen.

/opt/PostgreSQL/9.1/bin/psql -h 'localhost' -p 5432 -U postgres -c "CREATE DATABASE mydatabase"

Herstel de back-up.

/opt/PostgreSQL/9.1/bin/pg_restore --host 'localhost' --port 5432 --username "postgres" --dbname "mydatabase" --no-password --clean "/home/dinesh/db/mydb.backup"

Antwoord 11

Als u een back-up maakt met pg_dump, kunt u deze op de volgende manier eenvoudig herstellen:

  1. Open opdrachtregelvenster
  2. Ga naar de map Postgres bin. Bijvoorbeeld: cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
  3. Voer de opdracht in om uw database te herstellen. For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
  4. Typ het wachtwoord voor uw postgres-gebruiker
  5. Controleer het herstelproces

Antwoord 12

1) Open de psql-terminal.

2) Pak het dumpbestand uit/ untar het.

3) Maak een lege database.

4) gebruik de volgende opdracht om het .dump-bestand te herstellen

<database_name>-# \i <path_to_.dump_file>

Antwoord 13

Ik heb hier geen vermeldingen gezien over de dumpbestandsextensie (*.dump).

Deze oplossing werkte voor mij:

Ik heb een dumpbestand gekregen en moest het herstellen.

Eerst probeerde ik dit te doen met pg_restoreen kreeg:

pg_restore: error: input file appears to be a text format dump. Please use psql.

Ik deed het met psqlen werkte goed:

psql -U myUser -d myDataBase < path_to_the_file/file.dump

Antwoord 14

Back-up & Herstellen

Dit is de combinatie die ik gebruik om back-upte maken, neer te zetten, aan te maken en herstelvan mijn database (op macOS en Linux):

sudo -u postgres pg_dump -Fc mydb > ./mydb.sql
sudo -u postgres dropdb mydb
sudo -u postgres createdb -O db_user mydb
sudo -u postgres pg_restore -d mydb < ./mydb.sql

Diversen

  • -Fccomprimeert de database (format custom)
  • Lijst PostgreSQL-gebruikers: sudo -u postgres psql -c "\du+"
  • Misschien wilt u hostnaamen datumtoevoegen aan ./mydb.sqlen dit vervolgens wijzigen door:
    ./`hostname`_mydb_`date +"%Y%m%d_%H%M"`.sql
    

Antwoord 15

probeer:

pg_restore -h localhost -p 5432 -U <username> -d <dbname> -1 <filename>

Antwoord 16

Het herstellen van een postgres-back-upbestand hangt af van hoe u de back-up in de eerste plaats hebt gemaakt.

Als je pg_dump met -F c of -F d hebt gebruikt, moet je pg_restore gebruiken, anders kun je gewoon

gebruiken

psql -h localhost -p 5432 -U postgres < back-upbestand

9 manieren om postgres-databases te back-uppen en te herstellen


Antwoord 17

Zoals onderstaande link zei, kunt u het psql-commando gebruiken om het dumpbestand te herstellen:

https://www.postgresql.org /docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE

psql dbname < infile

als u een gebruikersnaam moet instellen, voegt u de gebruikersnaam toe na het commando zoals:

psql dbname < infile username

Antwoord 18

Probeer te zien of de volgende commando’s je kunnen helpen:

sudo su - yourdbuser
psql
\i yourbackupfile

Antwoord 19

Sorry voor de necropost, maar deze oplossingen werkten niet voor mij. Ik ben op postgres 10. Op Linux:

  1. Ik moest de directory veranderen naar mijn pg_hba.conf.
  2. Ik moest het bestand bewerken om de methode van peer naar md5 te wijzigen, zoals hier
  3. Herstart de service: service postgresql-10 restart
  4. Verander de map naar waar mijn backup.sql zich bevond en voer het uit:
    psql postgres -d database_name -1 -f backup.sql

    -database_name is de naam van mijn database

    -backup.sql is de naam van mijn .sql-back-upbestand.


Antwoord 20

Ik had verificatieproblemen bij het uitvoeren van pg_dump, dus ik heb mijn dumpbestand verplaatst

mv database_dump /tmp

naar de tijdelijke map en rende toen

su -u postgres
cd /tmp
pg_restore database_dump

Als je een grote databasedump hebt, wil je misschien een andere map maken waar je huidige gebruiker en de postgres-gebruiker toegang toe hebben en het databasedumpbestand daarin plaatsen.


Antwoord 21

Als u een back-up SQL-bestand heeft, kunt u dit eenvoudig herstellen.
Volg gewoon de instructies die hieronder worden gegeven

1. At first, create a database using pgAdmin or whatever you want (for example my_db is our created db name)
2. Now Open command line window
3. Go to Postgres bin folder. For example:  cd "C:\ProgramFiles\PostgreSQL\pg10\bin"
4. Enter the following command to restore your database: psql.exe -U postgres -d my_db -f D:\Backup\backup_file_name.sql 

Typ wachtwoord voor uw postgres-gebruiker indien nodig en laat postgres zijn werk doen. Dan kunt u het herstelproces controleren.


22

Back-up == & GT;

Optie1: om een ​​back-up te maken met een wachtwoord in CMD
1.PGPASSWORD="mypassword" pg_dump -U postgres -h localhost --inserts mydb>mydb.sql
Optie2: om back-up te nemen zonder wachtwoord in CMD
2. pg_dump -U postgres -h localhost --inserts mydb>mydb.sql
Optie3: om een ​​back-up te maken als GZIP (als database enorm is)
3. pg_dump -U postgres -h localhost mydb --inserts | gzip > mydb.gz

RESTORE:
1. psql -h localhost -d mydb -U postgres -p 5432 < mydb.sql


23

Deze oplossing werkt alleen voor Windows .

Controleer eerst of u de map PostGres-bin al hebt toegevoegd aan de variabele “PATH” -omgeving (in mijn geval deze map is C: \ Program Files \ PostgresQL \ 12 \ bin).

Open vervolgens de Windows-opdrachtinterpretor (CMD), ga naar de map waarin u het .SQL-bestand hebt en deze opdracht uitvoert:

PG_Restore -U Gebruikersnaam -D database-1 backupfile.sql

Bijvoorbeeld:

PG_Restore -U SAM -D SAMDATABASE -1 SAMDATABASEBACEACEUP.SQL

(het kan u vragen om het wachtwoord van de gebruiker, zodat u erop kunt u deze correct typen en klikt u vervolgens op ENTER)

PURA VIDA!


24

Volg deze 3 stappen:

  1. Start PostGres Server – sudo systemctl start postgresql
  2. Actioneer dezelfde – sudo systemctl enable postgresql
  3. Restore Command – pg_restore -h localhost -p 5432 -U postgres -d old_db

Aangenomen dat de dump er in dezelfde map is

Links :

https://www.postgresqltutorial.com/postgresql-restore-database
https://askubuntu.com/questions/50621/cannot-connect-to- postgresql-on-poort-5432


25

Zie hieronder voorbeeld het werkt

C: / programmabestanden / postgresql / 9.4 / bin \ pg_restore.exe –HOST LOCKEHOST – PORT 5432 –USERNAME “Postgres” –DBNAME “NEWDATABASE” – NEER-Wachtwoord –Verbose

c: \ gebruikers \ yogesh \ downloads \ Nieuwe download \ db.backup

Other episodes