110 Umzug einer Datenbank (pg dump backup) Schulungs Test System » Historie » Revision 26
« Zurück |
Revision 26/96
(diff)
| Weiter »
[S] Philipp K, 01.08.2018 11:48
Programme (pg_dump, pg_dumpall, createdb, psql
) erreichbar unter ..\PostgreSQL\pg9.6\pg96\bin
Umzug einer Datenbank (pg_dump)¶
Backup¶
1. Dump erstellen
pg_dump -h localhost -p 5432 -U postgres -d DATABASE -O -f dump_DB.sql --disable-triggers
-h -p -U
sind Verbindungsoptionen: Host, Port, Benutzer für den dump-d
ist die best. Datenbank-O
keine Objekteigentümerschaft ausgeben-f
Dateiname--disable-triggers
Trigger bei Wiederherstellung deaktivieren.
2. search-path in Dump-Datei korrigieren, siehe #9521:
- https://sourceforge.net/projects/fart-it/
fart.exe -c dump_DB.sql "SELECT pg_catalog.set_config('search_path', '', false);" "SELECT pg_catalog.set_config('search_path', 'public, z_99_deprecated', false);"
Potentielle Alternative - Powershell Script
3. Rollen exportieren
pg_dumpall -h localhost -p 5432 -U postgres -r -f dump_roles.sql
Wiederherstellung¶
Anpassen der postgresql.conf¶
postgresql.conf kopieren!
anpassen:shared_buffers = 1/2 des eingetragenen Wertes
maintenance_work_mem = 2GB
1. Datenbank erzeugen
createdb -h localhost -p 5432 -U postgres NEUE-DB
2. implicit casts erzeugen
implicit-casts werden nicht mit importiert: ..\PSQL\0050 System\0 0 pg83-implicit-casts.sql
muss davor oder danach auf der DB ausgeführt werden.
3. Rollen importieren
psql -h localhost -p 5432 -U postgres -f dump_roles.sql -q
4. Datenbank wiederherstellen
psql -h localhost -p 5432 -U postgres -d NEUE-DB -f dump_DB.sql -q -o msglog.txt 2> errorlog.txt
- Verbindungsoptionen, s.o.
- Vollständiges oben erstelltes Skript wird ausgeführt.
- Datenbankname muss angegeben werden, sonst wird in System-DB "postgres" geschrieben
- -q quiet (ist schneller)
- -o Anfrageergebnisse in Datei (ist schneller)
- 2> Fehler in Datei (ist schneller)
---
h1. Zurückspielen der postgresql.conf
Kopie widerherstellen
Umzug des kompletten Clusters (pg_dumpall)¶
Backup¶
1. Dumps erstellen
Schema: pg_dumpall -h localhost -p 5432 -U postgres -O -s -f dumpall_schema.sql --disable-triggers
Daten : pg_dumpall -h localhost -p 5432 -U postgres -O -a -f dumpall_daten.sql --disable-triggers
- Alle Rollen werden geschrieben
- Alle Datenbanken werden mit CREATE und CONNECT ins Skript geschrieben.
- Schema und Daten getrennt, damit implicit-casts eingespielt werden können.
2. search-path in Dump-Datei korrigieren, siehe #9521:
- https://sourceforge.net/projects/fart-it/
fart.exe -c dumpall_schema.sql "SELECT pg_catalog.set_config('search_path', '', false);" "SELECT pg_catalog.set_config('search_path', 'public, z_99_deprecated', false);"
fart.exe -c dumpall_daten.sql "SELECT pg_catalog.set_config('search_path', '', false);" "SELECT pg_catalog.set_config('search_path', 'public, z_99_deprecated', false);"
Wiederherstellen¶
1. Strukturen anlegen:
psql -h localhost -p 5432 -U postgres -f dumpall_schema.sql -q -o msglog_schema.txt 2> errorlog_schema.txt
2. implicit-casts erzeugen:
implicit-casts werden nicht mit importiert: ..\PSQL\0050 System\0 0 pg83-implicit-casts.sql
muss davor oder danach auf allen DBs ausgeführt werden.
3. Daten wiederherstellen:
psql -h localhost -p 5432 -U postgres -f dumpall_daten.sql -q -o msglog_daten.txt 2> errorlog_daten.txt
- Alle Rollen werden erzeugt
- Alle Datenbanken werden erzeugt
Von [S] Philipp K vor fast 7 Jahren aktualisiert · 26 Revisionen