Обсуждение: Regarding pg_dump utility
Hello,
We have to take a backup of database and we know the pg_dump utility of postgresql.
But may I know, is there any API for this pg_dump utility so that we can call it from the C program? Or only script support is possible for this.
I think script support is bit risky because if anything goes wrong while taking backup using pg_dump then user will not understand the problem of falling
If only script support is possible then what should we prefer perl or shell?
Please provide me some help regarding this
Thanks,
Soni
"soni de" <soni.de@gmail.com> writes: > We have to take a backup of database and we know the pg_dump utility of > postgresql. > But may I know, is there any API for this pg_dump utility so that we can > call it from the C program? Or only script support is possible for this. There's always system(3) .... regards, tom lane
On Thu, Jun 08, 2006 at 11:39:48AM +0530, soni de wrote: > We have to take a backup of database and we know the pg_dump utility of > postgresql. > > But may I know, is there any API for this pg_dump utility so that we can > call it from the C program? Or only script support is possible for this. It probably wouldn't be terribly difficult to put the guts of pg_dump into a library that you could interface with via C. I'm not sure if the community would accept such a patch; though, I seem to recall other people asking for this on occasion. > I think script support is bit risky because if anything goes wrong while > taking backup using pg_dump then user will not understand the problem of > falling > > If only script support is possible then what should we prefer perl or shell? Depends on what you're trying to accomplish. Perl is a much more capable language than shell, obviously. -- Jim C. Nasby, Sr. Engineering Consultant jnasby@pervasive.com Pervasive Software http://pervasive.com work: 512-231-6117 vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461
Tom Lane wrote: > "soni de" <soni.de@gmail.com> writes: >> We have to take a backup of database and we know the pg_dump utility of >> postgresql. > >> But may I know, is there any API for this pg_dump utility so that we can >> call it from the C program? Or only script support is possible for this. > > There's always system(3) .... fork(), exec()... -- Until later, Geoffrey Any society that would give up a little liberty to gain a little security will deserve neither and lose both. - Benjamin Franklin
Jim C. Nasby wrote: > On Thu, Jun 08, 2006 at 11:39:48AM +0530, soni de wrote: > > We have to take a backup of database and we know the pg_dump utility of > > postgresql. > > > > But may I know, is there any API for this pg_dump utility so that we can > > call it from the C program? Or only script support is possible for this. > > It probably wouldn't be terribly difficult to put the guts of pg_dump > into a library that you could interface with via C. I'm not sure if the > community would accept such a patch; though, I seem to recall other > people asking for this on occasion. Personally I think it would be neat. For example the admin-tool guys would be able to get a dump without invoking an external program. Second it would really be independent of core releases (other than being tied to the output format.) pg_dump would be just a simple caller of such a library, and anyone else would be able to get dumps easily, in whatever format. -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support
Alvaro Herrera wrote: > > > Personally I think it would be neat. For example the admin-tool guys > would be able to get a dump without invoking an external program. > Second it would really be independent of core releases (other than being > tied to the output format.) pg_dump would be just a simple caller of > such a library, and anyone else would be able to get dumps easily, in > whatever format. pgAdmin currently invokes pg_dump/restore externally with pipes attached to stdin/out/err, but a library implementation would solve some headaches (esp. concerning portability) managing background execution/GUI updates/process control. I'd like a libpgdumprestore library, with pg_dump/pg_restore being lean wrapper programs. Regards, Andreas
On Thu, Jun 08, 2006 at 06:33:28PM +0200, Andreas Pflug wrote: > Alvaro Herrera wrote: > > > > > > >Personally I think it would be neat. For example the admin-tool guys > >would be able to get a dump without invoking an external program. > >Second it would really be independent of core releases (other than being > >tied to the output format.) pg_dump would be just a simple caller of > >such a library, and anyone else would be able to get dumps easily, in > >whatever format. > > pgAdmin currently invokes pg_dump/restore externally with pipes attached > to stdin/out/err, but a library implementation would solve some > headaches (esp. concerning portability) managing background > execution/GUI updates/process control. I'd like a libpgdumprestore > library, with pg_dump/pg_restore being lean wrapper programs. Would a pg_dumpall library also make sense? -- Jim C. Nasby, Sr. Engineering Consultant jnasby@pervasive.com Pervasive Software http://pervasive.com work: 512-231-6117 vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461
Jim C. Nasby wrote: > On Thu, Jun 08, 2006 at 06:33:28PM +0200, Andreas Pflug wrote: > > Alvaro Herrera wrote: > > > > > > > > > > >Personally I think it would be neat. For example the admin-tool guys > > >would be able to get a dump without invoking an external program. > > >Second it would really be independent of core releases (other than being > > >tied to the output format.) pg_dump would be just a simple caller of > > >such a library, and anyone else would be able to get dumps easily, in > > >whatever format. > > > > pgAdmin currently invokes pg_dump/restore externally with pipes attached > > to stdin/out/err, but a library implementation would solve some > > headaches (esp. concerning portability) managing background > > execution/GUI updates/process control. I'd like a libpgdumprestore > > library, with pg_dump/pg_restore being lean wrapper programs. > > Would a pg_dumpall library also make sense? One would think that libpgdump should take care of this as well ... -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support
> It probably wouldn't be terribly difficult to put the guts of pg_dump > into a library that you could interface with via C. I'm not sure if the > community would accept such a patch; though, I seem to recall other > people asking for this on occasion. > >> I think script support is bit risky because if anything goes wrong while >> taking backup using pg_dump then user will not understand the problem of >> falling >> >> If only script support is possible then what should we prefer perl or shell? > > Depends on what you're trying to accomplish. Perl is a much more capable > language than shell, obviously. In phpPgAdmin we just execute pg_dump as a child process and capture its output....
> Personally I think it would be neat. For example the admin-tool guys > would be able to get a dump without invoking an external program. > Second it would really be independent of core releases (other than being > tied to the output format.) pg_dump would be just a simple caller of > such a library, and anyone else would be able to get dumps easily, in > whatever format. What about fully completing our SQL API for dumping? ie. We finish adding pg_get_blahdef() for all objects, add a function that returns the proper ordering of all objects in the database, and then somehow drop out a dump with a single JOIN :D Chris
I think that having an API for backup functionality would definitely be useful.
Just my 2 cents...
Paul
On 6/8/06, Christopher Kings-Lynne <chris.kings-lynne@calorieking.com> wrote:
> Personally I think it would be neat. For example the admin-tool guys
> would be able to get a dump without invoking an external program.
> Second it would really be independent of core releases (other than being
> tied to the output format.) pg_dump would be just a simple caller of
> such a library, and anyone else would be able to get dumps easily, in
> whatever format.
What about fully completing our SQL API for dumping?
ie. We finish adding pg_get_blahdef() for all objects, add a function
that returns the proper ordering of all objects in the database, and
then somehow drop out a dump with a single JOIN :D
Chris
---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend