dbTalk Databases Forums  

[BUGS] backup + restore fails

mailing.database.pgsql-bugs mailing.database.pgsql-bugs


Discuss [BUGS] backup + restore fails in the mailing.database.pgsql-bugs forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Schoenen, Holger
 
Posts: n/a

Default [BUGS] backup + restore fails - 09-16-2006 , 07:41 AM






I have installed the new postgresql-8.1.msi on windows XP.=20
All standard as proposed except: encoding UTF8 and locale Germany/german as
a service. (UTF8 seams to be important, the locale not?)

Using pgAdmin-III I have connected and created a new database. Optionally I
can create a table - same result. Analyse: no errors found.

Then: backup compressed and restore using pgAdminIII.
I will get the error: pg_restore: [archiver (db)] could not execute query:
ERROR: invalid byte sequence for encoding "UTF8": 0xe46973
Command was: --
Why that???

In the backup or in the SQL-dump (see below) the are special german
"Umlaute" ("=E4")
-- Started on 2006-09-15 14:56:51 Westeurop=E4ische Normalzeit
This is only comment and I have no influence on it, but possibly the source
of the problem?

If I hit "ok" expecting to close the window the same happens again. I have
clipped the result here:

--- clipp ---
C:\Programme\PostgreSQL\8.1\bin\pg_restore.exe -i -h localhost -p 5432 -U
postgres -d ibv -v "C:\eclispace\ibv\ibv-site\tableN1.backup"
pg_restore: connecting to database for restore
pg_restore: [archiver (db)] Error while INITIALIZING:
pg_restore: [archiver (db)] could not execute query: ERROR: invalid byte
sequence for encoding "UTF8": 0xe46973
Command was: --
-- PostgreSQL database dump
--

-- Started on 2006-09-15 13:16:16 Westeurop=E4ische Normalzeit

SET client_encoding =3D 'UTF8';
pg_restore: creating SCHEMA public
pg_restore: creating COMMENT SCHEMA public
pg_restore: creating PROCEDURAL LANGUAGE plpgsql
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 249; 2612 16386 PROCEDURAL
LANGUAGE plpgsql=20
pg_restore: [archiver (db)] could not execute query: ERROR: language
"plpgsql" already exists
Command was: CREATE PROCEDURAL LANGUAGE plpgsql;
pg_restore: creating TABLE test
pg_restore: [archiver (db)] Error from TOC entry 1183; 1259 16404 TABLE test
postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "test"
already exists
Command was: CREATE TABLE test (
spalte character varying NOT NULL
);
pg_restore: restoring data for table "test"
pg_restore: creating CONSTRAINT test_pkey
pg_restore: [archiver (db)] Error from TOC entry 1506; 2606 16410 CONSTRAINT
test_pkey postgres
pg_restore: [archiver (db)] could not execute query: ERROR: multiple
primary keys for table "test" are not allowed
Command was: ALTER TABLE ONLY test
ADD CONSTRAINT test_pkey PRIMARY KEY (spalte);
pg_restore: setting owner and privileges for SCHEMA public
pg_restore: setting owner and privileges for COMMENT SCHEMA public
pg_restore: setting owner and privileges for ACL public
pg_restore: setting owner and privileges for PROCEDURAL LANGUAGE plpgsql
pg_restore: setting owner and privileges for TABLE test
pg_restore: setting owner and privileges for CONSTRAINT test_pkey
WARNING: errors ignored on restore: 4

Prozess beendet mit Exitcode 1.
C:\Programme\PostgreSQL\8.1\bin\pg_restore.exe -i -h localhost -p 5432 -U
postgres -d ibv -v "C:\eclispace\ibv\ibv-site\tableN1.backup"
pg_restore: connecting to database for restore
pg_restore: [archiver (db)] Error while INITIALIZING:
pg_restore: [archiver (db)] could not execute query: ERROR: invalid byte
sequence for encoding "UTF8": 0xe46973
Command was: --
-- PostgreSQL database dump
--

-- Started on 2006-09-15 13:16:16 Westeurop=E4ische Normalzeit

SET client_encoding =3D 'UTF8';
pg_restore: creating SCHEMA public
pg_restore: creating COMMENT SCHEMA public
pg_restore: creating PROCEDURAL LANGUAGE plpgsql
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 249; 2612 16386 PROCEDURAL
LANGUAGE plpgsql=20
pg_restore: [archiver (db)] could not execute query: ERROR: language
"plpgsql" already exists
Command was: CREATE PROCEDURAL LANGUAGE plpgsql;
pg_restore: creating TABLE test
pg_restore: [archiver (db)] Error from TOC entry 1183; 1259 16404 TABLE test
postgres
pg_restore: [archiver (db)] could not execute query: ERROR: relation "test"
already exists
Command was: CREATE TABLE test (
spalte character varying NOT NULL
);
pg_restore: restoring data for table "test"
pg_restore: creating CONSTRAINT test_pkey
pg_restore: [archiver (db)] Error from TOC entry 1506; 2606 16410 CONSTRAINT
test_pkey postgres
pg_restore: [archiver (db)] could not execute query: ERROR: multiple
primary keys for table "test" are not allowed
Command was: ALTER TABLE ONLY test
ADD CONSTRAINT test_pkey PRIMARY KEY (spalte);
pg_restore: setting owner and privileges for SCHEMA public
pg_restore: setting owner and privileges for COMMENT SCHEMA public
pg_restore: setting owner and privileges for ACL public
pg_restore: setting owner and privileges for PROCEDURAL LANGUAGE plpgsql
pg_restore: setting owner and privileges for TABLE test
pg_restore: setting owner and privileges for CONSTRAINT test_pkey
WARNING: errors ignored on restore: 4

Prozess beendet mit Exitcode 1.
--- clipp end ---

When I delete the table before restoring I get this:
--- clipp ---
C:\Programme\PostgreSQL\8.1\bin\pg_restore.exe -i -h localhost -p 5432 -U
postgres -d ibv -v "C:\eclispace\ibv\ibv-site\tableN1.backup"
pg_restore: connecting to database for restore
pg_restore: [archiver (db)] Error while INITIALIZING:
pg_restore: [archiver (db)] could not execute query: ERROR: invalid byte
sequence for encoding "UTF8": 0xe46973
Command was: --
-- PostgreSQL database dump
--

-- Started on 2006-09-15 13:16:16 Westeurop=E4ische Normalzeit

SET client_encoding =3D 'UTF8';
pg_restore: creating SCHEMA public
pg_restore: creating COMMENT SCHEMA public
pg_restore: creating PROCEDURAL LANGUAGE plpgsql
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 249; 2612 16386 PROCEDURAL
LANGUAGE plpgsql=20
pg_restore: [archiver (db)] could not execute query: ERROR: language
"plpgsql" already exists
Command was: CREATE PROCEDURAL LANGUAGE plpgsql;
pg_restore: creating TABLE test
pg_restore: restoring data for table "test"
pg_restore: creating CONSTRAINT test_pkey
pg_restore: setting owner and privileges for SCHEMA public
pg_restore: setting owner and privileges for COMMENT SCHEMA public
pg_restore: setting owner and privileges for ACL public
pg_restore: setting owner and privileges for PROCEDURAL LANGUAGE plpgsql
pg_restore: setting owner and privileges for TABLE test
pg_restore: setting owner and privileges for CONSTRAINT test_pkey
WARNING: errors ignored on restore: 2

Prozess beendet mit Exitcode 1.
--- clipp end ---

The table "test" is very simple: Only 1 field as primary key!

My active command level codepage: 850, in windows 1252.

The SQL-dump is:
--- clipp ---
--
-- PostgreSQL database dump
--

-- Started on 2006-09-15 14:56:51 Westeurop=E4ische Normalzeit

SET client_encoding =3D 'UTF8';
SET check_function_bodies =3D false;
SET client_min_messages =3D warning;

--
-- TOC entry 1510 (class 0 OID 0)
-- Dependencies: 5
-- Name: SCHEMA public; Type: COMMENT; Schema: -; Owner: postgres
--

COMMENT ON SCHEMA public IS 'Standard public schema';


--
-- TOC entry 249 (class 2612 OID 16386)
-- Name: plpgsql; Type: PROCEDURAL LANGUAGE; Schema: -; Owner:=20
--

CREATE PROCEDURAL LANGUAGE plpgsql;


SET search_path =3D public, pg_catalog;

SET default_tablespace =3D '';

SET default_with_oids =3D false;

--
-- TOC entry 1183 (class 1259 OID 16418)
-- Dependencies: 5
-- Name: test; Type: TABLE; Schema: public; Owner: postgres; Tablespace:=20
--

CREATE TABLE test (
spalte character varying NOT NULL
);


ALTER TABLE public.test OWNER TO postgres;

--
-- TOC entry 1507 (class 0 OID 16418)
-- Dependencies: 1183
-- Data for Name: test; Type: TABLE DATA; Schema: public; Owner: postgres
--

COPY test (spalte) FROM stdin;
\.


--
-- TOC entry 1506 (class 2606 OID 16424)
-- Dependencies: 1183 1183
-- Name: test_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres;
Tablespace:=20
--

ALTER TABLE ONLY test
ADD CONSTRAINT test_pkey PRIMARY KEY (spalte);


--
-- TOC entry 1511 (class 0 OID 0)
-- Dependencies: 5
-- Name: public; Type: ACL; Schema: -; Owner: postgres
--

REVOKE ALL ON SCHEMA public FROM PUBLIC;
REVOKE ALL ON SCHEMA public FROM postgres;
GRANT ALL ON SCHEMA public TO postgres;
GRANT ALL ON SCHEMA public TO PUBLIC;


-- Completed on 2006-09-15 14:56:51 Westeurop=E4ische Normalzeit

--
-- PostgreSQL database dump complete
--

--- clipp end ---

And this is from server log:
--- clipp ---
2006-09-15 14:38:14 LOG: autovacuum: processing database "template1"
2006-09-15 14:39:14 LOG: autovacuum: processing database "postgres"
2006-09-15 14:40:14 LOG: autovacuum: processing database "ibv"
2006-09-15 14:41:14 LOG: autovacuum: processing database "template1"
2006-09-15 14:41:18 ERROR: invalid byte sequence for encoding "UTF8":
0xe46973
2006-09-15 14:41:18 ERROR: language "plpgsql" already exists
2006-09-15 14:41:18 ERROR: relation "test" already exists
2006-09-15 14:41:18 ERROR: multiple primary keys for table "test" are not
allowed
2006-09-15 14:42:18 LOG: autovacuum: processing database "postgres"
2006-09-15 14:43:18 LOG: autovacuum: processing database "ibv"
2006-09-15 14:43:37 ERROR: invalid byte sequence for encoding "UTF8":
0xe46973
2006-09-15 14:43:37 ERROR: language "plpgsql" already exists
2006-09-15 14:43:37 ERROR: relation "test" already exists
2006-09-15 14:43:37 ERROR: multiple primary keys for table "test" are not
allowed
2006-09-15 14:44:37 LOG: autovacuum: processing database "template1"
2006-09-15 14:45:26 ERROR: invalid byte sequence for encoding "UTF8":
0xe46973
2006-09-15 14:45:26 ERROR: language "plpgsql" already exists
2006-09-15 14:45:27 NOTICE: ALTER TABLE / ADD PRIMARY KEY will create
implicit index "test_pkey" for table "test"
2006-09-15 14:45:56 ERROR: invalid byte sequence for encoding "UTF8":
0xe46973
2006-09-15 14:45:56 LOG: autovacuum: processing database "postgres"
2006-09-15 14:45:56 ERROR: language "plpgsql" already exists
2006-09-15 14:45:56 ERROR: relation "test" already exists
2006-09-15 14:45:56 ERROR: multiple primary keys for table "test" are not
allowed
2006-09-15 14:46:56 LOG: autovacuum: processing database "ibv"
2006-09-15 14:47:47 ERROR: invalid byte sequence for encoding "UTF8":
0xe46973
2006-09-15 14:47:47 ERROR: language "plpgsql" already exists
2006-09-15 14:47:47 NOTICE: ALTER TABLE / ADD PRIMARY KEY will create
implicit index "test_pkey" for table "test"
2006-09-15 14:48:47 LOG: autovacuum: processing database "template1"
2006-09-15 14:49:47 LOG: autovacuum: processing database "postgres"
2006-09-15 14:50:47 LOG: autovacuum: processing database "ibv"
2006-09-15 14:51:47 LOG: autovacuum: processing database "template1"
2006-09-15 14:52:47 LOG: autovacuum: processing database "postgres"
--- clipp end ---

Perhaps it might help you or me or both.

Best regards

Holger Schoenen
E-Mail: Holger.Schoenen (AT) sds-bs (DOT) de



---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply With Quote
  #2  
Old   
Andreas Seltenreich
 
Posts: n/a

Default Re: [BUGS] backup + restore fails - 10-20-2006 , 02:35 PM






Holger Schoenen writes:

Quote:
ERROR: invalid byte sequence for encoding "UTF8": 0xe46973
Command was: --
[...]
-- Started on 2006-09-15 14:56:51 Westeuropäische Normalzeit
The same problem was recently reported on the pgsql-de-allgemein list.

Would just avoiding %Z in Win32's strftime be an acceptable solution?
elog.c is already doing this, however because of the length of the
zone names, not the localization problem. The attached patch is
completely untested because I don't have access to a win32 box.

regards,
andreas

Index: src/bin/pg_dump/pg_backup_archiver.c
================================================== =================
RCS file: /projects/cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.c,v
retrieving revision 1.137
diff -c -r1.137 pg_backup_archiver.c
*** src/bin/pg_dump/pg_backup_archiver.c 14 Oct 2006 23:07:22 -0000 1.137
--- src/bin/pg_dump/pg_backup_archiver.c 20 Oct 2006 18:59:11 -0000
***************
*** 2780,2785 ****
{
char buf[256];

! if (strftime(buf, 256, "%Y-%m-%d %H:%M:%S %Z", localtime(&tim)) != 0)
ahprintf(AH, "-- %s %s\n\n", msg, buf);
}
--- 2780,2793 ----
{
char buf[256];

! if (strftime(buf, 256,
! /* Win32 timezone names are long and localized and
! * can interfere with utf-8 dumps */
! #ifndef WIN32
! "%Y-%m-%d %H:%M:%S %Z",
! #else
! "%Y-%m-%d %H:%M:%S",
! #endif
! localtime(&tim)) != 0)
ahprintf(AH, "-- %s %s\n\n", msg, buf);
}
Index: src/bin/pg_dump/pg_dumpall.c
================================================== =================
RCS file: /projects/cvsroot/pgsql/src/bin/pg_dump/pg_dumpall.c,v
retrieving revision 1.84
diff -c -r1.84 pg_dumpall.c
*** src/bin/pg_dump/pg_dumpall.c 7 Oct 2006 20:59:05 -0000 1.84
--- src/bin/pg_dump/pg_dumpall.c 20 Oct 2006 18:59:12 -0000
***************
*** 1320,1325 ****
char buf[256];
time_t now = time(NULL);

! if (strftime(buf, 256, "%Y-%m-%d %H:%M:%S %Z", localtime(&now)) != 0)
printf("-- %s %s\n\n", msg, buf);
}
--- 1320,1333 ----
char buf[256];
time_t now = time(NULL);

! if (strftime(buf, 256,
! /* Win32 timezone names are long and localized and
! * can interfere with utf-8 dumps */
! #ifndef WIN32
! "%Y-%m-%d %H:%M:%S %Z",
! #else
! "%Y-%m-%d %H:%M:%S",
! #endif
! localtime(&now)) != 0)
printf("-- %s %s\n\n", msg, buf);
}

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend


Reply With Quote
  #3  
Old   
Tom Lane
 
Posts: n/a

Default Re: [BUGS] backup + restore fails - 11-21-2006 , 04:22 PM



Andreas Seltenreich <andreas+pg (AT) gate450 (DOT) dyndns.org> writes:
Quote:
Would just avoiding %Z in Win32's strftime be an acceptable solution?
elog.c is already doing this, however because of the length of the
zone names, not the localization problem. The attached patch is
completely untested because I don't have access to a win32 box.
Done, thanks.

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster


Reply With Quote
  #4  
Old   
Bruce Momjian
 
Posts: n/a

Default Re: [BUGS] backup + restore fails - 11-21-2006 , 07:20 PM




This will be fixed in 8.2 by suppressing %Z on Windows.

---------------------------------------------------------------------------

Andreas Seltenreich wrote:
Quote:
Holger Schoenen writes:

ERROR: invalid byte sequence for encoding "UTF8": 0xe46973
Command was: --
[...]
-- Started on 2006-09-15 14:56:51 Westeurop?ische Normalzeit

The same problem was recently reported on the pgsql-de-allgemein list.

Would just avoiding %Z in Win32's strftime be an acceptable solution?
elog.c is already doing this, however because of the length of the
zone names, not the localization problem. The attached patch is
completely untested because I don't have access to a win32 box.

regards,
andreas

Index: src/bin/pg_dump/pg_backup_archiver.c
================================================== =================
RCS file: /projects/cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.c,v
retrieving revision 1.137
diff -c -r1.137 pg_backup_archiver.c
*** src/bin/pg_dump/pg_backup_archiver.c 14 Oct 2006 23:07:22 -0000 1.137
--- src/bin/pg_dump/pg_backup_archiver.c 20 Oct 2006 18:59:11 -0000
***************
*** 2780,2785 ****
{
char buf[256];

! if (strftime(buf, 256, "%Y-%m-%d %H:%M:%S %Z", localtime(&tim)) != 0)
ahprintf(AH, "-- %s %s\n\n", msg, buf);
}
--- 2780,2793 ----
{
char buf[256];

! if (strftime(buf, 256,
! /* Win32 timezone names are long and localized and
! * can interfere with utf-8 dumps */
! #ifndef WIN32
! "%Y-%m-%d %H:%M:%S %Z",
! #else
! "%Y-%m-%d %H:%M:%S",
! #endif
! localtime(&tim)) != 0)
ahprintf(AH, "-- %s %s\n\n", msg, buf);
}
Index: src/bin/pg_dump/pg_dumpall.c
================================================== =================
RCS file: /projects/cvsroot/pgsql/src/bin/pg_dump/pg_dumpall.c,v
retrieving revision 1.84
diff -c -r1.84 pg_dumpall.c
*** src/bin/pg_dump/pg_dumpall.c 7 Oct 2006 20:59:05 -0000 1.84
--- src/bin/pg_dump/pg_dumpall.c 20 Oct 2006 18:59:12 -0000
***************
*** 1320,1325 ****
char buf[256];
time_t now = time(NULL);

! if (strftime(buf, 256, "%Y-%m-%d %H:%M:%S %Z", localtime(&now)) != 0)
printf("-- %s %s\n\n", msg, buf);
}
--- 1320,1333 ----
char buf[256];
time_t now = time(NULL);

! if (strftime(buf, 256,
! /* Win32 timezone names are long and localized and
! * can interfere with utf-8 dumps */
! #ifndef WIN32
! "%Y-%m-%d %H:%M:%S %Z",
! #else
! "%Y-%m-%d %H:%M:%S",
! #endif
! localtime(&now)) != 0)
printf("-- %s %s\n\n", msg, buf);
}

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend
--
Bruce Momjian bruce (AT) momjian (DOT) us
EnterpriseDB http://www.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo (AT) postgresql (DOT) org so that your
message can get through to the mailing list cleanly


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.