backup und restore...

hallo,
ich habe ein backup von meinem ubuntu Server erstellt:

postgres@tomovic:/$ pg_dump -U postgres DATABASEA > /tmp/dump.sql

Soweit so gut, nun will ich es auf meinem Win 7 Server hochladen.

C:\Program Files\PostgreSQL\9.4\bin>pg_restore --dbname=Felkassc dump.sql
pg_restore: [Archivierer] Eingabedatei ist anscheinend ein Dump im Textformat. Bitte verwenden Sie psql.

Bevor ich mich mit psql auseinandersetze nehme ich Plan B in die Hand:
pgAdmin III:

pgadmin gestartet, Datenbank angeklickt, SQL klick, Datei öffnen klick, grüner Play Knopf klick
Das SQL Fenster:

..........................
-- Name: d; Type: DEFAULT; Schema: public; Owner: testera
--

ALTER TABLE ONLY rerere ALTER COLUMN d SET DEFAULT nextval('rerere_d_seq'::regclass);


--
-- Name: sqlpos; Type: DEFAULT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY textstein ALTER COLUMN sqlpos SET DEFAULT nextval('textstein_sqlpos_seq'::regclass);


--
-- Data for Name: artikel; Type: TABLE DATA; Schema: public; Owner: postgres
--

COPY artikel (reihenfolge, barcode, epreis, vpreis, bestand, bestellt, kategorie, textg, textk, mwst, ukategorie, bild) FROM stdin;
1	1212	11110	111110	111	11	0	0	0	19	0	0
3	311	3000	5798	1	10	1	super tolles buch	post	19	5	0
4	5000112547726	1000	2220	2	2	2	0	Cola	19	0	0
2	9783446210936	1111	9320	23	44	4	0	unix Buch	19	44	0
.........................

Das Log Fenster:

FEHLER:  Syntaxfehler bei „1“
LINE 647: 1 1212 11110 111110 111 11 0 0 0 19 0 0
          ^
********** Fehler **********

FEHLER: Syntaxfehler bei „1“
SQL Status:42601
Zeichen:14467

Beim erstellen von den Tabellen ist pgadmin zufrieden, bei dem ersten Datensatz für die erste Tabelle kommt der erste Fehler.

Das, was pg_dump ohne Option -Fc ausgibt kannst Du direkt via psql ausführen, also z.B. psql < dein_dump. Laß (zumindest für sowas) PGAdmin einfach weg.

C:\Program Files\PostgreSQL\9.4\bin>psql Felkassc d.dmp
psql: FATAL:  Rolle "d.dmp" existiert nicht

C:\Program Files\PostgreSQL\9.4\bin>

Manchmal sind es die kleinen oder ganz kleinen Dinge, die wichtig sind. Oder der Kleiner-als - Operator.

C:\Program Files\PostgreSQL\9.4\bin>psql Felkassc < d.dmp
psql: FATAL:  Rolle "felkas" existiert nicht

C:\Program Files\PostgreSQL\9.4\bin>

ahhhh…


Du wanderst mit der DB von Ubuntu auf Windows. Du mußt wissen: pg_dump sichert NICHT die globalen Objekte - wie z.B. Nutzer. Dieses Fettnäpfchen wird immer wieder gern genommen. Die User kannst Du via pg_dumpall -g sichern.

Du hast im ersten Post auch die DB DATABASEA gesichert, in dump.sql jetzt geht es um Felkassc, aus der Datei d.dmp. Aufgrund hoher Luftfeuchte ist meine Glaskugel leider grad arg beschlagen …

Ubuntu backup:
postgres@tomycat:/home/tomycat$ pg_dumpall > /tmp/all.sql
postgres@tomycat:/home/tomycat$ pg_dumpall -g > /tmp/allb.sql


Windows restore:

C:\Program Files\PostgreSQL\9.4\bin>pg_restore --dbname=Felkassc all.sql
pg_restore: [Archivierer] Eingabedatei scheint kein gültiges Archiv zu sein

C:\Program Files\PostgreSQL\9.4\bin>pg_restore --dbname=Felkassc allb.sql
pg_restore: [Archivierer] Eingabedatei scheint kein gültiges Archiv zu sein

C:\Program Files\PostgreSQL\9.4\bin>

…kurz vor der verzweiflung !!!
Jetzt die Lösung:
C:\Program Files\PostgreSQL\9.4\bin>psql -U postgres Felkassc < all.sql

Ich habe den Freuenstanz kurz danach neu erfunden :slight_smile:

ok, danke.
Ich bekomme es irgendwie nicht hin, was muss ich ändern, dass ich nur eine Datenbank sichere?
pg_dumpall > /tmp/all.sql

pg_dumpall macht das, was der Name sagt. Fangfrage: was macht pg_dump ?

ahhhh :slight_smile:
Gegenfrage, welche Programm brauche ich, wenn ich von ubuntu auf windows aufziehen, das NUR eine Datenbank sichert. :slight_smile:

okokokok, Plan B:
Ich editiere das SQL Backup so dass ich NUR eine DB habe, Holzweg?

pg_dump sowie pg_dumpall für die globalen objekte (User, tablespaces, …)