Sunteți pe pagina 1din 8

Base de Datos Espejo (Database Mirroring).

Donde actan dos servidores o ms para mantener copias de la base de datos y archivo de registro de transacciones.
El servidor primario como el servidor espejo mantienen una copia de la base de datos y el registro de transacciones, mientras que el tercer servidor, llamado el servidor rbitro, es usado cuando es necesario determinar cul de los otros dos servidores puede tomar la propiedad de la base de datos. El rbitro no mantiene una copia de la base de datos. La configuracin de los tres servidores de base de datos (el primario, el espejo y el rbitro) es llamado Sistema Espejo (Mirroring System), y el servidor primarioy espejo juntos son llamados Servidores Operacionales (Operational Servers) o Compaeros (Partners).

2.-Beneficios Esta caracterstica tiene 3 modalidades que son Alto rendimiento, Alta Seguridad, y Alta Disponibilidad, este caso estamos hablando de las 2 primeras, las cuales el levantamiento es manual. La creacin de reflejo de la base de datos es una estrategia sencilla que ofrece las siguientes ventajas: Incrementa la disponibilidad de una base de datos. Si se produce un desastre en el modo de alta seguridad con conmutacin automtica por error, la conmutacin por error pone en lnea rpidamente la copia en espera de la base de datos, sin prdida de datos. En los dems modos operativos, el administrador de bases de datos tiene la alternativa del servicio forzado (con una posible prdida de datos) para la copia en espera de la base de datos. Para obtener ms informacin, vea Conmutacin de roles, ms adelante en este tema. Aumenta la proteccin de los datos. La creacin de reflejo de la base de datos proporciona una redundancia completa o casi completa de los datos, en funcin de si el modo de funcionamiento es el de alta seguridad o el de alto rendimiento. Para obtener ms informacin, vea Modos de funcionamiento, ms adelante en este tema. Un asociado de creacin de reflejo de la base de datos que se ejecute en SQL Server 2008 Enterprise o en versiones posteriores intentar resolver automticamente cierto tipo de errores que impiden la lectura de una pgina de datos. El socio que no puede leer una pgina, solicita una copia nueva al otro socio. Si la solicitud se realiza correctamente, la copia sustituir a la pgina que no se puede leer, de forma que se resuelve el error en la mayora de los casos. Para

obtener ms informacin, vea Reparacin de pgina automtica (grupos de disponibilidad/creacin de reflejo de base de datos). Mejora la disponibilidad de la base de datos de produccin durante las actualizaciones. Para minimizar el tiempo de inactividad para una base de datos reflejada, puede actualizar secuencialmente las instancias de SQL Server que hospedan los asociados de creacin de reflejo de la base de datos. Esto incurrir en el tiempo de inactividad de solo una conmutacin por error nica. Esta forma de actualizacin se denomina actualizacin gradual. Para obtener ms informacin, vea Instalar un Service Pack en un sistema con un tiempo de inactividad mnimo para bases de datos reflejadas. 3.-Como se hace una Activacin de espejeo en un DBMS < !--[if !supportLists]-->1. <!--[endif]-->Asegrese de que las versiones de MySQL instalado en el

maestro y en el esclavo son compatibles , debe usar la versin ms reciente de MySQL en maestro y servidor. Por favor no reporte bugs hasta que ha verificado que el problema est presente en la ltima versin de MySQL.
< !--[if !supportLists]-->2. <!--[endif]-->Prepare una cuenta en el maestro que pueda usar el

esclavo para conectar. Este cuenta debe tener el privilegioREPLICATION SLAVE . Si la cuenta se usa slo para replicacin (lo que se recomienda), no necesita dar ningn privilegio adicional. (Para informacin sobre preparar cuentas de usuarios y privilegios. Suponga que su dominio es mydomain.com y que quiere crear una cuenta con un nombre de usuario de replque puedan usar los esclavos para acceder al maestro desde cualquier equipo en su dominio usando una contrasea de slavepass. Para crear la cuenta, use el comando GRANT:
mysql> GRANT REPLICATION SLAVE ON *.* -> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';

Si quiere usar los comandos LOAD TABLE FROM MASTER o LOAD DATA FROM MASTER desde el servidor esclavo, necesita dar a esta cuenta privilegios adicionales:
< !--[if !supportLists]--> <!--[endif]-->De a la cuenta el privilegio global SUPER y RELOAD . < !--[if !supportLists]--> <!--[endif]-->De el privilegio SELECT para todas las tablas que quiere

cargar. Cualquier tabla maestra desde la que la cuenta no puede hacer un SELECT se ignoran por LOAD DATA FROM MASTER.
< !--[if !supportLists]--> <!--[endif]-->Si usa slo tablas MyISAM , vuelque todas las tablas y

bloquee los comandos de escritura ejecutando un comandoFLUSH TABLES WITH READ LOCK :
mysql> FLUSH TABLES WITH READ LOCK;

Deje el cliente en ejecucin desde el que lanza el comando FLUSH TABLES para que pueda leer los efectos del bloqueo. (Si sale del cliente, el bloqueo se libera.) Luego tome una muestra de los datos de su servidor maestro. La forma ms fcil de crear una muestra es usar un programa de archivo para crear una copia de seguidad binaria de las bases de datos en su directorio de datos del maestro. Por ejemplo. use tar en Unix, oPowerArchiver, WinRAR, WinZip, o cualquier software similar en Windos. Para usar tar para crear un archivo que incluya todas las bases de datos, cambie la localizacin en el directorio de datos del maestro, luego ejecute el comando:
shell> tar -cvf /tmp/mysql-snapshot.tar .

Si quiere que el archivo slo incluya una base de datos llamada this_db, use este comando:
shell> tar -cvf /tmp/mysql-snapshot.tar ./this_db

Luego copie el archivo en el directorio /tmp del servidor esclavo. En esa mquina, cambie la localizacin al directorio de datos del esclavo, y desempaquete el fichero usando este comando:
shell> tar -xvf /tmp/mysql-snapshot.tar

Puede no querer replicar la base de datos mysql si el servidor esclavo tiene un conjunto distinto de cuentas de usuario a la existente en el maestro. En tal caso, debe exclurla del archivo. Tampoco necesita incluir ningn fichero de log en el archivo, o los ficheros
master.info o relay-log.info files.

Mientras el bloqueo de FLUSH TABLES WITH READ LOCK est en efecto, lee el valor del nombre y el desplazamiento del log binario actual en el maestro:
mysql > SHOW MASTER STATUS; +---------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +---------------+----------+--------------+------------------+ | mysql-bin.003 | 73 | test | manual,mysql | +---------------+----------+--------------+------------------+

La columna File muestra el nombre del log, mientras que Position muestra el desplazamiento. En este ejemplo, el valor del log binario es mysql-bin.003 y el desplazamiento es 73. Guarde los valores. Los necesitar ms tarde cuando inicialice el servidor. Estos representan las coordenadas de la replicacin en que el esclavo debe comenzar a procesar nuevas actualizaciones del maestro. Una vez que tiene los datos y ha guardado el nombre y desplazamiento del log, puede reanudar la actividad de escritura en el maestro:
mysql> UNLOCK TABLES;

Si est usando tablas InnoDB , debera usar la herramienta InnoDB Hot Backup. Realiza una copia consistente sin bloquear el servidor maestro, y guarda el nombre y desplazamiento del log que se corresponden a la copia para usarlo posteriormente en el esclavo. InnoDB Hot
Backup es una herramienta no libre (comercial) que no est includa en la distribucin de

MySQL estndar. Consulte la pgina web de InnoDB Hot Backup enhttp://www.innodb.com/manual.php para informacin detallada. Sin la herramienta Hot Backup , la forma ms rpida de hacer una copia binaria de los datos de las tablasInnoDB es parar el maestro y copiar los ficheros de datos InnoDB, ficheros de log, y ficheros de definicin de tablas (ficheros .frm). Para guardar los nombres de ficheros actual y desplazamientos, debe ejecutar el siguiente comando antes de parar el servidor:
mysql> FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS;

Luego guarde el nombre del log y el desplazamiento desde la salida de SHOW MASTER
STATUS como se mostr antes. Tras guardar el nombre del log y el desplazamiento, pare el

servidor sin bloquear las tablas para asegurarse que el servidor para con el conjunto de datos correspondiente al fichero de log correspondiente y desplazamiento:
shell> mysqladmin -u root shutdown

Una alternativa que funciona para tablas MyISAM y InnoDB es realizar un volcado SQL del maestro en lugar de una copia binaria como se describe en la discusin precedente. Para ello, puede usar mysqldump --master-data en su maestro y cargar posteriormente el fichero de volcado SQL en el esclavo. Sin embargo, esto es ms lento que hacer una copia binaria. Si el maestro se ha ejecutado previamente sin habilitar --log-bin , el nombre del log y las posiciones mostradas por SHOW MASTER STATUS o mysqldump --master-data estn vacos. En ese caso, los valores que necesita usar posteriormente cuando especifica el fichero de log del esclavo y la posicin son una cadena vaca ('') y 4.
< !--[if !supportLists]--> <!--[endif]-->Asegrese que la seccin [mysqld] del fichero my.cnf

en el maestro incluye una opcin log-bin . Esta seccin debe tambin tener la opcin
server-id=master_id , donde master_id debe ser un entero positivo de 1 a 2^32 - 1. Por

ejemplo:
< !--[if !supportLists]--> <!--[endif]-->[mysqld] < !--[if !supportLists]--> <!--[endif]-->log-bin=mysql-bin server-id=1

Si estas opciones no estn presentes, adalas y reinicie el servidor.

< !--[if !supportLists]--> <!--[endif]-->Pare el servidor que se vaya a usar como esclavo y aada

lo siguiente a su fichero my.cnf :


< !--[if !supportLists]--> <!--[endif]-->[mysqld] server-id=slave_id

El valor slave_id , como el valor master_id , debe ser un entero positivo de 1 a 2^32 - 1. Adems, es muy importante que el ID del esclavo sea diferente del ID del maestro. Por ejemplo:
[mysqld] server-id=2

Si est preparando varios esclavos, cada uno debe tener un valor de server-id nico que difiera del maestro y de cada uno de los otros esclavos. Piense en los valores de server-id como algo similar a las direcciones IP: estos IDs identifican unvocamente cada instancia de servidor en la comunidad de replicacin. Si no especifica un server-id, se usa 1 si no ha definido un master-host, de otro modo se usa 2. Tenga en cuenta que en caso de omisin de server-id, un maestro rechaza conexiones de todos los esclavos, y un esclavo rechaza conectar a un maestro. Por lo tanto, omitir el server-id es bueno slo para copias de seguridad con un log binario.
< !--[if !supportLists]--> <!--[endif]-->Si ha hecho una copia de seguridad binara de los datos

del maestro, cpielo en el directorio de datos del esclavo antes de arrancar el esclavo. Asegrese que los privilegios en los ficheros y directorios son correctos. El usuario que ejecuta el servidor MySQL debe ser capaz de leer y escribir los ficheros, como en el maestro. Si hizo una copia de seguridad usando mysqldump, arranque primero el esclavo (consulte el siguiente paso).
< !--[if !supportLists]--> <!--[endif]-->Arranque el esclavo. Si ha estado replicando prviamente,

arranque el esclavo con la opcin --skip-slave-start para que no intente conectar inmediatamente al maestro. Tambin puede arrancar el esclavo con la opcin --logwarnings (activada por defecto en MySQL 5.0), para obtener ms mensajes en el log de

errores acerca de problemas (por ejemplo, problemas de red o conexiones). En MySQL 5.0, las conexiones abortadas no se loguean en el log de errores a no ser que el valor sea mayor que 1.
< !--[if !supportLists]--> <!--[endif]-->Si hace una copia de seguridad de los datos del maestro

usando mysqldump, cargue el fichero de volcado en el esclavo:


shell> mysql -u root -p < dump_file.sql

< !--[if !supportLists]--> <!--[endif]-->Ejecute los siguientes comandos en el esclavo,

reemplazando los valores de opciones con los valores relevantes para su sistema:
< !--[if !supportLists]--> <!--[endif]-->mysql> CHANGE MASTER TO < !--[if !supportLists]--> <!--[endif]--> -> MASTER_HOST='master_host_name', < !--[if !supportLists]--> <!--[endif]--> -> MASTER_USER='replication_user_name', < !--[if !supportLists]--> <!--[endif]--> -> MASTER_PASSWORD='replication_password', < !--[if !supportLists]--> <!--[endif]--> -> MASTER_LOG_FILE='recorded_log_file_name', -> MASTER_LOG_POS=recorded_log_position;

La siguiente tabla muestra la longitud mxima para las opciones de cadenas de caracteres:
MASTER_HOST MASTER_USER MASTER_PASSWORD MASTER_LOG_FILE 60 16 32 255

< !--[if !supportLists]--> <!--[endif]-->Arranque el flujo esclavo: mysql> START SLAVE;

Una vez realizado este procedimiento, el esclavo debe conectar con el maestro y atapar cualquier actualizacin que haya ocurrido desde que se obtuvieron los datos. Si ha olvidado asignar un valor para server-id en el maestro, los esclavos no son capaces de conectar. Si olvida asignar un valor para server-id en el esclavo, obtiene el siguiente error en el log de errores: 4.-Ejmplos de Creacin de espacios de disco con espejo. Necesitaras el programa R-Drive Image 1 Ejecuta el programa R-Drive Image desde la ubicacin en la que est instalado. 2 Haz clic en el botn "Crear imagen", que se localiza en la seccin superior de la ventana principal del programa. 3 Selecciona la unidad que quieres configurar como espejo de la lista de unidades disponibles y presiona el botn "Siguiente". 4 Selecciona un destino para el espejo nuevo en la ventaja de navegacin y haz clic en el botn "Siguiente". ste puede colocarse en cualquier medio, como un CD, DVD u otro disco duro, dependiendo del tamao que elijas para hacerlo. 5

Presiona nuevamente el botn "Siguiente" de la pgina "Modo de imagen" y deja marcadas las opciones por defecto. Estas opciones son para usuarios avanzados que quieren crear espejos especializados en arreglos RAID o servidores NAS. 6 Si lo deseas, introduce una contrasea para el espejo nuevo y haz clic en el botn "Siguiente". 7 Presiona el botn "Iniciar" para comenzar a crear el espejo del disco duro. Este proceso tomar desde minutos a varias horas dependiendo de la velocidad y cantidad de informacin del disco duro que se est configurando. Una ventana de dilogo aparecer para informarte cuando el proceso haya sido completado exitosamente.

Qu es la replicacin de datos?
La replicacin de datos es mucho ms que la simple copia de datos entre varias localidades. Ha sido utilizada, tradicionalmente, como el mecanismo bsico para incrementar la disponibilidad y la perfomance de una BDD. La replicacin debera estar acompaada del anlisis, diseo, implementacin, administracin y monitoreo de un servicio que garantice la consistencia de los datos a lo largo de mltiples administradores de recursos en ambientes distribuidos. Por este motivo, un servicio de replicacin de datos debera proveer la siguiente funcionalidades:

Ser escalable. Con respecto a la replicacin, la escalabilidad significa la habilidad de replicar volmenes de datos pequeos o grandes a lo largo de recursos heterogneos (hardware, redes, sistemas operativos). Proveer transformacin de datos y mapeo de servicios. Estos servicios permiten que los esquemas de datos diferentes coexistan sin perder su semntica esencial. Por ejemplo, las copias pueden ser idnticas o semnticamente equivalentes. Las copias idnticas podran tener la misma plataforma, el mismo contenido de informacin y el mismo tipo de datos, en tanto que copias semnticamente equivalentes podran tener el mismo contenido de informacin pero diferentes plataformas y, posiblemente, diferentes tipos de datos. Soportar replicacin en modo sincrnico (tiempo real) o asincrnico. Proveerse un mecanismo que describa los datos y objetos que se van a replicar (diccionario de datos). Proveerse un mecanismo para inicializar un nodo, esto es para indicar la recepcin de datos replicados. Soportar administracin end-to-end de seguridad y calidad de servicios. Por ejemplo, el servicio debe garantizar que no puede ocurrir corrupcin en los datos durante la proceso de replicacin. En otras palabras, los datos pueden cambiar de formato pero no de contenido. Proveerse un mecanismo de bitcora que administre cualquier esfuerzo de replicacin fallado. Proveer un mecanismo de recuperacin automtico.

Metodologa de replicacin de datos


Es importante seguir una metodologa correcta de diseo de una BDD para poder obtener un esquema que sea escalable y adaptables a los cambios de tecnologa.

La forma de distribucin de informacin debe ser analizada cuidadosamente buscando una opcin que optimice y maximice la utilizacin todos los factores que se deban considerar para un problema particular. El factor principal para la determinacin de la distribucin de datos va a estar dado, bsicamente, por los requerimientos de usuario. Cuestiones como por ejemplo la performance del sistema puede llevar a generar mayor replicacin en los datos, a fin de colocar la informacin "cerca" del usuario, evitando el costo de la transmisin de datos en la red. Obviamente esta apreciacin puede tornarse rpidamente en un inconveniente. Si la replicacin de la informacin aumenta los protocolos de cometido van a demorar ms en completar su ejecucin, o mantener las copias actualizadas "en lnea" resulta ms costoso. Se puede obtener replicacin de datos considerando diferentes criterios. Uno de ellos, quiz el ms simple, consiste en clasificar la replicacin por el costo de latencia que existe para lograr la consistencia de los datos a lo largo de todas las rplicas. De esta manera se puede hablar de dos tipos de replicacin: sincrnica o asincrnica (eager o lazy). La replicacin sincrnica provee un mecanismo que asegura que todas las rplicas se mantengan actualizadas en lnea. De esta forma, la latencia para lograr consistencia de datos se reduce a cero. La implementacin clsica del protocolo de cometido de 2 fases (2PC) garantiza este tipo de replicacin. Con este esquema de actualizacin de rplicas es posible garantizar las propiedades ACID de una transaccin. Por el contrario, la replicacin asincrnica se limita a asentar las modificaciones en una copia o rplica, dejando para ms adelante la actualizacin del resto. De esta forma, un esquema con estas caractersticas debe aceptar inconsistencia temporaria de informacin.

S-ar putea să vă placă și