He estado trabajando con el servidor SQL de forma intermitente desde SQL Server 6.5, el viejo consejo que aún resuena en mi cabeza era nunca hacer una actualización en el lugar.
Actualmente estoy actualizando mis sistemas 2008 R2 DEV y TEST a SQL Server 2012 y necesito usar el mismo hardware. La idea de no tener que restaurar la configuración de mis servicios de informes es muy atractiva y estoy realmente en contra del tiempo. No hay servicios de análisis involucrados ni nada inusual o no estándar: solo se instalan el motor de base de datos y los servicios de informes.
¿Alguien ha tenido problemas serios con las actualizaciones en el lugar? ¿O debería reevaluar mi posición sobre las actualizaciones en el lugar?
sql-server
sql-server-2012
migration
upgrade
ssrs
Bienes dañados
fuente
fuente
Respuestas:
Respuesta realmente corta : en el lugar está bien. Después puede revisar su configuración e implementar las mejores prácticas para SQL Server 2012.
Una respuesta más larga sobre actualizaciones / migraciones de SQL Server
Entonces, esto es una cuestión de opinión y no hay una respuesta necesariamente incorrecta o correcta, pero prefiero las actualizaciones del estilo de migración en lugar de las in situ por muchas razones. Dicho esto, algunos de mis clientes, por diversas razones, no han tenido más remedio que hacer una instalación in situ y, realmente, desde SQL Server 2005, las actualizaciones in situ no han sido tan malas como solían ser.
Por qué prefiero una migración a una actualización in situ
Eso sí, no digo que tengas que hacer esto como migración. In-Place funciona y funciona bien si no planea comprar hardware nuevo en su presupuesto y no puede hacerlo para esta actualización. El soporte en el proceso de actualización es mucho mejor de lo que era en los 6.5 días, por lo que no se está poniendo en una mala posición al hacer esto.
Si planea hacer in situ para desarrollo / prueba pero desea realizar una migración para producción, puede considerar realizar al menos una migración antes de la producción. De esta manera, puede elaborar su lista de verificación con anticipación y abordar cualquier problema potencial en el que no estaba pensando.
Adjuntar / Separar vs. Copia de seguridad / Restaurar para migraciones
Si decide seguir con el enfoque de migración, todavía hay una decisión más sobre la que aún puede tener un debate y así es como mueve su base de datos al nuevo entorno. Puede separar su base de datos del servidor anterior y adjuntarla al nuevo o hacer una copia de seguridad y restaurarla allí.
Prefiero copia de seguridad / restaurar. La mayor ventaja que escucho sobre separar / adjuntar es que ahorra algo de tiempo. Para mí, la copia de seguridad / restauración gana por varias razones:
Si decide hacer la copia de seguridad / restauración, eso significa que su base de datos fuente anterior seguirá estando en línea. Me gusta poner esa base de datos fuera de línea después de tomar la copia de seguridad. A veces voy un paso más allá y desconecto toda la instancia de SQL después de haber escrito la seguridad, los trabajos, el servidor vinculado, los certificados, la configuración del correo de la base de datos y otra información de toda la instancia. Esto evita un problema durante las pruebas en el que alguien dice "¡Todo se ve genial!" solo para darse cuenta uno o dos días después de que han estado hablando con la base de datos anterior en el servidor anterior. Si desconecta esas bases de datos o desconecta toda la instancia, puede evitar esos falsos positivos y el desorden que generan.
Cómo hacer que el enfoque de migración sea más rápido
Puede minimizar el tiempo de inactividad requerido para la transición de un entorno antiguo a uno nuevo para un entorno de producción ocupado con poco tiempo de inactividad utilizando el modelo de recuperación completa. Básicamente, organice el entorno al que está migrando restaurando la última copia de seguridad completa, cualquier copia de seguridad diferencial y cualquier copia de seguridad de registro ya especificada
NORECOVERY
, todo lo que tendrá que hacer para el corte final es restaurar las copias de seguridad de registro que aún no se restauraron y la copia de seguridad del registro final que desea restaurar especificandoWITH RECOVERY
. De esta manera, para una base de datos grande, la ventana de tiempo de inactividad de corte real puede minimizarse drásticamente pagando el costo de las restauraciones completas, diferenciales y de la mayoría de los registros antes de la ventana de tiempo de inactividad. ¡Gracias a Tao por señalar esto en los comentarios!Cómo hacer que la actualización en el lugar sea más segura
Algunas cosas que puede hacer para mejorar su experiencia y resultados al elegir el enfoque en el lugar.
La importancia de las listas de verificación de actualización o migración
Si decide hacer una actualización (ya sea en lugar o migración), debería considerar seriamente crear una lista de verificación y usar esta lista de verificación en cada entorno. Debe incluir un montón de cosas en esta lista de verificación, entre las cuales se incluyen:
Y luego haga que la persona que realizará la actualización de producción siga la lista de verificación en algún entorno que no sea la producción, especialmente uno que cierre, si es posible, se asemeja a la producción ("South of prod", como digo ...) y tenga en cuenta cualquier problema o punto donde tuvieron que desviarse de la lista de verificación o improvisar debido a una falta en la lista de verificación. Luego, combine los cambios y diviértase con su cambio de producción.
No puedo enfatizar demasiado la importancia de realizar pruebas exhaustivas después de la migración o actualización y antes de su migración lo suficiente. Tomar una decisión de reversión en medio de una actualización debería ser fácil, especialmente durante una migración. Si hay algo incómodo, retroceda y averigüe si no puede solucionarlo de manera efectiva y confiable en el fragor de la migración. Una vez que esté vivo en este nuevo entorno y los usuarios se conecten, la reversión se convierte en una tarea difícil. No puede restaurar una base de datos de SQL Server a una versión anterior. Eso significa trabajo manual y migraciones de datos. Siempre espero un par de semanas para eliminar el entorno anterior, pero debes hacer todo lo posible para evitar necesitar ese entorno anterior encontrando todos tus problemas antes de que tus usuarios activos toquen el nuevo entorno. Preferiblemente antes de comenzar la actualización / migración.
Nota rápida sobre la migración / actualización de SQL Server Reporting Services La migración de una instalación de SSRS no es una tarea hercúlea que muchos piensan que es. Este artículo en línea de technet / books es bastante útil . Una de las advertencias más importantes en ese artículo es "Hacer una copia de seguridad de las claves de cifrado", especialmente si tiene una gran cantidad de información confidencial guardada, como direcciones de correo electrónico de destinatario de correo electrónico de informes programados, información de conexión para una multitud de conexiones, etc. puedo preguntarle a uno de mis clientes desde hace un tiempo qué tan importante es eso. Lo saben porque me equivoqué con ese paso y pasé mucho tiempo modificando los cronogramas de informes y los permisos de la cadena de conexión.
fuente
En mi experiencia, el mismo proceso de toma de decisiones debe hacerse como antes. AFAIK no ha habido ningún 'cambio mundial' con la instalación de SQL Server, dentro del producto MS SQL Server en sí mismo, y los posibles problemas que tiene al implementar software con millones de líneas de código. Algo malo podría pasar y ahora estás atrapado sin la opción 'ROLLBACK'.
Sin embargo, tiene otras alternativas en su lugar. Podría considerar hacer una instantánea del sistema, restaurar en otro lugar, realizar la actualización y ver qué sucede. Esta prueba debería brindarle mucha comodidad, pero no garantiza absolutamente que no surjan problemas en la caja de productos. Sin embargo, esta es una opción que no estaba disponible en SQL 6.5 días.
Simplemente asumiría el peor de los casos. Haces una actualización en el lugar y falla miserablemente. Luego debe recuperarse de esto dentro de su RTO y RCO. ¿Entiende el negocio los riesgos y tiene planes para mitigarlo?
Si el negocio no está bien con esto, entonces no lo hagas, sería mi consejo.
fuente
Si tiene sus servidores ejecutándose en un entorno virtual, puede realizar una instantánea en un clon y luego aplicar la actualización en el lugar y probar la instancia para verificar que la actualización fue exitosa. Si funciona, puede aplicar la instantánea y hacer que el clon sea el servidor de producción. Si sale mal, puede eliminar la instantánea y volver a la imagen previa a la actualización para volver a intentarlo, o eliminar el clon y realizar una migración completa.
fuente
Debido a una gran inversión en hardware, se nos exigió actualizar solo el sistema operativo manteniendo la versión actual de SQL Server (2012, 3 servidores, 22 instancias, ~ 300 bases de datos). Sin configuraciones complejas como la duplicación, etc.
Este ejemplo no coincide exactamente con la pregunta ya que SQL Server no se está actualizando. Creo que esta sigue siendo una buena respuesta porque los pasos mostrados en realidad serían más simples que una verdadera migración in situ.
Descripción general: se conectó una unidad externa para realizar copias de seguridad completas principalmente como medida de precaución. Solo el modelo y msdb se restaurarán realmente desde la unidad externa. Los ldf / mdf se dejaron en su lugar para separar / adjuntar. Algunas cuentas locales fueron referenciadas dentro de los DB. Después de que se volvieron a crear en el sistema operativo, las referencias dentro de la base de datos se volvieron a crear (ya que los SID pueden cambiar).
Luego, estos fueron los pasos que nos funcionaron:
1) Tome nota de la configuración del nivel del servidor que se restaurará en los pasos 12 (Roles del servidor) y 18 a 23.
2) Parche SQL Server 2012 a SP3 (se requiere coherencia si queremos restaurar cualquier sistema dbs).
3) Verifique que las versiones coincidan en cada instancia. "Seleccione @@ versión"
4) Genere estos 6 scripts ejecutando este script. Redgate SQL Multiscript es un gran ahorro de tiempo si hay muchas instancias (Ajuste las Herramientas -> Opciones => Longitud de línea al máximo (8192) y luego use la Salida de texto).
Vuelva a vincular usuarios a inicios de sesión
5) Ejecute el script para hacer una copia de seguridad de todos los DB, incluido el sistema (maestro, msdb, modelo) en la unidad externa.
6) Ejecutar script para separar todos los DB
7) C Drive se volverá a formatear. Preserve los LDF / MDF si NO estaban en C.
8) Windows Server 2012 está instalado en C
9) Mueva el LDF / MDF para los archivos del sistema original fuera del camino si no estaban en la Unidad C.
10) SQL Server 2012 se reinstalará y aplicará un parche al SP3 a. Vuelva a crear cuentas de usuario / grupo del sistema
11) Respalde las bases de datos del sistema en una NUEVA ubicación o nombre de archivo (¡tenga cuidado de no sobrescribir los originales!).
12) Ejecute el fragmento de roles de recreación. Algo como:
13) Ejecute el script de inicio de sesión de recreate (no hace nada si se restauraron los inicios de sesión)
14) Detener el AGENTE SQL.
(Podría restaurar al Maestro aquí, nos acobardamos).
15) Adjunte mdf / ldf usando el script de arriba. a. Si falla, restaure manualmente desde bak usando el script de arriba.
16) Intento de restauración del modelo
17) Asegúrese de que el Agente SQL esté detenido. Restaurar MSDB (enlace) a. Si falla, debe volver a crear trabajos + plan de mantenimiento + configuración de correo + operadores
18) Abrir script de usuario para iniciar sesión ...
19) Habilite el intermediario de servicios para que coincida con el nombre SELECT del valor original, is_broker_enabled FROM sys.databases;
20) Inicie el Agente SQL
21) Establecer el umbral de paralelismo al valor original
22) Ajuste la configuración de la base de datos a sus valores originales:
23) Verifique la propiedad del trabajo:
Si la versión de SQL Server también se hubiera actualizado, no creo que el modelo y las bases de datos msdb pudieran haberse restaurado, por lo que los trabajos se habrían perdido debido a https://support.microsoft.com/en-us/kb/264474
Lo que falta:
fuente
No hay nada malo con ninguno de los enfoques per se: he hecho ambos y los dos resultados son generalmente buenos.
Si hay un problema con el enfoque de migración, no es técnico: es pereza. Demasiado a menudo me parece que la razón por la que una empresa aún no ha optado por la versión xxxx es porque eligieron una migración oscilante y nunca llegaron a hacer el trabajo duro para moverse por completo. Ahora tienen dos o más conjuntos de servidores en lugar de uno.
fuente