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 postgres
om 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 -F
geef het formaat van het back-upbestand op:
c
gebruikt de aangepaste PostgreSQL-indeling die is gecomprimeerd en resulteert in de kleinste back-upbestandsgrootted
voor map waarin elk bestand één tabel ist
voor TAR-archief (groter dan aangepast formaat)-h
/--host
Specificeert de hostnaam van de machine waarop de server draait-W
/--password
Forceerpg_dump
om 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 -C
moet een database maken voordat gegevens worden geïmporteerd. Als het niet werkt, kunt u altijd een database maken, bijv. met commando (als gebruiker postgres
of 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 -F
niet specificeerde, werd de standaard platte tekst SQL-indeling gebruikt (of met -F p
). Dan kun je pg_restore
niet 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_dump
die 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 -h
host, -p
poort, -u
login gebruikersnaam, -d
naam 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:
- Open opdrachtregelvenster
- Ga naar de map Postgres bin. Bijvoorbeeld:
cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
- Voer de opdracht in om uw database te herstellen.
For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
- Typ het wachtwoord voor uw postgres-gebruiker
- 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_restore
en kreeg:
pg_restore: error: input file appears to be a text format dump. Please use psql.
Ik deed het met psql
en 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
-Fc
comprimeert de database (format custom)- Lijst PostgreSQL-gebruikers:
sudo -u postgres psql -c "\du+"
- Misschien wilt u hostnaamen datumtoevoegen aan
./mydb.sql
en 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:
- Ik moest de directory veranderen naar mijn pg_hba.conf.
- Ik moest het bestand bewerken om de methode van peer naar md5 te wijzigen, zoals hier
- Herstart de service:
service postgresql-10 restart
-
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:
- Start PostGres Server –
sudo systemctl start postgresql
- Actioneer dezelfde –
sudo systemctl enable postgresql
- 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 ”