[pgsql-ayuda] Respaldo de Tablas
Jesus Aneiros
aneiros en jagua.cfg.sld.cu
Jue Ago 24 22:06:17 CDT 2000
Quizas lo que te adjunto te sirva.
--
Jesus Aneiros Sosa
mailto:aneiros en jagua.cfg.sld.cu
http://jagua.cfg.sld.cu/~aneiros
On Thu, 24 Aug 2000, Roberto Leal Guerra wrote:
>
> Que tal amigos, tengo una aplicación corriendo con apache + php +
> postgresql bajo linux, y ya es justo que programe respaldo de la base de
> datos, como le puedo hacer para que todos los dias me genere un respaldo y
> me lo guarde en un directorio predefinido por mi.
>
> Se que tengo que usar el cron y el pg_dump, pero no se como.
>
> Gracias por su tiempo
>
> Saludos
>
> Ing. Roberto Leal Guerra
> Tel. (8) 345-5100 ext. 2972
> email: rleal en elnorte.com.mx
>
> --------- Pie de mensaje -------------------------------------------
> Archivo historico: http://tlali.iztacala.unam.mx/maillist/pgsql-ayuda
> Cancelar inscripcion:
> mail to: majordomo en tlali.iztacala.unam.mx
> text : unsubscribe pgsql-ayuda
>
------------ próxima parte ------------
#!/usr/bin/perl
# Programa para salvar todas las bases de datos PostgreSQL de un usario
# Creado por Jesus Aneiros aneiros en jagua.cfg.sld.cu
# 2000.07.25
#
# Es obligatorio definir la variable $user (usuario propietario de las BD)
# y la variable $pathbase (directorio donde se salvaran)
# El directorio donde apunte pathbase debe existir y tener permisos de escritura
use DBI;
use strict;
# Nombre del usuario al cual se le salvaran las BD
my $user = 'aneiros';
# Directorio donde se salvaran las BD
my $pathbase = '/home/aneiros/salva_bd';
# Conectarse a postgreSQL
my $dbh = DBI->connect("dbi:Pg:dbname=$user", "", "") || die DBI::errstr;
# Consulta para obtener las BD de ese usuario
my $query = "SELECT datname FROM pg_database WHERE datdba = (SELECT usesysid FROM pg_user WHERE usename = ?)";
my $sth = $dbh->prepare($query) || die $dbh->errstr;
$sth->execute($user) || die $dbh->errstr;
my $bdname; # Nombre de la base de datos
my $rv = $sth->bind_columns(\$bdname) || die $sth->errstr;
while ( $sth->fetch ) {
print "Salvando $bdname...\n";
system("pg_dump $bdname > $pathbase/$bdname.bak");
}
$sth->finish;
$dbh->disconnect;
Más información sobre la lista de distribución Ayuda