Dump all in several files

Started by Frederic Massotabout 21 years ago7 messagesgeneral
Jump to latest
#1Frederic Massot
frederic@juliana-multimedia.com

Hi,

On the PostgreSQL 6.5 server I use this shell script (see below) for the
backup all of the database in several files, one file per database.

With version 7.3 of PostgreSQL (and the following) the data are not
recorded any more in a repertory with the name of the database, but with
the OID of the basebase.

Do you know how I can adapt this script?

If a developer of pg_dumpall reads this post, is it possible to add to
the command pg_dumpall an option to record one database per file?

Regards.

#! /bin/bash
#
for p in $(find /var/lib/postgres/data/base/ -type d -print -mindepth 1
-maxdepth 1 )
do
base=`basename "$p"`
pg_dump -d -f /var/backup/postgresql/dump_$base $base
done

--
==============================================
| FREDERIC MASSOT |
| http://www.juliana-multimedia.com |
| mailto:frederic@juliana-multimedia.com |
===========================Debian=GNU/Linux===

#2Lonni J Friedman
netllama@gmail.com
In reply to: Frederic Massot (#1)
Re: Dump all in several files

On Tue, 15 Mar 2005 16:43:01 +0100, Frederic Massot
<frederic@juliana-multimedia.com> wrote:

Hi,

On the PostgreSQL 6.5 server I use this shell script (see below) for the
backup all of the database in several files, one file per database.

With version 7.3 of PostgreSQL (and the following) the data are not
recorded any more in a repertory with the name of the database, but with
the OID of the basebase.

Do you know how I can adapt this script?

If a developer of pg_dumpall reads this post, is it possible to add to
the command pg_dumpall an option to record one database per file?

Regards.

#! /bin/bash
#
for p in $(find /var/lib/postgres/data/base/ -type d -print -mindepth 1
-maxdepth 1 )
do
base=`basename "$p"`
pg_dump -d -f /var/backup/postgresql/dump_$base $base
done

Maybe i'm just not following you, but why can't you just do:
pg_dump $DBNAME >$DB_NAME

where $DB_NAME is the name of each database on the box?

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
L. Friedman netllama@gmail.com
LlamaLand http://netllama.linux-sxs.org

#3Frederic Massot
frederic@juliana-multimedia.com
In reply to: Lonni J Friedman (#2)
Re: Dump all in several files

Lonni J Friedman wrote:

On Tue, 15 Mar 2005 16:43:01 +0100, Frederic Massot
<frederic@juliana-multimedia.com> wrote:

Hi,

On the PostgreSQL 6.5 server I use this shell script (see below) for the
backup all of the database in several files, one file per database.

[...]

Maybe i'm just not following you, but why can't you just do:
pg_dump $DBNAME >$DB_NAME

where $DB_NAME is the name of each database on the box?

This script is called in a crontab the every day at 6 o'clock in the
morning.

--
==============================================
| FREDERIC MASSOT |
| http://www.juliana-multimedia.com |
| mailto:frederic@juliana-multimedia.com |
===========================Debian=GNU/Linux===

#4javier wilson
javier.wilson@gmail.com
In reply to: Frederic Massot (#3)
Re: Dump all in several files

On Tue, 15 Mar 2005 17:01:39 +0100, Frederic Massot
<frederic@juliana-multimedia.com> wrote:

Lonni J Friedman wrote:

On Tue, 15 Mar 2005 16:43:01 +0100, Frederic Massot
<frederic@juliana-multimedia.com> wrote:

Hi,

On the PostgreSQL 6.5 server I use this shell script (see below) for the
backup all of the database in several files, one file per database.

[...]

Maybe i'm just not following you, but why can't you just do:
pg_dump $DBNAME >$DB_NAME

where $DB_NAME is the name of each database on the box?

This script is called in a crontab the every day at 6 o'clock in the
morning.

i have a /etc/backup/data.pgsql where i list all databases
i want to dump, then a script in /etc/cron.daily reads this file
and call pg_dump:
pg_dump -U postgres $1>$1.dump.sql

javier

#5Alvaro Herrera
alvherre@dcc.uchile.cl
In reply to: Frederic Massot (#3)
Re: Dump all in several files

On Tue, Mar 15, 2005 at 05:01:39PM +0100, Frederic Massot wrote:

Lonni J Friedman wrote:

On Tue, 15 Mar 2005 16:43:01 +0100, Frederic Massot
<frederic@juliana-multimedia.com> wrote:

Hi,

On the PostgreSQL 6.5 server I use this shell script (see below) for the
backup all of the database in several files, one file per database.

Maybe i'm just not following you, but why can't you just do:
pg_dump $DBNAME >$DB_NAME

where $DB_NAME is the name of each database on the box?

This script is called in a crontab the every day at 6 o'clock in the
morning.

You can obtain the list of databases for scripting with

psql -tlA | cut -d\| -f1

--
Alvaro Herrera (<alvherre[@]dcc.uchile.cl>)
"Si quieres ser creativo, aprende el arte de perder el tiempo"

#6javier wilson
javier.wilson@gmail.com
In reply to: Alvaro Herrera (#5)
Re: Dump all in several files

On Tue, 15 Mar 2005 12:15:39 -0400, Alvaro Herrera
<alvherre@dcc.uchile.cl> wrote:

On Tue, Mar 15, 2005 at 05:01:39PM +0100, Frederic Massot wrote:

Lonni J Friedman wrote:

On Tue, 15 Mar 2005 16:43:01 +0100, Frederic Massot
<frederic@juliana-multimedia.com> wrote:

Hi,

On the PostgreSQL 6.5 server I use this shell script (see below) for the
backup all of the database in several files, one file per database.

Maybe i'm just not following you, but why can't you just do:
pg_dump $DBNAME >$DB_NAME

where $DB_NAME is the name of each database on the box?

This script is called in a crontab the every day at 6 o'clock in the
morning.

You can obtain the list of databases for scripting with

psql -tlA | cut -d\| -f1

i didn't know that. very nice. try:

psql -Upostgres -tlA |cut -d\| -f1|xargs -i pg_dump -Upostgres -f
'{}'.dump.sql '{}'

javier

#7Frederic Massot
frederic@juliana-multimedia.com
In reply to: Alvaro Herrera (#5)
Re: Dump all in several files

Alvaro Herrera wrote:

On Tue, Mar 15, 2005 at 05:01:39PM +0100, Frederic Massot wrote:

[...]

You can obtain the list of databases for scripting with

psql -tlA | cut -d\| -f1

Great !!! :o)

Thank you.
--
==============================================
| FREDERIC MASSOT |
| http://www.juliana-multimedia.com |
| mailto:frederic@juliana-multimedia.com |
===========================Debian=GNU/Linux===