REPLICACION

download REPLICACION

of 26

Transcript of REPLICACION

Optativa II

FACULTAD DE INGENIERIA CIENCIAS FISICAS Y MATEMATICAS OPTATIVA II REPLICACION BASE DE DATOS POSTGRESQL Y MYSQL EN CENTOS

INTEGRANTES: Carchipulla Diego Pilaguano Lorena Quipo Rubn Tasipanta Jssica PROFESOR: FELIPE BORJA SEMESTRE: Noveno 2

REPLICACION DE BASE DE DATOS

1

Optativa II

NDICEPOSGRESQL ................................................................................................................................................. 2 DEFINICIN ............................................................................................................................................. 2 BENEFICIOS DE LA REPLICACIN ................................................................................................. 2 APLICACIONES DE LA REPLICACIN............................................................................................ 3 MODELO DE LA REPLICACIN ........................................................................................................ 3 REPLICACIN POSTGRESQL ............................................................................................................... 4 CONCEPTOS BSICOS.......................................................................................................................... 4 STREAMING REPLICATION (SR) ..................................................................................................... 5 HOT STANDBY (HS) ............................................................................................................................. 6 CONFIGURACIN .................................................................................................................................. 6 PARAMETROS......................................................................................................................................... 7 EJEMPLO ....................................................................................................................................................... 9 MYSQL ........................................................................................................................................................ 13 INTRODUCCIN A LA REPLICACIN ......................................................................................... 13 REPLICACIN DE BASES DE DATOS........................................................................................... 14 CREACIN DE BASE DE DATOS .................................................................................................... 14 CONFIGURACION SERVIDOR MAESTRO (MASTER) ........................................................19 CONFIGURACION SERVIDOR ESCLAVO (ESCLAVO) ........................................................22 ESTADO DE LA REPLICACIN ......................................................................................................... 24 BIBLIOGRAFA........................................................................................................................................ 25

REPLICACION DE BASE DE DATOS

2

Optativa II

REPLICACIN DE BASE DE DATOS1.1.1. DEFINICIN

POSTGRESQL

En un entorno multiprogramacin, varios procesos pueden competir por un nmero finito de recursos. Un proceso solicita recursos y, si los recursos no estn disponibles en ese momento, el proceso pasa a estado de espera. Es el proceso de copiar y mantener objetos de las base de datos, como por ejemplo relaciones, en mltiples bases de datos que forman un sistema de bases de datos distribuido. La rplica proporciona una manera rpida y confiable de diseminar la informacin corporativa entre mltiples localizaciones en un ambiente de negocio distribuido, permitiendo distribuir la informacin de manera confiable. Si el monitor detecta una dependencia cclica, selecciona una de las tareas como el sujeto y finaliza su transaccin con un error. Esto permite a la otra tarea completar su transaccin.

1.2

BENEFICIOS DE LA REPLICACINDisponibilidad Fiabilidad Rendimiento Reduccin de la carga Procesamiento desconectado Soporta muchos usuarios Soporta aplicaciones avanzadas

Disponibilidad: El modo en que la replicacin incrementa la disponibilidad de los datos para los usuarios y aplicaciones. Fiabilidad: Al haber mltiples copias de los datos disponibles en el sistema, se dispone de un mecanismo excelente de recuperacin cuando existan fallos en nodos. Rendimiento: Se mejora para las transacciones de consulta cuando se introduce la replicacin en un sistema que estuviera aquejado de sobrecarga de recursos centralizados.REPLICACION DE BASE DE DATOS 3

Optativa II

Reduccin de la carga: Modo en q se utiliza la replicacin para distribuir datos en ubicaciones remotas Procesamiento Desconectado: Modo en que implementarse mediante mecanismo instantneas. la replicacin puede

Soporta muchos usuarios: Se puede crear mltiples instantneas personalizadas que satisfagan los requisitos de cada usuario o grupo de usuarios del sistema. Soporta Aplicaciones Avanzadas: Para OLPT Processing), OLAP (Online Analitical Processing). (Online transaction

1.3

APLICACIONES DE LA REPLICACINSoporte para un equipo de ventas remoto: Requiere la sincronizacin peridica de un gran nmero de pequeos nodos mviles remotos con el sistema de base de datos corporativo. Aplicaciones Financieras: Requieren que los datos de mltiples servidores se sincronicen de manera continua e instantnea.

1.4

MODELO DE LA REPLICACIN

Replicacin Publicador Suscriptor (SQL). Este modelo consiste en Publicadores, Suscriptores y Distribuidores; las publicaciones, los artculos, y las suscripciones por tirn o empuje. Adems incorpora agentes de administracin como Agente de Instantnea, Agente Lector de Registro, Agente de Distribucin, y Agente de Mezcla. Todos los agentes pueden funcionar debajo del agente del servidor del SQL y se pueden administrar completamente por el Administrador del Servidor de SQL.

Replicacin Instantnea. Como su nombre lo indica, toma una foto instantnea de los datos publicados en la base de datos en un momento determinado. Este tipo de replica es la ms simple rplica, y garantiza una latente consistencia entre el Publicador y el Suscriptor.

REPLICACION DE BASE DE DATOS

4

Optativa II

Replicacin Transaccional Supervisa cambios al servidor que publica en el nivel de la transaccin: operaciones de relleno, de actualizacin o de cancelacin. Los cambios realizados al publicador fluyen continuamente o en intervalos programados a uno o ms servidores suscritos. Los cambios se propagan casi en tiempo real, tpicamente con diferencia de segundos. Con la rplica transaccional, los cambios se deben realizar en el sitio que publica para evitar conflictos y garantizar la consistencia transaccional.

Replicacin por Mezcla Proporciona el nivel ms alto de la autonoma para cualquier solucin de rplica. Los publicadores y los suscriptores pueden trabajar suscriptores independientemente y volverse a conectar peridicamente para combinar sus resultados.

REPLICACIN POSTGRESQL

Hot Standby (HS) y Streaming Replication (SR) estas dos caractersticas (SR), stas implementan en el ncleo de PostgreSQL lo necesario para instalar un sistema de replicacin asincrnica maestro maestro-esclavo (master-slave) en el que los nodos slave) esclavos se pueden utilizar para realizar consultas de solo lectura. Un sist sistema de replicacin de estas caractersticas se podr usar tanto para aadir redundancia a nuestras bases de datos, como para descargar de trabajo a nuestro servidor principal en lo referente a consultas de solo lectura.

1.1.1

CONCEPTOS BSICOS

Ficheros WAL: PostgreSQL utiliza los denominados ficheros WAL (Write : Ahead Log / REDO) para guardar toda la informacin sobre las transacciones y cambios realizados en la base de datos. Garantiza la integridad de los datos grabados en la base de datos. Tambin se utilizan para reparar automticamente posibles inconsistencias en la base de datos despus de una cada sbita del servidor.

REPLICACION DE BASE DE DATOS

5

Optativa II

Transferencia de registros a nivel de ficheros (file-based log shipping): Llamado transferencia de ficheros WAL completos (16MB de registros) entre servidores de bases de datos. Transferencia de registros a nivel de registros (record-based log shipping): Transferencia de registros WAL sobre la marcha entre servidores de bases de datos. Esto es lo que hace Streaming Replication. Replicacin/transferencia asincrnica: Cuando los datos se transfieren de un sistema A a otro B, sin esperar por el acuse de recibo de B antes de hacer disponibles en A los datos replicados. En un sistema de replicacin asincrnico puede existir un cierto retraso demora en la disponibilidad de los datos en el sistema esclavo. Replicacin/transferencia sincrnica: Cuando los datos se transfieren de un sistema A, a otro B, y A espera el acuse de recibo de B antes de hacer disponibles en A los datos replicados. En un sistema de replicacin sincrnico, todos los datos disponibles en el maestro estn disponibles en los esclavos.

1.2

STREAMING REPLICATION (SR)

Esta nueva funcionalidad nos permite transferir asincrnicamente registros WAL sobre la marcha (record-based log shipping) entre un servidor maestro y uno/varios esclavos. SR se configura mediante los parmetros primary_conninfo en el fichero recovery.conf y max_wal_senders, wal_sender_delay y wal_keep_segments en postgresql.conf.

El proceso denominado receptor WAL (WAL receiver) en el servidor esclavo, se conecta mediante una conexin TCP/IP al servidor maestro. En el servidor maestro existe otro proceso denominado remitente WAL (WAL sender) que es el encargado de mandar los registros WAL sobre la marcha al servidor esclavo.

REPLICACION DE BASE DE DATOS

6

Optativa II

Grfico de SR

1. 3

HOT STANDBY (HS)

Esta nueva funcionalidad nos permite acceder en modo de solo solo-lectura a todos los datos disponibles en el servidor esclavo a donde estamos replicando nuestras bases de datos. HS se configura mediante los parametros hot hot_standby y max_standby_delay en postgresql.conf

Grfico del Funcionamiento de HS usando SR y transfiriendo archivos WAL

1.4

CONFIGURACIN

Creamos los directorios para la replicacin en el servidor maestro y en el esclavo:

REPLICACION DE BASE DE DATOS

7

Optativa II

Generar las claves pblica y privada en el servidor maestro y esclavo

1.4.1

PARAMETROS

Configuramos los parmetros en el servidor maestro:

listen_address = Permite definir la IP por la que podremos acceder va TCP/IP a postgreSQL 172.16.3.129. wal_level = Este parmetro define cuanta informacin se grabar en los ficheros WAL generados hot_standby archive_mode = Con este parmetro activamos el archivo de ficheros WAL en el maestro on archive_command = Con el comando definido en este parmetro, copiamos los ficheros WAL a archivar al directorio /var/lib/pgsql/archive_wal.sh P %p F %f en el servidor maestro y transferimos los ficheros WAL archivados, al directorio /var/lib/pgsql/archive_wal.sh P %p F %f en el servidor esclavo. max_wal_senders = Con este parmetro definimos el nmero mximo de conexiones que se pueden realizar desde servidores esclavos al servidor maestro va SR para nuestro proyecto 58

REPLICACION DE BASE DE DATOS

Optativa II

wal_keep_segments = Este parmetro define el nmero mximo de ficheros WAL que mantendremos sin reciclar en el servidor maestro en el caso que SR se retrase en la replicacin de datos. Si utilizamos adems de SR, transferencia de ficheros WAL, este parmetro no es tan importante de configurar para nuestra replicacin es 10 Crear el archivo archive_wal.sh

Crear el archivo archive_wal.sh que servir para copiar los archivos WAL del servidor maestro al servidor esclavo

Codificar el archivo pg_hba.conf

Parmetros en el postgresql.conf del servidor esclavo

listen_address = Con este parmetro definimos la IP por la que podremos acceder va TCP/IP a postgreSQL en nuestra replicacin 172.16.3.130 hot_standby = Para definir que este servidor esclavo se podr utilizar para realizar consultas de solo lectura en nuestra replicacin on Creamos el archivo recovery.conf

REPLICACION DE BASE DE DATOS

9

Optativa II

1.5 EJEMPLOInterfaz grfica Servidor Maestro y Servidor Esclavo

Creamos la base de datos de nombre postgres como se ve en la siguiente imagen.

REPLICACION DE BASE DE DATOS

10

Optativa II

Esta ventana muestra la creacin de la base de datos postgres en el Servidor Maestro y por defecto se crea la base en el Servidor Esclavo.

Esta ventana se puede visualizar las tablas, los tablespaces y todas las caractersticas que contiene la base de datos en el Servidor Maestro.

REPLICACION DE BASE DE DATOS

11

Optativa II

Esta ventana se puede visualizar la replicacin de las tablas, los tablespaces y todas las caractersticas que contiene la base de datos en el Servidor Esclavo.

En esta imagen muestra la creacin de la tabla xml_resultado, adems muestra la definicin de los campos con cada uno de sus atributos en el Servidor Maestro.

REPLICACION DE BASE DE DATOS

12

Optativa II

En esta imagen muestra la replicacin de la tabla xml_resultado, adems muestra la definicin de los campos con cada uno de sus atributos en el Servidor Esclavo.

REPLICACION DE BASE DE DATOS

13

Optativa II

2.

MYSQL

REPLICACIN 2.1 INTRODUCCIN A LA RELa replicacin de bases de datos es una funcionalidad que permite que toda accin realizada a un servidor de base de datos se replique automticamente en otro servidor. Es decir cualquier insert, update, delete, optimice o cualquier otra consulta ualquier que modifique la base de datos en cuestin, se ejecutar de la misma forma en el ique servidor replicado. Es muy til para trabajar con servidores en distintas ubicaciones geogrficas que forman parte de un mismo sistema. Tambin se puede realizar backups automticamente y tener las mismas bases de datos disponibles todo el tiempo en te diferentes servidores. Esta funcionalidad se basa en un sistema cliente cliente-servidor / esclavo esclavo-maestro en mysql. Funcionalmente es el servidor esclavo quien lee y ejecuta todas las . instrucciones que un maestro ejecut. Estas instrucciones son registradas en un log es binario en el maestro y el esclavo mantiene un log de las posiciones que ya ley y ejecut del maestro. Toda esta operacin se realiza de forma asncrona. Es decir no hace falta que la decir, conexin entre el esclavo y el maestro este constantemente activa ya que el maestro sigue logueando en su log y el esclavo lo leer y ejecutar desde la ltima posicin registrada cuando detecte nuevamente la conexin. Claro est que si se da esta asincrona, el esclavo no este siempre actualizado, sino slo despus de leer la ultima posicin del master. Si la conexin es permanente, los datos sern los mismos ya que la replicacin es inmediata.

REPLICACION DE BASE DE DATOS

14

Optativa II

2.2 REPLICACIN DE BASES DE DATOSPara la replicacin necesitamos de un sistema que requiere de dos servidores de base de datos que tengan la misma informacin un servidor esclavo y otro maestro.

2.2.1 CREACIN DE BASE DE DATOS La figura muestra phpMyAdmin esta nos permitir crear nuevas base de datos.

Podremos crear tablas, con sus respectivos campos.

REPLICACION DE BASE DE DATOS

15

Optativa II

Debemos crear una base de datos, en este caso la llamamos optativa

REPLICACION DE BASE DE DATOS

16

Optativa II

Asignar una IP para poder conectarnos mediante el root a Linux y pode subir archivos, como se muestra en la figura.

Esta aplicacin es web, al abrirla podemos trabajar sobre la base agregando objetos o campos.

REPLICACION DE BASE DE DATOS

17

Optativa II

Nos muestra los usuarios que existen sobre la base.

Podemos ingresar un usuario en la base la cual debe constar en el servidor esclavo, cuando se realice la replicacin.

REPLICACION DE BASE DE DATOS

18

Optativa II

2.2.2 CONFIGURACION SERVIDOR MAESTRO (MASTER) Es necesario que el servidor Master conozca dnde va a loguear toda su actividad; que base de datos va ha loguear, adems se le asigna un identificador. Se debe editar el my.cnf de mysql

Reiniciamos el servidor de mysql desde la consola de linux y nos logueamos por consola al mysql con acceso root.

REPLICACION DE BASE DE DATOS

19

Optativa II

Crear un usuario con acceso a la replicacin. Este usuario es el que usar el Slave para identificarse. En la consola MySql y con acceso root. Necesitamos la informacin del log para configurar el servidor slave:

REPLICACION DE BASE DE DATOS

20

Optativa II

2.2.3 CONFIGURACION SERVIDOR ESCLAVO (ESCLAVO) Se debe crear una base de datos con el mismo nombre que la del Maestro, vamos directamente a editar la configuracin del archivo my.cnf de mysql

Reiniciamos entonces el servidor esclavo para que tome la nueva configuracin: Nos logueamos como root al MySql y le decimos al esclavo que cargue la informacin que exista en la DB del maestro para tener como punto de partida:

REPLICACION DE BASE DE DATOS

21

Optativa II

REPLICACION DE BASE DE DATOS

22

Optativa II

Aqu se va a proveer a nuestro slave, la informacin que guardamos en el txt acerca del log del master parando la replicacin:

Para saber si la replicacin est andando: SHOW SLAVE STATUS G;

REPLICACION DE BASE DE DATOS

23

Optativa II

REPLICACION DE BASE DE DATOS

24

Optativa II

2.2.5

ESTADO DE LA REPLICACIN

Para corroborar el estado de una replicacin, conviene realizar un chequeo en el servidor esclavo, en consola de mysql usamos el comando: SHOW SLAVE STATUS \G; Esta accin mostrar un listado de parmetros que nos indican en que estado se encuentra la replicacin: Slave_IO_State: Indica el estado del esclavo Master_Log_File: Indica el archivo del master que esta siendo ledo Read_Master_Log_Pos: Indica la ultima posicin que el esclavo ya ley del master Relay_Log_File: Indica el archivo de log propio que el esclavo esta ejecutando Relay_Log_Pos: Indica la posicin del log propio que el esclavo esta ejecutando Relay_Master_Log_File: Indica el log del master que el esclavo esta ejecutando Slave_IO_Running: Indica si esta conectado al servidor master Skip_Counter: Indica si se ha salteado alguna posicin Exec_Master_Log_Pos: Indica la posicin del log del maestro que esta siendo ejecutada Seconds_Behind_Master: Parmetro de tiempo en que tardar el esclavo en llegar hasta la ultima posicin del ultimo log del Master

REPLICACION DE BASE DE DATOS

25

Optativa II

3. BIBLIOGRAFA http://www.compucaja.com.mx/ayuda/ABD004.pdf http://www.slideshare.net/luisfe/replicacin-base-de-datos-488210 http://www.postgresql.org.es/node/483

REPLICACION DE BASE DE DATOS

26