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/
page revision: 7, last edited: 15 Jun 2011 21:15





