Thread: Announce: Testers needed for revised pg_dump/pg_restore

Announce: Testers needed for revised pg_dump/pg_restore

From
Philip Warner
Date:
If anybody out there is comfortable with using make, has the PG sources on
their machine, and is interested in testing a new version of pg_dump,
please let me know.

Details of the revised pg_dump, and new pg_restore are at the end of this
message.

Thanks,

Philip Warner.

-------------
The basic idea is to use pg_dump to dump an *entire* database, and then use
pg_restore to choose what is restored.

The salient features are as follows:

- pg_dump still used to dump database; all output is via new interface
(virtually all of the pg_dump code is changed, but not the logic). The
changes are relatively minor, all the same.

- the '-c' option is not used in pg-dump: it now dumps the commands to
delete the schema, and it is up to the user of pg_restore to decide if they
are output.

- the default output file format is stll text, but a new custom format
with compressed sections (the data dumps) is available via the '-Fc' flag.
It is NOT a text file.

- pg_restore reads the backup file and, depending on the options chosen,
produces a script (to stdout) that can be sent to psql.

- by default pg_restore outputs the schema/data in the order it was sent
from pg_dump, but the --oid flag will send the output in order of
increasing OID, and the --rearrange flag will put all 'non-parental' (??)
items at the end, after the data. (eg. indexes, acls, triggers etc).
Needless to say that the best results com from using both of these options.

- If the -c (clear) option is chosen in pg_restore, it also dumps the
'drop' commands in reverse order at the start of the script. This *should*
make it more reliable than dumping them when the item is defined. It also
means that triggers can be dropped.

- The --toc option shows a summary of the restore operation that would be
performed if the --toc were not there.

Please send me an email if you are interested and have the time to test them.

Thanks,

Philip Warner.


----------------------------------------------------------------
Philip Warner                    |     __---_____
Albatross Consulting Pty. Ltd.   |----/       -  \
(A.C.N. 008 659 498)             |          /(@)   ______---_
Tel: (+61) 0500 83 82 81         |                 _________  \
Fax: (+61) 0500 83 82 82         |                 ___________ |
Http://www.rhyme.com.au          |                /           \|
                                 |    --________--
PGP key available upon request,  |  /
and from pgp5.ai.mit.edu:11371   |/

Re: Announce: Testers needed for revised pg_dump/pg_restore

From
Philip Warner
Date:
This is also available via ftp from:

    ftp://ftp.rhyme.com.au/pub/pg_backup_110.tar.gz


----------------------------------------------------------------
Philip Warner                    |     __---_____
Albatross Consulting Pty. Ltd.   |----/       -  \
(A.C.N. 008 659 498)             |          /(@)   ______---_
Tel: (+61) 0500 83 82 81         |                 _________  \
Fax: (+61) 0500 83 82 82         |                 ___________ |
Http://www.rhyme.com.au          |                /           \|
                                 |    --________--
PGP key available upon request,  |  /
and from pgp5.ai.mit.edu:11371   |/

vacuumdb problem

From
Marcin Inkielman
Date:
Hi!
I have a problem with vacuumdb on one of my tables.

(spiral:3)-[~]$vacuumdb -t osoby -v dziekanat
NOTICE:  --Relation osoby--
NOTICE:  Pages 229: Changed 0, reaped 16, Empty 0, New 0; Tup 4427: Vac 5,
Keep/VTL 0/0, Crash 0, UnUsed 70, MinLen 64, MaxLen
616; Re-using: Free/Avail. Space 18176/2288; EndEmpty/Avail. Pages
1/10. CPU 0.02s/0.00u sec.
NOTICE:  Index osoby_Imię_key: Pages 44; Tuples 4427: Deleted 0. CPU
0.01s/0.01u sec.
NOTICE:  Index osoby_pkey: Pages 15; Tuples 4427: Deleted 0. CPU
0.00s/0.00u sec.
NOTICE:  Rel osoby: Pages: 229 --> 228; Tuple(s) moved: 0. CPU 0.01s/0.00u
sec.
NOTICE:  FlushRelationBuffers(osoby, 228): block 223 is referenced
(private 0, global 1)
FATAL 1:  VACUUM (vc_repair_frag): FlushRelationBuffers returned -2
pqReadData() -- backend closed the channel unexpectedly.
    This probably means the backend terminated abnormally
    before or while processing the request.
connection to server was lost
vacuumdb: vacuum failed


this table is referenced in my db by a tree of FOREIGN KEYs.

however my db seems to work and I am able to do pg_dump
Rescently, I dumped and restored it and for a few days I was able to
do vacuumdb. Today, the problem is here again.

any ideas?

thanks for any help.


(I use Postgres ver 7.0.2 on Debian Potato/ dual PII  box)


Re: Announce: Testers needed for revised pg_dump/pg_restore

From
Philip Warner
Date:
It's probably best to look in the directory:

    ftp://ftp.rhyme.com.au/pub/

for the latest version.


----------------------------------------------------------------
Philip Warner                    |     __---_____
Albatross Consulting Pty. Ltd.   |----/       -  \
(A.C.N. 008 659 498)             |          /(@)   ______---_
Tel: (+61) 0500 83 82 81         |                 _________  \
Fax: (+61) 0500 83 82 82         |                 ___________ |
Http://www.rhyme.com.au          |                /           \|
                                 |    --________--
PGP key available upon request,  |  /
and from pgp5.ai.mit.edu:11371   |/

Re: vacuumdb problem

From
Tom Lane
Date:
Marcin Inkielman <marn@wsisiz.edu.pl> writes:
> NOTICE:  FlushRelationBuffers(osoby, 228): block 223 is referenced
> (private 0, global 1)
> FATAL 1:  VACUUM (vc_repair_frag): FlushRelationBuffers returned -2

> this table is referenced in my db by a tree of FOREIGN KEYs.

Hmm, I wonder whether there is a buffer-refcount leak in the foreign
key stuff.

> however my db seems to work and I am able to do pg_dump
> Rescently, I dumped and restored it and for a few days I was able to
> do vacuumdb. Today, the problem is here again.

You will probably find that stopping and restarting the postmaster
will make the problem go away (until it comes back again).  Might
be an acceptable workaround to let you vacuum, until we can find
the bug.

Do you think you can extract a reproducible example?  Short of that,
it'd be helpful to at least see the declarations of "osoby" and all
associated tables.

            regards, tom lane