[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