Acabamos de obtener un nuevo servidor, así que necesito copiar la instancia existente de SQL Server 2008 desde el antiguo cuadro de base de datos.
Normalmente hago esto copiando .mdf y archivos de registro y adjuntándolos, pero no puedo desconectar los dbs ya que se usan las 24 horas, los 7 días de la semana, así que hice una copia de seguridad de las bases de datos y las restauré en el nuevo máquina. Sin embargo, terminé con algunos problemas, uno de ellos relacionado con usuarios huérfanos . Entonces, lo que estoy buscando es un proceso a prueba de fallas para mover todo con un mínimo de alboroto / molestia / dolor de cabeza. Soy un desarrollador de .Net con una buena cantidad de SQL en mi haber, pero el funcionamiento interno de SQL Server es en gran parte un misterio para mí y encuentro que la documentación de MS es difícil de rastrear.
Por favor ayuda.
Respuestas:
Si no puede desconectar las bases de datos, debe hacer una copia de seguridad / restauración. Sugeriría lo siguiente:
Si construye y configura la nueva caja para que se vea exactamente como la anterior, entonces tendrá un escándalo mínimo.
No tengo idea de cuán grandes son sus bases de datos, por lo que este método podría llevar mucho tiempo. Lo más fácil sería cerrar la caja anterior y copiar los archivos MDF y LDF y luego (después de restaurar el maestro) solo necesitaría reiniciar SQL para tener sus bases de datos en línea. Pero declaró que no es una opción, ya que las bases de datos no pueden estar desconectadas.
fuente
Usted menciona la operación las 24 horas del día, los 7 días de la semana, por lo que la mejor manera de hacerlo es crear un espejo de base de datos en el nuevo sistema, luego puede simplemente cambiar con un mínimo, tal vez cero, dependiendo de cómo esté estructurada su aplicación (tiempo de inactividad usando un cliente) redirección lateral. Los pasos básicos son:
WITH NORECOVERY
Cree "puntos finales" en ambos servidores y garantice la conectividad (por ejemplo, reglas de firewall), configurando el puerto y la dirección IP correctamente) por ejemplo:
Configure el reflejo en el espejo, apuntando al primario:
Y en el primario, apuntando al espejo (solo un nombre de base de datos y una dirección IP diferentes.
Luego, cuando llegue el momento, simplemente cambie el primario al espejo:
Nota: Supongo que estos dos servidores están en la misma red, por lo que estará bien operar en modo síncrono. Si esto está sobre un enlace WAN, utilice el modo asíncrono.
fuente