Replicacion y Cluster de Bases de Datos

March 30, 2018 | Author: Castro Rguez | Category: Oracle Corporation, Oracle Database, Databases, My Sql, Postgre Sql


Comments



Description

PortadaDatos de catalogación bibliográfica Título del libro. Replicacion y Cluster de Bases de Datos Lulu. El Salvador 2012 Materia: Bases de Datos, 005.73 C146e Formato: 21.6 x 27.9 cm. Páginas: 229 Esta edición en español es la única autorizada. Autores y/o Editores: Alex Calderón, Gómez Jacqueline,MoránLuis, Urquilla Edwin, Henry Renderos, David García, Portillo Pablo, Gómez Herber, Mendes Rebeca, Chicas Karla, Samuel Menéndez, Lisandro Martínez, Isidro Flores, Erick Valenzuela, Ana Rosales, Silvia Campos, Luis Chávez, Josué Orellana, Erick Cruz, González Mauricio, Ramírez Heysel, Zometa Henry, Cisneros Rolando, Ibarra Luis, Orellana Hugo, Ana Jiménez, Byron Guerrero, David Sandoval, Juarez Yonatan, Larios Raquel y Zelaya Josué, ii CONTENIDO Introducción ....................................................................................... iv Mysql: replicación ............................................................................... 1 Postgresql cluster con pgpool-ii.........................................................15 Oracle stream replication .................................................................. 25 Oracle data guard .............................................................................. 43 Sql server cluster ............................................................................... 60 Clúster en mysql .............................................................................. 105 Sincronización de bases de datos en nube ....................................... 121 Replicación con sql server................................................................ 143 Postgresql cluster con drbd y heartbeat ......................................... 182 Replicación con postgresql .............................................................. 197 Replicacion con postgres y pgpool en linux .................................... 214 iii Introducción El área de Bases de datos se ha desarrollado como tecnología a pasos agigantados en los últimos años, debido al hecho que las empresas consideran de vital importancia a la información, convirtiendo a la misma en el activo principal de las organizaciones. Por ello es que dentro de las organizaciones se montan infraestructuras tecnológicas de gran envergadura para soportar en un primer momento los datos de sus operaciones transaccionales. Sin embargo el área de Bases de Datos ha crecido enormemente, hasta el punto de convertirse en una especialidad de la informática, existen Maestrías orientadas a especializar en el área de Bases de Datos. Esta área abarca: Modelo Relacional y lenguaje SQL, datos NO SQL, big data, bases de datos distribuidas, bases de datos multidimensionales, Almacenes de Datos, Minería de Datos y/o Inteligencia de Negocios. El presente documento recoge una serie de proyectos académicos estudiantiles, que abordan de una forma práctica los temas de Replicación y Clustering de Bases de Datos. Se han utilizado para la implementación los principales gestores del mercado, enfatizando las diferencias que implica el concepto de réplica y clúster para cada gestor. Para cada proyecto se brinda a modo de tutorial paso a paso, las acciones a realizar para poder montar el escenario de una bases de datos distribuida, los elementos que deben configurarse, las herramientas a instalar, con lujo de detalles para facilitar la reproducción de dicho escenario en cualquier curso de bases de datos. Este aporte es realizado con mucho esfuerzo, mostrando la capacidad y deseo de aprendizaje que existe en los estudiantes de la Universidad de El Salvador, los cuales a pesar de las enormes limitantes de equipo e infraestructura, hemos realizado este aporte a la comunidad latinoamericana. Se han sorteado cantidad de limitantes, por mencionar algunos: en nuestra universidad se carece de un centro de cómputo adecuado para desarrollar los escenarios de bases de distribuidas, no se cuenta con aulas adecuadas para proyectar, hasta el acceso a un proyector se vuelve complicado, en algunas de las exposiciones de los escenarios se tenía el lio que el proyector no tenía entrada hdmi, o de repente por ser un equipo antiguo se le arruinaba un color en plena presentación. Toda una suerte de aventura, a pesar de todo ello la capacidad de aprender supera las limitantes, y pues; estamos en total disposición a recibir un apoyo de parte suya desde cualquier parte del mundo que lea este documento, cualquier apoyo por mínimo que parezca será muy bien recibido por los estudiantes de El Salvador. Puede escribir al correo [email protected] si desea apoyarnos o ayudarnos para mejorar las condiciones de aprendizaje. Además del presente libro, puede acceder a diferentes recursos en línea, como artículos o tutoriales del blog, así como también los videos que documentan cada proyecto, los cuales están en las siguientes URLs: http://BasesdeDatosUES.blogspot.com/ iv com/channel/UCdb3GLHqHU6DIURmkpJjfgw Si resulta un poco complicada la Url del canal de youtube. Le invitamos a disfrutar del presente libro y de los recursos multimedia con los que se cuenta. que sea de mucho provecho. puede poner en el buscador: bases de datos ues y encontrara rápidamente todos los videos de cada escenario de replicación.youtube.http://www. Alex Calderón v . se ha escrito con el mejor de los propósitos desde nuestro querido El Salvador. un país muy pequeño pero muy cálido desde el corazón de Centro América. . Replicación en MySQL. Cuando un esclavo se conecta al maestro. La replicación permite que los datos de un servidor de bases de datos (el maestro). Determinar las ventajas y desventajas en las diversas formas de replicación. su concepto. Conceptos: MySQL Es un sistema de gestión de bases de datos relacional. Edwin Alberto Objetivos:    Estudiar los principios acerca de replicación. y se bloquea y espera para que el master le envíe nuevas actualizaciones. 1 . Es código abierto y el soporte es brindado por Oracle. Desarrollar el procedimiento para la replicación en el gestor de bases de datos MySQL bajo un escenario Maestro – Esclavo y sistemas operativos Debian Wheezy 7. Luis Antonio Urquilla Campos. ventajas y desventajas. y mantiene un índice de los ficheros para rastrear las rotaciones de logs.6. alcances. Las características de MySQL soportan replicación asíncrona unidireccional: un servidor actúa como maestro y uno o más actúan como esclavos. Estos logs sirven como registros de actualizaciones para enviar a los servidores esclavos. distribuido y multihilo. ¿Cómo funciona la replicación?1 El servidor maestro escribe actualizaciones en el fichero de log binario. Jacqueline Stephanie Morán Monzón. La más reciente distribución es la 5. sean replicados en uno o más servidores de bases de datos (los esclavos).11 y fue lanzada el 25 de abril de 2013. específicamente en MySQL. Replicación Es el proceso de copiar y mantener objetos de las base de datos en múltiples bases de datos que forman un sistema de bases de datos distribuido. El esclavo recibe cualquier actualización que ha tenido lugar desde entonces.MySQL: Replicación Gómez Arévalo. informa al maestro de la posición hasta la que el esclavo ha leído los logs en la última actualización satisfactoria.0. de forma que el maestro y el esclavo siempre estén sincronizados. se debe ser cuidadoso para evitar conflictos entre actualizaciones que hacen los usuarios a las tablas en el maestro y las actualizaciones que hacen en las tablas de los esclavos. las sentencias que modifican datos deben enviarse siempre al maestro. Esta estrategia de balanceo de carga es efectiva si dominan consultas que no actualizan datos. El escenario es el siguiente: Las configuraciones se realizan bajo dos computadoras con Sistema Operativo Debian Wheezy 7. en caso se pueden realizar la misma configuración para varios esclavos y la replicación seguirá funcionando de la misma manera. Puede conseguirse un mejor tiempo de respuesta dividiendo la carga de consultas de clientes a procesar entre los servidores maestro y esclavo.0. pero este es el caso más habitual.Debe tenerse en cuenta que cuando se usa replicación. El maestro continúa procesando actualizaciones mientras se realiza la copia de seguridad  Desarrollo: Se va a resolver un escenario en el cual se tiene un servidor de Bases de Datos actuando como Maestro o Master y un servidor de Bases de Datos actuando como Esclavo o Slave. De otro modo. Ventajas de la Replicación: La replicación unidireccional tiene beneficios para la robustez. todas las actualizaciones de las tablas que se replican deben realizarse en el servidor maestro. velocidad. Se puede enviar consultas SELECT al esclavo para reducir la carga de proceso de consultas del maestro. En caso de problemas con el maestro. puede cambiar al esclavo como copia de seguridad. Si aún no se tiene instalado el servidor MySQL se instalará en una Terminal con la línea de comando: apt-get install mysql-server 2 . y administración del sistema:   La robustez se incrementa con un escenario maestro/esclavo. Sin embargo. Otro beneficio de usar replicación es que puede realizar copias de seguridad usando un servidor esclavo sin molestar al maestro. cnf Y se modifican y/o agregan las siguientes líneas de código: log-bin = /var/log/mysql/mysql-bin.cnf # nano /etc/mysql/my.SERVIDOR MAESTRO: Una vez instalado el servidor MySQL se procederá a las configuraciones correspondientes. el archivo my.log binlog-do-db=DATABASE_TO_BE_REPLICATED server-id=1 skip-host-cache skip-name-resolve Donde DATABASE_TO_BE_REPLICATED es el nombre de la base de datos que se va a replicar. nano o cualquier editor de texto. Se modifica con vim. 3 . primeramente se realizará la configuración del servidor Maestro:2 1. Se reinicia el servicio mysql: # /etc/init.* TO 'USER'@'%' IDENTIFIED BY 'PASSWORD'. pedirá la contraseña del servidor. ésta será la que se ha configurado en la instalación: # mysql –u root –p 4. 4 . Se accede como root a mysql.2. Se crean los privilegios para la Replicación: mysql > GRANT REPLICATION SLAVE ON *. Dentro de la consola de MySQL se creará una Base de Datos mysql > CREATE DATABASE ReplicacionDB. 5.d/mysql restart 3. 9. 8. Se establecen los privilegios: mysql > FLUSH PRIVILEGES. Se congelará la base de datos para poder obtener el respaldo de la misma y poder restaurarla en el servidor esclavo. mysql > EXIT. ya que serán utilizados en la configuración del esclavo. Este comando nos devolverá el archivo y la posición de la Base de Datos. PASSWORD: Es la contraseña del usuario esclavo. 5 . 6. % : Es la dirección donde está almacenado el esclavo. es importante. Se obtiene la información del servidor maestro: mysql > SHOW MASTER STATUS. 10. 7. puede determinarse que la dirección sea cualquiera. mysql > FLUSH TABLES WITH READ LOCK. Sale de mysql. tener presentes estos datos. ubicando el símbolo % en lugar de la dirección.Donde USER: Es el nombre del usuario del esclavo. Se accede a la base de datos: mysql > USE ReplicacionDB. éste se almacenará en la dirección hacia la cual apunta la terminal. # mysqldump -u root -p DATABASE_TO_BE_REPLICATED > DATABASE_TO_BE_REPLICATED. 6 . Luego se accede a la consola de mysql nuevamente para descongelar las tablas de la base de datos que replicamos: # mysql –u root –p mysql > USE ReplicacionDB.sql. 12.sql Donde DATABASE_TO_BE_REPLICATED es el nombre de la base de datos que se replicará. Este comando generará un archivo . mysql > UNLOCK TABLES. mysql > EXIT.11. el cual contendrá el backup de la base de datos. para que luego sea restaurada en el servidor esclavo. Con mysqldump se va a crear un backup de la base de datos. 7 . user: Es el nombre del usuario de la computadora remota.sql que fue generado. direccionIP: Es la dirección IP a la cual se copiará el archivo. transferencia punto a punto o por llaves SSH.sql > user@direccionIP:/rutaAlmacenamiento Donde: DATABASE_TO_BE_REPLICATED. A través de claves SSH.sql: Es el archivo que se generó con mysqldump en el servidor maestro. será necesario copiar el archivo .SERVIDOR ESCLAVO: En el servidor esclavo. para restaurar la base de datos a partir de él. puede ser copiado a través de una memoria usb. se transfiere el archivo de la máquina que sirve como servidor maestro a la que sirve como servidor esclavo: # scp DATABASE_TO_BE_REPLICATED. tal cual es el ejemplo de la configuración aquí detallada: 1. nano o cualquier otro se abre el archivo de configuración my.sql 3. # mysql –u root –p DATABASE_TO_BE_REPLICATED < DATABASE_TO_BE_REPLICATED. Con un editor de texto.cnf # nano /etc/mysql/my. 2. ya sea vim. por medio del archivo que contiene el backup de la misma. Se crea la base de datos en el servidor esclavo.rutaAlmacenamiento: Es la ruta donde se almacenará el archivo.cnf Y se modifican o agregan las líneas: server-id=2 replicate-do-db=DATABASE_TO_BE_REPLICATED skip-host-cache skip-name-resolve 8 . Se detienen los procesos del esclavo: mysql > SLAVE STOP.4. # /etc/init. Se reiniciará el servicio mysql para poder aplicar los cambios. Se accederá la consola de MySQL para configurar el esclavo: # mysql –u root –p 6.d/mysql restart 5. 9 . 56. también obtenida con SHOW MASTER STATUS en el servidor maestro. 10 . -> MASTER_USER='user'. -> MASTER_LOG_POS=XXX. MASTER_LOG_FILE: La dirección y el número que se obtuvo cuando se realizó el SHOW MASTER STATUS. MASTER_PASSWORD: Contraseña del servidor maestro con el cual se accede a MySQL.1'. Dónde: MASTER_HOST: Hace referencia a la dirección IP en la cual está el servidor maestro.7.0000XX'. -> MASTER_PASSWORD='password'. Luego se hará referencia al servidor maestro del cual obtendrá las actualizaciones el servidor esclavo: mysql > CHANGE MASTER TO MASTER_HOST='192.168. -> MASTER_LOG_FILE='/var/log/mysql/mysql-bin. MASTER_LOG_POS: Posición de los logs. MASTER_USER: Usuario del servidor maestro con el cual se accede a MySQL. 11 . En el servidor maestro se creará una Tabla llamada Alumno: # mysql –u root –p mysql > USE ReplicacionDB mysql > CREATE TABLE Alumno (nombre VARCHAR(10)). Se verifica el estado del servidor esclavo: mysql > SHOW SLAVE STATUS. Se inicia el servidor esclavo: mysql > SLAVE START. DEMOSTRACIÓN: 1.8. 9. 12 . Y se podrá comprobar que la tabla efectivamente ha sido creada: 2. mysql > USE ReplicacionDB.Y luego verificamos las tablas con el comando: mysql > SHOW TABLES. se accederá a MySQL y se verán reflejados los cambios de la tabla creada en el servidor maestro: # mysql – u root –p mysql > SHOW DATABASES. mysql > SHOW TABLES. En el servidor esclavo. Y se podrá ver que el cambio ha sido aplicado en la base de datos. Referencias: 1.com/blog/itdojo/set-up-mysql-database-replication-toensure-up-to-date-backups/3340?pg=1 13 . de 2013 en http://www.com/doc/refman/5. Oracle MySQL.mysql. Obtenida el 31 de abril 2. Set up MySQL database replication to ensure up-to-date backups.0/es/replication.. Obtenida el 3 de mayo de 2013 en http://dev.techrepublic. Capítulo 6.html Wallen J. Replicación en MySQL. . nos referimos a una arquitectura en la que tenemos varios equipos con parte de los datos del usuario trabajando al unísono como un solo sistema. Es el sistema de gestión de bases de datos de código abierto más potente del mercado y en sus últimas versiones no tiene nada que envidiarle a otras bases de datos comerciales. Cuando hablamos de clúster de bases de datos. Un fallo en uno de los procesos no afectará el resto y el sistema continuará funcionando. David García Objetivos:      Aprender los conceptos básicos sobre el manejo de un clúster utilizando PostgreSQL 9. ¿Qué es PGPOOL-II? pgpool-II es un middleware que se encuentra entre los servidores de PostgreSQL y un cliente de base de datos PostgreSQL. ¿Qué es PostgreSQL? PostgreSQL es un sistema de gestión de bases de datos objeto-relacional.PostgreSQL Cluster con PGPOOL-II Henry Renderos.1 y PGPOOL-II en Linux. Realizar un escenario demostrativo sobre el uso de un clúster empleando replicación de bases de datos y sentencias SQL. La arquitectura de un clúster de base de datos viene definida por la manera en que se almacenan los datos en cada nodo. Visualizar el comportamiento de la replicación en la red. Conceptos: ¿Qué es un clúster? Un clúster es simplemente una colección de componentes que se unen y trabajan como un solo componente para proveer alta disponibilidad. Ofrece las siguientes características: Agrupación de conexiones 15 . distribuido bajo licencia BSD y con su código fuente disponible libremente. Establecer los parámetros de inicialización para el clúster. Comprender el funcionamiento de un clúster. PostgreSQL utiliza un modelo cliente/servidor y usa multiprocesos en vez de multihilos para garantizar la estabilidad del sistema. una aplicación de base de datos (frontend) piensa que pgpool-II es el servidor PostgreSQL actual. La consulta paralela es la que funciona mejor en la búsqueda de datos a gran escala. bases de datos.pgpool-II mantiene las conexiones establecidas a los servidores PostgreSQL. Debido a que pgpoolII es transparente para el servidor y el cliente. la realización de una consulta SELECT en cualquier servidor devolverá el mismo resultado. una aplicación de base de datos existente se puede utilizar con pgpool-II casi sin un cambio en su código fuente. pgpool-II se aprovecha de la función de replicación con el fin de reducir la carga en cada servidor PostgreSQL. mejorando el rendimiento global del sistema. Balanceo de carga Si se replica una base de datos (ya que se ejecuta en el modo replicación o modo maestro / esclavo). reduciendo el tiempo de ejecución total. la versión del protocolo) entra en juego reduce la sobrecarga de la conexión. 16 . En un escenario ideal. y los reutiliza cada vez que una nueva conexión con las mismas propiedades (es decir. Consultas en paralelo Con la función de consultas en paralelo. pgpool-II habla backend de PostgreSQL y el protocolo de interfaz. de manera que el servicio pueda continuar sin interrupción si uno de esos grupos falla. aumenta el consumo de recursos y tiene un impacto negativo en el rendimiento general del sistema. nombre de usuario. sin embargo. Lo hace mediante la distribución de las consultas SELECT entre los servidores disponibles. El equilibrio de carga funciona mejor en un escenario donde hay una gran cantidad de usuarios que ejecutan muchas consultas de sólo lectura al mismo tiempo. y nuevas conexiones son rechazados cuando se alcanza este número. Replicación pgpool-II puede gestionar múltiples servidores PostgreSQL. Limitar el exceso de conexiones Hay un límite en el número máximo de conexiones simultáneas con PostgreSQL. por lo que una consulta se puede ejecutar en todos los servidores al mismo tiempo. pgpoolII también tiene un límite en el número máximo de conexiones. y mejora el rendimiento global del sistema. y el servidor (backend) ve a pgpool-II como uno de sus clientes. Al aumentar este número máximo de conexiones. Por lo tanto. La activación de la función de replicación hace que sea posible la creación de una copia de seguridad en tiempo real en 2 o más grupos PostgreSQL. el rendimiento de lectura podría mejorar proporcionalmente al número de servidores PostgreSQL. y transmite mensajes entre un backend y un frontend. pero las conexiones adicionales se pondrán en cola en lugar de devolver un error de inmediato. los datos se pueden dividir entre varios servidores. Desarrollo: INSTALACIÓN 1. # apt-get install ntp openssl file psmisc sysstat bzip2 unzip nmap dstat rsync wget ccze tcpdump pciutils dnsutils host 2. 17 . esto nos facilitará hacer referencias a nombres de host y no a direcciones IP. # nano /etc/hostname Acá le colocaremos el nombre de pgsql1 en el nodo 1 y pgsql2 en el nodo 2. Utilidades para la gestión y el mantenimiento del clúster. Configuraremos dos archivos del sistema de Debian. # nano /etc/hosts Acá agregaremos los nombres de host pertenecientes al clúster con sus respectivas direcciones IP. 168.4 Máscara de red de 24 bits. el paquete de desarrollo de PostgreSQL y las utilidades de compilación de GNU) # apt-get install libpq-dev postgresql-server-dev-9.1 bison build-essential 5.En este momento tenemos configurados los nodos del clúster de la siguiente forma. 4. Instalaremos las cabeceras de la librería de PostgreSQL.7 Nodo 2 o Hostname: pgsql2 o Dirección IP: 192.1 3. instalaremos PostgreSQL en ambos nodos del clúster: . luego de esto debemos reiniciar los nodos:     Nodo 1 o Hostname: pgsql1 o Dirección IP: 192.168. Dirección IP del enrutador: 192. 18 Una vez instalado.1. Comenzaremos a configurar PostgreSQL en ambos nodos pero pgpool-II solo en el nodo pgsql1.1. Los comandos deberán ejecutarse como root (#) o como el usuario postgres ($).1.168. 1/main/pg_hba. Finalmente instalamos pgpool-II en el nodo identificado como pgsql1 # apt-get install pgpool2 libpgpool0 CONFIGURACIÓN DE POSTGRESQL Los siguientes pasos se aplican a las instancias de PosgreSQL en los nodos pgsql1 y pgsql2. el acceso sólo debe permitirse para el usuario pgpool2 desde la dirección IP en donde está instalado. 1.# apt-get install postgresql-9.1 postgresql-contrib-9. (NOTA: esto se hace por motivos de enseñanza. añadiendo el usuario de base de datos (role) pgpool2.1 postgresl-doc-9. Comenzaremos.conf El fichero deberá quedarnos de la siguiente manera: 19 . Editamos ahora el fichero /etc/postgresql/9.1 uuid libdbd-pg-perl 6.conf y añadimos el acceso para todos los usuarios desde cualquier dirección IP.) # nano /etc/postgresql/9. sin contraseña: # su – postgres $ createuser –superuser pgpool2 2.1/main/pg_hba. como usuario postgres. por defecto. # service postgresql restart CONFIGURACIÓN DE PGPOOL-II La configuración de pgpool-II la realizaremos únicamente en el nodo pgsql1.3. pues sólo ese host lo posee. Reiniciamos PostgreSQL para activa los cambios. listen_addresses = ‘*’ También podemos restringirlo a que solo escuche peticiones provenientes de la dirección IP en donde se encuentra pgpool-II 4. Editamos el fichero /etc/postgresql/9. Por último indicaremos a PostgreSQL que escuche en todas las interfaces pues. sólo lo hace en el localhost.conf y cambiamos la siguiente directiva. 20 .1/main/postgresql. Si queremos arrancar pgpool-II en modo de depuración primero lo detendremos con el comando “service pgpool2 stop” y lo arrancaremos en modo debug con de la siguiente manera: 21 . Se configurarán:    Pool de conexiones Replicación Balanceo de carga Las únicas directivas que modificaremos se muestran a continuación. las demás las dejaremos intactas: listen_addresses = ‘*’ port = 9999 backend_hostname0 = ‘pgsql1’ backend_port0 = ‘5432’ backend_weight0 = 1 backend_hostname1= ‘pgsql2’ backend_port1 = ‘5432’ backend_weight1 = 1 replication_mode = true load_balance_mode = true replicate_select = true pgpool2_hostname = ‘pgsql1’ 2. Editaremos el archivo /etc/pgpool2/pgpool. Para arrancar pgpool-II lo haremos con el siguiente comando (start o restart): # service pgpool2 start <restart> 3.conf Deberemos editar el archivo para configurarlo a nuestra medida.1. Si nos loggeamos como usuario postgres en los dos nodos del clúster (su – postgres) y ejecutamos el siguiente comando para visualizar las bases de datos.conf 4.# pgpool –n –d –f /etc/pgpool2/pgpool. -p es el puerto que definimos en el archivo /etc/pgpool2/pgpool. Crearemos una base de datos que será replicada a través de pgpool-II de la siguiente forma: # createdb –h pgsql1 –p 9999 –U pgpool2 basesdedatosues 2. En otra pestaña o ventana de la terminal probaremos conectarnos a través de pgpool-II con el siguiente comando: # psql –h pgsql1 –p 9999 –U pgpool2 –d postgres El significado del comando anterior se detalla a continuación:     -h es el nombre del host al que nos vamos a conectar y en donde está instalado pgpool-II. nos debería de aparecer en cada nodo la base de datos que creamos en el paso anterior: 22 .conf -U es el usuario que creamos en los dos nodos del clúster. -d es la base de datos a la que nos vamos a conectar Si todo va bien podremos ver que en la terminal se nos muestra algo como sigue: postgres=# Lo que nos indica que nos hemos podido conectar a través de pgpool-II PRUEBAS DE REPLICACIÓN 1. realizaremos una consulta insert a través de pgpool-II y observaremos que aparecerán los siguientes paquetes en nuestra escucha: 23 . 1. Seleccionaremos la interfaz eth0 y capturaremos algunos paquetes.$ psql -l POSTGRESQL Y PGPOOL-II EN LA RED A continuación se muestran algunas capturas de lo que sucede en la red al momento de que se realiza una sentencia SQL a través de pgpool-II en los nodos pertenecientes al clúster. Instalaremos el sniffer wireshark y luego lo ejecutaremos: # apt-get install wireshark # wireshark & 2. htmlpgpool Global Development Group (2003 – 2011). (1 Nov – 2008) http://linuxsilo. y efectivamente vemos en el paquete que esa sentencia es la replicada en el nodo pgsql2 con dirección IP 192.projects.1. Referencias:Jaume Sabater (2008).html 24 .4.‟Pass‟). La query que fue introducida en el nodo pgsql1 a través de pgpool-II fue “insert into usuario values („Base‟. Observaremos con más detenimiento el paquete 874 y veremos que al momento de la replicación lo que se transporta a través de la red son las sentencias SQL.org/pgpool-II/doc/pgpool-en.pgfoundry. Pgpool-II user manual http://pgpool.net/articles/postgresql-pgpool. Replicación y alta disponibilidad de PostgreSQL con pgpool-II.3.168. Oracle Stream Replication Portillo Alvarado. Gómez Arana. Chicas Blanco. Rebeca Marcela. Pablo Oswaldo. Herber Oswaldo. Presentar con claridad las configuraciones o pasos que se deben seguir para llevar a cabo una replicación stream en Oracle database. Replicar cambios DML de manera bidirectional en 2 Bases de Datos usando el gestor Oracle Estándar Edition 11g. Karla Grisel. 25 . Objetivos:     Explicar de forma clara los conceptos relacionados con la replicación Stream en Oracle database 11g R2. Explicar la diferencia entre una replicación síncrona y una replicación asíncrona. Mendes Salgado. los DDL no son soportados. 26 . Replicación Asíncrona: Replicación mediante procesos.Conceptos: Antes de seguir es importante conocer algunos conceptos. o de una base de datos a otra. se captura esa transacción. los cambios se propagan a través de redo-logs. Tipos de Streams: Replicación Síncrona: Este tipo de replicación tiene sus limitantes. permitiendo tener asi ambas bases de datos “sincronizadas” y la información más segura. ¿Qué es un Oracle Stream? Es una herramienta proporcionada por Oracle que se encarga de propagar y administrar datos.oracle. ya que solo soporta la replicación de 1 o pocas tablas de un esquema determinado y solo replica cambios DML. los datos se propagan hacia la base de Datos destino donde se aplican dichos cambios. principalmente debe ser utilizada para aplicaciones en las cuales se necesite un flujo pequeño de información. Utiliza queues llamadas también colas que se encargan de capturar la replicación y encolarla hacia la otra base de datos. una vez hecho esto.htm#STRMS168. y viceversa. Básicamente la replicación Stream de Oracle consta de estos 3 pasos: D T D CAPTURE PROPAGATION APPLY A Destinetion Database Source Database Cuando usted inserta un dato y luego que hace commit. Puede propagar tanto cambios DDL como DML. Para más información consulte: http://docs.111/b28321/strms_capture. transacciones y eventos en una fuente de datos ya sea dentro de una base de datos.com/cd/B28359_01/server. esquemas o base de datos. y pueden ser realizados mediante COLAS o mediante PROCESOS dependiendo de si es síncrona o asíncrona. este se envía mediante redologs que son interpretados en la base de datos destino. Apply (aplicacion): Este paso se realiza en la base de datos destino quien toma los redologs y los aplica en sus tablas. estos cambios pueden ser DML o DDL dependiendo del tipo de replicación q se este realizando. Propagation (propagación): Este paso lo realiza la base de datos origen quien envía el cambio luego de capturarlo.Capture (captura): Esta paso se lleva a cabo en la base de datos origen de la replicación capturando los cambios en el momento en que son realizados. 27 . SQL> ALTER DATABASE ARCHIVELOG.16.1 El servidor #2 la dirección 172. Si usted necesita replicar grandes volúmenes de información ya sea una base de datos entera o un esquema completo deberá utilizar otro tipo de instalación como la Enterprise que soporta la replicación de tipo asíncrona.0.Desarrollo: Este documento explica cómo implementar una replicación de ORACLE STREAM en ORACLE 11g R2 a nivel de servidores Oracle entre 2 bases de datos diferentes en Sistemas Operativos Windows Server 2012. Habilitar el modo Archive log en ambas Bases de Datos. arquitectura para 64bits.2.16. SQL> shutdown immediate SQL> startup mount. este documento se encargara únicamente de la replicación síncrona (a través de queues/colas) entre bases de datos. Si usted creo las bases de datos en modo archive log puede obviar el paso 1. Desde nuestro punto de vista lo primero que hay que hacer es revisar el tipo de instalación que realizamos ya que si es la Standar Edition la única forma de realizar la replicación de Streams es atreves de un mecanismo sincrono ya que esta instalación no soporta la replicación a través de procesos.   El servidor #1 tiene la dirección 172. En nuestro caso se creara la base de datos BDA en el servidor #1 y BDB en el servidor #2. Ambos servidores se encuentran conectados punto-punto utilizando la subred 172.0. SQL> ALTER DATABASE ARCHIVE LOG START 28 . debemos crear las Bases de Datos en modo archive log.16.0.0/24. 1. SQL> ALTER DATABASE OPEN. CONFIGURACION DEL ENTORNO DE RED. Vea Imagen 1 Imagen 1 Antes que todo. luego diríjase a la sección Almacenamiento y de click a Tablespaces.1 Editar el archivo tnsnames. Dar click el boton crear. Ver configuracion completa en Imagen 3. Ver imagen 4.0\dbhome_1\NETWORK\ADMIN\tnsnames. En la seccion Crear Trablespace coloca el nombre que se le dara al tablespace.ORA. dar click en el boton Agregar.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = BDA) ) ) 3. Es recomendable crear un usuario nuevo que administre la replicación stream. en nuestro caso se llama streams_tbs.  Damos click en Continuar. 2.ora NOTA: ya existe en dichos archivos otra entrada con el nombre de la base de datos que creamos al inicio. dicho usuario deberá ser creado de la misma forma en ambas bases de datos.2. Agregar las cadenas de conexión respectivas en el archivo TNSNAMES. BDA = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172. 3. El directorio en el que se encuentra el archivo es C:\app\Oracle\product\11. Ver Imagen 2.2)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = BDB) ) ) 2. De click en la ficha Servidor.ora en Servidor #2 (BDB) agregando la siguiente cadena de conexión referente a la Base de Datos BDA. En su navegador abra el Enterprise Manager y conéctese como usuario sys.    29 . BDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.ora en Servidor #1 (BDA) agregando la siguiente cadena de conexión referente a la Base de Datos BDB.1Creación de Tablespace y Datafiles.  Vamos al final de la pagina y damos click en Aceptar Se puede ver que se a creado correctamente el tablespace. Estas nos ayudaran a lograr la conectividad entre ambos servidores a nivel de las bases de datos.16.0.16.  En la seccion Almacenamiento damos un incremento de 100MB.dbf.0. el cual sera streams_tbs. El tamaño maximo del archivo debe de quedar en Ilimitado. Esto abrira la seccion Agregar Archivos de Datos  Escribimos el nombre.  En la seccion Archivo de Datos.2.2 Editar el archivo tnsnames. Creación de Usuario administrador de la replicación stream De igual manera creamos un Tablespace para el usuario y asignamos los privilegios necesarios para que nuestro usuario pueda realizar tareas administrativas sobre nuestra replicación stream. esto abrira una ventana. Imagen 2 Imagen 3 30 . Ver Imagen 5. para ello damos click en el botón Crear. Ir a ficha Servidor. En el apartado Seguridad damos click en la opción Usuarios. estos no nos interesan.2-      Crea el usuario strmadmin. Se nos abre una ventana en la que hay varios usuarios creados. Creamos el usuario strmadmin.Imagen 4 3. 31 . con contraseña strmadmin y le asignamos el tablespace creado recientemente streams_tbs y como tablespace Temporal le asignamos el TEMP. por lo tanto crearemos uno nuevo. Damos click en Aceptar y listo hemos creado nuestro usuario. agregamos el usuario strmadmin creado recientemente. luego Terminar. Ahora lo que queda es dejar nuestro Usuario como Superadministrador. Dar click en la ficha Servidor.33. Ir a la sección Administración de Enterprise Manager y seleccionamos Usuarios de Enterprise Manager.      32 . Damos click en Revisar. para ello seleccionamos el usuario recién agregado. damos click en el botón Revisar. para ello damos click en la lamparita que se muestra en la Figura 6. luego en Terminar y listo. damos click en Seleccionar.3. se abrirá la ventana en la que lo dejamos como Superadministrador como se muestra en la Imagen 7. Lo primero sera convertir nuestro usuario strmadmin en un superusuario del EM (Enterprise manager) esto nos va a permitir gestionar y monitorear nuestra replicación stream síncrona con la ayuda de las herramientas del enterprise manager. En la sección Crear Administrador. Nos abrirá una nueva ventana.1 Ahora vamos a asignar privilegios. se abrirá una ventana en la que debemos seleccionar nuestro usuario strmadmin.Imagen 5 3. Una vez seleccionamos el usuario. 33 .Imagen 6 Imagen 7 La lista de usuarios debe quedar como se muestra en la Imagen 8. Con esto tenemos a nuestro usuario strmadmin con privilegios de Superadministrador. SQL> grant execute on dbms_propagation_adm to strmadmin. SQL> grant execute on dbms_flashback to strmadmin. Estos privilegios le permitirán a nuestro usuario realizar tareas de administración y ser dueño de nuestra replicación stream. / 3. dba to strmadmin. SQL> begin dbms_streams_auth.3.3. 34 .2.3.Agregación de Privilegios requeridos con GRANT.grant_admin_privilege (grantee => 'strmadmin'. SQL> grant execute on dbms_apply_adm to strmadmin. grant_privileges => true).Imagen 8 3. SQL> grant imp_full_database to strmadmin. 3.4 Agregación de los roles EXP_FULL_DATABASE e IMP_FULL_DATABASE. end. SQL> grant exp_full_database to strmadmin. Abrimos una consola y con la ayuda del sqlplus nos conectamos como usuarios sys.3 Agregar el rol DBA SQL> grant connect. >sqlplus „/ as sysdba‟ SQL> grant execute on dbms_aqadm to strmadmin. resource. SQL> grant execute on dbms_capture_adm to strmadmin. SQL> grant execute on dbms_streams_adm to strmadmin. ANYDATA Creamos las colas capture_queue y apply_queue como se muestran en las Figuras Imagen 9 e Imagen 10. Vea el siguiente enlace y diríjase a la sección http://docs. Este paso debe llevarse a cabo en el Enterprise Manager. ingresando con el usuario que se creó anteriormente y con su respectiva contraseña. Nos conectamos en nuestra Base de Datos y creamos un enlace hacia la Base de Datos a la que nos deseamos conectar.oracle. 5 Creación de las colas. Seleccionamos Cola Normal.htm#CHDJHCAI     Ir a la pestaña Movimiento de Datos En la sección Streams seleccionar la opción Gestionar Colas Avanzadas.  35 .2Creación de Database Link en Base de Datos de servidor #2: BDB. Esto abrirá una nueva ventana Buscamos un botón que dice Crear. 4. capture_queue y apply_queue .3. Se crearan 2 parámetros de inicialización. Esto debe de realizarse en ambas Bases de Datos. 4 Crear el Database link El dblink debe tener el mismo nombre global de la base de datos de destino.111/b28324/tdpii_common_ii.3.5 Agregación de variables de entorno necesarias para el Streams. SQL> alter system set global_names=true. Para ello nos logeamos en el servidor 2 como nuestro usuario strmadmin utilizando la cadena de conexión de nuestra base de datos en este caso BDB y Se crea el enlace hacia la Base de Datos de servidor #1 BDA. SQL> alter system set Streams_pool_size=100m.com/cd/B28359_01/server.1Creación de Database Link en Base de Datos de Servidor #1: BDA Para ello nos logeamos en el servidor 1 como nuestro usuario strmadmin utilizando la cadena de conexión de nuestra base de datos en este caso BDA y Se crea el enlace hacia la Base de Datos de servidor #2 BDB. Tipo de Dato SYS. 4. SQL> CONNECT strmadmin/strmadmin@BDB SQL> CREATE DATABASE LINK BDA CONNECT TO strmadmin IDENTIFIED BY strmadmin USING 'BDA'. el dblink debe ser creado en el esquema del Database Stream Administrator. en nuestro caso BDA y BDB. SQL> CONNECT strmadmin/strmadmin@BDA SQL> CREATE DATABASE LINK BDB CONNECT TO strmadmin IDENTIFIED BY strmadmin USING 'BDB'. con nombres. Imagen 9 Imagen 10 36 . apply_captured => FALSE). BEGIN DBMS_STREAMS_ADM. Esta tabla debe crearse en ambas bases de datos ya que nuestra replicación será síncrona. Con esto desbloqueamos el esquema hr y le asignamos la contraseña hr.apply_queue'. > sqlplus „/ as sysdba‟ SQL> alter user hr account unlock identified by hr. para ello: Conectarse al esquema de la Base de Datos en el que se desea crear una nueva tabla. 7 Creación y agregación de reglas del apply process en ambas Bases de Datos. > sqlplus „/ as sysdba‟ SQL> connect hr/hr@BDX Donde X representa A o B. SQL> create table alumno ( ID number primary key. 37 . de lo contrario reemplácela por BDB. nombre varchar2(20). streams_name => 'apply_emp_dep'. streams_type => 'apply'. Ahora creamos la tabla.1. => 'strmadmin. Creación del apply process en BDA ubicada en Servidor #1. / 7. por lo tanto no podremos replicar cambios de tipo DDL y al crear una tabla en una base de datos esta no se replicara en la otra.1. Si no ha desbloqueado el esquema. para ello creamos esta tabla en este esquema y en ambas DB y la definiremos mas adelante para ser el objeto que tenemos como objetivo de nuestra replicación. Nos conectamos a dicho esquema.6 Creación de tabla en el esquema del usuario HR.alumno'. => 'apply_emp_dep'. puede hacer lo siguiente en SQLPLUS desde el usuario sys.1BEGIN DBMS_APPLY_ADM. Si está en maquina Servidor #1 reemplace BDX por BDA.Agregación de reglas del apply process en BDA ubicada en Servidor #1. carrera varchar2(20)).ADD_TABLE_RULES( table_name => 'hr. 7.2.CREATE_APPLY( queue_name apply_name END. Para este caso se usara el esquema hr. apply_captured => FALSE).alumno'.Agregación de reglas del apply process en BDB ubicada en Servidor #2. queue_name => 'strmadmin. / 38 . source_database => 'BDA'). => 'apply_emp_dep'. / 7. streams_type => 'apply'. / 7. END. BEGIN DBMS_STREAMS_ADM.1BEGIN DBMS_APPLY_ADM. END.2. streams_name => 'apply_emp_dep'.queue_name => 'strmadmin. END.apply_queue'. source_database => 'BDB').apply_queue'.2.CREATE_APPLY( queue_name apply_name => 'strmadmin. Creación del apply process en BDB ubicada en Servidor #2.apply_queue'.ADD_TABLE_RULES( table_name => 'hr.2. / 8.1. destination_queue_name => 'strmadmin.ADD_TABLE_PROPAGATION_RULES( table_name streams_name source_queue_name => 'hr. => TRUE). => 'strmadmin. En Base de Datos BDA.apply_queue@BDA'. => 'BDA'. En Base de Datos BDB. 39 . / => 'BDB'. => 'strmadmin. => TRUE).alumno'. => 'send_emp_dep'.alumno'. Configuración de la Propagación para la notificación de cambios.8 8. BEGIN DBMS_STREAMS_ADM. source_database queue_to_queue END. source_database queue_to_queue END.ADD_TABLE_PROPAGATION_RULES( table_name streams_name source_queue_name => 'hr. destination_queue_name => 'strmadmin.capture_queue'.capture_queue'.2. BEGIN DBMS_STREAMS_ADM.apply_queue@BDB'. => 'send_emp_dep'. alumno'.SET_TABLE_INSTANTIATION_SCN@BDB( source_object_name => 'hr. DECLARE iscn NUMBER. END. 40 . BEGIN iscn := DBMS_FLASHBACK. Esto es necesario para capturar lo que se propaga de la otra Base de Datos con la que se está conectado.1 Configuración de instanciación de SCN.GET_SYSTEM_CHANGE_NUMBER(). En ambas Bases de Datos hacer lo siguiente. / => iscn). instantiation_scn END. En Base de Datos BDA. streams_type => 'sync_capture'. source_database_name => 'BDA'. DBMS_APPLY_ADM. BEGIN DBMS_STREAMS_ADM. streams_name => 'sync_capture'.ADD_TABLE_RULES( table_name => 'hr.alumno'. queue_name => 'strmadmin. / 10 10.9 Configuración de Captura Síncrona.capture_queue'). SET_TABLE_INSTANTIATION_SCN@BDA( source_object_name => 'hr. Si nos conectamos en Base de Datos BDB como hr y hacemos un select de la siguiente forma obtendremos el siguiente resultado.10. 41 . SELECT * FROM alumno. DBMS_APPLY_ADM. BEGIN iscn := DBMS_FLASHBACK.alumno'.’Sistemas’). commit. INSERT INTO alumno values(1.’Pablo’.START_APPLY( apply_name => 'apply_emp_dep'). Esta configuración se hace en ambas Bases de Datos. => iscn). INSERT INTO alumno values(2.GET_SYSTEM_CHANGE_NUMBER(). / 12 Probar nuestro Oracle Stream. / 11 Iniciar apply process. END. y se propagaran los cambios a BDA.2 En Base de Datos BDB. DECLARE iscn NUMBER.’Oswaldo’. Nos conectamos en la base de Datos BDA conectados como usurio “hr” y contraseña “hr” e insertamos algunos campos. source_database_name => 'BDB'. BEGIN DBMS_APPLY_ADM.’Sistemas’). De igual forma se pueden ingresar campos en la base de Datos BDB. instantiation_scn END. 1 Pablo Sistemas 2 Oswaldo Sistemas. 111/b28321/strms_capture.com/cd/B28359_01/server.Referencias:  Documentación oficial proporcionada por Oracle : http://docs.htm#CHDJHCAI 42 .htm#STRMS168 http://docs.com/cd/B28359_01/server.111/b28324/tdpii_common_ii.oracle.oracle. Oracle Corporation es una de las mayores compañías de software del mundo. Lisandro Martínez. borrar.Oracle Data Guard Samuel Menéndez. Permitir que una base de datos standby física esté abierta para acceso de solo lectura– para informes. como Oracle Designer. modificación y extracción de la información en una base de datos. Un Sistema de Gestión de Bases de Datos (SGBD) es un conjunto de programas que permiten el almacenamiento. Los usuarios pueden acceder a la información usando herramientas específicas de interrogación y de generación de informes. etc. para administrar el acceso de usuarios a los datos y recuperar la información si el sistema se corrompe. y debido al desarrollo tecnológico de campos como la informática y la electrónica. Isidro Flores. la mayoría de las bases de datos están en formato digital (electrónico).  Conceptos Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. mientras se aplican cambios a la base de datos de producción. clasificación. o bien mediante aplicaciones al efecto. Oracle JDeveloper y Oracle Developer Suite. Identificar todos requisitos necesarios tanto de software como de hardware para tener un óptimo rendimiento en la tecnología Oracle en su versión Enterprise. además de proporcionar herramientas para añadir. Sus productos van desde bases de datos (Oracle) hasta sistemas de gestión. destacando: 43 . Actualmente. La mayoría de los SGBD incluyen un generador de informes. La adquisición de Sun le otorgó un papel de liderazgo en el campo del software. Erick Valenzuela Objetivos    Documentar la creación de una base de datos standby (física) con la solución de Oracle Data Guard 11g R2. modificar y analizar los datos. Los SGBD también proporcionan métodos para mantener la integridad de los datos. La compañía es el proveedor líder mundial de software de gestión de información y la segunda mayor compañía de software independiente. Cuenta además. acceso basado en la web. consultas simples o complejas. Hoy Oracle es el estándar de oro para la tecnología de base de datos y aplicaciones en las empresas en todo el mundo. Permite presentar la información de la base de datos en variados formatos. En este sentido. y por ende se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos. También puede incluir un módulo gráfico que permita presentar la información con gráficos y tartas. Sincronizar una base de datos standby física con su contraparte de producción para la protección de datos y la alta disponibilidad. con herramientas propias de desarrollo para realizar potentes aplicaciones. Se considera a Oracle Database como uno de los sistemas de bases de datos más completos. una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. Data Guard 11g versión 2 está diseñado para reducir el impacto del transporte sincrónico en el rendimiento de la base de datos principal. Ahora los datos redo se transmiten a la base de datos de reserva remota en paralelo con las E/S de archivos de registro locales en línea de la base principal. actualizar a versiones completas o implementar otros cambios significativos en la base de datos. o bien manejar el crecimiento continuo de trabajo de manera fluida. la producción pasa a la base de datos de reserva. errores y daños. El mantenimiento se realiza primero en la base de datos de reserva. Una vez completadas las tareas de mantenimiento. también puede servir para aliviar a la base de datos principal de la sobrecarga de realizar backups. una red o un proceso.    Soporte de transacciones: Una transacción es una interacción con una estructura de datos compleja. La transacción debe realizarse de una sola vez y sin que la estructura a medio manipular pueda ser alcanzada por el resto del sistema hasta que se hayan finalizado todos sus procesos. Oracle Data Guard proporciona la infraestructura de software de administración. que varía dependiendo de la estabilidad que se requiera. De ese modo. que aseguran la continuidad de los negocios reduciendo al mínimo el impacto del tiempo de inactividad programado y no programado. compuesta por varios procesos que se han de aplicar uno después del otro. desastres. Una base de datos física de reserva. Data Guard es una de las numerosas características de alta disponibilidad (HA) integradas en Oracle Database. Escalabilidad: es la propiedad deseable de un sistema. El único tiempo de inactividad es el necesario para efectuar la transición. Estabilidad: se dice que un sistema es estable cuando su nivel de fallos disminuye por debajo de un determinado umbral. Soporte multiplataforma: es un atributo conferido a los programas informáticos o los métodos de cálculo y los conceptos que se ejecutan e interoperar en múltiples plataformas informáticas. control y automatización para crear y mantener una o más bases de datos de reserva y así proteger los datos de Oracle contra fallas. como es una réplica exacta de la base principal. que indica su habilidad para reaccionar y adaptarse sin perder calidad. y 44 . o bien para estar preparado para hacerse más grande sin perder calidad en los servicios ofrecidos.[1] Las bases de datos de reserva o stanby pueden usarse para realizar tareas de mantenimiento programadas en forma gradual. aumenta la disponibilidad y se reduce el riesgo al realizar mantenimiento de hardware o del sistema operativo. mantenimiento de sitios o al aplicar nuevos grupos de parches a la base de datos. por lo cual resulta interesante para complementar una base de reserva asincrónica remota a fin de lograr una protección de alta disponibilidad y cero pérdida de datos contra fallas de las bases de datos y los componentes (fallas de redes SAN. Independientemente del servicio de transporte (ya sea sincrónico o asincrónico) o el modo de protección que se utilice. Oracle® Database SQL Language Reference 11g. de http://docs. se permite mayor distancia geográfica entre las bases de datos principal y de reserva en una configuración sincrónica con cero pérdidas de datos. 45 . Sistema operativo OpenSUSE en su versión 12. puede reducir el impacto de la replicación sincrónica en el rendimiento de la base de datos principal hasta alcanzar un nivel cercano a cero. Esto significa que usted ya no necesita una copia local de la pfile para iniciar la base de datos desde un equipo remoto. Oracle 2010. una transición siempre es una operación en la que no se pierde ningún dato.así se evita que las E/S de reserva influyan sobre el total de tiempo de recorrido de ida y vuelta. y usted no será capaz de iniciar la base de datos más. [2] Un SPFILE (archivo de parámetros del servidor).com/cd/B28359_01/server. Un cable UTP cruzado.3 (32 bits). por otro lado. en ese ese caso la base de datos secundaria lleva un backup de todos los datos y se pueden acceder a ellos pero en modo protegido o de lectura. Los programadores y los administradores de bases de datos (DBA's) lo usan de forma muy común como interfaz fundamental en la mayoría de las instalaciones de software de Oracle.htm Desarrollo La práctica consta de dos bases de datos: una primaria y una secundaria que servirá de respaldo en caso de fallar la primaria. [3]  SQL*Plus es un programa de línea de comandos de Oracle que puede ejecutar comandos SQL y PL/SQL de forma interactiva o mediante un script. actualizaciones graduales de la base de datos de Oracle y otras tareas de mantenimiento que se realizan en las bases de datos. es necesario utilizar la versión Enterprise ya que en las demás versiones no cuenta con las herramientas necesarias para configurar un Data guard. Requisitos:      2 computadoras con características similares (una se utilizara como primaria y la otra como bases de datos secundaria). El archivo pfile contiene todos los parámetros de inicialización de la base de datos. En redes de baja latencia.oracle. Edición de una SPFILE se corrompen. por ejemplo). La máquina primaria debe tener instalada una base de datos y la maquina secundaria únicamente el software de Oracle (sin base de datos). De ese modo. es un archivo binario de servidor persistente que sólo se puede modificar con el comando "ALTER SISTEMA DE JUEGO". SQL*Plus opera como una herramienta relativamente simple con una interfaz de líneas de comando básica. obtenida el 1 de mayo de 2013. Una transición es una operación planificada que se usa para reducir el tiempo de inactividad durante el mantenimiento programado. Oracle Enterprise 11g R2 (32 bits).111/b28286/statements_6016. como actualizaciones de hardware o del sistema operativo. 168.100/24 up Maquina secundaria: 192.15.Lo primero que debe hacerse es que cada computadora tenga una dirección IP del mismo rango para tener conectividad entre las dos computadoras.15. en este caso se utilizan las siguientes: Maquina primaria: 192.ora queda de la siguiente manera: 46 .101/24 up Los nombres de host quedan de la siguiente manera: Base de Datos Primaria: dga1 Base de Datos Stanby: dga2 Una vez comprobada la conectividad se procede a configurar las bases de datos.168.101/24 Línea de comando: ifconfig eth0 192. BASE DE DATOS PRIMARIA Configuración del Listener En esta explicación estamos utilizando el puerto 7438 y el archivo listener.15.15.168.168.100/24 Línea de comando: ifconfig eth0 192. se establece de la siguiente manera: SQL>SHUTDOWN IMMEDIATE. signo de número (#) y el signo de dólar ($). De cada base de datos DB_UNIQUE_NAME debe ser único dentro de la empresa. [4] 47 . LOG_MODE -----------NOARCHIVELOG SQL> Si en dado caso no se encuentra en dicho modo.Verificar que la base de datos está en modo archivelog: SQL>SELECT log_mode FROM v$database. en este caso DB11G en la base de datos primaria. guion bajo (_). SQL>STARTUP MOUNT. Los siguientes caracteres son válidos en un nombre de base de datos: caracteres alfanuméricos. DB_UNIQUE_NAME especifica un nombre único global para la base de datos. DB_NAME especifica un identificador de base de datos de hasta 8 caracteres. Este parámetro debe ser especificado y debe corresponder con el nombre especificado en la sentencia CREATE DATABASE. Inicialización de parámetros: Verificar que los parámetros DB_NAME y DB_UNIQUE_NAME sean iguales. SQL>ALTER DATABASE ARCHIVELOG. SQL>ALTER DATABASE OPEN Activamos FORCE LOGGING con el siguiente comando: SQL>ALTER DATABASE FORCE LOGGING. El valor de DB_UNIQUE_NAME puede ser de hasta 30 caracteres y distingue entre mayúsculas y minúsculas. En este caso se utiliza flash recovery área para la ubicación local.  database_role: Si el rol de la base de datos es la Primaria o la base de datos en Stanby. SQL>ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(DB11G.PRIMARY_ROLE) DB_UNIQUE_NAME=DB11G_STBY'. LOG_ARCHIVE_CONFIG: este parámetro habilita o deshabilita el envío de redo logs a destinos remotos y el recipiente de estos. LOG_ARCHIVE_DEST_n controla diferente aspectos de como los servicios de transporte de los Redo transfiere los datos de redo de la base de datos primaria a su destino de standby.DB11G_STBY)'. [6] 48 . SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=db11g_stby NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES. pero deben tener diferente valor de DB_UNIQUE_NAME. Standby Redo log o ambos este siendo archivados en la base de datos destinada.El DB_NAME de la base de datos secundaria deberá ser el mismo (DB11G) de la primaria.  SYNC: Los datos generados de redo por transacción tienen que haber sido recibidos en cada uno de los destinos habilitados antes de cometerse ésta. Este parámetro tiene varios atributos pero el que utilizaremos será el siguiente: DG_CONFIG especifica hasta 30 nombres de bases de datos únicas (Definidas con el parámetro DB_UNIQUE_NAME) para todas las bases de datos en tu configuración de Data Guard. Para esta configuración la base secundaria será configurada con el valor “DB11G_STBY”..  DB_UNIQUE_NAME: Especifica un nombre único para la base de datos que va a recibir los datos de redo.Identifica cuando el servicio de transporte de redo puede transmitir datos de redo a los destinos. Tienes que especificar este nombre.  AFFIRM y NOAFFIRM: Controla si un destino de transporte de redo acusa de recibo los datos de redo antes o después de escribir estos al standby redo log. SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE. [5] Se establece los destinos de los archivos remotos. no hay un valor por default. esto se basa en los siguiente factores:  redo_log_type: Si los archivos de Online Redo Log. Este parámetro tiene varios atributos que son necesarios para configurar tu ambiente de Dataguard:  ASYNC (Default): Los datos generados de redo por transacción no tienen que haber sido recibidos en cada uno de los destinos habilitados antes de cometerse ésta. Los valores DB_UNIQUE_NAME de ambas bases serán utilizadas en el DG_CONFIG configurando el parámetro LOG_ARCHIVE_CONFIG.  VALID_FOR . Adicionalmente a la configuración previa es recomendable estar seguro de que la base de datos primaria esta lista para cambiar de rol y convertirse en una secundaria. SQL>ALTER SYSTEM SET FAL_SERVER=DB11G_STBY. así como el REMOTE_LOGIN_PASSWORDFILE debe establecerse en modo exclusive. SQL>ALTER SYSTEM SET DB_FILE_NAME_CONVERT='DB11G_STBY'. SQL>ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=30. SQL>ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO.'DB11G' SCOPE=SPFILE. Configuración del servicio Las siguientes configuraciones son necesarias tanto en la base primaria y secundaria en el siguiente archivo: "$ORACLE_HOME/network/admin/tnsnames.arc' SCOPE=SPFILE. esto se puede configurar con la ayuda de la herramienta Network Configuration (netca) o manualmente. SQL>ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='/u01/app/oracle/flash_recovery _area/DB11G_STBY'.'/u01/app/oracle/flash_recovery _area/DB11G' SCOPE=SPFILE. A continuación se muestran las entradas para este ejercicio: 49 .ora". SQL>ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r. SQL>ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE.Los parámetros LOG_ARCHIVE_FORMAT y LOG_ARCHIVE_MAX_PROCESSES deben configurarse con los valores apropiados. Recordar que se debe reiniciar para que algunos parámetros tengan efecto. Este valor es un nombre de servicio de Oracle Net.PRIMARY_ROLE) DB_UNIQUE_NAME=DB11G' FAL_SERVER especifica el servidor FAL (Fetch Archive Log) para un base de datos en Standby. o en restaurado manual debe hacerse lo siguiente: $ rman target=/ RMAN> BACKUP DATABASE PLUS ARCHIVELOG.ora' FROM SPFILE.fal_server='DB11G' *. Se deben crear los standby redo logs de la siguiente manera: 50 . Una vez creado el archivo de parámetros.Respaldo de la base de datos primaria Para un backup de la base de datos basado en duplicado.log_archive_dest_2='SERVICE=db11g ASYNC VALID_FOR=(ONLINE_LOGFILES. Crear el archivo de parámetros (PFILE) para la secundaria: SQL>CREATE PFILE='/tmp/initDB11G_stby. Crear un Controlfile y PFILE para la base de datos secundaria: Crear control file para la base de datos secundaria usando el siguiente comando: SQL>ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/db11g_stby.db_unique_name='DB11G_STBY' *.ctl'. se procede a configurar las siguientes entradas: *. log') SIZE 52428800.ora Tnsnames.ora 51 . CONFIGURACIÓN MANUAL DE LA BASE SECUNDARIA Verificar la configuración de listener.log') SIZE 52428800. SQL>ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/DB11G/standby_redo02.SQL>ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/DB11G/standby_redo01.log') SIZE 52428800. SQL>ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/DB11G/standby_redo04.ora y tnsnames.ora. deberán contener la siguiente configuración: Listener. SQL>ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/DB11G/standby_redo03.log') SIZE 52428800. ora #Archivo de contraseña.2. Iniciar listener Asegurarse de que el listener de la base de datos secundaria es iniciado.ctl /u01/app/oracle/oradata/DB11G/control01.ora /tmp/initDB11G_stby. $ scp oracle@dga1: /u01/app/oracle/product/11. #Control File $ scp oracle@dga1:/tmp/db11g_stby.0/db_1/dbs/orapwDB11G /u01/app/oracle/product/11. ya que SCP usa ese puerto para el copiado seguro (Secure CoPy).ctl #Archivo de parametros $ scp oracle@dga1:/tmp/initDB11G_stby.ctl $ cp /u01/app/oracle/oradata/DB11G/control01.2. 52 .ctl /u01/app/oracle/flash_recovery_area/DB11G/control02.0/db_1/dbs Es recomendable desactivar el firewall o añadir una regla de permitir escuchar por el puerto 22.Crear los siguientes directorios que son necesarios: $ mkdir -p /u01/app/oracle/oradata/DB11G $ mkdir -p /u01/app/oracle/flash_recovery_area/DB11G $ mkdir -p /u01/app/oracle/admin/DB11G/adump Se copian los siguientes archivos de configuración de la base de datos primaria hacia la secundaria. 53 .ora'.log') SIZE 52428800. SQL>ALTER DATABASE ADD LOGFILE ('/u01/app/oracle/oradata/DB11G/online_redo01. RMAN> RESTORE DATABASE. $ export ORACLE_SID=DB11G $ rman target=/ RMAN> STARTUP MOUNT.$ lsnrctl start Restaurar copia de seguridad Crear el SPFILE a partir del PFILE $ export ORACLE_SID=DB11G $ sqlplus / as sysdba SQL> CREATE SPFILE FROM PFILE='/tmp/initDB11G_stby. Verificar que el db_name y db_unique_name esten de la siguiente manera: Crear los Redo Logs Crear los online redo logs para la base secundaria SQL>ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=MANUAL. Restaurar los archivos de copia de seguridad. SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY DISCONNECT FROM SESSION.log') SIZE 52428800. SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL. se puede establecer un retardo entre la llegada de los redo log archivados y el aplicado en el servidor de reserva con los siguientes comandos.log') SIZE 52428800.log') SIZE 52428800. 54 . Si se prefiere. SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DELAY 30 DISCONNECT FROM SESSION.log') SIZE 52428800.log') SIZE 52428800. Después de crear los online redo logs. se debe ejecutar el siguiente comando: SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL. SQL>ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/DB11G/standby_redo02. SQL>ALTER DATABASE ADD LOGFILE ('/u01/app/oracle/oradata/DB11G/online_redo03. SQL>ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO. consultar las últimas novedades de redo log archivados y forzar un cambio de registro. Inicie el proceso de aplicación en el servidor secundario SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION. SQL>ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/DB11G/standby_redo04. Prueba de registros de transporte [7] En el servidor principal.SQL>ALTER DATABASE ADD LOGFILE ('/u01/app/oracle/oradata/DB11G/online_redo02. podemos empezar el proceso de aplicación. SQL>ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/DB11G/standby_redo03. Una vez completado esto. Si se necesita cancelar el proceso de aplicación.log') SIZE 52428800. SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL. se deben crear los standby redo logs SQL>ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/DB11G/standby_redo01. next_time FROM v$archived_log ORDER BY sequence#. pero la gran diferencia está en cómo actúa la base de datos primaria cuando la StandBy tiene problemas. en por lo menos una StandBy . Compruebe el nuevo redo log archivados ha llegado al servidor en espera y se han aplicado. SQL>SELECT sequence#. por lo menos en una de ellas (si existe más de una) Si no se puede escribir el redo data. para que la base de datos productiva siga arriba. la base de datos primaria no se cae. 55 . si existen 2 StandBy en máxima protección . las transacciones no se comitean hasta que el redo data sea aplicado en los redologs de la base de datos standby . SQL>SELECT sequence#. SQL>ALTER SYSTEM SWITCH LOGFILE. applied FROM v$archived_log ORDER BY sequence#. MAXIMA PROTECCION (MAXIMUM PROTECTION) Este modo garantiza que no hay perdida de datos si la base de datos primaria falla Con este nivel de protección cada redo data -vector de redo generado en la primaria. Modo de protección Cada vez que configuramos un Data Guard (StandBy mas envío de archives automáticos) siempre vamos a quedar enmarcados en unos de estos tipos de disponibilidad de la StandBy : MAXIMA PROTECCION (MAXIMUM PROTECTION) MAXIMA DISPONIBILIDAD (MAXIMUM AVAILABILITY) MAXIMA PERFORMANCE (MAXIMUM PERFORMANCE) Con los 3 modos siempre estamos protegiendo los datos. first_time.SQL>ALTER SESSION SET nls_date_format='DD-MON-YYYY HH24:MI:SS'. MAXIMA DISPONIBILIDAD (MAXIMUM AVAILABILITY) Este modo de protección no afecta la base de datos y proporciona un alto nivel de protección de los datos. first_time. Si por ABC motivo el redo data no es escrito en una StandBy . basta que los redo data sean escritos en 1 de ellas.debe ser aplicado por lo menos en una StandBy . tal cual en el modo de máxima protección. la base de datos primaria se viene abajo (shutdown). SQL>ALTER SESSION SET nls_date_format='DD-MON-YYYY HH24:MI:SS'. en los on line redo logs y además en los redo de stanby de esa Standby sólo allí se produce el commit. next_time. PRIMARY_ROLE) DB_UNIQUE_NAME=DB11G_STBY'.  Disponibilidad máxima. con la creación de una base de datos en espera. De forma predeterminada. SQL>ALTER DATABASE OPEN.MAXIMA PERFORMANCE (MAXIMUM PERFORMANCE) Este modo de protección ofrece la mayor seguridad en la base de datos sin perder nada en la performance de la base de datos primaria. SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=db11g_stby NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES. SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=db11g_stby AFFIRM SYNC VALID_FOR=(ONLINE_LOGFILES.PRIMARY_ROLE) DB_UNIQUE_NAME=DB11G_STBY'. SQL>ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PROTECTION. SQL>STARTUP MOUNT. SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=db11g_stby AFFIRM SYNC VALID_FOR=(ONLINE_LOGFILES.  Máxima protección. acá las transacciones de la base de datos primaria se les generá commit sólo cuando la transacción llega a los redo locales. SQL>ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY. PROTECTION_MODE -------------------MAXIMUM PERFORMANCE SQL> El modo se puede cambiar el uso de los siguientes comandos. 56 . SQL>SELECT protection_mode FROM v$database.  Máximo rendimiento. la base de datos primaria está en modo de rendimiento máximo. SQL>ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE. Tenga en cuenta las alteraciones en los atributos de transporte redo. Este modo se debiese usar cuando la red hacía la StandBy no es lo suficientemente óptima y se producen delays al momento de traspasar paquetes a través de TCP.PRIMARY_ROLE) DB_UNIQUE_NAME=DB11G_STBY'. SQL>SHUTDOWN IMMEDIATE. debe estar respaldada 57 . SQL>ALTER DATABASE MOUNT STANDBY DATABASE. Failover Si la base de datos principal no está disponible la base de datos standby se puede activar como base de datos primaria con las siguientes sentencias.  Convertir la base de datos standby original a primaria. SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH. Dado que la base de datos standby es ahora la base de datos principal inmediatamente.Base de datos de conmutación (SWITHOVER) (primaria y secundaria) Una base de datos puede estar en uno de dos modos mutuamente excluyentes (primaria o en espera). SQL>SHUTDOWN IMMEDIATE. SQL>STARTUP NOMOUNT. SQL>SHUTDOWN IMMEDIATE. Este proceso se conoce como conmutación (switchover) y puede llevarse a cabo mediante las siguientes declaraciones  Convertir base de datos primaria a secundaria. SQL>STARTUP. SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION. SQL>CONNECT / AS SYSDBA SQL>ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY. SQL>CONNECT / AS SYSDBA SQL>ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY. SQL>ALTER DATABASE ACTIVATE STANDBY DATABASE. Estas funciones se pueden modificar en tiempo de ejecución sin pérdida de datos o restablecimiento de registros redo. a continuación. SQL>STARTUP MOUNT. En 11g. pero esta vez utilizando el servidor principal original como el modo de espera. Esto significa que una base de datos stanby puede estar disponible para la consulta. pero aún se aplica la información de los redo. y aun así estar al día o actualizada. se puede abrir en modo de sólo lectura para permitir el acceso de consulta. Para cambiar la base de datos a solo lectura haga lo siguiente: SQL>SHUTDOWN IMMEDIATE. ahora se puede configurar como un modo de espera. Para reanudar la recuperación gestionada (managed recovery) haga lo siguiente: SQL>SHUTDOWN IMMEDIATE. De lo contrario. 58 . por lo que la base de datos standby se convierte cada vez más obsoleta hasta que se reanude la recuperación gestionada (managed recovery). SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION. Oracle introdujo la característica Active Data Guard. Esto permite que la base de datos en espera de ser abierto en modo de sólo lectura. esto se puede hacer con relativa facilidad (que se muestra aquí). Cuando se abre en modo de sólo lectura. todo el proceso de instalación se deben seguir. pero la recuperación gestionada se detiene. SQL>STARTUP MOUNT. SQL>ALTER DATABASE OPEN READ ONLY. el envío de archive log continúa. SQL>STARTUP MOUNT. Base de datos standby de solo lectura (Read-Only Standby) Una vez que se ha configurado una base de datos standby. SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION. Si Flashback base de datos se habilita en la base de datos primaria. SQL>ALTER DATABASE OPEN READ ONLY. Esto se utiliza a menudo para descargar información del servidor standby para conseguir más recursos en el servidor principal. Hay implicaciones de licencia para esta función.La base de datos primaria original. pero los siguientes comandos muestran cómo Active Data Guard se puede activar: SQL>SHUTDOWN IMMEDIATE. htm  59 . de http://docs.com/cd/B28359_01/server.com/technetwork/es/database/enterpriseedition/documentation/tutorial-oracle-data-guard-11gr2-1707492-esa. de http://www.pdf Oracle 2012.111/b28286/statements_6016.Referencias:   Oracle 2010.oracle. obtenida el 1 de mayo de 2013.oracle. obtenida el 4 de mayo de 2013. obtenida el 1 de mayo de 2013. Documento técnico de Oracle: Oracle Data Guard 11g versión 2.2).oracle. de http://docs. Oracle® Database SQL Language Reference 11g.com/cd/E11882_01/server.112/e17022/create_ps.htm Oracle 2009. Oracle® Data Guard Concepts and Administration 11g Release 2 (11. 60 . Simplemente. el cual procesa los comandos de la base de datos. más potente que los comunes de escritorio. CLÚSTER El término clúster se aplica a los conjuntos o conglomerados de computadoras construidos mediante la utilización de hardware común y que se comportan como si fuesen una única computadora. Esta compuesto por nodos activo pasivo lo más recomendable es configurar máximo tres nodos. diferente rendimiento pero con arquitecturas y sistemas operativos similares (clúster semihomogéneo).SQL SERVER CLUSTER Ana Rosa Rosales Mancia Silvia Yessenia Argueta Campos OBJETIVOS o Conocer el funcionamiento del clúster en SQL Server. Los clústeres son usualmente empleados para mejorar el rendimiento y/o la disponibilidad por 61 . CONCEPTOS BASICOSSQL SERVER SQL Server es un conjunto de objetos eficientemente almacenados. Hoy en día desempeñan un papel importante en la solución de problemas de las ciencias. Una buena instalación y configuración de SQL Server. y éstas a su vez están compuestas de filas y columnas. las ingenierías y del comercio moderno. escalabilidad y alto rendimiento. o tener diferente hardware y sistema operativo (clúster heterogéneo). y sobre todo una buena administración de las herramientas que éste nos proporciona. un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad. Los procesos se ejecutan dentro del sistema operativo y entienden únicamente de conexiones y de sentencias SQL. o Identificar las ventajas que ofrece la implementacion de un cluster de conmutacion por error. En el centro de SQL Server está el motor de SQL Server. INTRODUCCION SQL Server Cluster ofrece alta disponibilidad. o Implementar un cluster en una red local. logrará: · Qué las consultas que se realicen mediante sentencias SQL obtengan un tiempo de Respuesta óptima. lo que hace más fácil y económica su construcción. La construcción de los ordenadores del clúster es más fácil y económica debido a su flexibilidad: pueden tener toda la misma configuración de hardware y sistema operativo (clúster homogéneo).· Qué la memoria y la CPU de la máquina estén aprovechadas al máximo. de tal forma que el conjunto es visto como un único ordenador. SQL Server incluye herramientas para la administración de los recursos que el ordenador nos proporciona y los gestiona para un mejor rendimiento de la base de datos. la configuracion necesaria. Los objetos donde se almacena la información se denominan tablas. El llevar a cabo estas tareas puede comprometer los recursos del clúster por largos periodos de tiempo. el cual se encargue de interactuar con el usuario y los procesos que corren en él para optimizar el funcionamiento. VENTAJAS DE USAR CLÚSTER De un clúster se espera que presente combinaciones de los siguientes servicios:Alto rendimientoAlta disponibilidadBalanceo de cargaEscalabilidad CONFIGURACION DE UN CLUSTER DE CONMUTACION POR ERROR 1-CONFIGURACION DEL SERVIDOR DNS 62 . sino que es necesario proveer un sistema de manejo del clúster. mientras que en hardware se evita tener un único punto de fallos . o tener diferente hardware y sistema operativo (clúster heterogéneo). grandes cantidades de memoria. lo que hace más fácil y económica su construcción. El retardo entre los nodos del clúster no es considerado un gran problema. diferente rendimiento pero con arquitecturas y sistemas operativos similares (clúster semihomogéneo). no basta solo con conectar entre sí los ordenadores. La confiabilidad se provee mediante software que detecta fallos y permite recuperarse frente a los mismos. Para que un clúster funcione como tal.encima de la que es provista por un solo computador típicamente siendo más económico que computadores individuales de rapidez y disponibilidad comparables. Existe independencia de datos entre las tareas individuales. CLASIFICACIÓN DE LOS CLÚSTER Alto rendimiento: Son clústeres en los cuales se ejecutan tareas que requieren de gran capacidad computacional.Alta eficiencia: Son clústeres cuyo objetivo de diseño es el ejecutar la mayor cantidad de tareas en el menor tiempo posible. o ambos a la vez. La construcción de los ordenadores del clúster es más fácil y económica debido a su flexibilidad: pueden tener toda la misma configuración de hardware y sistema operativo (clúster homogéneo). Alta disponibilidad: Son clústeres cuyo objetivo de diseño es el de proveer disponibilidad y confiabilidad. Estos clústeres tratan de brindar la máxima disponibilidad de los servicios que ofrecen. Para configurar el servidor DNS click-> Administrador de servidor ->Agregar roles Seleccionar la caracteristica de Servidor de dominio de Active Directory luego siguiente Hacer click en siguiente 63 . Hacer click en el boton instalar Esperar unos minutos mientras se instala 64 . Click en el botón cerrar 65 . Aquí ya se tiene la característica de servidor de dominio luego se crea el nuevo bosque al cual se van a unir los nodos de la red del cluster.exe Aparecera un asistente para crear el nuevo bosque click-> Siguiente Seleccionar un nuevo bosque click->siguiente 66 . Para esto ejecutamos la aplicación dcpromo. Escribir el nombre del bosque a crear click-> siguiente Seleccionar la versión del Windows server en este caso Windows server 2008 r2 click ->siguiente 67 . 68 .Escribir la contraseña de administrador del dominio Para finalizar muestra resumen del dominio a crear luego de hacer estas configuraciones hay que reiniciar la computadora. En estos momentos ya se tiene el dominio ahora hay que crear un usuario con privilegios de administrador de dominio para esto click -> inicio ->Herramientas del sistema->Usuarios y equipos de Active Directory >Users Click derecho y seleccionar nuevo usuario luego ingresar el nombre de usuario como se muestra en la figura y dar siguiente 69 . Colocar la contraseña para el nuevo usuario dar siguiente y listo ya se tiene el nuevo usuario. Todas las computadoras que se utilicen como nodos del cluster tienen que pertenecer al dominio creado y agregar este usuario en el grupo de administradores. 70 . 3 como se muestra a continuación: Click -> siguiente a todas las opciones dejar los valores por defecto. para poder configurar el servidor de almacenamiento iscsi hay que instalar el siguiente software iscsi Target 3. 71 . Y esperamos que se instale.2 -CONFIGURACION DEL SERVIDOR DE ALMACENAMIENTO ISCSI El servidor de dns y almacenamiento están alojados en la misma computadora. Luego de instalar esta aplicación el siguiente paso es crear un destino iscsi para esto Click-> herramientas del sistema ->iscsiTarget aparecerá una ventana como la siguiente damos click derecho sobre Destinos iscsi y seleccionamos crear destino iscsi Seleccionar un nuevo bosque click->siguiente 72 . Escribir el nombre del bosque a crear click-> siguiente Seleccionar la versión del Windows server en este caso Windows server 2008 r2 click ->siguiente 73 . 74 .Escribir la contraseña de administrador del dominio Para finalizar muestra resumen del dominio a crear luego de hacer estas configuraciones hay que reiniciar la computadora. En estos momentos ya se tiene el dominio ahora hay que crear un usuario con privilegios de administrador de dominio para esto click -> inicio ->Herramientas del sistema->Usuarios y equipos de Active Directory >Users Click derecho y seleccionar nuevo usuario luego ingresar el nombre de usuario como se muestra en la figura y dar siguiente 75 . Todas las computadoras que se utilicen como nodos del cluster tienen que pertenecer al dominio creado y agregar este usuario en el grupo de administradores.Colocar la contraseña para el nuevo usuario dar siguiente y listo ya se tiene el nuevo usuario. 76 . 77 .3 como se muestra a continuación: Click -> siguiente a todas las opciones dejar los valores por defecto. para poder configurar el servidor de almacenamiento iscsi hay que instalar el siguiente software iscsi Target 3.2 -CONFIGURACION DEL SERVIDOR DE ALMACENAMIENTO ISCSI El servidor de dns y almacenamiento están alojados en la misma computadora. Y esperamos que se instale. Luego de instalar esta aplicación el siguiente paso es crear un destino iscsi para esto Click-> herramientas del sistema ->iscsiTarget aparecerá una ventana como la siguiente damos click derecho sobre Destinos iscsi y seleccionamos crear destino iscsi 78 . El cual abre un asistente como la figura siguiente click ->siguiente Escribimos el nombre del destino una breve descripción y damos siguiente Luego de esto nos pide agregar los destinos el cual son las ip de los nodos que van a poder acceder a los discos virtuales click->avanzados Nos aparecerá la siguiente ventana aquí agregamos las ip de los nodos y damos aceptar. 79 . esta acción: 80 .Y se finaliza el asistente. Ahora ya tenemos el destino iscsi que tendrá los discos virtuales que utilizara el cluster para ello hay que realizar l os siguientes pasos:Hacer click derecho sobre el iniciador iscsi creado->seleccionar crear disco virtual. Seleccionamos siguiente. Luego colocamos el tamaño del disco en MB. 81 .Seleccionamos siguiente y colocamos el nombre del disco virtual con extencion y seleccionamos siguiente. 82 . esta imagen muestra el disco virtual creado.Se finalza el asistente estos mismos pasos hay que realizar todos los discos virtuales a utilizar en este caso creamos tres. Ahora que ya se tiene el almacenamiento procedemos a realizar la conexión de los nodos con el servidor de almacenamiento. Para esto nos vamos a la computador que va servir de nodo1 y damos click ->Inicio ->Iniciador iscsi y aparecerá una ventana como esta: Colocamos la ip del servidor de almacenamiento click-> conexión rápida y aparecerá conectado. Luego click-> En la pestaña volúmenes y dispositivos ->Autoconfigurar virtuales creados como se muestra a continuación. aparecerán todos los discos 83 . Click ->Inicio ->Administrador de servidor ->Almacenamiento ->Administración de dispositivos. 84 . Ahora hay que poner en línea estos discos esto se realiza siempre en el nodo 1. Aquí se muestran los discos virtuales hay que dar click derecho sobre cada uno de ellos y ponerlos en línea.Luego le damos aceptar y listo ya se tiene la conexión con el servidor estos mismos pasos hay que realizar en el otro nodo. luego dar formato y listo. 85 .Ya se tiene el almacenamiento para el cluster. Para ello hay que seguir los siguientes pasos: Click -> Administrador de servidor -> Caracteristicas ->Agregar características Seleccionar cluster de conmutación por error. 3-CONFIGURACION DE CLUSTER DE WINDOWS. Para poder realizar una configuración de cluster de conmutación por error es necesario instalar esa característica en todos los nodos. Y click en instalar Ya que tenemos instalada la característica damos click -> Inicio ->Administrador de cluster de conmutación por error damos click -> crear cluster. 86 Nos pedirá ingresar los nombres de los nodos Damos click -> siguiente 87 Realiza la confirmación de los datos click ->siguiente 88 Realiza todos las validaciones si da algún error no se puede continuar, esto tarda varios minutos en completarse. Si todo está bien muestra el resumen le damos finalizar . Luego de haber realizador las validaciones se pasa al siguiente cuadro de dialogo: Aquí colocamos el nombre del cluster y la dirección ip. 89 Finalizamos la creación del cluster 90 . Ahora bien ya tenemos el cluster creado falta crear un servicio para este cluster para esto damos click derecho al cluster creado-> Servicios y aplicaciones ->Coordinador de transacciones distribuidas DTC >siguiente Agregamos el nombre en este caso se deja el que da por defecto. 91 . damos siguiente y finalizamos. agregamos la dirección ip. Ejecute setup. Haga click ->Instalacion->Nuevo sql server de conmutación por error 92 . 4-CONFIGURACION DE CLUSTER DE CONMUTACIÓN POR ERROR EN SQL SERVER.Ya tenemos toda la configuración del cluster de conmutación por error a nivel del sistema operativo solo falta configurar el SQL server.exe desde el disco de instalación de SQL Server para iniciar el Centro de instalación. En el cuadro de diálogo Condiciones de Licencia. validar que los controles devolver resultados exitosos y haga click en Siguiente. 93 . haga click en Acepto los términos de la licencia casilla de verificación y haga clic en Siguiente.En el cuadro de diálogo Configuración de las Reglas de Apoyo. Validar que los controles devolver resultados exitosos. haga clic en Instalar. 94 . Si los cheques devueltos algunas advertencias.En el cuadro de diálogo Configuración de Apoyo a las Reglas. Haga clic en Siguiente para continuar. asegúrese de corregirlos antes de proceder con la instalación. la instancia por defecto se selecciona 95 . Haga clic en Siguiente. escriba el nombre de red de SQL Server. En el cuadro de diálogo Configuración de instancia. Esto variará dependiendo de su selección si se trata de una instancia predeterminada o con nombre.En el cuadro de diálogo Selección de características. En este ejemplo. seleccione sólo los componentes que desea instalar. Este es el nombre que estará disponible en la red para los clientes. se debe seleccionar la casilla de identificador de instancia y especifique un valor. Para utilizar un identificador de instancia no predeterminado. Para una instancia predeterminada. el nombre de instancia se utiliza como identificador de la instancia.Un par de cosas Hay que destacar en esta sección. De forma predeterminada. Este es el caso para las instancias predeterminadas y las instancias con nombre. Esto se utiliza para identificar los directorios de instalación y las claves del registro para la instancia de SQL Server y es útil cuando se desea ejecutar varias instancias en un clúster. el nombre y el identificador serían MSSQLSERVER. 96 . puede utilizar el cuadro desplegable para especificar un grupo existente o escriba el nombre de un nuevo grupo para crearlo. consulte los recursos disponibles en Windows Server 2008 de clúster.En el cuadro de diálogo Requisitos de espacio en disco haga clic en Siguiente. En el cuadro de diálogo Grupo de recursos de clúster. 97 . Para especificar el clúster de SQL Server recurso de nombre de grupo. Haga clic en Siguiente. Esto le dirá que un grupo de recursos se creará en el clúster de SQL Server. En el cuadro de diálogo de selección de disco de clúster. Haga click en Siguiente. seleccione los grupos de discos que están disponibles en el clúster de SQL Server 2008 para su uso. 98 . Desmarque la casilla bajo la columna de DHCP que va a utilizar direcciones IP estáticas. que sería mejor para desactivar la fila para IPv6 En el cuadro de diálogo Directiva de seguridad del clúster.En el cuadro de diálogo Configuración de red de clúster. escriba la dirección IP y la máscara de subred que el clúster de SQL Server 2008 va a utilizar. acepte el valor por defecto de uso de los servicios SID (recomendado). 99 . Si no ha deshabilitado los adaptadores y protocolos IPv6. Haga clic en Siguiente. escriba las credenciales que se utilizarán para sus cuentas de servicio de SQL Server en la ficha Cuentas de servicio. 100 .En el cuadro de diálogo Configuración del servidor. En el cuadro de diálogo Configuración de Database Engine. haga clic en el botón Agregar usuario actual. Si desea agregar el usuario actualmente conectado a formar parte del grupo de administradores de SQL Server. Tenga en cuenta que el tipo de inicio está establecido en manual para todos los clústeres de servicios y no se puede cambiar durante el proceso de instalación. En la ficha Clasificación. seleccione la intercalación apropiada para ser utilizada por SQL Server. seleccionar el modo de autenticación apropiado. 101 .En la ficha de datos de directorios. escriba la ruta donde se va a su sistema y archivos de usuario de base de datos creada. haga clic en Siguiente. Esto será por defecto y damos click siguiente. En el error y la caja de diálogo de informes de uso. 102 .En el cuadro de diálogo Reglas de instalación del clúster. compruebe que todas las comprobaciones son correctas y haga clic en Siguiente. En la página Preparado para instalar el cuadro de diálogo. compruebe que todas las configuraciones son correctas. Haga clic en Siguiente. 103 . 104 . ahora tiene una instancia de conmutación por error del clúster completamente funcional. Con esto concluye la instalación de un clúster de conmutación por error de SQL Server 2008 En la realización de una correcta instalación y configuración del nodo. Ahora falta agregar un nuevo nodo los pasos son muy parecidos ya que so le especificamos el cluster de conmutación por error al queremos pertenecer y la instancia. haga clic en Cerrar.En el cuadro de diálogo completo. visitado 16 de abril de 2013 http://msdn.microsoft.aspx o SlideShared.be/Ljwz9GvV8_o BIBLIOGRAFIA: o Microsoft documentacion. visitado 16 abril de 2013 http://www. visitado 20 de abril de 2013 http://www. PUEDES VISITAR NUESTRO VIDEO PARA MAYOR INFORMACION AQUI: http://youtu. o Microsoft.html o Youtube.Para poder desarrollar un cluster de conmutación por error se pueden seguir estos pasos eso si hay que tener cuidado en la infraestructura de red a utilizar y compatibilidad de los programas.aspx o Scribd.com.net/javacero/presentacin-de- cluster-de-w2008-r2-cluster-de-conmutacin-por-error-por-francisco-javier-acerolucena.slideshare. visitado dia 10 de abril de 2013 http://technet.com/eses/library/cc730692. visitado 16 de abril de 2013 http://es.scribd.aspx.com/doc/84699812/Agregaralmacenamiento-a-un-cluster-de-conmutacion-por-error.com/watch?v=Q5x0D79afRM 105 .90%29.youtube.com/es- es/library/ms189134%28v=sql.microsoft. esto puede hacerse en my. Un MySQL server que es parte de un MySQL Clúster difiere sólo en un aspecto de un servidor MySQL normal (no clúster). escalabilidad y alto rendimiento. Definir lo que es un clúster. al menos un nodo MGM debe ser operacional. Sin embargo. Desde que MySQL server es parte del clúster. y las dos formas del nombre son sinónimas. así como los nodos de datos deseados. necesita datos de configuración que sepa cómo acceder al nodo MGM para obtener datos de configuración del clúster. de tal forma que el conjunto es visto como un único ordenador.cnf o en la línea de comandos del servidor MySQL. así como los diferentes tipos de nodos que el clúster MySQL maneja.Clúster en MySQL Luis Josué Chávez Vigil. Identificar las características. Introducción: MySQL Cluster es la versión de MySQL pensada para alta disponibilidad. Conceptos Básicos: Clúster: Grupo de múltiples ordenadores unidos mediante una red de alta velocidad. así como de la manera de configurarlo en una red local. aprender la manera correcta de configuración. requerimientos hardware/software. 106 . Este motor también se conoce simplemente como NDB. El comportamiento por defecto es buscar el nodo MGM en localhost. Erick Stanley Cruz Martínez Objetivos:    Conocer el funcionamiento del clúster en MySQL. más potente que los comunes de escritorio. además de distinguir los elementos que lo conforman. Josué Daniel Orellana Aguirre. puede necesitar especificar su localización donde se encuentre. y además. Antes de poderse usar el NDB. en que emplea el motor NDB Clúster. ventajas y desventajas de un clúster MySQL. Características: Para comunicación entre nodos. Eficiencia: Inicializar un MySQL Clúster en una red privada o protegida permite que el clúster haga uso exclusivo del ancho de banda entre máquinas del clúster. La única forma de proteger transmisiones dentro de un MySQL Clúster es ejecutar su clúster en una red protegida. No es necesario más de uno. reiniciar nodos.De un clúster se espera lo siguiente:     Alto rendimiento Alta disponibilidad Equilibrio de carga Escalabilidad Una de las ventajas de MySQL Clúster es que puede ejecutarse en hardware normal sin ningún requerimiento especial. Al clúster se puede acceder usando la API o mediante un servicio. Nosotros lo usamos para lanzar backups. Estos deben tener la capacidad de procesamiento y la memoria RAM suficiente para trabajar con los datos. hub. activar el log… además. el demonio será ndbmtd mysqld. el clúster soporta red TCP/IP en cualquier topología estándar. más un switch. o router para proporcionar conectividad de red al clúster entero. debido al hecho que todos los datos se almacenan en memoria. ndbd_mgm. mysqld: Al menos debemos tener dos nodos mysqld o tendremos un SPOF Desventajas:  La configuración y puesta en marcha difiere completamente de la versión estándar de la base de datos. Al menos debemos tener dos nodos ndbd. y como mínimo se espera una red 100 Mbps Ethernet. Recomendamos que MySQL Clúster se ejecute en su subred que no está compartida con máquinas no-clúster por las siguientes razones:   Seguridad: La comunicación entre nodos del clúster no está cifrada. Es el nodo de Management. pero consume tan poco que se pueden tener dos. los nodos ndbd lo usan al entrar en el clúster para recoger la configuración ndbd: Son los nodos de almacenamiento. aparte de grandes cantidades de RAM. Si queremos usar múltiples cores. 107 . Tiene la configuración del clúster. solo rollbacks completos No se garantiza el commit Recomendaciones: La web de MySQL recomienda 5 servidores:    2 ndbd 2 mysqld 1 ndb_mgmd Podemos mejorar esta arquitectura y hacerla más barata montando un ndb_mgmd en cada mysqld   2 ndbd 2 mysqld + ndb_mgmd 108 . Datos en RAM o en disco duro.          Requiere gran cantidad de memoria RAM. Subqueries lentas Joins lentas No soporta integridad referencial y claves externas No hay rollbacks parciales ni savepoints. Índices en RAM siempre. No es una base de datos de propósito general. no se puede usar InnoDB o MyISAM en clúster. El engine es ndbclúster. · En el database se encuentran los binarios y archivos de configuracion para la ejecución correcta de config. · En el datadir se hace referencia a los logs que arroja el clúster. Dentro se encuentra los datadir y los database.ini Acá estan las configuraciones para el manejo de nodos.Topología: Hardware:     3 COMPUTADORAS CON WINDOWS 7 MYSQL CLÚSTER EN C/U DE PC SWITCH CABLES DE RED Archivos de Configuración: ndb_mgm config. 109 . mysql.1:1186 mysqld Se configura el my.ndbd Se arranca desde los binarios alojados en el directorio /mysqlc/bin/ndbd -c 192. descomprimimos el archivo y genera una carpeta con los siguientes directorios: 110 .4. Una vez descargado. Si no posee una deberá crearla.cnf el cual es el encargado de enlazar el nodo de MySQL al nodo de administrador.168. soportando el engine ndbclúster. Procedimiento: Descargamos el cluster mysql de la siguiente dirección: http://dev.com/downloads/cluster/ Definimos nuestro sistema operativo y descargamos: Nos pedirá que ingresemos nuestra cuenta de Oracle. 0.ini c:\Users\"Chavez Vigil"\mysql\bin\mysql -h 127.0.1 -P5000 shutdown c:\Users\"Chavez Vigil"\mysql\bin\ndb_mgm -e shutdown C:\Users\Chavez Vigil\my_cluster\ndb_data Pasos a seguir: Cree las siguientes carpetas en el directorio raíz del sistema.1 -P5000 -u root Apagando servicios c:\Users\"Chavez Vigil"\mysql\bin\mysqladmin -u root -h 127.0.Arrancar Cluster c:/mysql/bin/ndb_mgmd -f conf/config.0.ini --initial --configdir=c:\my_cluster\conf\ Mostrar los nodos conectados al administrador c:\mysql\bin\ndb_mgm -e show Arrancar todo start /B c:\Users\"Chavez Vigil"\mysql\bin\ndbd -c localhost:1186 Arrancando mysql start /B c:\Users\"Chavez Vigil"\mysql\bin\mysqld --defaults-file=conf\my. Para ello abrimos cmd y presionamos Ctrl+Shift+Enter para abrirlo en modo administrador: 111 . el contenido de la carpeta que se crea cuando se descomprime lo copiamos completamente en la carpeta mysql que acabamos de crear: 112 .Creamos una nueva carpeta llamada mysql: Cuando descargamos el cluster desde el enlace mostrado anteriormente y lo descomprimimos. ini para los nodos de datos: [ndb_mgmd] HostName=192.4. dentro de mycluster creamos un archivo config. Lo que continua será editar el archivo config.168.Abrimos una nueva consola en modo de administrador y copiamos el contenido de esta carpeta mysql en mycluster: Ahora bien.1 DataDir=c:\my_cluster\ndb_data Nodeid=1 Esto significa que el nodo de administrador tendra esa ip y que los log's que generen se estaran almacenando el esa direccion de archivo.ini Entramos en la carpeta conf. 113 . 3 DataDir=c:\my_cluster\ndb_data Esto significa que es el segundo nodo de datos y esta alojado en esa ip y los logs iran a parar a esa direccion.[Ndbd default] NoOfReplicas=2 Esto significa que seran 2 nodos de datos por defecto.2 DataDir=c:\my_cluster\ndb_data Nodeid=3 Esto significa que es el primer nodo de datos y esta alojado en esa ip y los logs iran a parar a esa direccion.4. [Ndbd] HostName=192. Desde el menú inico escribimos variables de entorno y escogemos la que dice SISTEMA: 114 .4. Nodeid=4 HostName=192.168.168. [Mysqld] [Mysqld] Y estas 2 lineas significan que por cada nodo de datos tendremos 1 nodo mysql Ahora crearemos las variables de entorno del sistema. si queremos agregar mas solo incrementamos ese numero. Al final de la variable escribimos: C:\mysql\bin:C.En la ventana que aparece damos clic en el icono Variables de Entorno. Después del reinicio abrimos como administrador la consola y arrancamos el cluster: Abrimos una nueva consola y ejecutamos netstat –h para verificar si esta corriendo el cluster: 115 .\my_cluster\ndb_data Esto es para que ejecute los binarios necesarios para el funcionamiento del cluster. Reiniciamos la computadora. Ahí buscamos la variable path que es la que vamos a editar. esto deberíamos ver cuando los nodos de datos estén conectados. En la misma terminal ejecutamos: Con el comando show mostramos los nodos de datos conectados: Por el momento NO tenemos nodos de datos conectados. Avanzando un poco. Note que están conectados con las ip que le definimos en el archivo de configuración: 116 .En este momento ya está escuchando peticiones de los nodos de datos. Una vez hecho esto. Cada uno de los nodos de datos lo poseerá: 117 . Descomprimimos el archivo del cluster y hacemos lo siguiente: Volvemos a copiar el contenido del archivo descomprimido. tal como en el administador.cnf que se encuentra en el directorio conf.Ahora pasamos a la configuración de los nodos de datos. Creamos la misma estructura de directorios que se hizo en el nodo de administrador. Editamos (creamos mas bien dicho) un archivo llamado my. entramos en la carpeta conf. Esto se hará en cada máquina que será nodo de datos y mysql. de lo contrario se interrumpirá la comunicación. lo que este archivo significa es que el nodo mysql ocupará el motor ndbcluster para conectarse al nodo de administrador a través del puerto 4002.En síntesis. una vez arrancados los servicios. Arrancamos el nodo de datos: Vemos si el servicio esta corriendo: Iniciamos el nodo mysql: Nos conectamos a una instancia mysql (hacemos constar que NO esta mysql instalado en ninguna PC): 118 . Posteriormente abrimos la cmd de Windows y OJO. estas ventanas NO deben cerrarse. la cadena de conexión muestra la ip del administrador y el mysql_cluster se encontrará también en la misma máquina administrador. Si ejecutamos nuevamente show databases. veamos los motores. Veremos que ndbcluster está corriendo usando el comando show engines. En uno de los nodos de datos se ha creado una base de datos llamada prueba.A manera de ejemplo. (Este es el motor del cluster) y para ver las bases de datos usamos show databases. debemos verla reflejada: 119 . vamos a crear una tabla en este nodo de datos.para que esta sentencia se ejecute en todos los nodos conectados: Ahora insertamos un alumno nuevo y describimos la tabla: 120 . y al final de la consulta de create table alumno escribimos engine=ndb. Luego creamos la tabla en ella llamada alumno.Ahora bien. Para ello escribimos use prueba. que representa que ocuparemos la base de datos prueba. obtenida el 26 de abril de 2013.pdf Manuales Guebs.mx. obtenida el 27 de abril de 2013. de http://es.mysql. obtenida el 27 de abril de 2013. de http://downloads.com/mysql5.scribd.pd f Uv. obtenida el 27 de abril de 2013.com®.guebs. de http://www. de http://www.uv.0/ndbcluster.com/doc/6858172/QUE-ES-UN-CLUSTER 121 .net/miguelangelnieto/mysql-high-availavility-load-balacing-cluster Scribd® ¿Qué es un CLUSTER?.slideshare.Bibliografía      MySQL®.mx/personal/lizhernandez/files/2013/04/Comandos-mysql.com/tutorials/cluster/mysql_wp_cluster_quickstart_windows. de http://manuales.html#mysql-cluster-configuration Slideshare® Base de Datos MySQL. obtenida el 26 de abril de 2013. Comodidad y Accesibilidad inmediata a los datos. Prestación de servicios a nivel mundial. La confiabilidad de los servicios depende de la "salud" tecnológica y financiera de los proveedores de servicios en nube. Ramírez Reyes Heysel Yanira. mediante una conexión a internet desde cualquier dispositivo móvil o fijo ubicado en cualquier lugar. Esta medida reduce los costes. Conocer las ventajas y desventajas que tiene el uso de bases de datos en la nube. Actualizaciones automáticas. garantiza un mejor tiempo de actividad y que los sitios web sean invulnerables a los hackers. . Se puede tener acceso a su información o servicio.Sincronización de Bases de Datos en Nube González Martínez Mauricio Antonio. Ventajas:      Integración con facilidad y rapidez. Los datos "sensibles" de la empresa no residen en sus instalaciones. La sincronización en la nube consiste en un grupo de servidores alojados en internet encargados de atender las peticiones en cualquier momento. Conceptos ¿Qué es la sincronización de Bases de Datos en Nube? La sincronización de bases de datos en nube es el mecanismo de mantener la misma versión de datos en múltiples dispositivos a través de un servidor alojado en internet. Desventajas:    122 La disponibilidad de las aplicaciones está ligada a la disponibilidad de acceso a Internet. Sirven a sus usuarios desde varios proveedores de alojamiento repartidos frecuentemente por todo el mundo. a los gobiernos locales y a sus redadas policiales. Reducción de equipos. Zometa Sanchez Henry Mauricio Objetivos    Conocer e implementar el uso de bases de datos en la nube como un mecanismo de sincronización. Utilizar los servicios de sincronización que provee Sql Azure. la sobrecarga en los servidores aumentará. Consultas complejas y „joins‟ entre múltiples tablas. No es necesario adaptar los conocimientos a nuevos paradigmas de almacenamiento. como pasa con otros sistemas de almacenamiento en la nube no basados en bases de datos relacionales ni SQL. Insert. Es cierto que hay ciertas características de SQL Server que SQL Azure no soporta. actualizar y gestionar la infraestructura de bases de datos. es gestionado de manera transparente. vistas. ¿Qué es Windows Azure? Windows Azure (anteriormente Azure Services Platform) es una plataforma ofrecida como servicio y alojada en los Data Centers de Microsoft. tablas temporales. si no se posee un esquema de crecimiento óptimo puede llevar a degradaciones en el servicio. ya obsoletas. etc. update y delete. roles. todos tus conocimientos te valen para SQL Azure”. Restricciones Transacciones Entre las caracteristicas no soportadas cabe destacar:     Transacciones distribuidas El broker de mensajes de SQL Server Consultas a servidores remotos Acceso desde tecnologías antiguas. “Si sabes utilizar SQL Server. índices. La alta disponibilidad. La gran ventaja de utilizar SQL Azure frente a otros sistemas de almacenamiento en la nube es que todos los conocimientos sobre bases de datos relacionales y el lenguaje de consulta SQL siguen siendo válidos. Una ventaja añadida es que los desarrolladores y el personal de IT no necesita instalar. procedimientos almacenados y funciones. A medida que más usuarios empiecen a compartir la infraestructura de la nube. 123 . en concreto OleDb. pero si soporta todas las más usadas:      Tablas. Escalabilidad a largo plazo. aspecto siempre complejo. Es un servicio de sincronización de datos en la nube basada en las tecnologías de Microsoft Sync Framework.Sincronización con Windows Azure Con la aparición de SQL Azure. se abre todo un mundo de posibilidades para el uso de bases de datos en la nube. aquellas aplicaciones que cuenten con usuarios móviles. una cuenta de Windows Live ID ir a la página de Windows Live y registrarse. • Tener una suscripción activa de base de datos de Windows Azure SQL Database. Las bases para la sincronización: SQL Azure Data Sync Microsoft Data Sync es el marco de trabajo que nos proporciona la infraestructura necesaria para realizar este tipo de sincronizaciones. Las bases de datos On-premises deben ser SQL Server 2005 Service Pack 3 o posterior. sino también para mantener versiones de bases de datos SQL Server sincronizadas en la nube. con otra almacenada en la nube. Si no se tiene. cuya 124 . Si no tiene una cuenta de Windows Azure ir a la página de inicio de Windows Azure y regístrate o aplicar a la evaluación gratuita de 90 días. permitiéndonos centrarnos solo en la parte más relacionada con el negocio y abstrayendo la parte más "de detalle" del proceso. a modo de herramienta de continuidad de negocio. no solo para albergar aplicaciones sin necesidad de infraestructura y en régimen de pago por uso. que permita mantener los datos sincronizados y en una ubicación física diferente a la empresarial. para fines demostrativos solamente replicamos una tabla muy sencilla. son buenas candidatas para sincronizar con los servidores de SQL Server on-premise. Desarrollo El escenario planteado consiste la replicación de una base de datos local de SQL Server. Asimismo. o que necesiten proporcionar parte de la información a proveedores o clientes a través de Internet. Requisitos para el uso de SQL Azure Data Sync Los requisitos previos para el uso de SQL Azure Data Sync son: • • Tener una cuenta de Windows Live ID. SQL Azure Data Sync permite crear y programar sincronizaciones periódicas entre SQL Azure y SQL Server (local) u otras bases de datos de SQL Azure. Proporciona sincronización bidireccional de datos y las capacidades de gestión de datos permite que los datos que se pueden compartir fácilmente a través de bases de datos SQL Azure en múltiples centros de datos. • Tener una cuenta de Windows Azure activa. el cual es el encargado de gestionar todo lo relacionado a la sincronización de la base de datos local.NET Framework 4.estructura deberá ser la misma en la base de datos Azure. Una vez instalado el software requerido procedemos a la Instalación de Microsoft SQL Data Sync Agent Preview como se muestra en las siguientes imágenes: 125 . Esto puede ser escalado y dependerá de que tablas o campos queramos mantener sincronizados.0 Microsoft SQL Server 2008 R2 SP1 System CLR Types (x86) Microsoft SQL Server 2008 R2 SP1 Shared Management Objects (x86) Para lograr la sincronización de Bases de Datos de SQL Server con la de SQL Azure se debe instalar el Agent Client.. Instalar el Client Agent Instale el software requerido • • • . 126 .Introducir un nombre de usuario y una contraseña Elegir el directorio donde se va a instalar. A continuación solo dar click en siguiente hasta finalizar. Procedimiento para la Sincronización en Windows Azure con Data Sync Entrar a la Base de Datos usando la autenticación de Windows En este documento se hará referencia a una Base de Datos llamada “uesocc”. con una tabla llamada “dbo_alumnos” la cual ya contiene algunos datos agregados. 127 . Dirigirse al sitio web de Windows Azure cuya dirección es www.com/es-es/ dentro del sitio de Azure dar clic en la opción de Portal Iniciar sesión con nuestra cuenta de correo electrónico y la contraseña. Aparecerá el portal de Windows Azure con todos sus servicios.windowsazure. 128 . En el panel izquierdo damos clic en Bases de Datos SQL para crear una nueva base de datos 129 . la contraseña de acceso al mismo y la región que este mas cerca a nuestra zona. Después de llenar los campos damos clic en el cheque o Aplicar. 130 . La contraseña debe contener letras mayúsculas.Ahora creamos un Servidor dando clic en la opción SERVIDORES Dar clic en la opción Crear un servidor de Bases de Datos SQL Ingresamos el nombre del servidor. minúsculas y números. Una vez creado el servidor aparece en el panel inicial. ahora vamos a crear la base de datos dando clic en BASE DE DATOS Dar clic en Crear una Base de Datos SQL 131 . Se coloca el nombre de la Base de Datos. se asigna el tamaño de capacidad de almacenamiento. se define el tipo de lenguaje que se utilizara y por último se le indica que pertenecerá al servidor que recién acabamos de crear. se define que es una edición web. Luego dar clic en Aplicar Para administrar la Base de datos damos clic en Administrar 132 . el nombre de Usuario y Contraseña del servidor. luego dar clic en Iniciar Sesión Una vez cargado el modulo de administración dar clic en Diseñar 133 .Espera un momento mientras se carga el portal de administración. Iniciar sesión con el nombre de la Base de Datos. Hay dos formas de crear una tabla: PRIMERA . 3...Volvemos al panel de Diseñar y damos clic en Actualizar 5.Dar clic en Ejecutar y aparecerá un mensaje que nos indica que la tabla se ha creado con éxito. 4. 2. 134 .. 1.Aparecerá la tabla con todos sus campos creados.En el apartado se introduce el código para crear una tabla la cual tiene que ser exactamente igual a la creada en la Base de Datos del Servidor local.Mediante una nueva consulta sql.Dar clic en la opción Nueva que se encuentra en parte superior... Dar clic en Nueva Tabla 2.. nombre de las columnas..Clic en Guardar y aparecerá la nueva tabla creada 135 .. 3.Con el diseñador.Comenzar a llenar los campos con la estructura que tendrá la tabla con nombre de la tabla. 1.SEGUNDA . tipo de datos y longitud. Agregar un nombre al Nuevo Agente de Sincronización y una Contraseña. Dirigirse a la parte inferior del panel y dar clic en la opción Agente de Sincronización.Lo que sigue es crear el Agente de Sincronización. luego elegir Nuevo Agente de Sincronización. luego dar clic en Aplicar 136 . Dar clic en el botón Generar y luego en la opción Copiar. Posteriormente clic en Aplicar. En el equipo local ejecutar Microsoft SQL Data Sync Agent Preview y dar clic en Submit Agent Key y pegar la contraseña generada con el Agente de Sincronizacion 137 .Lo que sigue es crear una clave de identificación con la cual se podrá tener acceso a la Base de Datos que se encuentra en Azure. si todo esta bien aparecerá un mensaje indicando el resultado positivo de conexión. A continuación se hace el registro del servidor y de la Base de Datos que vamos a sincronizar dando clic en Register.Para comprobar la conexión se hace un ping de servicio haciendo clic en Ping Sync Service. ingresar el nombre del servidor y el nombre de la Base de Datos. luego dar clic en Test Conection para verificar que todo este bien de ser asi aparecerá un mensaje corroborándolo 138 . Seleccionar la autenticación de Windows. En el panel principal de Windows Azure dar clic en Agente de Sincronización luego elegir la opción Nuevo Grupo de Sincronización 139 . dicho grupo contendrá las bases de datos que participaran en la sincronización.Lo siguiente es crear un grupo de Sincronizacion. Dar clic en el botón Siguiente. introducir el nombre de usuario y contraseña de la misma.Agregar un nombre al nuevo Grupo de Sincronización y seleccionar la región. Seleccionar la Base de Datos que se encuentra en el servidor local. luego clic en la flecha siguiente Seleccionar la ubicación de la Base de Datos Central. los otros campos quedan vacios. 140 . Dar clic en la flecha siguiente. aparecerá un asistente para crear la regla. Seleccionar el nombre del Servidor. Seleccionar el grupo creado y luego dar clic en REGLAS DE SINCRONIZACION En el panel que aparece dar clic en DEFINIR REGLAS DE SINCRONIZACION. 141 .Lo que sigue es crear las reglas de sincronización. los campos y la tabla que se quiere sincronizar para finalizar dar clic en Guardar. .Guardar la configuración Con esto ya tenemos listo todo el escenario.Activar el grupo de Sincronización. ahora queda por parte del usuario hacer las pruebas respectivas para comprobar la funcionalidad con esta herramienta. 2.. Para una ayuda audiovisual puede ver el video donde se encuentran los mismos pasos con mayor detalle. ir a la opción CONFIGURAR ahí se hará lo siguiente: 1..com/watch?v=r-hPtf_iLjU 142 .Una vez creada la regla. 3.Definir cada cuanto se estarán actualizando los datos. pueden verlo en la siguiente dirección: http://www.youtube. windowsazure.Referencias http://www.com/microsoft-sync-framework-y-sql-azure/ http://msdn.microsoft.com/en-us/library/jj823137.aspx www.aspx http://msdn.com/en-us/library/hh456371.estoyenlanube.microsoft.com/en-us/manage/services/sql-databases/getting-started-w-sql-data-sync/ http://jonathanvanderoost.com/2013/02/01/how-to-use-windows-azure-sql-data-sync-newportal/ geeks.aspx 143 .ms/blogs/johnbulla/archive/2012/10/12/sql-azure-data-sync-sincronizaci-243-n-de-datos-entrebases-de-datos-sql-server-on-premise-y-base-de-datos-de-windows-azure-sql-database. . Replicación con SQL Server Autores:    Cisneros Cente. La réplica tiene una analogía al sector editorial para representar los componentes de una topología de réplica. El publicador distribuye la revista directamente o a través de un distribuidor. La replicación permite distribuir datos entre diferentes ubicaciones y entre usuarios remotos o móviles mediante redes locales y de área extensa. Resulta útil pensar en la réplica de Microsoft SQL Server como si fuera una revista:     El publicador (editor) de una revista produce una o más publicaciones. 145 . En la siguiente figura se muestra información general acerca de los componentes y procesos que participan en la réplica. conexiones inalámbricas e Internet. Rolando Alexis Ibarra Bonilla. los artículos y las suscripciones. Es importante señalar que la réplica de SQL Server incluye funciones como: la posibilidad de que un suscriptor realice actualizaciones y de que un publicador envíe cambios incrementales a los artículos de una publicación. los suscriptores. el distribuidor. Rosembel Introducción a la replicación con SQL Server La replicación es un conjunto de tecnologías destinadas a la copia y distribución de datos y objetos de base de datos desde una base de datos a otra. para luego sincronizar ambas bases de datos y mantener su coherencia. las publicaciones. Los suscriptores reciben las publicaciones a las que se han suscrito. conexiones de acceso telefónico. que incluyen el publicador. Existen varios procesos de réplica (denominados agentes) que son responsables de copiar y mover los datos entre el publicador y los suscriptores. Una publicación contiene artículos. Luis Armando Orellana Hugo. una sola instancia de servidor de bases de datos funciona como publicador y como distribuidor Esto se conoce como un distribuidor local. cada una de las cuales representa un conjunto de objetos y datos relacionados lógicamente para replicar. La base de datos de distribución almacena los datos de estado de la réplica. En función del tipo de réplica elegida.Los elementos que participan en la replicación Sql Server son los siguientes: Publicador Es una instancia de base de datos que permite que los datos estén disponibles para otras ubicaciones a través de la réplica. vistas. Un suscriptor puede recibir datos de varios publicadores y publicaciones. en algunos casos. Suscriptores Es una instancia de base de datos que recibe datos replicados. Una publicación puede contener diferentes tipos de artículos. Cuando las tablas se publican como artículos. como tablas. funciona como cola para los datos que se transfieren del publicador a los suscriptores. se pueden usar filtros para restringir las columnas y filas de datos que se envían a los suscriptores. Cada publicador está asociado con una sola base de datos (conocida como la base de datos de distribución) en el distribuidor. En muchos casos. Cuando el publicador y el distribuidor se configuran en instancias distintas del servidor de bases de datos. el distribuidor se denomina un distribuidor remoto. metadatos acerca de la publicación y. Artículo Un artículo identifica un objeto de base de datos incluido en una publicación. El publicador puede tener una o más publicaciones. el suscriptor también puede devolver los datos modificados al publicador o volver a publicar los datos en otros suscriptores. Distribuidor Es una instancia de base de datos que funciona como almacén para datos específicos de réplica asociados con uno o más publicadores. Publicación 146 . procedimientos almacenados y otros objetos. Es un conjunto de uno o más artículos de una base de datos. La agrupación de varios artículos en una publicación permite especificar más fácilmente un conjunto de objetos y datos de bases de datos relacionados lógicamente, que se replican como una unidad. Suscripción Es una solicitud de una copia de una publicación que se entrega a un suscriptor. La suscripción define qué publicación se recibirá, dónde y cuándo. Hay dos tipos de suscripciones: de inserción y de extracción. Agentes necesarios para configurar apropiadamente la replicación SQL Server Agente SQL Server El Agente SQL Server aloja y programa los agentes utilizados en la réplica, y proporciona una manera sencilla de ejecutar los agentes de réplica. El Agente SQL Server también controla y supervisa las operaciones fuera de la réplica. De manera predeterminada, el servicio del Agente SQL Server está deshabilitado cuando se instala SQL Server 2005, a menos que se elija explícitamente iniciar el servicio automáticamente durante la instalación. Agente de instantáneas Por lo general, el Agente de instantáneas se utiliza con todos los tipos de réplica. Prepara esquemas y archivos de datos iniciales de tablas publicadas y otros objetos, almacena los archivos de instantáneas y registra la información acerca del estado de sincronización en la base de datos de distribución. El Agente de instantáneas se ejecuta en el distribuidor. Agente de registro del LOG 147 El Agente de registro del LOG se utiliza en la réplica transaccional. Mueve las transacciones marcadas para réplica desde el registro de transacciones del publicador a la base de datos de distribución. Cada base de datos publicada con la réplica transaccional tiene su propio Agente de registro del LOG, que se ejecuta en el distribuidor y se conecta al publicador (el distribuidor puede estar en el mismo equipo que el publicador). Agente de distribución El Agente de distribución se utiliza en la réplica de instantáneas y transaccional. Aplica la instantánea inicial al suscriptor y mueve las transacciones contenidas en la base de datos de distribución a los suscriptores. El Agente de distribución se ejecuta en el distribuidor, para las suscripciones de inserción, o en el suscriptor, para las suscripciones de extracción. Agente de mezcla El Agente de mezcla se utiliza con la réplica de mezcla. Aplica la instantánea inicial al suscriptor, y transfiere y reconcilia los cambios incrementales de datos que se producen. Cada suscripción de mezcla tiene su propio Agente de mezcla, que se conecta con el publicador y con el suscriptor, y los actualiza. El Agente de mezcla se ejecuta en el distribuidor, para las suscripciones de inserción, o en el suscriptor, para las suscripciones de extracción. De forma predeterminada, el Agente de mezcla carga los cambios del suscriptor al publicador y, a continuación, descarga los cambios del publicador al suscriptor.. Agente de lectura de cola El Agente de lectura de cola se utiliza con la réplica transaccional y la opción de actualización en cola. El agente se ejecuta en el distribuidor y transfiere los cambios realizados en el suscriptor de vuelta al publicador. A diferencia del Agente de distribución y del Agente de mezcla, sólo existe una instancia del Agente de lectura de cola para todos los publicadores y las publicaciones de una determinada base de datos. Servicio SQL Server Browser El programa SQL Server Browser se ejecuta como un servicio de Windows. SQL Server Browser escucha las solicitudes entrantes de recursos de Microsoft SQL Server y proporciona información acerca de las instancias de SQL Server instaladas en el equipo. SQL Server Browser permite efectuar las siguientes acciones:    Examinar una lista de los servidores disponibles Conectarse a la instancia correcta del servidor Conectarse a los extremos de la conexión de administrador dedicada (DAC) 148 Para cada instancia de Motor de base de datos y SSAS, el servicio SQL Server Browser (sqlbrowser) proporciona el nombre de la instancia y el número de versión. SQL Server Browser se instala con SQL Server y proporciona este servicio para las versiones anteriores de SQL Server que se ejecutan en el equipo, empezando por SQL Server 7.0. SQL Server Browser se puede configurar durante la instalación o utilizando el Administrador de configuración de SQL Server. De manera predeterminada, el servicio SQL Server Browser se inicia automáticamente:      Cuando se actualiza una instalación. Cuando se instala simultáneamente con una instancia de SQL Server 2000. Cuando se instala en un clúster. Cuando se instala una instancia con nombre de SQL Server Database Engine (Motor de base de datos de SQL Server) que incluye todas las instancias de SQL Server Express. Cuando se instala una instancia con nombre de Analysis Services. Tipos de réplica en SQL Server  Réplica transaccional. Se inicia con una instantánea de los datos y los objetos de la base de datos de publicaciones. En cuanto se obtiene la instantánea inicial, los posteriores cambios de datos y modificaciones de los esquemas realizados en el publicador habitualmente se entregan en el suscriptor cuando se producen (casi en tiempo real). Los cambios de datos se aplican al suscriptor en el mismo orden y dentro de los mismos límites de la transacción que cuando se produjeron en el publicador. Por tanto, en una publicación, se garantiza la coherencia transaccional.  Réplica de mezcla. Normalmente se inicia con una instantánea de los objetos y datos de una base de datos de publicaciones. Los cambios de datos y las modificaciones de esquema posteriores que se lleven a cabo en el publicador y en los suscriptores se controlan mediante desencadenadores. El suscriptor se sincroniza con el publicador cuando están conectados a la red e intercambian todas las filas que han cambiado entre el publicador y el suscriptor desde la última vez que se produjo la sincronización. La réplica de mezcla se suele utilizar en entornos de servidor a cliente.  Réplica de instantáneas. La réplica de instantáneas distribuye los datos exactamente como aparecen en un momento específico en el tiempo y no supervisa las actualizaciones de los datos. Cuando se produce la sincronización, se genera la instantánea completa y se envía a los suscriptores. 149 Desarrollo de escenario practico de replicación Base de datos: La base de datos que se utilizara en la demostración está compuesta de 4 tablas y simula un pequeño centro comercial para su ilustración práctica se presenta la siguiente figura con el diagrama de base de datos y sus respectivas tablas, esta será la base de datos a replicar: 150 Configuration Tools y luego SQL Server Configuration Manager.X) Como se puede observar en la figura anterior la base de datos estará en los tres servidores el servidor con el nombre distribuidor será el encargado de realizar la publicación y las sucursales Sonsonate y Santa Ana respectivamente realizaran la suscripción al servidor central que para nuestra simulación estará en San Salvador.254.168.Escenario de replicación: El diagrama nos muestra la ip que cada una de las computadoras servidoras deben tener (se asume para el presente tutorial que cada una de las computadoras posea la interfaz de red en el segmento que se indica. Todos los programas luego buscamos: Microsoft SQL Server 2005. Comencemos!!!! Lo primero será verificar que los servicios necesarios estén activos en el sistema operativo y corriendo para poder realizar las publicaciones desde el servidor central para ello seguimos los pasos siguientes: Clic en el menú inicio. Bien…. 151 . para nuestra demostración 192.. Browser e Instancia no están corriendo tendremos que iniciarlos manualmente para ello daremos click derecho a cada uno y luego Start Iniciamos sesión en SQL Server Management Studio. ya sea con credenciales de Usuario de Sql o Credenciales de Sistema Operativo (Windows) En este caso utilizaremos Credenciales de Usuario Sql server llamada “sa” 152 .Si los servicios de Agente. Vemos que tenemos la base de datos mostrada anteriormente con sus respectivas tablas y diagramas: El siguiente paso será crear la replicación para ello comenzaremos cambiando algunos permisos en la base de datos. para ello hacemos clic derecho en Replication y luego en Publisher properties 153 . haremos clic en local Publications para comenzar con el asistente de creación de publicación nueva y Luego clic en New Publication 154 .En la ventana siguiente seleccionamos Publications Databases y permitimos Transactional y Merge asi nuestras publicaciones de bases de datos podrán realizarse tanto para transaccionales como para mezcla Luego de esto hacemos clic en OK. En la siguiente ventana colocaremos el tipo de replicación en este caso haremos una replicación transaccional hacemos clic en next 155 .Se abrirá la ventana siguiente donde buscaremos las bases de datos a replicar. Luego daremos clic en next para luego elegir qué tipo de replicación queremos hacer. recuerde que son 3 tipos diferentes de replicación en SQL Server. Ahora lo que tenemos que hacer es seleccionamos los objetos que deseamos publicar en este caso dejaremos seleccionada la tabla producto. 156 . ahora la razon para ello es que: los servidores esclavos no podran modificar ni realizar transacciones a la tabla productos. solamente el administrador podra hacerlo. luego de esto hacemos clic en Next. estas configuraciones las mostramos en la siguiente imagen. en la sección Duration pondremos No end date. para ello seleccionamos los checkbox que se muestran en la imagen y daremos clic en el boton change. la siguiente ventana que saldra muestra algunos parametros de la frecuencia con la cual el agente de instantaneas monitoreara la base de datos en esta ventana. y despues podremos ver la siguiente figura: En esta configuraremos algunos atributos de las instantaneas que se enviaran en la replicacion. para nuestro caso dejaremos Occurs Daily y en Daily Frecuency colocaremos 30 minutes. 157 .En la siguiente ventana daremos clic en next. Daremos clic en Ok luego en la siguiente ventana haremos clic en next.. para configurar algunos parametros de seguridad Despues de esto tendremos que proporcionar ciertas credenciales para acceder al publicador 158 . en la siguiente figura daremos clic en el boton Security Settings. Estas se muestran en la imagen siguiente el usuario que usaremos sera: "sa" y le colocaremos una contraseña hacemos clic en OK y en la siguiente imagen en siguiente (next) 159 . veremos que todo a concluido con éxito 160 .Colocamos un nombre para finalizar con el asistente de publicacionen este caso será el nombre: Pubproductos Damos clic en finish y si hemos realizado todo correctamente esperamos ver la siguiente ventana. Cerramos la ventana de asistente de publicación nueva. y veremos en local publications que ahora tenemos una publicación nueva creada. 161 . la publicación para productos se ha definido. donde escogemos el tipo de replicación pero ahora seleccionaremos replicación por mezcla pues nuestro ejemplo podrán los servidores secundarios replicar también en el servidor matriz pues el servidor matriz podrá monitorear todas las transacciones de las sucursales secundarias. ahora crearemos la otra publicación para compartir la tabla stock ventas y sucursal Ahora seguimos los mismos pasos anteriores pero nos detendremos en la parte. En la siguiente ventana escogemos base de datos SQL Server 2005 162 . Ahora damos clic en next y realizamos el filtro dando clic en el boton addfilter 163 .En la siguiente ventana crearemos los filtros necesarios para que los datos que repliquemos se vayan a la sucursal que corresponde para lo cual seleccionamos las 3 tablas a replicar las cuales son: stock. sucursales y venta. Escogeremos el filtro para la sucursal 1 luego seleccionamos la tabla stock. por lo tanto tendremos que escribir la consulta siguiente: 164 . Hacemos clic en Ok y luego en add para añadir un nuevo filtro para otra tabla luego hacemos lo mismo para la tabla sucursal y venta 165 . Ahora tendríamos creados los filtros: en la siguiente ventana dejamos los checkbox asi como aparecen pero hacemos clic en el boton change y luego hacemos los cambios mostrados en la siguiente ventana 166 . luego tendremos que aplicar la seguridad el usuario que colocaremos será "sa" 167 . En las 2 ventanas siguientes hacemos clic en next para luego ponerle un nombre a la publicación en este caso le pondremos el nombre: "PubSucursal1" si todo lo hemos realizado de forma correcta tendríamos que ver la siguiente ventana 168 . En este momento tendríamos creadas las 2 publicaciones que utilizaremos. para lo cual tendremos que estar conectados con el servidor remoto y habilitar los puerto 1433 y 1434 respectivamente en el firewall de windows en Sql server realizamos las siguientes configuraciones: Hacemos clic en el botón Connect. ahora hacemos los mismos pasos que acabamos de hacer para la sucursal 2. luego tendremos que realizar las pruebas Ahora lo que aremos será una conexión con un servidor remoto. luego en Database Engine luego en la opción Browse for more Luego en la pestaña NetworkServer Expandimos el arbol DataBase Engine y veremos que tenemos el servidor remoto damos clic en el que nos queremos conectar y luego clic en Ok 169 . Para la Authentication nos conectaremos con autenticación de SQL Server para ello usaremos el usuario "sa" 170 . 171 .Después de conectar podremos ingresar a las configuraciones del servidor remoto. para ello. luego crearemos una suscripción. hacemos clic derecho en la carpeta Local Subscriptions y después en New Subscription En La siguiente ventana daremos clic en Find SQL Server Publisher. para buscar el servidor publicador y poder suscribirnos a sus publicaciones. Luego daremos clic en Server Name. del cual seleccionaremos el servidor publicador y hacemos clic en Ok 172 . damos clic en el combo y seleccionaremos Browse for more. luego en la pestaña Network Servers y esperamos a que nos aparezca el árbol de Servidores remotos. Después de esto nos autenticaremos con cuenta de SQL Server y utilizaremos el usuario "publicador" y la contraseña que definio el publicador luego daremos clic en connect luego hacemos clic en PubProductos y luego en next 173 . En esta ventana definiremos que el distribuidor esta en el publicador En la siguiente ventana configuraremos una nueva base de datos hacemos clic en New database 174 . Luego definiremos la base de datos con nombre Demo y dejaremos lo demás tal cual nos aparece 175 luego daremos clic en next y después en la siguiente ventana daremos clic en el botón que se muestra en la siguiente imagen Luego realizaremos las configuraciones de seguridad utilizaremos el usuario "sa" para la autenticacion luego daremos clic en Ok 176 en las 4 ventanas siguientes daremos clic en next y luego en finalizar , veremos que todo se ha creado con éxito 177 Cerramos la ventana y luego hacemos clic derecho en Local Subscriptions y luego en Refresh, ahora crearemos la subscripcion de mezcla para ello seguimos los mismos pasos que acabamos de seguir pero en la siguiente ventana seleccionamos pubSucursal1 los siguientes pasos serán igual quee para la suscripción anterior, hasta llegar a la parte de Synchronization Schedule, En esta parte Seleccionaremos el Agent schedule como Run continuously para que sea mas rápida la sincronización, hacemos clic en next 178 En la siguiente ventana seleccionaremos en el parametro Initialize When: Inmediately . por lo tanto veremos en el transcurso de un minutos que los registros que ingresamos en la base de datos inicial se replicaran en esta sucursal En la siguiente ventana Susbcription type seleccionamos Client y damos clic en next 179 . para que los cambios se realicen inmediatamente. tendriamos que ver la siguiente imagen si todo a sucedido satisfactoriamente 180 .En la siguiente ventana damos clic en siguiente y luego en finish. Luego tendremos que dar clic derecho en local subscriptions y luego refresh para. 181 . refrescar las subscripciones y luego realizamos el mismo procedimiento para la base de datos Demo luego abrimos la base de datos y la tabla producto y veremos que los datos del servidor principal se replican en el servidor secundario. . 183 . más potente que los comunes de escritorio. libre y apoyada por organizaciones comerciales. de tal forma que el conjunto es visto como un único computador. David Sandoval.  PostgreSQL Es un SGBD relacional orientado a objetos y libre.PostgreSQL Cluster con DRBD y Heartbeat Ana Jiménez. altruista. construido utilizando componentes de hardware comunes y en la mayoría de los casos. Analizar el funcionamiento de las tecnologías mencionadas anteriormente como una solo entidad. 184 . software libre. Heartbeat y DRBD. publicado bajo la licencia BSD. El cluster puede estar conformado por nodos dedicados o por nodos no dedicados Simplemente. Como muchos otros proyectos de código abierto. Objetivos:    Conocer los conceptos básicos relacionados con Cluster y las tecnologías de PostgreSQL . Conceptos:  Cluster: El término cluster se aplica a un conjunto o conglomerado de computadores. el desarrollo de PostgreSQL no es manejado por una empresa y/o persona. sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada. Presentar un escenario en el cual se pueda a dar demostrar el funcionamiento del Cluster y la replicación. los computadores se interconectan mediante alguna tecnología de red. un cluster es un grupo de múltiples computadores unidos mediante una red de alta velocidad. Byron Guerrero. Para más información de cada tipo de replicación en el siguiente enlace: http://www. Consiste de un modulo de kernel.. es similar a un RAID 1. pero corre bajo la Red. Protocol B: Protocolo de replicación síncrona de memoria Protocol C: Protocolo de replicación síncrona. nos referimos al modulo de kernel y a las correspondientes herramientas de administración. Pacemaker es el gestor de recursos de cluster preferido para los clusters basados en Heartbeat. Esto permite a los clientes tener conocimiento de la presencia (o desaparición) de los procesos en otras maquinas e intercambiar fácilmente mensajes entre ellos..  DRBD DRBD (DistributedReplicated Block Device) es un sistema de almacenamiento distribuido para plataformas basadas en linux.  Replicacion DRBD posee tres tipos de replicación estas son: Protocol A: Protocolo de replicación asíncrona.) a los cuales el cluster aportará alta disponibilidad. Cuenta con más de 15 años de desarrollo activo y una arquitectura probada que se ha ganado una sólida reputación de fiabilidad e integridad de datos. Utilizada en este tutorial. servidores web. herramientas para manejar los discos y una serie de scripts.PostgreSQL es un potente sistema de base de datos objeto-relacional de código abierto. que son usados normalmente en cluster de alta disponibilidad. Para resultar útil a los usuarios el dominio HEARTBEAT necesita emplearse en combinación con un gestor de recursos del cluster (clusterre source manager (CRM)) el cual posee la tarea de iniciar y parar los servicios (Direcciones IP.Al hablar de DRBD.html 185 .org/users-guide/s-replication-protocols.drbd.  Heartbeat Es un dominio que proporciona servicios de infraestructura de cluster (comunicación y pertenencia) a sus clientes. A demás se utilizara un Switch y una tercera maquina que será utilizada como cliente y hará uso de los servidores. La topología utilizada para este tutorial es la siguiente: Secundario Primario El Hardware que se utilizo en la implementación:    186 2 maquinas como servidores con sistema operativo Debian Un Switch Cables UTP . En ambas es necesario tener una partición sin montar y sin formatear que esta será utilizada para el DRBD. La capacidad de almacenamiento reservado en estas particiones permitirá almacenar como máximo la capacidad de la partición más chica.Desarrollo: Se necesitan dos servidores o máquinas de similares características (tanto en las arquitecturas de dichos servidores y en sus sistemas operativos). con /etc/drbd_backup.conf 3. Ahora procederemos a la configuración de dicho archivo: 187 . Primero vamos a guardar una copia del archivo de configuración original: # mv /etc/drbd.  1 maquina cliente para la conexión a la base de datos Interfaces usb Lan Ethernet Instalación y configuración de DRBD 1. Procederemos inicialmente a la instalación de los paquetes necesarios para la configuración del Heartbeat # sudoapt-getinstall drbd8-utils build-essential libreadline6-dev zlib1g-dev 2. 6. Junto a estos nodos internamente se le declaran: a. c.2/24 up (nodo primario) # Ifconfig eth1 10. Luego también declaramos el tiempo de espera para la sincronizaion.0. Una vez realizada correctamente la configuración anterior en ambos nodos procederemos a colorcarnos las respectivas direcciones IP´s para poder iniciar la sincronización del DRBD # Ifconfig eth1 10. La partición sin formato en el cual se va montar (en nuestro caso /dev/sda4). b.0.0. Recordar que este archivo de configuración debe de estar presente en ambas maquinas tanto en la primaria como en la secundaria 10. La dirección IP por medio de la cual se cederán recuro.4. Declaramos que utilizaremos un método de replicación C (protocol c). De igual manera también denominamos el nombre de recurso (resource pg) en donde un recurso lo podemos definir como término colectivo pero que hace una referencia en particular al conjunto de información que se va a replicar. 8. De igual manera también se declaran los nodos que participaran en el proceso DRBD los cuales cederán el recurso cuando uno se encuentre bajo o fuera de línea. La unidad lógica del drbd que se va a crear (/dev/drbd0). La primera línea de código hace referencia a una encuesta en la cual drbd nos invita a participar y la segunda línea (common) la velocidad de sincronización entre las dos maquinas. 7. 5. en el cual la replicación se dará como completa cuando en ambas maquinas se actualicen los datos. 9.0. Ahora iniciamos el DRBD: 188 .3/24 up (nodo secundario) 11. d. La creación de meta-data correspondiente a la partición lógica que se realizara más adelante. la causa de este error es que aun no hemos creado la meta-data del recurso que va a compartir.conf) nos permite crear la meta-data del dispositivo lógico drbd0 y el recurso. Recordad que estos comandos deben de realizarse en ambos nodos. 189 . Creamos la meta-data de la siguiente forma: Mediante el comando drbdadm (este comando permite usar comando para manipular drbd0) create-md pg (pg es el nombre del recurso declarado anteriormente en el archivo drbd. 12.Y observaremos un error al tratar de inicializar el drbd. el cual no debería de darnos ningún tipo de error. 14.13. luego damos formato a la partición compartida y montamos la partición: # sudo drbdadm -. El paso siguiente es inicializar de nuevo el drbd. Podemos ver el estado de la sincronización por medio del comando cat /proc/drbd : Como podemos ver ya se encuentran conectados pero aun no listos para realizar la replicación o intercambiarse el recurso para ello necesitamos definir un nodo primario y darle formato a la partición que se va a replicar. Para este ejemplo elegimos absdeb como servidor primario por lo que solo en ésta máquina ejecutamos el siguiente comando.ext4 -j /dev/drbd0 # sudo mount -t ext4 /dev/drbd0 /data (carpeta definida en postgresql para nuestro caso la carpeta data) Y con esto iniciara la sincronización: 190 .--overwrite-data-of-peer primaryall # sudo mkfs. Ahora es necesario establecer el nodo primario del cluster. Una vez finalizado la sincronización y completada de forma satisfactoria se mostrara algo como lo siguiente: Como se podrá ver el estado (cs:Connected) se encuentra estable o conectado. Procedemos a la instalación de Heartbeat desde los repositorios con el siguiente comando: # sudo apt-get install Heartbeat 2. estadefinido el nodo primario y secundario y se encuentran listos para la replicación o copiar datos(uptodate/uptodate). Instalación y Configuración de Heartbeat 1.d/ # cp /usr/share/doc/heartbeat/ha.cf.gz /etc/ha.d/ 191 .d/ # cp /usr/share/doc/heartbeat/haresources.gz /etc/ha. En el nodo primario copiamos los archivos de configuración de ejemplo o simplemente creamos archivos nuevos: # cp /usr/share/doc/heartbeat/authkeys /etc/ha. En primer lugar definimos cuál va a ser el nodo principal en este caso asbdeb. En cuanto caiga una máquina.gz # gzip -d haresources. Ahí declaramos los servicios que queremos monitorear y que deben estar siempre disponibles. Ahora procederemos a la configuración del archivo ha. el initdead que es el único que no se alcanza a ver es el tiempo se que esperan para cuando ambos nodos no se inician al mismo tiempo.gz 3.1 es el script que asigna la IP virtual que tendrá el 192 . Dentro de haresources ingresamos: Les voy a explicar que significa cada parte de este archivo.0.0. 4. IPaddr::10.# gzip -d ha.cf. es el tiempo que esperan para iniciar el proceso.cf Esta fue la configuración realizada para nuestro escenario se muestra un comentario a la par de cada uno de los comandos. la otra tomará el control levantando los servicios monitoreados y tomando la IP Virtual. Por último debemos modificar el archivo haresources. d/postgresql # chmod +x /etc/ha.d/resources.también la podríamos llamar un ip flotante que será la que el Heartbeat asigne cuando una maquina caiga.d/resources. En indispensable copiar el archivo de arranque de PostgreSQL a /etc/ha.x. 5.d y modificar la variable de entorno PGDATA de dicho script para que apunte a la carpeta /opt/postgresql/data que es el lugar donde van a residir las bases de dato y al mismo tiempo otorgar los permisos necesarios: # cp postgresql-9.x/contrib/start-scripts/linux /etc/ha. Luego copiamos los archivos de configuración a todos los nodos o realizamos las mismas configuraciones 193 . luego con Filesystem::/dev/drbd0::/opt/postgresql::ext4::defaults montamos el dispositivo virtual drbd0 en la carpeta /opt/postgresql y por último decimos que arranque o inicie postgresql.d/resources.cluster y el cual será el punto de acceso.d/postgresql 6. Con drbddisk::pg le decimos que recurso DRBD queremos brindar.x. postgres –R /opt/postgresql/data 6. Como usuario “postgres” inicializamos los datos de Postgres # sudo su postgres # /usr/local/pqsql/bin/initdb –D /opt/postgresql/data 194 .XX/src/bin/pg_ctl/ y se llama pg_ctl. La instalación de PostgreSQL será a través de la compilación del código fuente porque debemos hacer algunas modificaciones a la variable pg_ctl para que todo funcione correctamente. 3. entonces cuando heartbeat le pregunta a PostgreSQL si está ejecutándose correctamente él responde “no server running” y heartbeat supone que todo está bien aunque realmente no sea así.Instalación y configuracion del PostgreSQL acceso remoto 1. Una vez ubicado esta aplicación buscamos la leyenda “no server runnig” dentro del código y reemplazamos la palabra “runnig” por cualquier otra.org/download/ 2. Descargue el código fuente del siguiente enlace http://www. y modificamos el código de la aplicación pg_ctl. 4. Con la partición montada en la maquina primaria crearemos la ubicación de Postgres dentro de ella con: # Mkdir /opt/postgresql/data 5.c.postgresql. Le asignamos permisos al directorio para que pertenezca al usuario “postgres” # Chown postgres.X. Esto tiene una explicación y es que Heartbeat verifica si un servicio está corriendo o no buscando la cadena “running” u “ok” al pedir su status. Luego de bajar los fuentes del PostgreSQL descomprimimos. el archivo fuente de esta aplicación esta en postgresql8. 0.2. El otro archivo a modificar será /opt/postgresql/data/pg_hba.7.conf Modificamos la línea de listen_addresses igualándola a “*” para que escuche en cualquier interfaz de las que el servidor tiene disponibles. el primero de estos seria /opt/postgresql/data/postgresql.0/24 trust Con la línea anterior indicamos a Postgres que permita al bloque de direcciones 10. 195 .2. 8.confy agregamos al final de este la siguiente línea: Host all all 10.0.0/24 que acceda a cualquier base de datos con cualquier usuario en el servidor. Recordad que estos pasos se aplican solo para la maquina primaria. A continuación modificamos un par de archivos para permitir el acceso remoto a la base de datos. Luego bajamos a Heartbeat en la maquina primaria # /etc/init.Pruebas de del Escenario 1. PostgreSQL solo en la maquina primaria: # /etc/init. índices. en nuestro servidor secundario deberíamos de ver algo similar a la captura anterior pero con la diferencia que ahora nuestro servidor secundario será primario: 196 . Antes de bajar el servicio en el nodo secundario deberíamos tener la siguiente salida en la maquina primaria: 4. Una vez realizado correctamente la configuraciones anteriores tanto para Heartbeat y drbd e inicializar el motor PostgreSQL.d/drbd start # /etc/ha. Luego para probar que se estén replicando correctamente los datos.d/Heartbeat stop 5.d/Heartbeat start # /etc/ini. vistas. desde cero.d/postgresql start 2.. 3. haber definido el tanto el nodo primario y secundario procedemos a la iniciación de Heartbeat y el servicio DRBD en ambos servidores. en el nodo secundario ejecutamos el comando “watch cat /proc/drbd” mientras que en el nodo principal bajamos el servicio de hearbeat. Ahora bien una vez detenido el Heartbeat en la maquina primara. etc. Una vez inicializado el PostgreSQL en la maquina primaria procedemos crear la base de datos y empezar a crear las tablas.d/resources. org/ Documentacion de implementación e instalación de Heartbeat  http://www.postgresql.com.slideshare.habitacion511.org/docs/9.eu/index.ipcorp.php/alta-disponibilidad-en-linux/ Documentacion de PostgreSQL  http://www.org/images/0/07/Ha_postgres.ar/blog/2009/10/01/cluster-de-alta-disponibilidad-deservidores-postgresql-con-drbd/ http://wiki.net/jessejajti/hadrbdpostgres-postgreswest-08-presentation 197 .Referencias Documentacion de implementación y comandos DRBD  http://www.1/static/install-procedure.pdf http://www.html Documentacion de Cluster con PostgreSQL    http://www.drbd.postgresql. . PostgreSQL utiliza un modelo cliente/servidor y usa multiprocesos en vez de multihilos para garantizar la estabilidad del sistema. Conceptos: ¿Qué es PostgreSQL? PostgreSQL es un sistema de gestión de bases de datos objeto-relacional. Un fallo en uno de los procesos no afectará el resto y el sistema continuará funcionando. Es uno de los sistemas de gestión de bases de datos de código abierto más potentes del mercado y en sus últimas versiones no tiene nada que envidiarle a otras bases de datos comerciales. conexiones inalámbricas e Internet. realizando actualizaciones en cascada. Conocer sobre Slony-I y Pgpool. Analizar el funcionamiento de réplicas de datos. conexiones de acceso telefónico. ¿Qué es Slony-I? Es un software que nos permite hacer replicaciones maestro/esclavo asíncrono. desde una base de datos a otra. distribuido bajo licencia BSD y con su código fuente disponible libremente. para luego sincronizar ambas bases de datos y mantener su coherencia. Aplicar los conocimientos obtenidos a un escenario real. ¿Qué es una Replicación? La réplica es un conjunto de tecnologías destinadas a la copia y distribución de datos y objetos de base de datos. 199 . Larios Raquel.Replicación con PostgreSQL JuarezYonatan. Zelaya Josue Objetivos:     Aprender sobre el contenido amplio de PostgreSQL. La réplica permite distribuir datos a diferentes ubicaciones y a usuarios remotos o móviles mediante redes locales y de área extensa. Slony-I es un maestro "a varios esclavos" sistema de replicación en cascada de apoyo (por ejemplo - un nodo puede alimentar a otro nodo que se alimenta de otro nodo) y de conmutación por error. El panorama para el desarrollo de Slony-I es que es un esclavo de replicación del sistema principal que incluye todas las características y las capacidades necesarias para replicar bases de datos de gran tamaño a un número razonablemente limitado de los sistemas esclavistas. Slony-I es un sistema diseñado para su uso en centros de datos y sitios de respaldo, en el modo normal de operación es que todos los nodos están disponibles. Sobre pgpool-II. Pgpool-II habla los protocolos de frontend y backend de PostgreSQL, y pasa las conexiones entre ellos. De ese modo, una aplicación de base de datos (frontend) cree que pgpool-II es el verdadero servidor de PostgreSQL, y el servidor (backend) ve a pgpool-II como uno de sus clientes. Debido a que pgpool-II es transparente tanto para el servidor como para el cliente, una aplicación de base de datos existente puede empezar a usarse con pgpool-II casi sin ningún cambio en su código fuente. pgpool-II funciona sobre Linux, Solaris, FreeBSD y la mayoría de las arquitecturas UNIX. Windows no está soportado. Las versiones de PostgreSQL soportadas son de la 6.4 para arriba. Para usar la paralelización de consultas es necesaria la versión 7.4 o superior. Pgpool-II proporciona las siguientes características: Limita el excedente de conexiones.PostgreSQL soporta un cierto número de conexiones concurrentes y rechaza las que superen dicha cifra. Aumentar el límite máximo de conexiones incrementa el consumo de recursos y afecta al rendimiento del sistema. pgpool-II tiene también un límite máximo de conexiones, pero las conexiones extras se mantienen en una cola en lugar de devolver un error inmediatamente. Pool de conexiones.pgpool-II mantiene abiertas las conexiones a los servidores PostgreSQL y las reutiliza siempre que se solicita una nueva conexión con las mismas propiedades (nombre de usuario, base de datos y versión del protocolo). Ello reduce la sobrecarga en las conexiones y mejora la productividad global del sistema. Replicación. pgpool-II puede gestionar múltiples servidores PostgreSQL. El uso de la función de replicación permite crear una copia en dos o más discos físicos, de modo que el servicio puede continuar sin parar los servidores en caso de fallo en algún disco. Balanceo de carga. Si se replica una base de datos, la ejecución de una consulta SELECT en cualquiera de los servidores devolverá el mismo resultado. pgpool-II se aprovecha de la característica de replicación para reducir la carga en cada uno de los servidores PostgreSQL distribuyendo las consultas SELECT entre los múltiples servidores, mejorando así la productividad global del sistema. En el mejor 200 caso, el rendimiento mejora proporcionalmente al número de servidores PostgreSQL. El balanceo de carga funciona mejor en la situación en la cuál hay muchos usuarios ejecutando muchas consultas al mismo tiempo. Paralelización de consultas. Al usar la función de paralelización de consultas, los datos pueden dividirse entre varios servidores, de modo que la consulta puede ejecutarse en todos los servidores de manera concurrente para reducir el tiempo total de ejecución. La paralelización de consultas es una solución adecuada para búsquedas de datos a gran escala. Desarrollo: REPLICACION CON POSTGRES EN WINDOWS UTILIZANDO SLONY-I INSTALACION DE POSTGRES Y SLONY-I Las herramientas que utilizaremos son:  PostgreSQL 9.2  PGAdmin  Slony-I Cabe destacar que los pasos que a continuación se describen deben de realizarse en todas las maquinas en las cuales se realizara una replicación de bases de datos. Lo primero que debemos hacer es descargar la versión de postgres, en nuestro caso la versión 9.2, lo pueden descargar del siguiente enlace http://www.enterprisedb.com/products-services-training/pgdownload. 1 Ejecutamos el instalador como administrador, y nos aparecerá un cuadro de dialogo para la instalación de postgres. 201 2 Damos clic en siguiente y debemos especificar la ruta donde se instalara postgres 3 202 Presionamos 3 veces siguiente y comenzara el proceso de instalación 4 Luego, que ya se haya terminado la instalación, debemos de tener cuidado de seleccionar la opción de descargar otras herramientas, y damos clic en finalizar. 203 2 en el puerto 5432 y damos clic en siguiente 6 Ahora se no muestra una ventana con las categorías de complementos que podemos instalar. Se instalaran los paquetes seleccionados y damos clic en finalizar. 204 . Se debe aclarar que para realizar esta instalación se debe tener una conexión a internet.5 Automaticamente se nos abriráuna aplicación StackBuilder. que nos servirá para la instalación de slony-I. debemos elegir soluciones de replicación y chequear la casilla de SLONY-I Si todo es correcto presionamos siguiente. Ahora que ya tenemos instalado lo necesario en nuestras maquinas. En la pestaña seleccionamos POSTGRESSQL9. procedemos a realizar las configuraciones necesarias para realizar la replicación en Windows utilizando PostgreSQL y Slony-I. PASO 1: Primero debemos de crear la BD a replicar (debe de crearse en ambos nodos). además la DB a replicar debe de crearse tanto en el nodo maestro como en el nodo esclavo. en este ejemplo utilizaremos la que trae postgres por defecto (postgres) y crearemos una tabla. persona nombre (tex) apellido (tex) dui (tex) Para crear la tabla aremos uso del pgAdminIII. debe ser idéntica. para ello nos vamos a Inicio Programas PostgreSql pgAdmin III. Todos los 205 . los mismos campos y del mismo tipo. la cual tendrá que replicarse. pasamos a realizar los pasos para la replicación de Bases de Datos. debe de tener el mismo nombre. es decir. nombre.A continuación mostraremos un ejemplo de una réplica Maestro-Esclavo con la siguiente topología: MAESTRO ESCLAVO No debemos olvidar que las direcciones de los nodos deben encontrarse en el mismo segmento de red. Después de tener las consideraciones anteriores. apellido y dui. La tabla que crearemos se llama PERSONA y tiene como campos. luego clic en Agregar y ahí agregamos los campos de nuestra tabla. 206 .Luego postgresEschemasPublicTables Seleccionamos Nueva Tabla. colocamos el nombre de la tabla y luego damos clic en columnas. caminos y agregaremos la ruta donde se encuentra nuestoSlony-I 207 .PASO 2:Ahora lo que haremos será configurar Slony-I. y para esto nos iremos a opciones. Nota: Es importante notar que antes del paso anterior (ruta del slony-I) postgres no nos dejara crear cluster. como se muestra en la siguiente imagen Cuando ya hemos establecido la ruta de slony-I. es decir no podemos replicar datos. el mensaje de la parte inferior de la creación del Cluster cambia a “Especificar el nombre del cluster” Debemos de verificar que tengamos disponible el lenguaje pgsql 208 . para ello nos vamos a PANEL DE CONTROL  SISTEMA Y SEGURIDAD  FIREWALL DE WINDOWS  CONFIGURACION AVANZADA REGLAS DE ENTRADA  209 .Si el lenguaje no está. lo agregamos de la siguiente manera: File OpcionDisplay y seleccionamos Lenguanges PASO 3: Ahora necesitamos configurar el firewall de Windows para que nos permita conexiones a través del puerto 5432 que es el que utiliza postgres por defecto. NUEVA REGLA Luego REGLA DE ENTRADA NUEVA REGLA Luego seleccionamos el protocolo TCP y especificamos el puerto 5432 210 . Damos permitimos la conexión y siguiente Luego seleccionamos dominio y publico 211 . 2\data\pg_hba. este archivo se encuentra en. En este archivo definiremos las direcciones de los nodos 212 . C:\Program Files (x86)\PostgreSQL\9.Y por último colocamos un nombre y finalizar PASO 4: Ahora lo que haremos será configurar el archivo pg_hba de postgres en todas las maquinas donde realizaremos la réplica. 0.0. create set (id=1. node 1 admin conninfo = 'dbname = postgres host = 192. node 2 admin conninfo = 'dbname = postgres host = 192.persona'. set add table (set id=1.1/32 md5 # IPv6 local connections: host all all ::1/128 md5 # Allow replication connections from localhost.y les diremos a cuales BD pueden conectarse y con cuales usuarios y cuál será el metodo de encriptación de la contraseña.168. comment= 'postgres').1/24 192. origin=1.168. origin=1.0.0. y deberá guardarse en C:\Program Files (x86)\PostgreSQL\9.1/32 md5 #host replication postgres ::1/128 md5 #Maestra host all #Esclavo host all all all 192. id=1. 213 . Deberá quedarnos así: # TYPE DATABASE USER ADDRESS METHOD # IPv4 local connections: host all all 127.2\bin cluster name = slony_postgres.0. #host replication postgres 127.txt este archivo llevara lo siguiente. store node (id = 2.1 user = postgres password = oracle'. comment= 'Mistablas'). fully qualified name = 'public. EVENT NODE = 1). comment = 'nodoesclavo'.0.2 user = postgres password = oracle'.0.168.0. init cluster (id=1. by a user with the # replication privilege.168. comment = 'Maestro').2/24 md5 md5 PASO 5: Ahora crearemos un scriptSOLAMENTE PARA EL NODO MAESTRO que lo hemos llamado Maestro. provider = 1. conninfo = 'dbname = postgres host = 192. PASO 7: Ahora ejecutamos el escrip Maestro.store path (server = 1. PASO 6: Ahora crearemos un scripSOLO PARA EL NODO ESCLAVO que lo hemos llamado Suscritptor.168. receiver = 2.2 user = postgres password = oracle').txt en el nodo esclavo.txt PASO 8: Ahora ejecutamos el escrip Suscriptor. receiver = 1). para ello abrimos la consola de windows y nos colocamos en la ruta donde se encuentra guardado y ejecutamos el commandoslonik Maestro. y deberá guardarse en C:\Program Files (x86)\PostgreSQL\9. forward = yes ).1 user = postgres password = oracle'). conninfo = 'dbname = postgres host = 192.2 user = postgres password = oracle'.0. receiver = 2).168. node 1 admin conninfo = 'dbname = postgres host = 192.168. node 2 admin conninfo = 'dbname = postgres host = 192. provider = 2.168.2\bin cluster name = slony_postgres. para ello abrimos la consola de windows y nos colocamos en la ruta donde se encuentra guardado y ejecutamos el 214 .txt en el nodo maestro. store listen (origin = 2. store listen (origin = 1. client = 1.txt este archivo llevara lo siguiente. store path (server = 2. provider = 1.0.0. subscribe set (id = 1.0.1 user = postgres password = oracle'. client = 2. commandoslonik Suscriptor. 215 .txt PASO 9: Ahora en ambos nodos (siempre en la consola de windows) ejecutamos la siguiente línea: slonslonypostgres “dbname = postgresuser=postgrespassword=oracle” NOTA:No se deben de cerrar ninguna de las consolas de Windows. de lo contrario la réplica se cancela. 1.6/24 y 192. cuyos nombres de host son pgsql1 y pgsql2 y sus direcciones IP asignadas son: 192.168. Esta configuración es importante porque nos permitirá usar el nombre de host en lugar de la dirección IP para poder realizar la configuración.REPLICACION CON POSTGRES Y PGPOOL EN LINUX PREPARATIVOS INICIALES El ejemplo de réplica presentado a continuación corresponde al siguiente escenario. pgpool2. Figura 1.1. Lo primero que debemos hacer en ambos nodos es editar el 216 . El host pgsql1 tendrá instalado:   postgresql. se encuentran dos máquinas conectadas a la red 192. Para llevar a cabo la configuración de este escenario seguiremos los siguientes pasos: Paso 1. Mientras que el host pgsql2 solo tendrá instalado:  postgresql. Configuración de los nombres de host.0/24.168.168.1. En el escenario descrito en la figura 1.5/24 respectivamente. En el host pgsql1 deberemos instalar POSTGRES y PGPOOL2. Instalación de postgres y pgpool2. en el host pgsql2 solo instalaremos postgres. # nano /etc/host Deberá quedar como se muestra en la figura 2. Figura 2. Pgsql1: # apt-get installpostgresql pgpool2 Pgsql2: # apt-getinstallpostgresql 217 .fichero /etc/host. Paso 2. Para loguearnos: # su . Lo cual lograremos editando el fichero: /etc/postgresql/9. Configuración de Postgresql. createuser --superuser pgpool2 exit A continuación vamos a controlar a cuáles host se les permitirá conectarse.2/main/pg_hba. cómo deberán autenticarse. 218 . Logueados como usuario postgres debemos añadir al usuario pgpool2 a los administradores de postgres. Los siguientes pasos aplican a ambas instancias de PostgreSQL en los nodos pgsql1 y pgsql2.conf # nano /etc/postgresql/9.Paso 3.postgres Añadiendo al usuario pgpool2 . cuáles nombres de usuario de postgresql pueden usar y a cuáles bases de datos pueden acceder.conf La figura 3 muestra como debe quedar el fichero.2/main/pg_hba. Figura 3. Ahora editamos el archivo: # nano /etc/pgpool2/pcp. editamos: # nano /etc/postgresql/9.2/main/postgresql.conf se haya configurado. Debemos editar el fichero: /etc/pgpool2/pcp. Configuración pgpool2. pues sólo en ese host lo tenemos instalado.d/postgresqlrestart Paso 4. El fichero pcp. La configuración de pgpool-II la realizaremos únicamente en el nodo pgsql1. Todos los comandos requieren que pcp.conf es un fichero de nombres de usuario y contraseñas usado para autenticarse con la interfaz.conf Cambiamos los siguientes parametros: listen_addresses = '*' port = 5432 Reiniciamos postgres para activar los cambios: # /etc/init. Utilizaremos pg_md5 para que nos devuelva encriptado en md5 el password que le pasemos.conf 219 .Por último indicamos a postgresql que escuche en todas las interfaces en el puerto 5432.conf para añadir nuestro usuario y contraseña. conf Lo dejamos de la siguiente manera: listen_addresses = '*' port = 9999 pcp_port = 9898 socket_dir = '/var/run/postgresql' pcp_socket_dir = '/var/run/postgresql' backend_socket_dir = '/var/run/postgresql' pcp_timeout = 10 num_init_children = 32 max_pool = 4 220 .y agregamos al final: root:dd22141acb5ea065acd5ed773729c98f Luego editamos el archivo de configuración de pgpool2 # nano /etc/pgpool2/pgpool. RESET ALL. SET SESSION AUTHORIZATION DEFAULT' print_timestamp = true master_slave_mode = false connection_cache = true health_check_timeout = 20 health_check_period = 60 health_check_user = '' failover_command = '' failback_command = '' insert_lock = false ignore_leading_white_space = true log_statement = false log_connections = false log_hostname = false parallel_mode = false enable_query_cache = false #set pgpool2 hostname pgpool2_hostname = 'pgsql1' # system DB info system_db_hostname = 'localhost' 221 .child_life_time = 300 connection_life_time = 0 child_max_connections = 0 client_idle_limit = 0 authentication_timeout = 60 logdir = '/var/run/postgresql' replication_mode = true load_balance_mode = true replication_stop_on_mismatch = true replicate_select = false reset_query_list = 'ABORT. 222 . backend_port. backend_weight # here are examples backend_hostname1 = 'pgsql2' backend_port1 = 5432 backend_weight1 = 1 backend_hostname0 = 'pgsql1' backend_port0 = 5432 backend_weight0 = 1 EL siguiente paso es arrancar pgpool2 # /etc/init.system_db_port = 5432 system_db_dbname = 'pgpool' system_db_schema = 'pgpool_catalog' system_db_user = 'pgpool' system_db_password = '' # backend_hostname.d/pgpool2 start Ahora ya somos capaces de conectarnos al puerto 9999 de la IP de administración del nodo pgsql1 . Para probar la replicación escribimos en la terminal lo siguiente: createdb -h pgsql1 -p 9999 -U pgpool2 base_a_replicar Como usuario postgres. vamos a proceder a probar la replicación. Tras haber comprobado que ya podemos conectarnos. POR LO TANTO LA CONFIGURACIÓN DE PGPOOL2 SOLO SE DEBE HACER EN PSQL1. Para ello es necesario que la misma configuración de postgresql que se hizo en psql1 esté en psql2. en ambos nodos podremos usar psql para ver las bases de datos y verificar que se han creado: # su .# psql -h pgsql1 -p 9999 -U pgpool2 -d postgres Paso 5. Probrando la replicación. 223 .postgres $ psql -l NOTA ACLARATORIA: EN PSQL2 NO SE INSTALÓ PGPOOL2. com/colabora/inst_pg_01_cf.net/articles/postgresql-pgpool.html Campos M. Obtenida el 5 de mayo de 2013 en http://basesdedatosues... Obtenida el 3 de mayo de 2013 en http://dev.net/JohannaMendez2/replicacion-conpostgresql-y-slony Slony-I Support. Levantar el servicio postgres en linux. Replicación en MySQL.mysql. Obtenida el 31 de abril de 2013 en http://www.html Jaume Sabater (2008).html pgpool Global Development Group (2003 – 2011). http://mundo2.tripod.org/docs/dev/slony. Ortiz R. Pgpool-II user manual http://pgpool.cl.html Cristián Fabres A.com/2012/06/replicacion-mysql-replicacion-enmysq. Set up MySQL database replication to ensure up-to-date backups.info/       224 . Zuniga C.htm Replicación con Postgres http://www.blogspot.projects.Bibliografía.pgadmin. http://www.com/doc/refman/5.techrepublic...slony.org/pgpool-II/doc/pgpool-en. (1 Nov – 2008) http://linuxsilo.pgfoundry. Replicación en MySQL..slideshare. Replicación y alta disponibilidad de PostgreSQL con pgpool-II. Flores C.com/blog/itdojo/set-up-mysql-databasereplication-to-ensure-up-to-date-backups/3340?pg=1   Oracle MySQL.html Slony-I enterprise-level replication system http://www.  Wallen J.0/es/replication. Capítulo 6. 225 .
Copyright © 2024 DOKUMEN.SITE Inc.