martes, 4 de mayo de 2010

Como sincronizar el contenido de dos directorios en Linux utilizando RSYNC

Cuando creamos una base de datos STANDBY, y lo hacemos con una versión SE ( Standard Edition ) o bien con una EE ( Enterprise Edition ), pero sin utilizar Dataguard, necesitamos enviar los archivos de archivelog, al servidor de contingencia, para que estos puedan ser aplicados en la instancia de la base de datos STANDBY.

Para esto podemos utilizar varios scripts que se pueden encontrar en distinto portales de la red.

Aquí les paso uno más, el cuál utilizando el comando RSYNC de Linux, para sincronizar el contenido de dos puntos de monta y sus respectivos subdirectorios.

Para realizar este ejercicio, es necesario que hubieramos configurado, la posibilidad de realizar comando de forma remota ( remote shell ), sin requerir autentificación, cuando el usuario de sistema operativo sea "oracle".

Existe un post del 23 de junio del año pasado, en donde se explica como hacer esta tarea, aplicada a una instalación para RAC. Es el mismo proceso, lo puedes accesar en este link.

Vamos a crear el script para realizar la sincronización del directorio en donde se almacenan los archivelogs de una base de datos de producción, sin utilizar el área de FlashBack Recovery a un servidor de contingencia.

[oracle@SRV-LAB2-BD02 scripts]$ more sincronizar.sh
USER="oracle"
BACKDIR="/opt/oracle/product/archive/"
SOURCE="SRV-LAB1-BD01"
DEST="SRV-LAB2-BD02"
DESTDIR="/opt/oracle/product/archive/"
OPTS="-vv -u -a --rsh=ssh --exclude-from=$EXCLUDES --stats --progress"
rsync $OPTS $SOURCE:$DESTDIR $BACKDIR
[oracle@SRV-LAB2-BD02 scripts]$

La variables $SOURCE y $DESTDIR, nos permite indicar desde que host a que host, queremos hacer la sincronización.

Una descripción completa de todo lo que podemos hacer con este comando, la puedes tener en el siguiente link: guía rsync

Para nuestro caso hemos escogido las opciones "-v v", para que me despliegue una amplia información de lo que el comando esta haciendo.

La opción "-a" modo de archivo. La opción "-u", que lo que hace es saltar aquellos archivos existentes que considen con nombre y timestamp de creación.

La opcion "-rsh", determina el comando alternativo para realizar la sincronización.  En nuestro caso estamos utilizando "ssh", para conexiones seguras.

El resto del script determina el directorio de origen y el directorio de destino en donde deben ser sincronizados los archivos.

Esta es la salida que presenta la ejecución del comando.  Como pueden observar en el resultado, el comando determina que existen dos archivos en ambos directorios que no requieren procesamiento.  En cambio, encuentra que el archivo "LAB1_1_5501_703509972.arc", hace falta en el directorio destino y lo traslada utilizando el comando ssh al servidor de destino.

[oracle@SRV-LAB2-BD02 scripts]$ ./sincronizar.sh

opening connection using ssh SRV-LAB1-BD01 rsync --server --sender -vvulogDtpr . /opt/oracle/product/archive/
receiving file list ...
[sender] expand file_list to 131072 bytes, did move
5 files to consider

delta transmission enabled
./

LAB1_1_5499_703509972.arc is uptodate
LAB1_1_5500_703509972.arc is uptodate
LAB1_1_5501_703509972.arc
34415616 100% 11.17MB/s 0:00:02 (1, 80.0% of 5)
total: matches=0 tag_hits=0 false_alarms=0 data=34415616
rsync[18533] (receiver) heap statistics:
arena: 135168 (bytes from sbrk)
ordblks: 2 (chunks not in use)
smblks: 2
hblks: 2 (chunks from mmap)
hblkhd: 532480 (bytes from mmap)
allmem: 667648 (bytes from sbrk + mmap)
usmblks: 0
fsmblks: 32
uordblks: 50224 (bytes used)
fordblks: 84944 (bytes free)
keepcost: 84888 (bytes in releasable chunk)

Number of files: 5
Number of files transferred: 1
Total file size: 101027328 bytes
Total transferred file size: 34415616 bytes
Literal data: 34415616 bytes
Matched data: 0 bytes
File list size: 194
Total bytes sent: 36
Total bytes received: 34420189
sent 36 bytes received 34420189 bytes 9834350.00 bytes/sec
total size is 101027328 speedup is 2.94

rsync[18531] (generator) heap statistics:
arena: 135168 (bytes from sbrk)
ordblks: 2 (chunks not in use)
smblks: 1
hblks: 1 (chunks from mmap)
hblkhd: 266240 (bytes from mmap)
allmem: 401408 (bytes from sbrk + mmap)
usmblks: 0
fsmblks: 16
uordblks: 21544 (bytes used)
fordblks: 113624 (bytes free)
keepcost: 113568 (bytes in releasable chunk)

No hay comentarios:

Publicar un comentario

Te agradezco tus comentarios. Te esperamos de vuelta.

Todos los Sábados a las 8:00PM

Optimismo para una vida Mejor

Optimismo para una vida Mejor
Noticias buenas que comentar