Postgresql Remote Backup

pgpool
previamente debe habilitarse una llave rsa en el ssh para indicar q la maquina q se conectara es "segura", las medidas de seguridad corren por parte el usuario

#!/bin/bash
# 2010 (c) deshn, kseltar
# rdump postgres : a remote access postgresql dump backup
 
# This software is under GPLv3 or newer
 
gdate=`eval date +%Y%m%d_%H%M%S`;
ussh="/usr/bin/ssh";
updump="/usr/bin/pg_dump";
 
## srv[/id/]="ipserv;portserv;db1;db2...";
 
srvs["0"]="192.168.16.110;16022;postgres";
srvs["1"]="192.168.16.120;16022;posgres;moz";
srvs["2"]="192.168.16.10;16022;pstgres;mz;kiol";
 
srvsc="0";
srvst=${#srvs[@]};
 
while [ "$srvsc" -lt "$srvst" ]; do
  dbs=(${srvs[$srvsc]//;/ });
  dbsc="2";
  dbst=${#dbs[@]};
  srvip=${dbs[0]};
  srvpt=${dbs[1]};
 
  while [ "$dbsc" -lt "$dbst" ]; do
    pdb=${dbs[$dbsc]};
    $ussh" "$srvip" -p "$srvpt" \"$pdump $pdb\" > "$pdb"_"$srvip"-"$gdate".backup";
    dbsc=`expr $dbsc + 1`;
  done
  srvsc=`expr $srvsc + 1`;
done
 
#/usr/bin/ssh 192.168.16.120 -p 16022 "/usr/bin/pg_dump postgres" > file.sql
[[Categoría:Administración de Servidores]] [[Categoría:Linux]] [[Categoría:postgres]]
 
 #!/bin/bash
 ######## Bash script para hacer mantenimiento y backup de bases de datos especificas ########
 
 dbcxn="-h localhost -p 5432 -U postgres";    # Datos de conexion
 
 rtdir="/var/lib/pgsql/backups";        # Directorio de backups
 
 # Base de datos a resguardar (nombres_de_dbs_en_ascii_sin_espacios separados_por_espacios)
 #dblst=( ARANCELDB100 SICADB100 actividades_production sistemas_mec_demo sistemas_mec_development sistemas_mec_production );
 dblst=( template1 );
 
 # Directorio de backup
 dirdt=`eval date +%Y%m%d`;             # Fecha para el directorio
 bkdir=$rtdir"/backup-"$dirdt;            # Direccion absoluta directorio
 if [ ! -d $bkdir ]; then
   echo "Creando directorio: "$bkdir" ";
   /bin/mkdir $bkdir
 fi
 
 # Boocle para vacum, reparacion, y backup
 dbsc=0;
 dbst=${#dblst[@]};
 while [ "$dbsc" -lt "$dbst" ]; do
   dbsp=${dblst[$dbsc]};
   dbspf=""$bkdir"/"$dbsp"";            # Prefijo (dir+nom+fecha) nombre de archivo
   echo "";
   echo "######################################################";
   echo "Procesando base de datos '"$dbsp"'";
 
   echo "  * Realizando reindexado de: '"$dbsp"'";
   ridt=`eval date +%Y%m%d_%H%M%S`;
   /usr/bin/reindexdb $dbcxn -d $dbsp -e > $dbspf"-"$ridt"-reindexdb.log" 2>&1
 
   echo "  * Realizando vacuum de: '"$dbsp"'";
   vadt=`eval date +%Y%m%d_%H%M%S`;
   /usr/bin/vacuumdb $dbcxn -f -v -d $dbsp > $dbspf"-"$vadt"-vacuumdb.log" 2>&1
 
   echo "  * Realizando copia de seguridad de: '"$dbsp"'";
   bkdt=`eval date +%Y%m%d_%H%M%S`;
   /usr/bin/pg_dump -i $dbcxn -F c -b -v -f $dbspf"-"$bkdt".backup" $dbsp > $dbspf"-"$bkdt"-backup.log" 2>&1
 
   echo "######################################################";
   echo "";
 
   dbsc=`expr $dbsc + 1`;
 done
 exit 0;
 
== ==
OBS: para evitar que el postgresql pida contraseña debe modificarde se esta manera el /<path>/pg_hba.conf
 local   all         all                               ident
 # IPv4 local connections:
 host    all         all         127.0.0.1/32          trust
 
== ==
 
Para evitar desactivar la solicitud de contraseña se puede usar un "export" que almacene la cotnraseña de la siguiente forma:  
 
export PGPASSWORD='MI_PASSWD'
 
Este puede ubicarse para mejor organización después de la línea rtdir

 #!/bin/bash
 # script para migrar datos de una base de datos mysql a otra postgresql
 # apoyandose en una herramienta de datamining pentaho-spoon que corre sobre java
 # notese que la tabla de origen es una vista, y la destino ya esta creada
 
 /opt/migradb/data-integration/pan.sh /file:/opt/migradb/migracion.ktr /level:Basic
 
 dbcxn="-h localhost -p 5432 -U user";    # Datos de conexion
 dbsp="database";
 
 /usr/bin/psql $dbcxn -d $dbsp --command="select ejecutar_migracion();"
 
 exit 0;
 
* secuencia sql de captura
 
 SELECT * 
 FROM `mec`.`v_migracion` 
 WHERE `fecha` 
 BETWEEN ( CURRENT_TIMESTAMP - INTERVAL '1' HOUR)
 AND ( CURRENT_TIMESTAMP )
 LIMIT 0, 1000
 ;
 
== Referencias ==
 
* http://www.google.com/search?hl=es&q=psql+&aq=f&aqi=&aql=&oq=&gs_rfai=
* http://kettle.pentaho.com
* http://wiki.pentaho.com/display/EAI/Spoon+User+Guide
* http://kettle.pentaho.com/
* http://wiki.pentaho.com/display/EAI/Latest+Pentaho+Data+Integration+%28aka+Kettle%29+Documentation
* http://penyaskitodice.wordpress.com/2008/12/31/installing-sun-java-jdk-in-centos-52/
* http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
* http://ykyuen.wordpress.com/2010/01/29/centos-install-java-sun-jdk/
* http://tldp.org/LDP/abs/html/
Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.