Database Mirroring en SQL Server 2005 sin dominios

Publicado: 18 septiembre, 2010 en Goyko Obrenovich Vinces, Zona IT Pro
Etiquetas:,

Nuevamente nos vemos y nada lejos del otro post como ya me conocen Goyko Obrenovich y nada lejos del otro post🙂, pues otro post con historia (se esta haciendo costumbre), pues nos dejaron de tarea mirror de BD y pues lo deje para el final xD, me pongo instalar virtuales todo, configuro y nada, grande mi sorpresa que problema al conectar xq lo queria hacer sin dominio para salir de lo comun, luego de varias horas navegando e investigando (muchas queda corto), logre dar con la solucion, asi que aqui les comparto todo este post, creo que el mas extenso de mi existencia :S, dudas, comentarios y sugerencias ya saben comente.

Bueno como este post lo publico recien despues del trabajo que logro sacar un 20🙂, edito mis script en SQL SERVER 2008 R2 (Cheka que dice R2 xD)

Problema

Quiero poner en práctica el reflejo de base en mi bases de datos SQL Server 2005, pero tanto el principal como los servidores espejo no son miembros del dominio o que sean miembros de los diferentes dominios de Active Directory que no tienen relaciones de confianza. ¿Cómo puedo hacerlo?

Solución

Creación de reflejo de base de datos se ha convertido en una opción muy popular para una solución de alta disponibilidad de SQL Server 2005.  Y si bien Microsoft recomienda utilizar la autenticación de Windows para nada el acceso a SQL Server, hay casos en que esto es una limitación. Un ejemplo típico sería una aplicación no-Microsoft que se ejecuta en una plataforma no es de Microsoft el acceso a una base de datos SQL Server.  Otro sería servidores SQL Server repartidos en diferentes ubicaciones geográficas sin Active Directory para autentificar el acceso de usuarios o servidores miembros en diferentes dominios sin relaciones de fideicomiso. SQL Server 2005 nos permite configurar el reflejo de base en la autenticación de modo mixto inicios de sesión mediante SQL Server con la seguridad añadida de utilizar certificados.

Vamos a utilizar la base de datos BDOBRENOVICH para mostrar el proceso.  Recuerde que para cambiar el modelo de recuperación de datos BDOBRENOVICH en FULL antes de trabajar a través de los pasos siguientes.

Script para la creacion de la Base de Datos

Vamos a llamar al servidor principal SERVER01, el servidor reflejado y el servidor testigo SERVER02 y  SERVER03. También puede hacer esto sin el testigo a pesar de esta sugerencia se destacará con una.

1) Copia de seguridad de la base de datos principal y restaurarla en el servidor espejo

Realice una copia de seguridad FULL y LOG de la base de datos BDOBRENOVICH en el servidor principal.

Después de la copia de seguridad se ha completado, restaurarlo en el servidor reflejado (Server02) mediante la opción WITH NORECOVERY.

2) Validar las entradas de DNS

Lo más probable es que usted puede tener sus entradas DNS para las instancias de SQL Server se configura correctamente. Para validar, hacer una prueba de PING en ambos nombres de host de los servidores que ejecutan SQL Server 2005 casos utilizando su nombre de dominio completo (FQDN) en el formulario de hostname.primary sufijo DNS. Puede recuperar el valor del sufijo DNS principal mediante la ejecución de un IPCONFIG / ALL en la línea de comandos.  Para los servidores en grupos de trabajo, esto podría ser un poco un desafío ya que no podría tener un servidor DNS que resuelva el nombre de host a sus direcciones IP correspondientes. Para ello, abra el archivo hosts en la carpeta% systemroot% \ system32 \ drivers \ etc \ usando cualquier editor de texto.  Introduzca las direcciones IP y nombres de host de su director, servidores espejo y testigo como se muestra a continuación

3) Crear una clave maestra de base de datos en el servidor principal

4) Crear el certificado de servidor basado en que se utiliza para cifrar el extremo de creación de reflejo de base de datos

5) Crear el punto final de creación de reflejo de base de datos para el servidor principal utilizando el certificado para la autenticación

Este script crea un extremo de reflejo de base de datos llamada Endpoint_Mirroring usando el número de puerto 9999 y el certificado denominado SERVER01_cert. Usted puede usar cualquier algoritmo de cifrado disponibles en SQL Server 2005 una se describe en este Microsoft TechNet artículo. Acabo optando por utilizar AES.  Usted puede validar que el punto final se ha creado mediante la consulta de la vista de catálogo sys.endpoints

6) Exportar el certificado en un archivo

7) Copia el archivo de certificado en el espejo y el servidor testigo

Debe copiar el archivo de certificado tanto el espejo y el servidor de testigo como vamos a utilizar este certificado para asociar un nombre de usuario para la autenticación.  Para este ejemplo, todos los certificados se copian en la unidad C: \ en todos los servidores

Pasos # 3 a # 7 se debe repetir en ambos servidores espejo y testigo, que modifica el nombre del certificado de mantenimiento, mientras que las otras configuraciones.

Una secuencia de comandos completa para el servidor reflejado (SERVER02  Mirror) se muestra a continuación.

Una secuencia de comandos completa para el servidor testigo (Server03) se muestra a continuación

8 ) Crear una entrada en el principal para el espejo

Por simplicidad vamos a utilizar el mismo nombre para la entrada en todos los servidores para identificar que se utiliza sobre todo para las sesiones de creación de reflejo de base de datos

9) Crear un usuario para el inicio de sesión

10) asociado al certificado que hemos creado en el paso # 4 con el usuario

Este script se asociará el certificado que hemos creado para el servidor espejo – SERVER02_cert.cer – a la login_mirroring usuario

Vamos a hacer lo mismo para el certificado que hemos creado para el servidor de testigo – SERVER03_cert.cer – a la login_mirroring usuario

11) Conceder el permiso CONNECT en el inicio de sesión

Este script conceder el permiso CONNECT en la login_mirroring entrada para el punto final de creación de reflejo de base de datos

Si está usando un nombre diferente para los inicios de sesión, que tendrá que hacer esto para cada entrada. La clave a recordar aquí es que los inicios de sesión que utiliza para conectarse a cualquiera de las instancias de SQL Server 2005 se conceden los permisos de CONNECT con los certificados pertinentes.

Haremos exactamente lo mismo tanto en el espejo y servidores de los testigos.

Una secuencia de comandos completa para el servidor reflejado se muestra a continuación

Una secuencia de comandos completa para el servidor testigo se muestra a continuación

12) Preparar el servidor espejo para la sesión de reflejo de base de datos

Este script se prepara la base de datos reflejada para la sesión de reflejo de base de datos, especificando SERVER01 como socio. Es importante para ejecutar esta primera en el servidor reflejado antes de ejecutar la secuencia de comandos equivalente en el servidor principal.  El nombre de host especificado aquí debe ser resuelta por el enfoque que utilizó en el paso # 2

13) Preparar el servidor principal de la sesión de reflejo de base de datos

Ahora que la base de datos reflejada se ha preparado para la sesión de reflejo de base de datos, vamos a hacer lo mismo para la base de datos principal especificando SERVER02 como socio.

También se especificarán SERVER03 como testigo.

14) Validar la configuración de creación de reflejo de base de datos con Database Mirroring Monitor

Ejecute el Monitor de Database Mirroring para comprobar el estado de las sesiones de base de datos de reflejo.  Este artículo de MSDN en SQL Server Books Online describe cómo iniciar el Monitor de Database Mirroring.

Próximos pasos

  • Pruebe la configuración de creación de reflejo de base de datos mediante certificados siguiendo los procedimientos descritos anteriormente
  • Echa un vistazo a este MSDN artículo sobre cómo el reflejo de base de instalación

Quedando asi:

PD: Adjunto un video creado con el SCREEN (por eso tiene extension .exe no teman no es virus), en donde hago uso de 2 servidores sin Testigo, espero les sirva y hasta otra oportunidad.

Video Mirror 2 Server

Atte. Goyko Alexander Obrenovich Vinces

https://gobrenovich.wordpress.com

comentarios
  1. Alexis Paredes Carbonel dice:

    Goyko realmente muy interesante, sigue asi aportando a la gente tus conocimientos. Espero que el siguiente post sea de Replicación de Base de Datos xD.

  2. Antonio dice:

    Hola Goyko, un gran aporte…
    ahora estoy con un proyecto donde no uso un testigo
    el problema es que no me ha resultado, .. trato de seguir el video que posteaste pero el .exe se cae tanto en win7 como win xp
    puedes publicarlo en otro formato?
    de ante mano, gracias

    salu2

  3. Rodrigo Martínez dice:

    Para el caso del archivo hosts a modificar en arquitectura de 64 bits continúa siendo la misma ruta?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s