La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

PRESIDENCIA DE LA REPÚBLICA DEL ECUADOR POSTGRESQL Y SISTEMAS DE ALTA DISPONIBILIDAD SUBSECRETARÍA DE TECNOLOGÍAS DE LA INFORMACIÓN OCTUBRE 2011 Ing. Marcelo.

Presentaciones similares


Presentación del tema: "PRESIDENCIA DE LA REPÚBLICA DEL ECUADOR POSTGRESQL Y SISTEMAS DE ALTA DISPONIBILIDAD SUBSECRETARÍA DE TECNOLOGÍAS DE LA INFORMACIÓN OCTUBRE 2011 Ing. Marcelo."— Transcripción de la presentación:

1 PRESIDENCIA DE LA REPÚBLICA DEL ECUADOR POSTGRESQL Y SISTEMAS DE ALTA DISPONIBILIDAD SUBSECRETARÍA DE TECNOLOGÍAS DE LA INFORMACIÓN OCTUBRE 2011 Ing. Marcelo Silva

2 CONTENIDO Alta Disponibilidad. Alta Disponibilidad : Comparación de diferentes soluciones. QUIPUX como sistema de Alta Disponibilidad. QUIPUX como sistema de Alta Disponibilidad – Siguiente Paso.

3 ALTA DISPONIBILIDAD Un grupo de computadores independientes que trabajan conjuntamente para incrementar la disponibilidad de diversas aplicaciones y servicios.

4 ALTA DISPONIBILIDAD La alta disponibilidad en definitiva busca contar con un ambiente tolerante a fallos, un sistema capaz de encubrir los fallos que se producen en él para mantener una prestación de servicio continua.

5 ALTA DISPONIBILIDAD : COMPARACIÓN DIFERENTES SOLUCIONES 1.- Disco Compartido.- Una sola copia de la base de datos. Un arreglo de discos compartido por múltiples servidores. Si el servidor principal falla, se puede subir el servidor de respaldo en poco tiempo sin perdida de datos. Una significante limitación es que si el arreglo de disco compartido falla ambos el servidor principal y el de respaldo quedan no funcionales. Este método puede ser usado implementando un servidor GFS, XFS, OFS.

6 ALTA DISPONIBILIDAD : COMPARACIÓN DIFERENTES SOLUCIONES 2.- Replicación del sistema de archivos.- Todos los cambios de un sistema de archivos son replicados a otro sistema de archivos residente en otra computadora. La única restricción de este método es que como el servidor principal y el de respaldo son idénticos si existe corrupción a nivel de datos, ambos ambientes tendrán este inconveniente. DRBD es una popular aplicación para replicación de sistemas de archivos.

7 ALTA DISPONIBILIDAD : COMPARACIÓN DIFERENTES SOLUCIONES 3.- Warm y Hot Standby Usando PITR.- Replicación por medio de los archivos wall. Si el servidor principal falla, el servidor de respaldo contiene la mayoría de los datos del servidor principal y fácilmente puede ser colocado como servidor principal. Este es un método asíncrono y solo puede ser utilizado sobre toda la base de datos. Ejemplo: walmgr (wal manager) skytools.projects.postgresql.org/doc/walmgr.html

8 ALTA DISPONIBILIDAD : COMPARACIÓN DIFERENTES SOLUCIONES 4.-Replicación Maestro-Esclavo usando triggers El servidor maestro asincrónicamente envía los cambios de datos al servidor esclavo. El servidor esclavo puede ser utilizado para consultas. Este método es ideal para consultas para un almacén de datos. Slony-I, londiste Skytools son herramientas que usan este tipo de solución.

9 ALTA DISPONIBILIDAD : COMPARACIÓN DIFERENTES SOLUCIONES 5.-Replicación Midleware.- Un programa intercepta cada consulta SQL y envía esta a uno o más servidores. Cada servidor opera independientemente, consultas de lectura / escritura pueden ser enviadas a todos los servidores, existe balanceo de carga a nivel de consultas. Funciones como random(), current_timestamp y secuencias pueden devolver diferentes valores en cada servidor. Pgpool-II y Sequoia son ejemplos de este tipo de replicación.

10 ALTA DISPONIBILIDAD : COMPARACIÓN DIFERENTES SOLUCIONES 6.-Replicación asincrónica Maestro-Maestro.- Para servidores que no están regularmente conectados, como laptops o servidores remotos, si se guarda la consistencia de los datos estos pueden ser actualizados. Cada servidor trabaja independientemente y periódicamente esta comunicándose con otros servidores para identificar conflictos de transacciones, estos conflictos pueden ser resueltos por usuarios o reglas de resolución de conflictos Bucardo es un ejemplo de este tipo de replicación.

11 ALTA DISPONIBILIDAD : COMPARACIÓN DIFERENTES SOLUCIONES 7.-Replicación sincrónica Maestro-Maestro.- Cada servidor puede aceptar peticiones de escritura, y los datos modificados son transmitidos del servidor original a cada uno de los servidores. Escrituras pesadas pueden causar constantes bloqueos degradando el rendimiento. Peticiones de lectura pueden ser enviadas a cualquier servidor. Ejemplo: PyReplica (http://pgfoundry.org/projects/pyreplica)

12 CUADRO COMPARATIVO

13 QUIPUX COMO SISTEMA DE ALTA DISPONIBILIDAD 5.000 Usuarios concurrentes. 23.000 documentos diarios generados (Promedio). 4.348.397 documentos generados en los últimos 13 meses. 681.657 documentos firmados electrónicamente en los últimos 13 meses. 88 instituciones usando el sistema concurrentemente. 45.958 usuarios activos. Servicio 7 x 24. Nota : Datos del 30 de Septiembre de 2011

14 QUIPUX COMO SISTEMA DE ALTA DISPONIBILIDAD

15 QUIPUX COMO SISTEMA DE ALTA DISPONIBILIDAD SIGUIENTE PASO

16

17 REFERENCIAS BIBLIOGRÁFICAS Libro : The PostgreSQL 9.0 Reference Manual Volume 3: Server Administration Guide ///media/datos/MarioLopez/Subsecretaria/Cursos/P resentacion%20Postgres%20y%20alta%20disponi bilidad/cluster-de-servidores-con-postgresql.html

18 PREGUNTAS Gracias Por: Ing. Mario López B. mario.lopez@presidencia.gob.ec

19 PRESIDENCIA DE LA REPÚBLICA DEL ECUADOR SKYTOOLS : PgQ REPLICACIÓN CON LONDISTE PRESIDENCIA DE LA REPÚBLICA DEL ECUADOR SKYTOOLS : PgQ REPLICACIÓN CON LONDISTE Subsecretaría de Tecnologías de la Información Abril 2011 Por: Ing. Mario López B. mario.lopez@presidencia.gob.ec

20 AGENDA PgQ Londiste Laboratorio de replicación PgQ - Londiste con PostgreSQL

21 PgQ : QUÉ ES Una implementación de colas sobre PostgreSQL con una interface de store procedures Una implementación de colas sobre PostgreSQL con una interface de store procedures Eventos son generados por Productores y colocados en la cola para poder ser procesados por los Consumidores Eventos son generados por Productores y colocados en la cola para poder ser procesados por los Consumidores

22 PgQ : PARA QUE SIRVE Mensajería asincrónica Mensajería asincrónica Procesamiento Por Lotes Procesamiento Por Lotes Replicación Replicación Transacciones Distribuidas Transacciones Distribuidas

23 PgQ: CARACTERÍSTICAS TRANSACCIONAL.- Eventos son generados transaccionalmente. TRANSACCIONAL.- Eventos son generados transaccionalmente. EFICIENTE.- Los eventos son procesados por lotes y es muy liviano. EFICIENTE.- Los eventos son procesados por lotes y es muy liviano. FLEXIBLE.- Sin límites en el número de Productores y Consumidores FLEXIBLE.- Sin límites en el número de Productores y Consumidores CONFIABLE.- Los eventos son almacenados en la base de datos PostgreSQL CONFIABLE.- Los eventos son almacenados en la base de datos PostgreSQL FÁCIL DE USAR.- Interface SQL simple, API's para diferentes lenguajes FÁCIL DE USAR.- Interface SQL simple, API's para diferentes lenguajes CÓDIGO ABIERTO.- No se requiere de licencia y los fuentes están disponibles CÓDIGO ABIERTO.- No se requiere de licencia y los fuentes están disponibles

24 GLOSARIO EVENTO.- Pieza atómica de datos generado por un Productor. Un evento PgQ es un registro de una de las tablas soportadas por la cola EVENTO.- Pieza atómica de datos generado por un Productor. Un evento PgQ es un registro de una de las tablas soportadas por la cola LOTE DE EVENTOS.- PgQ esta diseñado para manejar de forma más eficiente gran cantidad de datos es por esto que agrupa en lotes para que sean procesados los eventos LOTE DE EVENTOS.- PgQ esta diseñado para manejar de forma más eficiente gran cantidad de datos es por esto que agrupa en lotes para que sean procesados los eventos COLA.- Los eventos son almacenados en tablas diseñadas para manejar las colas. Varios Productores pueden escribir en la misma cola y varios Consumidores pueden leer de la misma cola. Los elementos son almacenados en la cola antes de poder ser consumidos COLA.- Los eventos son almacenados en tablas diseñadas para manejar las colas. Varios Productores pueden escribir en la misma cola y varios Consumidores pueden leer de la misma cola. Los elementos son almacenados en la cola antes de poder ser consumidos PRODUCTOR.- Aplicaciones que colocan un evento en la cola PRODUCTOR.- Aplicaciones que colocan un evento en la cola CONSUMIDOR.- Aplicaciones que leen eventos de una cola CONSUMIDOR.- Aplicaciones que leen eventos de una cola

25 PgQ : COLA Esencialmente un conjunto de tablas en una base de datos PostgreSQL Esencialmente un conjunto de tablas en una base de datos PostgreSQL Por defecto maneja 3 tablas por cola Por defecto maneja 3 tablas por cola Los eventos son descartados solo cuando todos los Consumidores han procesado el evento Los eventos son descartados solo cuando todos los Consumidores han procesado el evento Las colas son accesibles mediante un API a través de store procedures Las colas son accesibles mediante un API a través de store procedures Se puede tener diferentes colas para una misma base de datos Se puede tener diferentes colas para una misma base de datos Cualquier número de Productores y cualquier número de Consumidores Cualquier número de Productores y cualquier número de Consumidores

26 PgQ : API PARA COLA Creación y eliminación de colas Creación y eliminación de colas pgq.create_queue(nombre_cola) pgq.create_queue(nombre_cola) pgq.drop_queue(nombre_cola) pgq.drop_queue(nombre_cola) Funciones de información de las colas Funciones de información de las colas pgq.get_queue_info(nombre_cola) pgq.get_queue_info(nombre_cola) pgq.get_consumer_info(nombre_cola) pgq.get_consumer_info(nombre_cola) pgq.current_event_table(nombre_cola) pgq.current_event_table(nombre_cola) Manejo de los Consumidores Manejo de los Consumidores pgq.register_consumer(qname, cname) pgq.register_consumer(qname, cname) pgq.unregister_consumer(qname, cname) pgq.unregister_consumer(qname, cname)

27 PgQ : EVENTO Un registro en una tabla que maneja una cola Un registro en una tabla que maneja una cola Registros a ser procesados Registros a ser procesados

28 PgQ : LOTE DE EVENTOS Los eventos son agrupados en lotes para un procesamiento más eficiente Los eventos son agrupados en lotes para un procesamiento más eficiente Los Consumidores obtienen eventos en lotes Los Consumidores obtienen eventos en lotes El tamaño del lote puede ser tuneado para la aplicación o topología de red El tamaño del lote puede ser tuneado para la aplicación o topología de red Lotes más pequeños podrían mejorar el procesamiento Lotes más pequeños podrían mejorar el procesamiento Los lotes son preparados por un proceso separado llamado Ticker Los lotes son preparados por un proceso separado llamado Ticker

29 PgQ : TICKER Es un demonio que periódicamente crea ticks sobre la(s) cola(s). El Tick es esencialmente una posición en la secuencia de eventos Es un demonio que periódicamente crea ticks sobre la(s) cola(s). El Tick es esencialmente una posición en la secuencia de eventos Un lote es formado de eventos que son encolados entre dos ticks Un lote es formado de eventos que son encolados entre dos ticks Sin Ticker no hay lotes de eventos Sin Ticker no hay lotes de eventos Si se tiene una pausa muy extendida del ticker los lotes de eventos podrían ser muy grandes y los consumidores no podrían procesar adecuadamente el lote de eventos. Si se tiene una pausa muy extendida del ticker los lotes de eventos podrían ser muy grandes y los consumidores no podrían procesar adecuadamente el lote de eventos. Ticker esta envuelto en misceláneos como son el vacuum de las tablas pgq, calendarización de eventos encolados y la rotación de las tablas de las colas Ticker esta envuelto en misceláneos como son el vacuum de las tablas pgq, calendarización de eventos encolados y la rotación de las tablas de las colas

30 PgQ : CONSUMIDOR Se adhiere a la cola Se adhiere a la cola El que obtiene eventos de la cola pidiendo un lote de eventos El que obtiene eventos de la cola pidiendo un lote de eventos Solo ve los eventos que se han producido después de la suscripción Solo ve los eventos que se han producido después de la suscripción Los eventos son vistos al menos una vez los eventos no se pierden Los eventos son vistos al menos una vez los eventos no se pierden Se debe contar con algún tipo de seguimiento para que un evento solo sea utilizado una vez Skytools posee algunas herramientas para esto Se debe contar con algún tipo de seguimiento para que un evento solo sea utilizado una vez Skytools posee algunas herramientas para esto Si el evento no puede ser procesado inmediatamente puede ser calendarizado para ser reprocesado posteriormente Si el evento no puede ser procesado inmediatamente puede ser calendarizado para ser reprocesado posteriormente

31 PgQ : ESTADO Puede ser obtenida llamando a pgq.get_consumer_info() Puede ser obtenida llamando a pgq.get_consumer_info() Se visualiza el informe de la cola, el nombre de los consumidores, retrasos etc Se visualiza el informe de la cola, el nombre de los consumidores, retrasos etc Lag es el tiempo del último lote de eventos finalizado Lag es el tiempo del último lote de eventos finalizado Last seenes el tiempo transcurrido en el que un consumidor procesó el último lote de eventos Last seenes el tiempo transcurrido en el que un consumidor procesó el último lote de eventos

32 PgQ : PRODUCTOR Cualquier cosa colocada en los eventos de las colas Cualquier cosa colocada en los eventos de las colas Configura el formato de carga de un evento acordado entre el Productor y el Consumidor Configura el formato de carga de un evento acordado entre el Productor y el Consumidor Interfaz básica mediante un API Interfaz básica mediante un API pgq.insert_event(queue, ev_type, ev_data) pgq.insert_event(queue, ev_type, ev_data) La replicación usa triggers para la generación de los eventos La replicación usa triggers para la generación de los eventos pgq.sqltriga(queue, options) pgq.sqltriga(queue, options) pgq.logutriga(queue, options) pgq.logutriga(queue, options) Carga masiva es también posible Carga masiva es también posible

33 SKYTOOLS 3 : NUEVAS CARACTERÍSTICAS Consumidores Colaborativos.- Distribución de carga de un Consumidor entre varios Sub Consumidores Consumidores Colaborativos.- Distribución de carga de un Consumidor entre varios Sub Consumidores Soporta Cascada.- Una cola idéntica es mantenida entre los nodos, los Consumidores pueden fácilmente moverse en diferentes nodos Soporta Cascada.- Una cola idéntica es mantenida entre los nodos, los Consumidores pueden fácilmente moverse en diferentes nodos Los tickers de base de datos remplazados por un simple demonio pgqd Los tickers de base de datos remplazados por un simple demonio pgqd Utilitario qadmin para manejar colas y Consumidores Utilitario qadmin para manejar colas y Consumidores

34 PgQ: CONSUMIDORES COLABORATIVOS Algunas ocasiones un solo Consumidor no satisface con el volumen de lotes de eventos Algunas ocasiones un solo Consumidor no satisface con el volumen de lotes de eventos Consumidores paralelos podría ayudar, pero necesitamos dividir la carga de trabajo para evitar tratar el mismo evento dos veces Consumidores paralelos podría ayudar, pero necesitamos dividir la carga de trabajo para evitar tratar el mismo evento dos veces Entonces necesitamos que los Consumidores puedan trabajar de forma colaborativa Entonces necesitamos que los Consumidores puedan trabajar de forma colaborativa Skytool 3 introduce los Sub Consumidores con este fin. Estos comparten la carga de trabajo de forma colaborativa Skytool 3 introduce los Sub Consumidores con este fin. Estos comparten la carga de trabajo de forma colaborativa Hay algunas diferencias en el manejo de registros y el procesamiento por lotes pero se parece bastante al de los Consumidores regulares Hay algunas diferencias en el manejo de registros y el procesamiento por lotes pero se parece bastante al de los Consumidores regulares pgq_coop.register_subconsumer(qname,cname,scname) pgq_coop.register_subconsumer(qname,cname,scname) pgq_coop.unregister_subconsumer(qname,cname,scname,mode) pgq_coop.unregister_subconsumer(qname,cname,scname,mode) pgq_coop.next_batch(qname,cname,scname) pgq_coop.next_batch(qname,cname,scname) pgq_coop.finish_batch(batch_id) pgq_coop.finish_batch(batch_id)

35 PgQ: CASCADA Cascada es un conjunto de nodos de base de datos y una cola que se distribuye entre los nodos. Los ID de eventos se mantienen idénticos entre los nodos Cascada es un conjunto de nodos de base de datos y una cola que se distribuye entre los nodos. Los ID de eventos se mantienen idénticos entre los nodos La cascada puede ser representada como un árbol donde los eventos creados en la raíz se propagan sobre la cascada de otros nodos La cascada puede ser representada como un árbol donde los eventos creados en la raíz se propagan sobre la cascada de otros nodos Solo puede haber un nodo raíz pero cualquier número de ramas u hojas Solo puede haber un nodo raíz pero cualquier número de ramas u hojas Los nodos hoja son específicos de la replicación ellos no tienen una copia de la cola y no participan en el evento de propagación Los nodos hoja son específicos de la replicación ellos no tienen una copia de la cola y no participan en el evento de propagación

36 PgQ: CASCADA Una replicación en cascada típica sería de una base de datos primaria (nodo raíz), y una réplica en espera (rama) Una replicación en cascada típica sería de una base de datos primaria (nodo raíz), y una réplica en espera (rama) Nosotros podemos cambiar fácilmente las funciones de replicación de los nodos raíz o rama y los Consumidores seguirán como si nada hubiera pasado Nosotros podemos cambiar fácilmente las funciones de replicación de los nodos raíz o rama y los Consumidores seguirán como si nada hubiera pasado En caso de que el nodo raíz colapse, se promueve un nodo rama sobreviviente a nodo raíz y se reconfigura los “Consumers”, en este escenario podría existir pérdidas de datos En caso de que el nodo raíz colapse, se promueve un nodo rama sobreviviente a nodo raíz y se reconfigura los “Consumers”, en este escenario podría existir pérdidas de datos

37 PgQ: Wrapup Productores generan eventos en las colas Productores generan eventos en las colas Los Tickers de grupos de eventos en lotes Los Tickers de grupos de eventos en lotes Los lotes de eventos son proporcionados a los Consumidores en un ordenamiento FIFO Los lotes de eventos son proporcionados a los Consumidores en un ordenamiento FIFO Consumidores pueden procesar los eventos con pgq_ext Consumidores pueden procesar los eventos con pgq_ext

38 LONDISTE : REPLICACIÓN Implementación de replicación Maestro / Esclavo sobre PgQ Implementación de replicación Maestro / Esclavo sobre PgQ Usa sqltriga/logtriga para capturar los cambios de las tablas de la base Maestra Usa sqltriga/logtriga para capturar los cambios de las tablas de la base Maestra PgQ “Consumer” replica los eventos capturados entre los esclavos PgQ “Consumer” replica los eventos capturados entre los esclavos Un master puede tener varios esclavos Un master puede tener varios esclavos Los esclavos pueden ser maestros de otros esclavos Los esclavos pueden ser maestros de otros esclavos

39 LONDISTE : CONFIGURACIÓN Prepara el archivo de configuración : bases de datos origen y destino y el nombre de la cola Prepara el archivo de configuración : bases de datos origen y destino y el nombre de la cola Ejecutar los comandos londiste de instalación para el Proveedor y Consumidor Ejecutar los comandos londiste de instalación para el Proveedor y Consumidor Comenzar el proceso de replicación entre el maestro y el esclavo Comenzar el proceso de replicación entre el maestro y el esclavo Se empieza la copia inicial las tablas de la base de datos esclava se pueden usar una vez termine este proceso Se empieza la copia inicial las tablas de la base de datos esclava se pueden usar una vez termine este proceso

40 TALLER DE REPLICACIÓN: CONFIGURACIONES PRELIMINARES Instalación del sistema operativo Linux Instalación del sistema operativo Linux Instalación de la base de datos PostgreSQL Instalación de la base de datos PostgreSQL Instalación de las herramientas SKYTOOL Instalación de las herramientas SKYTOOL (yum install skytools) (yum install skytools) Creación de la base de datos de maestra Creación de la base de datos de maestra Carga de datos iniciales en la base de datos maestra Carga de datos iniciales en la base de datos maestra Creación de la base de datos esclava Creación de la base de datos esclava Creación de tablas y secuencias en la base de datos esclava Creación de tablas y secuencias en la base de datos esclava

41 TALLER DE REPLICACIÓN: CONFIGURACIÓN DE PgQ Crear la carpeta /etc/skytools en el servidor de la base maestra y también en los esclavos, como dueño postgres Crear la carpeta /etc/skytools en el servidor de la base maestra y también en los esclavos, como dueño postgres mkdir skytools mkdir skytools chown postgres: skytools chown postgres: skytools Crear el archivo de configuración pgqadm en /etc/skytools/ ( pgqadm.ini) en el servidor maestro y en el servidor esclavo Crear el archivo de configuración pgqadm en /etc/skytools/ ( pgqadm.ini) en el servidor maestro y en el servidor esclavo

42 TALLER DE REPLICACIÓN: CONFIGURACIÓN DE PgQ [pgqadm] [pgqadm] # nombre del job unico job_name = replica db = dbname=prueba port=5432 host=192.168.20.28 user=replica password=replica11 # frecuencia de mantenimeinto maint_delay_min = 2 # frecuencia de verificación de actividades loop_delay = 0.1 logfile = /var/log/skytools/%(job_name)s.log pidfile = /var/log/skytools/%(job_name)s.pid use_skylog = 0

43 TALLER DE REPLICACIÓN: CONFIGURACIÓN DE PgQ Colocar como dueño a postgres del archivo pgqadm.ini Colocar como dueño a postgres del archivo pgqadm.ini chown postgres: pgqadm.ini chown postgres: pgqadm.ini Cambiar al usuario postgres su – postgres Cambiar al usuario postgres su – postgres Crear en var/log la carpeta skytools como dueño postgres Crear en var/log la carpeta skytools como dueño postgres Configuración de la estructura pgqadm servidor maestro Configuración de la estructura pgqadm servidor maestro pgqadm.py /etc/skytools/ pgqadm.ini install pgqadm.py /etc/skytools/ pgqadm.ini install Inicialización del ticker en el servidor maestro como usuario postgres Inicialización del ticker en el servidor maestro como usuario postgres Ejecutamos la siguiente línea de comando pgqadm.py -d / etc/skytools/pgqadm.ini ticker Ejecutamos la siguiente línea de comando pgqadm.py -d / etc/skytools/pgqadm.ini ticker

44 TALLER DE REPLICACIÓN: CONFIGURACIÓN DE PgQ Revisar que la generación e inicialización de la cola este correcto en el servidor maestro Revisar que la generación e inicialización de la cola este correcto en el servidor maestro Ejecutamos la siguiente línea de comando ; Ejecutamos la siguiente línea de comando ; pgqadm.py /etc/skytools/pgqadm.ini status pgqadm.py /etc/skytools/pgqadm.ini status

45 TALLER DE REPLICACIÓN: CONFIGURACIÓN DE LONDISTE Creamos el archivo de configuración londiste.ini Creamos el archivo de configuración londiste.ini #nombre de trabajo job_name = pruebalondiste provider_db = dbname=prueba port=5432 host=192.168.40.207 user=ureplica password=replica11 subscriber_db = dbname=pruebareplica port=5432 host=192.168.40.208 user=replica password=replica11 pgq_queue_name = cola1_replicaprueba logfile = /var/log/skytools/%(job_name)s.log pidfile = /var/log/skytools/%(job_name)s.pid # loop_delay = 1 # lock_timeout = 10.0

46 TALLER DE REPLICACIÓN: CONFIGURACIÓN DE LONDISTE Instalamos la estructura londiste en el proveedor para lo cual ejecutamos la siguiente línea de comando en el servidor maestro Instalamos la estructura londiste en el proveedor para lo cual ejecutamos la siguiente línea de comando en el servidor maestro londiste.py londiste.ini provider install londiste.py londiste.ini provider install Instalamos la estructura londiste en los consumidores ejecutando la siguiente línea de comando Instalamos la estructura londiste en los consumidores ejecutando la siguiente línea de comando londiste.py londiste.ini subscriber install londiste.py londiste.ini subscriber install Verificamos el estado de la cola desde los consumidores para lo cual ejecutamos la siguiente línea de comando Verificamos el estado de la cola desde los consumidores para lo cual ejecutamos la siguiente línea de comando pgqadm.py pgqadm.ini status pgqadm.py pgqadm.ini status

47 TALLER DE REPLICACIÓN: CONFIGURACIÓN DE LONDISTE Inicializamos el proceso de replicación en el servidor maestro para lo cual ejecutamos el siguiente comando Inicializamos el proceso de replicación en el servidor maestro para lo cual ejecutamos el siguiente comando londiste.py -d londiste.ini replay londiste.py -d londiste.ini replay Tenemos que indicar que tablas y que secuencias serán colocadas en el proveedor #!/bin/sh londiste.py londiste.ini provider add catastrofe londiste.py londiste.ini provider add catastrofe_pais londiste.py londiste.ini provider add continente londiste.py londiste.ini provider add pais londiste.py londiste.ini provider add tipo_catastrofe

48 TALLER DE REPLICACIÓN: CONFIGURACIÓN DE LONDISTE #!/bin/sh londiste.py londiste.ini provider add-seq catastrofe_codigocatastrofe_seq londiste.py londiste.ini provider add-seq continente_codigocontinente_seq londiste.py londiste.ini provider add-seq pais_codigopais_seq londiste.py londiste.ini provider add-seq tipo_catastrofe_codigotipocatastrofe_seq

49 TALLER DE REPLICACIÓN: CONFIGURACIÓN DE LONDISTE Tenemos que indicar que tablas y que secuencias serán colocadas en el suscriptor Tenemos que indicar que tablas y que secuencias serán colocadas en el suscriptor#!/bin/sh londiste.py londiste.ini subscriber add catastrofe londiste.py londiste.ini subscriber add catastrofe_pais londiste.py londiste.ini subscriber add continente londiste.py londiste.ini subscriber add pais londiste.py londiste.ini subscriber add tipo_catastrofe

50 TALLER DE REPLICACIÓN: CONFIGURACIÓN DE LONDISTE #!/bin/sh londiste.py londiste.ini subscriber add-seq catastrofe_codigocatastrofe_seq londiste.py londiste.ini subscriber add-seq continente_codigocontinente_seq londiste.py londiste.ini subscriber add-seq pais_codigopais_seq londiste.py londiste.ini subscriber add-seq tipo_catastrofe_codigotipocatastrofe_seq

51 TALLER DE REPLICACIÓN: CONFIGURACIÓN DE LONDISTE Verificamos el estado de la cola tanto en el servidor proveedor como en los consumidores Verificamos el estado de la cola tanto en el servidor proveedor como en los consumidores pgqadm.py pgqadm.ini status pgqadm.py pgqadm.ini status Revisar los logs para verificar que no existan inconvenientes Revisar los logs para verificar que no existan inconvenientes En caso de que se caiga la réplica hacer lo siguiente : En caso de que se caiga la réplica hacer lo siguiente : 1.- Reiniciar la generación de tickers con pgqadm.py -d /etc/skytools/pgqadm.ini ticker 1.- Reiniciar la generación de tickers con pgqadm.py -d /etc/skytools/pgqadm.ini ticker 2.- Reiniciar la replicación con londiste.py -d londiste.ini replay 2.- Reiniciar la replicación con londiste.py -d londiste.ini replay

52 CONCLUSIONES / RECOMENDACIONES Alternativa viable de replicación con Postgres Para la replicación tomar en cuenta que solo se pueden replicar tablas que tengan clave primaria Para una actualización de la estructura de la base de datos ejecutar el cambio primero en la base esclava y luego en la base maestra Nunca ejecutar ningún script de cambio update /delete etc en la base esclava siempre en la base maestra

53 PREGUNTAS Gracias Por : Ing. Marcelo Silva. marcelo.silva@presidencia.gob.ec

54 PREGUNTAS Gracias Por : Ing. Mario López B. mario.lopez@presidencia.gob.ec


Descargar ppt "PRESIDENCIA DE LA REPÚBLICA DEL ECUADOR POSTGRESQL Y SISTEMAS DE ALTA DISPONIBILIDAD SUBSECRETARÍA DE TECNOLOGÍAS DE LA INFORMACIÓN OCTUBRE 2011 Ing. Marcelo."

Presentaciones similares


Anuncios Google