Thread: Invalid UTF8 & Large Objects
Hi, We recently migrated from 7.4.7 to 8.1.3. I did a pg_dumpall & then pg_restore and it went fine. Today I realized that the backups I am creating can't be used to reload my database. I use pg_dump -Fc to dump the database as I have Large Objects in the database. (I used to use pg_dump -b -Fc in 7.4.7 seems like the -b option is taken out in 8.1.3 so I assume they are included automatically) I get the error "ERROR: invalid UTF-8 byte sequence detected........." Did research online and fund out that it is because of invalid characters in the database so started trying out the solution mentioned in the posts that is by using iconv. But then my problem is I have to do a text dump to use iconv in which case I will loose the large objects. I tried using the iconv on the dump generated using the -Fc option and then when I try to restore that I am getting the following error pg_restore: [archiver] entry ID 0 out of range -- perhaps a corrupt TOC Any help will be appreciated. Thanks, -Prasanth.
On Apr 25, 2006, at 4:17 PM, Prasanth wrote: > But then my problem is I have to do a text dump to use iconv in which > case I will loose the large objects. > I tried using the iconv on the dump generated using the -Fc option and > then when I try to restore that I am getting the following error > pg_restore: [archiver] entry ID 0 out of range -- perhaps a corrupt > TOC -Fc produces a binary format, so you can't use iconv on it. One option might be to write a script to export your large objects, dump text only and fix with iconv, then reload the database and import the large objects. John DeSoi, Ph.D. http://pgedit.com/ Power Tools for PostgreSQL
I did the following and it worked. 1. Did a text pg_dump and used iconv to remove invalid characters and then loaded this into the database. 2. Took a dump created using -Fc and restored just the pg_largeobject table. Every thing seems to be good. I don't see the -b option in pg_dump in 8.1.3 so am I right in saying that large objects are automatically added to the dump? Thanks, -Prasanth. John DeSoi wrote: > > On Apr 25, 2006, at 4:17 PM, Prasanth wrote: > >> But then my problem is I have to do a text dump to use iconv in which >> case I will loose the large objects. >> I tried using the iconv on the dump generated using the -Fc option and >> then when I try to restore that I am getting the following error >> pg_restore: [archiver] entry ID 0 out of range -- perhaps a corrupt TOC > > -Fc produces a binary format, so you can't use iconv on it. One option > might be to write a script to export your large objects, dump text only > and fix with iconv, then reload the database and import the large objects. > > > > John DeSoi, Ph.D. > http://pgedit.com/ > Power Tools for PostgreSQL > > > ---------------------------(end of broadcast)--------------------------- > TIP 5: don't forget to increase your free space map settings