1.-Base de Datos Espejo (Database Mirroring).
Donde actúan dos servidores o más 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 cuál 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
configuración 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 Compañeros (Partners).
2.-Beneficios
Esta característica 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 creación 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
conmutación automática por error, la conmutación por error pone en línea
rápidamente la copia en espera de la base de datos, sin pérdida de datos. En
los demás modos operativos, el administrador de bases de datos tiene la
alternativa del servicio forzado (con una posible pérdida de datos) para la
copia en espera de la base de datos. Para obtener más información, vea
Conmutación de roles, más adelante en este tema.
Aumenta la protección de los datos.
La creación de reflejo de la base de datos proporciona una
redundancia completa o casi completa de los datos, en función de si el modo de
funcionamiento es el de alta seguridad o el de alto rendimiento. Para obtener
más información, vea Modos de funcionamiento, más adelante en este tema.
Un asociado de creación de reflejo de la base de datos que
se ejecute en SQL Server 2008 Enterprise o en versiones posteriores intentará
resolver automáticamente cierto tipo de errores que impiden la lectura de una
página de datos. El socio que no puede leer una página, solicita una copia
nueva al otro socio. Si la solicitud se realiza correctamente, la copia
sustituirá a la página que no se puede leer, de forma que se resuelve el error
en la mayoría de los casos. Para obtener más información, vea Reparación de
página automática (grupos de disponibilidad/creación de reflejo de base de
datos).
Mejora la disponibilidad de la base de datos de producción
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 creación de reflejo de la base de datos. Esto
incurrirá en el tiempo de inactividad de solo una conmutación por error única.
Esta forma de actualización se denomina actualización gradual. Para obtener más
información, vea Instalar un Service Pack en un sistema con un tiempo de
inactividad mínimo para bases de datos reflejadas.
3.-Como se
hace una Activación de espejeo en un DBMS
1. Asegúrese de que las
versiones de MySQL instalado en el maestro y en el esclavo son compatibles ,
debe usar la versión más reciente de MySQL en maestro y servidor.
Por favor no reporte
bugs hasta que ha verificado que el problema está presente en la última versión
de MySQL.
2. 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 sólo para replicación (lo que se recomienda), no
necesita dar ningún privilegio adicional. (Para información 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 contraseña 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:
§
De a la cuenta el privilegio global SUPER y RELOAD .
§
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.
Si usa sólo 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 ejecución 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 más fácil 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 localización en el directorio
de datos del maestro, luego ejecute el comando:
shell> tar -cvf
/tmp/mysql-snapshot.tar .
Si quiere que el archivo sólo 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 máquina,
cambie la localización 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 excluírla del archivo. Tampoco necesita incluir ningún
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á más tarde cuando inicialice el servidor. Estos
representan las coordenadas de la replicación 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 , debería 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á incluída en la
distribución de MySQL estándar. Consulte la página web de InnoDB Hot Backup enhttp://www.innodb.com/manual.php para información
detallada.
Sin la herramienta Hot Backup , la forma más rápida 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 definición 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 discusión 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
más 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 están vacíos. En ese
caso, los valores que necesita usar posteriormente cuando especifica el fichero
de log del esclavo y la posición son una cadena vacía ('') y 4.
Asegúrese que la sección [mysqld] del fichero my.cnf en el maestro incluye una opción log-bin . Esta sección debe también tener la
opción server-id=master_id , donde master_id debe ser un entero positivo de 1 a 2^32 - 1. Por ejemplo:
[mysqld]
log-bin=mysql-bin
server-id=1
Si estas opciones no
están presentes, añádalas y reinicie el servidor.
Pare el servidor que se vaya a usar como esclavo y añada lo siguiente a su
fichero my.cnf :
[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. Además, 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 unívocamente cada instancia de servidor
en la comunidad de replicación.
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 omisión 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 sólo para
copias de seguridad con un log binario.
Si ha hecho una copia de seguridad binara de los datos del maestro, cópielo
en el directorio de datos del esclavo antes de arrancar el esclavo. Asegúrese
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).
Arranque el esclavo. Si ha estado replicando préviamente, arranque el esclavo
con la opción --skip-slave-start para que no intente conectar inmediatamente al maestro. También puede
arrancar el esclavo con la opción --log-warnings (activada por defecto en MySQL 5.0), para
obtener más 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.
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
Ejecute los siguientes comandos en el esclavo, reemplazando los valores de
opciones con los valores relevantes para su sistema:
mysql> CHANGE MASTER TO
->
MASTER_HOST='master_host_name',
->
MASTER_USER='replication_user_name',
->
MASTER_PASSWORD='replication_password',
->
MASTER_LOG_FILE='recorded_log_file_name',
->
MASTER_LOG_POS=recorded_log_position;
La siguiente tabla
muestra la longitud máxima para las opciones de cadenas de caracteres:
MASTER_HOST
|
60
|
MASTER_USER
|
16
|
MASTER_PASSWORD
|
32
|
MASTER_LOG_FILE
|
255
|
Arranque el flujo esclavo:
mysql> START SLAVE;
Una vez realizado este procedimiento, el esclavo debe conectar con el
maestro y atapar cualquier actualización 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 Creación de espacios de disco con espejo.
Necesitaras el programa R-Drive Image
1
Ejecuta el
programa R-Drive Image desde la ubicación en la que esté instalado.
2
Haz clic en el botón "Crear imagen", que se localiza
en la sección 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 botón "Siguiente".
4
Selecciona un destino para el espejo nuevo en la ventaja de navegación y haz clic en el botón "Siguiente". Éste
puede colocarse en cualquier medio, como un CD, DVD u otro disco duro,
dependiendo del tamaño que elijas para hacerlo.
5
Presiona nuevamente el botón "Siguiente" de la página "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 contraseña para el espejo nuevo y haz clic en el botón "Siguiente".
7
Presiona el botón "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 información del disco duro que se esté configurando.
Una ventana de diálogo aparecerá para informarte cuando el proceso haya sido completado exitosamente.
No hay comentarios:
Publicar un comentario