From: | Giles Lean <giles(at)nemeton(dot)com(dot)au> |
---|---|
To: | Philip Warner <pjw(at)rhyme(dot)com(dot)au> |
Cc: | Zeugswetter Andreas SB <ZeugswetterA(at)wien(dot)spardat(dot)at>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Proposal: More flexible backup/restore via pg_dump |
Date: | 2000-06-26 21:00:41 |
Message-ID: | 1200.962053241@nemeton.com.au |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> I must admit that I've been working on the assumption that people using
> PostgreSQL don't have multi-GB (compressed) database dumps, so that (in
> theory) a restore can be loaded onto disk from tape before being
> used.
Are you are also assuming that a backup fits in a single file,
i.e. that anyone with >2GB of backup has some sort of large file
support?
> Sanity Check: does fseek work on tapes? If not, what is the correct way to
> read a particular block/byte from a file on a tape?
As someone else answered: no. You can't portably assume random access
to tape blocks.
> The output scheme will be encapsulated, and in the initial version will be
> a custom format (since I can't see an API for tar files)
You can use a standard format without there being a standard API.
Using either tar or cpio format as defined for POSIX would allow a lot
of us to understand your on-tape format with a very low burden on you
for documentation. (If you do go this route you might want to think
about cpio format; it is less restrictive about filename length than
tar.)
There is also plenty of code lying around for reading and writing tar
and cpio formats that you could steal^H^H^H^H^H reuse. The BSD pax
code should have a suitable license.
> pg_restore will use the same custom IO routines to allow IO to
> tar/directory/custom files. In the first pass, I will do custom file
> IO.
Presumably you'd expect this file I/O to be through some standard API
that other backends would also use? I'd be interested to see this;
I've got code for an experimental libtar somewhere around here, so I
could offer comments at least.
> BUT AFAIK, fseek does not work on STDOUT, and at the current time pg_backup
> will use fseek.
It depends what fseek is whether it works on standard output or not.
If it's a pipe, no. If it's a file, yes. If it's a tape, no. If
it's a ...
Not using fseek() would be a win if you can see a way to do it.
Regards,
Giles
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2000-06-26 21:34:48 | Re: C exception code |
Previous Message | Mark Hollomon | 2000-06-26 20:22:19 | 'natural join' core dump |