Creacion Mirroring Sin Ad SQL2012

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 9

Creación de Mirroring sin Active

Directory en SQL Server 2012

Database Mirroring es una tecnología de Alta Disponibilidad basada en un modo de


funcionamiento Activo / Pasivo. Es decir, mientras una Instancia realiza un papel de
Servidor Principal (Activo) para una base de datos en particular, la otra instancia realiza
el papel de Servidor Espejo o Secundario (Pasivo) para dicha base de datos.

Requisitos previos
Para realizar el siguiente ejemplo necesitamos dos máquinas virtuales SQL Server
2012 Enterprise Edition . La primera instancia que en nuestro ejemplo
llamaremos principal contiene la base de datos, de la cual queremos hacer el mirroring,
y la instancia secundaria a la que hemos llamado mirroring está totalmente vacía.

Configuración Inicial
Nos situamos en el directorio C:\Windows\System32\drivers\etc y abrimos el
archivo hosts con cualquier editor de textos para editarlo.

1
Una vez editado el archivo hosts en el
servidor principal y mirroring comprobamos que tengan ping con sus respectivos
nombres de máquina. Para hacer la comprobación abrimos el CMD y ejecutamos los
siguientes comandos: ping principal y ping mirroring.

Creación de Certificados
El primer paso a seguir es crear los certificados correspondientes en cada instancia
SQL Server, para que las dos bases de datos puedan enviar y recibir datos cifrados y
puedan descifrarlos para su correspondiente tratamiento.

-- Instancia principal

-- Creamos una clave de encriptado


USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'aleson123.';
GO
-- Creamos un certificado
CREATE CERTIFICATE Cert_principal WITH SUBJECT = 'certificate for
database principal';
GO
-- Y para finalizar hacemos un backup del certificado.
BACKUP CERTIFICATE Cert_principal TO FILE = 'Cert_principal.cer';
GO

-- Instancia Mirroring

USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'aleson123.';
GO

CREATE CERTIFICATE Cert_mirroring WITH SUBJECT = 'certificate for


database mirroring';
GO

BACKUP CERTIFICATE Cert_mirroring TO FILE = 'Cert_mirroring.cer';


GO

Creación de conectores del servicio


Creamos un EndPoint en cada servidor y le asignamos su certificado, esto nos
permitirá utilizarlos para establecer la trasferencia de datos de forma segura.

-- Instancia Principal

CREATE ENDPOINT Endpoint_Mirroring


STATE = STARTED
AS TCP (LISTENER_PORT=5022, LISTENER_IP = ALL)

2
FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE
Cert_principal, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = ALL);
GO
-- Instancia Mirroring

CREATE ENDPOINT Endpoint_Mirroring


STATE = STARTED
AS TCP (LISTENER_PORT=5022, LISTENER_IP = ALL)
FOR DATABASE_MIRRORING (AUTHENTICATION = CERTIFICATE
Cert_mirroring, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE = ALL);
GO

Enlace de certificados
Una vez creados los certificados de cada base de datos y los EndPoint, procederemos a
enlazar el certificado de la base de datos de mirroring, con la base de datos principal y
viceversa. Gracias a esto, las bases de datos podrán enviarse datos cifrados entre ellas y
podrán descifrarlos.

Copiamos los ficheros de los certificados en ambos servidores, es decir


el Cert_mirroring en el servidor principal y el Cert_principal en el servidor mirroring.

3
Una vez copiados los certificados, ejecutamos el siguiente script:

-- Instancia Principal

-- Creamos un inicio de sesión.


CREATE LOGIN DBMirroringLogin WITH PASSWORD = 'aleson123.';
GO
-- Creamos un usuario para ese inicio de sesión.
CREATE USER DBMirroringLogin FOR LOGIN DBMirroringLogin;
GO
-- Creamos el certificado de la base de datos de mirroring, poniéndole
como propietario el usuario recién creado.
CREATE CERTIFICATE Cert_mirroring AUTHORIZATION DBMirroringLogin FROM
FILE = 'Cert_mirroring.cer'
GO
-- Le damos permisos al usuario para conectarse al EndPoint
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [DBMirroringLogin];
GO
-- Instancia Mirroring

CREATE LOGIN DBMirroringLogin WITH PASSWORD = 'aleson123.';


GO

CREATE USER DBMirroringLogin FOR LOGIN DBMirroringLogin;


GO

CREATE CERTIFICATE Cert_principal AUTHORIZATION DBMirroringLogin FROM


FILE = 'Cert_principal.cer'
GO

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [DBMirroringLogin];


GO

4
Activación del Reflejo
En el servidor principal realizamos una copia de seguridad completa de la Base de
datos y una copia de seguridad del Log de transacciones.

BACKUP DATABASE ALESON_DB TO DISK='C:\BACKUP\ALESON_DB_FULL.BAK' WITH


FORMAT, COMPRESSION
GO
BACKUP LOG ALESON_DB TO DISK='C:\BACKUP\ALESON_DB.BAK' WITH FORMAT,
COMPRESSION
GO

Copiamos los ficheros de backup en el servidor mirroring y restauramos las base de


datos en modo NO RECOVERY.

RESTORE DATABASE ALESON_DB FROM DISK='C:\BACKUP\ALESON_DB_FULL.BAK'


WITH NORECOVERY
GO
RESTORE LOG ALESON_DB FROM DISK='C:\BACKUP\ALESON_DB_LOG.BAK' WITH
NORECOVERY
GO

Activamos en el servidor mirroring el reflejo añadiéndolo como partner.

ALTER DATABASE ALESON_DB SET PARTNER = 'TCP://PRINCIPAL:5022';


GO

5
Activación Mirroring
Para finalizar nos situaremos en la instancia principal y seguiremos los siguientes
pasos:

Botón derecho sobre la base de datos principal -> Tasks -> Mirror…

6
Configure Security…

Include Witness Server -> No

7
Por defecto aparecerán los siguientes parámetros.

Le damos a connect, y hacemos loggin contra la instancia mirroring y nos rellenará el


Listner port y Endpoint name.

8
En principal añadimos la cuenta Domain Contoller del servidor principal y en mirror la
del servidor de mirroring.

Le damos a Start Mirroring

Una vez iniciado, las bases de datos deben aparecer con los siguiente estados:

Instancia Principal (Principal, Synchronized) Instancia Mirroring (Mirror, Synchronized


/ Restoring…)

También podría gustarte