• No se han encontrado resultados

Planificando La Migracion de SQL Server 2000 2005 a SQL Server 2008 R2

N/A
N/A
Protected

Academic year: 2021

Share "Planificando La Migracion de SQL Server 2000 2005 a SQL Server 2008 R2"

Copied!
102
0
0

Texto completo

(1)Serie Relacional. Planificando la migració n a SQL Server 2008 R2. Autor: Enrique Catala. Revisores: Eladio Rincón.

(2) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. ADVERTENCIA LEGAL Todos los derechos de esta obra están reservados a Enrique Catalá y a SolidQTM Press. El editor prohíbe cualquier tipo de fijación, reproducción, transformación o distribución de esta obra, ya sea mediante venta, alquiler o cualquier otra forma de cesión de uso o comunicación pública de la misma, total o parcialmente, por cualquier sistema o en cualquier soporte, ya sea por fotocopia, medio mecánico o electrónico, incluido el tratamiento informático de la misma, en cualquier lugar del mundo. La vulneración de cualesquiera de estos derechos podrá ser considerada como una actividad penal tipificada en los artículos 270 y siguientes del Código Penal. La protección de esta obra se extiende al mundo entero, de acuerdo con las leyes y convenios internacionales.. © Enrique Catalá, 2011 © SolidQTM Press, 2011. Planificando la migración a SQL Server 2008 R2 Serie Relacional Autor: Enrique Catalá Bañuls Revisores: Eladio Rincón Editado por SolidQTM Press Apartado de correos 202 03340 Albatera, Alicante, España http://www.solidq.com. Precio: Gratuito ISBN: 978-84-936417-9-5. © Solid Quality™ Press. Page 2 of 102.

(3) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Tabla de Contenidos 1.. Introducción ...................................................................................................................... 6. 2.. Estrategias de Migración ................................................................................................... 7 Actualización “In-Place” ........................................................................................................ 7 Migración “Side-by-side” ....................................................................................................... 9 Enfoque del documento ...................................................................................................... 11. 3.. Diseño de la solución ....................................................................................................... 12 Roles y departamentos implicados en una migración ........................................................ 12 Buenas prácticas en la configuración de SQL Server 2008 R2 ............................................. 13 Alineamiento de particiones ........................................................................................... 13 Formateo de NTFS a bloques de 64kb ............................................................................. 15 Log on as a service ........................................................................................................... 15 Lock pages in memory ..................................................................................................... 16 Instant File Initialization .................................................................................................. 17 Configuración de seguridad básica .................................................................................. 17. 4.. Planificación de la migración ........................................................................................... 20 Características de SQL Server Obsoletas y/o discontinuadas ............................................. 20 SQL-DMO ......................................................................................................................... 20 Utilidades osql e isql ........................................................................................................ 20 Bcp ................................................................................................................................... 21 Rebuild.exe ...................................................................................................................... 21 SQL Mail ........................................................................................................................... 21 English Query ................................................................................................................... 21 Surface Area Configuration ............................................................................................. 21 Resumen de equivalencias entre herramientas de SQL Server 2000 y 2008 R2 ................. 22 Migración del motor relacional ........................................................................................... 23 Fases de una migración “side-by-side” ........................................................................... 23 Minimizar el proceso de actualización ............................................................................ 23 Planificación de la migración ........................................................................................... 24 Analisis de interconexiónes ................................................................................................. 25 Figura 4-2: Diagramas de dependencia entre bases de datos ........................................ 27. © Solid Quality™ Press. Page 3 of 102.

(4) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. ¿Por qué querríamos calcular dependencias entre bases de datos? .............................. 28 Instalación y ejecución de SQL Server Upgrade Advisor ..................................................... 28 Visualizar e interpretar informes generados por SSUA ....................................................... 31 Motor de base de datos .................................................................................................. 32 Data Transformation Services ......................................................................................... 38 Análisis de consultas dinámicas ...................................................................................... 40 Migración de los paquetes DTS a SSIS. ................................................................................ 44 ¿Qué ocurre durante la migración? ................................................................................ 44 Guión de migración ............................................................................................................. 45 Migración del motor de base de datos ........................................................................... 45 Patrones de codificación TSQL adaptados para SQL Server 2008 R2 .............................. 47 Solución de problemas de actualización ......................................................................... 52 Migración de paquetes DTS a SSIS .................................................................................. 53 Migración de Análysis Services ........................................................................................ 70 Acciones Post migración ...................................................................................................... 76 5.. Apéndice .......................................................................................................................... 78 Actualizaciones de seguridad .............................................................................................. 78 Servidores vinculados desde entornos SQL Server x64 hacia SQL Server 2000 x32 ........... 78 Cadenas de conexión con el nombre de aplicación ............................................................ 78 Finalización de trazas de Sql Profiler ................................................................................... 78 Finalizar la traza ............................................................................................................... 79 Generación de Scripts de mantenimiento........................................................................... 79 Solución al error “allow remote connections through DCOM”........................................... 81 Crear una solución Visual Studio para gestionar todos los paquetes SSIS ...................... 82 Migración Analysis Services en dos pasos ........................................................................... 85 Idioma predeterminado de las conexiones ......................................................................... 86 Seguridad en paquetes SSIS ................................................................................................ 87 Integrar la nueva instancia en el parque de aplicaciones ................................................... 89 Instalar compatibilidad con SQL Server 2000 ...................................................................... 90 Runtime DTS .................................................................................................................... 90 Diseñador DTS ................................................................................................................. 91. © Solid Quality™ Press. Page 4 of 102.

(5) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. ¿Por qué actualizar el nivel de compatibilidad? .................................................................. 92 Analisis de interconexiones ................................................................................................. 92 Análisis de aplicaciones que utilizan SQL Server ................................................................. 93 Documentos de referencia .................................................................................................. 96 Recursos de interés ............................................................................................................. 96 6.. Figuras ............................................................................................................................. 98. © Solid Quality™ Press. Page 5 of 102.

(6) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. 1. Introducción El proceso de migración a SQL Server 2008 R2 no deberia ser un proceso traumático. Para conseguirlo, hay que consensuar un plan lo suficientemente robusto y estable como para satisfacer todas las posibles particularidades del entorno que desee migrar. Hay que ser consciente que como en cualquier proceso de riesgo, si es llevado a cabo negligentemente puede producir un resultado final lleno de errores e incompatibilidades de última hora que produzcan una migración traumática, defectuosa, o incluso que se deba abortar dicha migración. El siguiente documento pretende servir de guía para ayudar a realizar una planificación exitosa de migración hacia SQL Server 2008 R2 basándonos en experiencias adquiridas en diversos proyectos realizados en SolidQ. La información que aparece en este documento se trata de un suplemento a la información existente en los libros en pantalla de SQL Server 2008 R2 y no se pretende rebatir o contradecir la información que en él aparece, sino complementarla y facilitar su comprensión. En caso de existir discrepancias entre este ebook y la documentación oficial de Microsoft, prevalecerá la documentación oficial del fabricante. Además, sugerimos que consulte los enlaces referenciados en la sección “Documentos de Referencia”. Para entender el siguiente documento, creo conveniente definir los siguientes términos: •. •. •. Actualización o migración Transición entre una versión previa de SQL Server a una versión superior de la misma Servidor Computador físico o virtual con el sistema operativo Windows Server 2003 o superior Componente ó servicio Cualquiera de los ejecutables incluidos en la instalación de SQL Server (motor relacional, integration services, reporting services, analysis services,…). © Solid Quality™ Press. Page 6 of 102.

(7) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. 2. Estrategias de Migración A la hora de dar soluciones a la actualización de SQL Server hacia 2008 R2, podemos realizar dos tipos de planteamientos diferentes en función de nuestras necesidades: • •. Actualización “in-place”: Utilizando el propio instalador de SQL Server 2008 R2, podemos actualizar directamente los servicios de SQL Server a la nueva versión Migración “side-by-side”: Mover las bases de datos de la antigua a la nueva instancia de SQL Server 2008 R2 que se debe instalar previamente. Existen dos aproximaciones o Mismo servidor: La nueva instancia reside en el mismo servidor que la antigua o Nuevo servidor: Existe un nuevo servidor destinado a albergar la nueva instancia SQL Server 2008 R2. Actualización “In-Place” Se trata de una actualización en la que no es necesario realizar movimiento de datos. Una vez concluida la misma, en el servidor actualizado ya no existe la instancia anterior de SQL Server y solo existe la instancia SQL Server 2008 R2. Restricciones de una actualización “in-place”: •. •. •. Se requiere que todos los componentes de SQL Server sean actualizados a la vez. Esto incluye Integration Services, Analysis Services, Reporting Services, Full-Text Search, … todos aquellos que están instalados en el servidor en el momento de comenzar la migración. No es posible realizar una migración “in-place” de x32 a x64 o viceversa. En otras palabras, si se va a migrar una instancia SQL Server 2000 x32, solo se puede migrar a SQL Server 2008 R2 x32 No es posible migrar un subconjunto de bases de datos únicamente, puesto que se migra el servicio en su totalidad, lo que incluye a todas las bases de datos que alberga.. Este tipo de actualizaciones por el contrario, tienen como ventaja principal que el tiempo de migración es mínimo, puesto que nos ahorramos todo el proceso de movimiento de datos (copia de ficheros de backup, datos,…), pero hay que tener en cuenta sus principales restricciones, que no lo hacen ideal para la mayoría de las situaciones. Antes de comenzar con el proceso de migración en si, debe asegurarse que tiene salvaguardados todos los datos críticos de su instancia de SQL Server, es decir: •. Haber hecho copias se seguridad de sus bases de datos de usuario y sistema.. © Solid Quality™ Press. Page 7 of 102.

(8) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. •. Haber podido restaurar dichas bases de datos en un entorno de pruebas o calidad.. Nota: recuerde el siguiente dicho: “no tienes una copia de seguridad de una base de datos hasta que hayas podido restaurarla”. En definitiva, necesita tener salvaguarda de los datos relacionados con la instancia de SQL Server que desea migrar para en caso de migración defectuosa, pueda tener un plan alternativo del que recuperar sus bases de datos. A grandes rasgos, el siguiente conjunto de pasos son necesarios a la hora de llevar a cabo una migración “in-place”: 1. Instalar los prerrequisitos de SQL Server 2008 R2 2. Lanzar el proceso de actualización “in-place” 3. Reparar los potenciales problemas o advertencias que sean mostradas por el asistente de migración, que los detectará y listará de forma previa a la actualización. Una vez reparados, volver a lanzar el proceso de actualización desde el CD de instalación. 4. El proceso de migración “in-place” instalará ahora los ejecutables, parará los servicios de la instancia a migrar y actualizará los objetos y componentes de la misma antes de desinstalarlos por completo. Una vez finalizado el proceso automático, la instancia SQL Server 2008 R2 estará completamente disponible y la instancia en la versión previa de SQL Server ya no existirá como tal puesto que se encontrará en la nueva versión. Este tipo de actualizaciones, tradicionalmente vienen siendo consideradas como “automáticas” y por ello parece que la necesidad de un administrador de base de datos es menor que en la actualización “Side-by-side”. Ciertamente la gran mayoría del trabajo se realiza automáticamente y si todo va bien, prácticamente deberemos realizar pequeñas modificaciones al resultado final (actualizar estadísticas, instalar MDAC 2.8 en los PC clientes,…) que en su gran mayoría no necesitan de un DBA experto. En el caso de estar en esta situación, hay que tener presente siempre el punto de “no retorno”. ¿En qué momento de la migración “in-place” si algo sale mal necesitaremos ayuda? ¿Qué ocurre si llegamos a un estado en el momento de la actualización en el que por inexperiencia, mala planificación,…no podemos continuar? ¿Si se corrompen datos en cualquier punto de la actualización podremos volver atrás? En el momento en que tengamos dudas en cualquiera de las respuestas a las preguntas mencionadas anteriormente, hay que tener pensar en disponer de un DBA experto que al menos dé soporte ante cualquier eventualidad crítica que pueda surgir. En el caso de que aun así decidamos seguir adelante sin un DBA experto, las siguientes consideraciones deberán ser resueltas antes de plantearse la migración: © Solid Quality™ Press. Page 8 of 102.

(9) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. • • • •. ¿Cuándo considerarás que tu actualización ha sido satisfactoria? ¿tienes alguna forma de testear las aplicaciones sobre el nuevo entorno SQL Server 2008 R2? ¿Puedes realizar una simulación de migración “in-place” sobre un entorno de testing? ¿has resuelto todas las advertencias propuestas por Upgrade Advisor?. Como mínimo, debes poder responder a estas preguntas de manera satisfactoria antes de plantearte realizar la actualización hacia SQL Server 2008 R2 sin un DBA. Este modelo de migración, además de todo lo comentado anteriormente, suele poseer un factor de riesgo más, derivado de la versión de sistema operativo donde reside la instancia de SQL Server a migrar. Puesto que SQL Server 2008 R2 no es compatible con Windows Server 2000 y Windows Server 2008 R2 no es compatible con SQL Server 2000, hay que añadir el factor migración de sistema operativo a una migración in-place en ocasiones (pese a que con frecuencia, se suele tener como algo habitual, la migración de SO independientemente de si es requerido o no). Los siguientes consejos deben ser seguidos en el caso de requerir una migración del sistema operativo: •. •. •. Si deseamos migrar un SQL Server 2000-2005 sobre Windows Server 2000, debemos realizar primero una migración de Sistema Operativo a Windows Server 2003 (recuerda que 2008R2 no seria válido) y posteriormente realizar la migración a Sql Server 2008 R2. Una vez realizado este proceso, ya se podrá realizar la migración a Windows Server 2008 R2 en el caso de que se desee, puesto que estaremos en SQL Server 2008R2. Windows Server 2008 R2, solo soporta iSCSI, SAS y fibra, por lo que si se está utilizando SCSI paralelo sobre Windows Server 2000, por ejemplo…hay que realizar primero la migración a soluciones de disco mas modernas compatibles con W2k8. Windows Server 2008 R2 no soporta el formato antiguo de domínios NT. Es preciso por tanto, si el servidor va a formar parte de un dominio de confianza en nuestra organización, que el dominio sea un dominio de Active Directory.. Para más información Upgrading to Windows Server 2008 R2.. Migración “Side-by-side” Se trata del modelo de migración mas común y mas versátil puesto que el destino final es una nueva instancia de SQL Server 2008 R2, bien sea en la misma máquina donde reside la antigua, o un nuevo servidor preparado especialmente para albergarla. Las ventajas frente al modelo de actualización “in-place” son: © Solid Quality™ Press. Page 9 of 102.

(10) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. •. • •. •. •. •. Se pueden migrar componentes de forma atómica que sean independientes entre sí. Esto quiere decir, que podemos migrar únicamente el motor relacional, dejando que el resto de servicios permanezcan funcionando en la antigua instancia de SQL Server Se permite la migración de 32 a 64 bits Se permite la actualización de la versión del Sistema Operativo (normalmente viene asociado a un nuevo servidor en el que se instala la última versión de Windows Server pasando por ejemplo de un Windows Server 2003 con SQL Server 2005 a Windows Server 2008 R2 R2 con SQL Server 2008 R2) Se permite la migración a un servidor mas potente. Al no estar ligados a la actualización del servicio, se puede comprar nuevo hardware destinado para SQL Server, y migrar los datos de la antigua instancia al nuevo servidor. Se puede migrar un conjunto de bases de datos, en lugar de todas las bases de datos: escenario apropiado en instancias de SQL Server que tienen aplicaciones de diferentes proveedores y alguno de ellos no soporta “todavía” la migración a SQL Server 2005-2008 R2. Revisar apartado “Análisis de interconexiones” Se puede consolidar diferentes instancias de bases de datos en una única instancia: generalmente, el incremento de capacidad de las nuevas máquinas adquiridas, dejan margen de maniobra suficiente para reducir el número de servidores a los que dar soporte y mantenimiento. En este modelo de migración, el principal inconveniente es que se necesita realizar un movimiento de datos. Esto quiere decir que los datos (backups ó ficheros de datos) deben moverse a su nueva ubicación, lo cual puede no ser algo simple si hablamos de bases de datos del orden de terabytes (TB) donde necesitamos espacio necesario para ello. Para llevar a cabo una migración “side-by-side” debemos realizar estos pasos a grandes rasgos: 1. Instalar una nueva instancia SQL Server 2008 R2 2. Lanzar SQL Server 2008 R2 Upgrade Advisor contra la instancia a migrar y resolver todas las advertencias 3. Parar toda actividad de la instancia SQL Server a migrar (desconexión de usuarios incluida) 4. Transferir los datos a la nueva instancia (mover backups, paquetes DTS/SSIS, …) 5. Restaurar los objetos sobre la nueva instancia 6. Una vez visto que todo funciona con normalidad, desconectar ó desinstalar la instancia SQL Server migrada si es necesario Este modelo por tanto ofrece mayor ventaja y flexibilidad sobre el modelo de actualización “in-place” debido a que en caso de problemas, se tiene la instancia original en funcionamiento y se puede planificar la vuelta atrás. Además, se permite realizar un testeo © Solid Quality™ Press. Page 10 of 102.

(11) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. previo a modo de preproducción de manera independiente, lo cual facilita en mayor medida la detección de potenciales problemas hardware o de migración que puedan existir el dia de paso a producción. En definitiva, pese a que el esfuerzo para llevar a cabo una migración mediante el modelo “side-by-side” es mayor, este es debido al mayor grado de control de todo el proceso. Es por ello que este tipo de actualización debe realizarse siempre por profesionales experimentados en SQL Server 2008 R2. Además, este tipo de migración permite que el periodo en que están las aplicaciones sin dar servicio pueda ser inferior al tiempo necesario de hacer la actualización del motor de SQL Server.. Enfoque del documento Una vez hemos visto los dos planteamientos posibles, se indica al lector que debido al gran número de ventajas existentes del modelo de migración “side-by-side” y la necesidad de dar un enfoque lo mas práctico posible al mismo, el documento se centra primordialmente en una solución de migración “side-by-side”.. © Solid Quality™ Press. Page 11 of 102.

(12) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. 3. Diseño de la solución El proceso de migración “side-by-side” de SQL Server 2000-2005-2008 debe involucrar tanto la parte de instalación del entorno de servidor, como la parte de migración de los datos y aplicaciones que hacen uso de ellos. En los siguientes puntos se discutirán cada uno de dichos apartados. En este artículo se va a realizar un mayor énfasis en la migración desde SQL Server 2000 por tratarse de la que mayor problemática puede desatar debido al drástico cambio de arquitectura en sus servicios.. Roles y departamentos implicados en una migración Lo primero que hay que tener presente es que un proceso de migración, debe ser visto siempre como un proyecto dentro de nuestra empresa. En dicho proyecto, se van a ver implicados varios departamentos dependiendo de nuestra estructura organizativa y además lo serán tanto de la parte de desarrollo, como de la parte de sistemas. A continuación se expone un pequeño ejemplo de definición de roles recomendables en un proyecto de migración, así como las funciones que desarrollaran dentro del propio proyecto: -. -. -. -. Responsable de la migración de SQL Server: RELLENAR NOMBRE. En el equipo de BBDD, estarán por parte de SolidQ : Enrique Catalá…;por parte de “EMPRESA ADJUDICATARIA”: RELLENAR NOMBRES Su rol será el de gestionar y llevar a cabo el proceso de migración. Se encargará de indicar a cada responsable de departamento las tareas a realizar así como gestionar y/o realizar los cambios que fuesen necesarios. Se trata del punto de unión entre todos los departamentos implicados. Responsable de sistemas: RELLENAR NOMBRE. En el equipo de Sistemas, estarán aquellos Administradores de Sistemas designados, con el fin de reconfigurar los servidores de aplicaciones para apuntar al nuevo entorno. Quedan excluidos los sistemas que forman parte directa de la instancia SQL Server 2008 R2 que será producción. Responsable de desarrollo: RELLENAR NOMBRE. En el equipo de Desarrollo deberían estar todos los Jefes de Sección de Desarrollo implicados en el proyecto, así como los desarrolladores que ellos designen, en el ámbito de los Sistemas de Información que son de su respectiva competencia. Se encargaran o bien de aplicar los cambios propuestos por el responsable de la migración, o de validarlos (según los requerimientos de la firma del proyecto). Responsable de testeo de aplicaciones: RELLENAR NOMBRE. En el equipo de testeo deberían estar todos los Jefes de Sección de Desarrollo implicados en el proyecto, así como los usuarios que se considere oportuno para. © Solid Quality™ Press. Page 12 of 102.

(13) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. probar las funcionalidades básicas de los sistemas de información que sean críticos y deban estar operativos al arrancar con la nueva instancia productiva. Hay que tener muy presente al equipo de testeo, puesto que de ellos va a depender una grandísima parte del éxito de la migración, puesto que solo si se prueba bien el entorno serán detectados las potenciales incompatibilidades entre versiones a reparar.. Buenas prácticas en la configuración de SQL Server 2008 R2 En el futuro entorno de producción de SQL Server 2008 R2, se recomienda seguir estas pautas para sacar el mayor provecho a SQL Server 2008 R2. NOTA: Todas estas pautas se recomienda seguirlas en cualquier servidor donde residan instancias de SQL Server. Alineamiento de particiones Si el entorno de producción involucra un Windows Server 2008 R2, y desde las herramientas del propio sistema operativo se han creado las particiones, este apartado no hace falta validarlo puesto que por defecto realiza un alineamiento de particiones de 1Mb: Referencia: http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fded599bac8184a/Perf-tun-srv.docx (página 30, sección DISKPART) Si el entorno de producción involucra por contra un Windows Server 2000 o 2003, o el subsistema de disco ha sido particionado bajo las herramientas administrativas de un Sistema Operativo previo, se recomienda realizar un alineamiento de las particiones donde se albergarán los ficheros .mdf y .ldf de las Bases de datos utilizando diskpart.. Figura 3-1: Diagrama de alineamiento en almacenamiento NTFS. © Solid Quality™ Press. Page 13 of 102.

(14) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Nota: Este diagrama se corresponde con una unidad de almacenamiento por defecto de NTFS (4kb). El diagrama no se encuentra a escala (ver que los trozos 1 y 2 tienen el mismo tamaño a pesar de no serlo realmente) Asumiendo un valor de 64kb por banda del disco, existen 8 sectores de 512B por cada cluster de 4Kb NTFS y existen 16 clusters de 4Kb por cada banda de 64Kb. Nótese que existen sectores ocultos (63 por defecto en el ejemplo desalineado y 64 en el ejemplo alineado) En el ejemplo, la línea 3 se encuentra desalineada mientras que la 4 está alineada Teniendo esto presente, se puede ver como cada lectura enésima, produce un salto en la banda en el caso de los sectores desalineados, debido a que el último cluster de 4Kb no ha cabido completamente en la misma y se encuentra en otra diferente. Esto produce que al realizar la lectura, se tengan que realizar dos accesos a disco. Con el valor por defecto de 4Kb por cluster, cada 16 lecturas, se tiene que realizar una lectura extra. Para conocer el estado del alineamiento de las particiones actualmente, podemos lanzar la siguiente consulta WMI desde powershell:. gwmi –query “SELECT Name,Size,StartingOffset from Win32_DiskPartition” Siendo Name, la ubicación proporcionada por el subsistema de disco para dicha particion, Size el tamaño de la misma, y StartingOffset la posición de comienzo de la misma, dentro del disco.. Figura 3-2: Consulta gwmi en cmd.exe. © Solid Quality™ Press. Page 14 of 102.

(15) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Para más información sobre alineamiento de particiones: http://technet.microsoft.com/enus/library/cc766465.aspx sección “alignment”. Formateo de NTFS a bloques de 64kb Los discos que alberguen los ficheros de logs y datos se han de formatear a 64kb por bloque para mejorar el rendimiento de SQL Server. Con ello favorecemos que se almacenen en un mismo bloque, lo que se denominan “extensiones” (conjuntos de 8 páginas). De esta forma se mejorarán las lecturas en los casos en los que SQL Server decida realizar operaciones de lectura adelantada.. Figura 3-3: Recomendacion de formato mediante interfaz windows Referencia: http://download.microsoft.com/download/d/9/4/d948f981-926e-40faa026-5bfcf076d9b9/SAP_SQL2005_Best%20Practices.doc (página 67). Log on as a service Se recomienda definir un grupo de usuarios dentro del dominio que levante los servicios de SQL Server. Si el servicio va a estar dentro de un entorno clusterizado, para que no ocurra ningún problema al levantar los servicios, se recomienda dar a dichos usuarios el permiso de “log on as a service”. Para ello podemos entrar en “Administrative Tools” -> “Local Security Policy” y mediante botón derecho dentro de “Local Policies”->”User Rights Assignment”->”Log on as a service”, añadimos el grupo.. © Solid Quality™ Press. Page 15 of 102.

(16) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Figura 3-4: Aplicacion de Seguridad “Log on as a service”. Lock pages in memory Es altamente recomendable configurar “lock pages in memory” para SQL Server. Para ello podemos entrar en “Administrative Tools” -> “Local Security Policy” y mediante botón derecho dentro de “Local Policies”->”User Rights Assignment”->”lock pages in memory”, añadimos el usuario que levanta el servicio de SQL Server.. Figura 3-5: Aplicacion de Seguridad “Lock pages in memory” Con este permiso, nos aseguraremos que SQL Server no paginará la memoria destinada al motor, a disco. Mejoraremos con ello el rendimiento del sistema en entornos con mucha presión de memoria. Referencia: http://technet.microsoft.com/en-us/library/ms190730.aspx. © Solid Quality™ Press. Page 16 of 102.

(17) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Instant File Initialization Para poder sacarle ventaja a las capacidades de inicialización instantánea de ficheros, hemos de agregar el permiso SE_MANAGE_VOLUME_NAME a la cuenta del servicio que levante SQL Server. Los usuarios de administración locales de Windows poseen dicho permiso habilitado, pero dado que se presupone que un usuario con permisos mínimos del dominio levante los servicios, hemos de agregarle dichos permisos. Dicho permiso se concede cuando les añadimos la política de seguridad “Perform Volume Maintenance Task”.. Figura 3-6: Aplicacion de Seguridad “Instant file initialization” Referencia: http://msdn.microsoft.com/en-us/library/ms175935.aspx. Configuración de seguridad básica Permisos de sysadmin De forma predeterminada, los miembros de BUILTIN\Administrators poseen derechos de administración. Se recomienda evitar que ninguno de los logins sea incluido en el grupo de usuarios BUILTIN\Administrators.. Permisos de la cuenta de servicio de SQL Server Se recomienda que los servicios de SQL Server sean iniciados por un una cuenta del dominio, y que esta misma tenga los mínimos permisos necesarios (algunos de los que debe tener ya se han enunciado anteriormente) para minimizar un potencial riesgo de seguridad en caso de exploit futuro.. © Solid Quality™ Press. Page 17 of 102.

(18) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Por ello, se recomienda crear usuarios del dominio con los mínimos privilegios posibles para levantar los servicios de SQL Server, SQL Server Agent, Reporting Services y Analysis Services.. Sql Server Auditing Asegurarse que existe la auditoria de loggins fallidos. Con ella, el sistema captura tanto intentos infructuosos a SQL Server de logins Windows y sql. De esta forma se pueden detectar ataques por fuerza bruta.. Figura 3-7: Configuración básica. Puerto de escucha de SQL Server Se recomienda cambiar el puerto de escucha de SQL Server 2008 R2 para que no sea utilizado el puerto por defecto (1433). Para ello, es tan fácil como entrar en el “SQL Server Configuration Manager”-> “SQL Server Network Configuration”-> “Protocols for $(InstanceName)”. Figura 3-8: Propiedades TCP/IP de instancia © Solid Quality™ Press. Page 18 of 102.

(19) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Y escribir en el TCP Port un valor fijo (eliminando el texto existente en “TCP Dynamic Ports”. NOTA: Recuerda reiniciar la instancia SQL Server. Ofuscar el servicio SQL Server a conexiones externas Suele ser común pensar en detener el servicio SQL Browser para dificultar la labor de detección de instancias de SQL Server en la red. Ciertamente, este servicio si se para, producirá que no podamos realizar consultas a ningún sitio para determinar el puerto y nombre de instancia al que conectarnos… El problema de detener el servicio de SQL Browser es que dicho servicio no solo es utilizado para eso, sino que el detenerlo puede dar lugar a verdaderos quebraderos de cabeza en según qué escenarios (clustering, conexión DAC con nombre de instancia, …) Lo cierto es que no es necesario detener el servicio para “ofuscar” la conexión hacia SQL Server, puesto que a nivel de protocolos de red, es posible marcar la instancia como “oculta”, de forma que solo conociendo su nombre de instancia y puerto, seamos capaces de conectarnos a ella.. Figura 3-9: Ofuscación de instancia Según se puede apreciar en la imagen, al hacer click sobre “Protocols for xxxx”, disponemos de la opción de ocultar la instancia (que por defecto está a No). Con esto no queremos dar la sensación al lector de que el servicio se encuentra a salvo de detectores de SQL Server, pero al menos se lo ponemos más difícil impidiendo que el servicio SQLBrowser devuelva información sobre esta instancia. A partir del momento en que se active, ya no se listará en el buscador de instancias SQL Server.. © Solid Quality™ Press. Page 19 of 102.

(20) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. 4. Planificación de la migración Antes de realizar la planificación de la migración, hay que tener presente una serie de cambios de arquitectura y mejoras de herramientas, que han derivado entre otras cosas, a la depreciación y descarte de algunas funcionalidades. Por tanto, previa a cualquier planificación se recomienda revisar encarecidamente los siguientes apartados para detectar potenciales pérdidas de funcionalidad actual que podamos sufrir.. Características de SQL Server Obsoletas y/o discontinuadas Existen una serie de características que serán eliminadas de la siguiente versión de SQL Server, pero que siguen funcionando en la versión 2008 R2 mediante lo que se denomina “Compatibilidad hacia atrás”: http://msdn.microsoft.com/es-es/library/cc707789.aspx Además, existen una serie de características que ya no se encuentran disponibles en la nueva versión de SQL Server 2008 R2. Para más información: http://msdn.microsoft.com/eses/library/cc707782.aspx. SQL-DMO Se ha actualizado la librería de SQL-DMO de versiones anteriores para dar soporte a funcionalidades propias de SQL Server 2008 R2, pero simplemente por compatibilidad hacia atrás. Evite usar esta característica puesto que será eliminada en futuras versiones de SQL Server. Para más información: http://msdn.microsoft.com/es-es/library/ms132055.aspx. Utilidades osql e isql Se ha modificado la herramienta osql para eliminar el soporte de consultas ODBC. Para mantener scripts que sean funcionales con la versión de osql de SQL Server 2000, lea el siguiente documento: http://msdn.microsoft.com/es-es/library/ms174190.aspx Por otra parte, se ha eliminado definitivamente el soporte para isql. Aparece con SQL Server 2005 el reemplazo a dichas herramientas mediante la utilidad sqlcmd, que es útil tanto a nivel de script T-SQL en SQL Server Management Studio y a nivel de consola de sistema operativo. Para más información sobre la utilidad sqlcmd: http://msdn.microsoft.com/eses/library/ms162773.aspx. © Solid Quality™ Press. Page 20 of 102.

(21) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Bcp En la versión de SQL Server 2000, la utilidad de carga masiva de datos por línea de comando solo requería los permisos INSERT y SELECT en la tabla destino de la carga de datos.. Bcp <tabla_objetivo> IN <fichero> -c -T Desde la versión SQL Server 2005 se necesita también el permiso ALTER sobre la tabla, puesto que se permite el chequeo de restricciones y el lanzamiento de triggers durante la carga por parte de opciones de ejecución de la herramienta.. Bcp <tabla_objetivo> IN <fichero> -c –T –h “CHECK CONSTRAINTS, FIRE TRIGGERS” Al contrario que ocurria con la versión anterior de bcp, no existe una pérdida de rendimiento considerable en la carga. Para más información: http://msdn.microsoft.com/es-es/library/ms186247.aspx. Rebuild.exe En SQL Server 2008 R2 no se soporta Rebuild.exe. Han de revisarse todos aquellos scripts que utilizan dicha herramienta para adaptarlos a la nueva opción REBUILDDATABASES de la utilidad de Setup.exe de SQL Server 2008 R2. Para más información: http://msdn.microsoft.com/es-es/library/ms144259.aspx. SQL Mail Pese a que SQL Mail fue marcado como obsoleto ya en SQL Server 2005, todavía es posible utilizarlo en SQL Server 2008 R2. Se recomienda además, que sean revisados aquellos scripts que mandan ficheros adjuntos mediante SQL Mail, puesto que la versión de SQL Server 2008 R2 no soporta esta sfuncionalidad si no se está utilizando autentificación Windows para el cliente SQL Mail. Se recomienda utilizar en su lugar, Database Mail, puesto que es completamente independiente de APIs externas como MAPI, utilizando en su lugar el framework .NET. Para más información: http://msdn.microsoft.com/es-es/library/ms187891.aspx. English Query Este conjunto de herramientas que proporcionaba una interfaz “natural” de consulta a la BBDD fue ya eliminado de soporte en SQL Server 2005 y por tanto no está soportado ya en SQL Server 2008 R2. Pese a que no es posible instalarlo en actualizaciones side-by-side, en actualizaciones in-place no se toca.. Surface Area Configuration © Solid Quality™ Press. Page 21 of 102.

(22) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Esta herramienta que apareció con SQL Server 2005 ha sido descontinuada en SQL Server 2008 R2. La razón no es otra que la aparición del framework de administración declarativa (DMF), donde podremos configurar la faceta “Surface Area Configurator” realizando las mismas acciones que realizábamos anteriormente con la herramienta de SQL Server 2005. Para más información: http://msdn.microsoft.com/es-es/library/cc707782.aspx. Resumen de equivalencias entre herramientas de SQL Server 2000 y 2008 R2 SQL Server 2000. SQL Server 2008 R2. Enterprise Manager. SQL Server Management Studio. SQL Server Reporting Services 2000. SQL Server Reporting Services + Report Builder. SQL Server Profiler. SQL Server Profiler. Analysis Manager. Bussiness Intelligence Management Studio. Data Transformation Services (DTS). Sql Server Integration Services (SSIS). Isql/osql. Sqlcmd/powershell. Sql Mail. Database Mail. Configurador de superficie. Framework de administración declarativa (DMF). English query. Obsoleto. Planes de mantenimiento (a traves de trabajos de SQL Server Agent). Planes de mantenimiento (a través de paquetes SSIS). Index Tunning Wizard (ITW). Database Tunning Advisor (DTA). SQL-DMO. SQL-DMO (solo por compatibilidad hacia atrás). BCP. BCP (mejorado). © Solid Quality™ Press. Page 22 of 102.

(23) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Migración del motor relacional El siguiente apartado condensa las recomendaciones específicas para la migración del motor relacional.. Fases de una migración “side-by-side” A la hora de acometer una migración de SQL Server, el siguiente conjunto de tareas debe llevarse siempre a cabo: • • • • •. •. Ejecución del SQL Upgrade Advisor Interpretación y explicación del resultado del SQL Upgrade Advisor Instalar SQL Server 2008 R2 siguiendo buenas prácticas Plantear migración de paquetes DTS a SSIS o ejecución en modo compatibilidad. Plantear migración de Cubos SQL 2000 a 2008 R2 recreándolos desde 0, actualizándolos automáticamente con el asistente o simplemente manteniendo la instancia de SQL 2000 pero atacando a SQL Server 2008 R2 Creación de un guión de migración para el dia de paso a producción y testearlo en pre-producción.. Independientemente del modelo de migración a implementar (“in-place” ó “side-by-side”), se recomienda siempre realizar los pasos 3 al 7 del proceso de migración del motor relacional.. Minimizar el proceso de actualización Para tratar de minimizar el proceso de migración hacia SQL Server 2008 R2, se propone al lector las siguientes prácticas previas al dia de la misma: •. •. •. Validar requerimientos de instalación de actualizaciones “in-place”. Disponer del service pack y actualización necesaria para poder realizar la migración hacia SQL Server 2008 R2, así como la correcta validación de los requerimientos de actualización propuestos por la herramienta “SQL Server Upgrade Advisor”. Pese a que esto es necesario en cualquier tipo de actualización, es especialmente importante en actualizaciones “in-place”, para evitar retrasos el dia “D”. Preinstalar componentes .NET y de Windows necesarios. Se recomienda instalar la versión .NET 3.5 SP1 y Windows Installer (msi) 4.5 de forma previa, en el servidor destino. Esto puede hacerse mediante descarga individual o desde el propio proceso de instalación de SQL Server 2008 R2 (que ya contiene estos instalables). La instalación de Windows Installer 4.5 requerirá un reinicio del Sistema Operativo. Preinstalar herramientas de administración. En el proceso de instalación, si se seleccionan, se van a instalar las herramientas de administración de sql server y desarrollo de inteligencia de negocio. Estas. © Solid Quality™ Press. Page 23 of 102.

(24) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. •. •. •. •. herramientas son tanto SQL Server Management studio, como el propio Visual Studio 2008 R2 Business Intelligence. Si ya se encuentran instaladas y actualizadas como mínimo al SP1, podremos evitarnos el tiempo de instalación el mismo dia de actualización. Precrear usuarios del dominio. Se recomienda disponer de usuarios del dominio específicos para cada servicio de SQL Server. Es recomendable tener dichos usuarios y grupos precreados antes de la instalación, para no invertir tiempo en ello. Chequear consistencia de datos. Es altamente recomendable realizar un chequeo de consistencia de todas y cada una de las bases de datos a migrar, de forma previa a su migración. Puesto que es un proceso costoso, se recomienda que sea realizado el dia anterior al de la migración, para evitar hacerlo el mismo dia. Formación para administradores de base de datos. No menos importante es la formación de los DBA que se van a encargar de la nueva/s instancia de SQL Server 2008 R2. Antes de cualquier migración debe existir un proceso de formación/adaptación a SQL Server 2008 R2, para que los DBA sean capaces tanto de administrar, como de desplegar características nuevas. El cambio que existe entre SQL Server 2000 y SQL Server 2008 R2 es tan grande y las mejoras son tantas, que no es viable ponerse a aprenderlas una vez se ha migrado el entorno. Disponer de este conocimiento en etapas tempranas de la planificación de la migración, mejorará el tiempo de despliegue en sí mismo. Formación para desarrolladores de base de datos y equipo de Inteligencia de Negocio. El producto incorpora nuevas funcionalidades desde el foco de desarrollo de aplicaciones y análisis de información, y es deseable que los equipos involucrados conozcan y puedan utilizar todas estas novedades que redundan directamente en la eficiencia y productividad de los desarrollos; por ejemplo, las capacidades de SSIS desde el punto de vista de usabilidad y desarrollo hacen que tareas anteriormente realizadas con DTS conlleven la mitad de tiempo en desarrollo, pruebas y despliegue que anteriormente. En la misma línea están las nuevas construcciones del lenguaje TSQL como la sentencia MERGE, particioamiento de información, gestión de información espacial, tipos de datos nuevos como Filestream, o integración de .NET CLR en el gestor de bases de datos.. Planificación de la migración La planificación de la migración del motor relacional se compone de tres grandes apartados: •. Análisis de consultas dinámicas generadas por las aplicaciones que explotan las bases de datos.. © Solid Quality™ Press. Page 24 of 102.

(25) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. •. •. •. •. Hemos de realizar una traza de consultas que llegan al motor, para determinar si existe código en las aplicaciones cliente depreciado. Para su análisis nos apoyaremos en SSUA (Sql Server Upgrade Advisor). Ver apartado “análisis de consultas dinámicas”. Análisis de objetos estáticos de las bases de datos y servicios a migrar Utilizando SSUA, obtendremos los reportes de migración que deberemos analizar para tratar de superar incompatibilidades. Ver apartado “Interpretación y explicación del resultado del SQL Upgrade Advisor” Modificación de incompatibilidades en origen Pese a no ser requerimiento imprescindible, es altamente recomendable salvar todas las incompatibilidades detectadas en los puntos anteriores antes de acometer la migración. Esto nos evitará tener que lidiar con los problemas sobre la BBDD migrada a 2008 R2, teniéndola que configurar en compatibilidad 90 u 80 por dichos requerimientos. Análisis de interconexión o De instancias SQL Server o De bases de datos en la misma instancia SQL Server Es de vital importancia conocer las relaciones de dependencia entre instancias de motores relacionales y bases de datos. Esto es debido a que al migrar de un motor a otro en entornos side-by-side, por regla general también se migran nómbres de máquina, direccionamiento IP,…y obviamente todo debe funcionar, por lo que si perdemos la pista a una aplicación que conecta contra la instancia o viceversa, incurrimos en errores potencialmente críticos Análisis de aplicaciones que utilizan la instancia SQL Server Al igual que al analizar las interconexiones entre instancias y bases de datos, debemos conocer qué aplicaciones y equipos conectan contra la instancia, puesto que debemos ser capaces de identificar a todas las aplicaciones que se vean afectadas.. Analisis de interconexiónes En este punto se van a tratar aspectos relacionados con la detección de interdependencias de instancias y bases de datos de una migración. La importancia de una buena detección de interconexión entre instancias va a determinar como de fiables al hacer las estimaciones de costes y tiempos vayamos a ser en fases tempranas del proyecto, a pesar de que obviamente si no lo detectamos correctamente incurriremos en una mala solución de migración.. © Solid Quality™ Press. Page 25 of 102.

(26) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Figura 4-1: Diagrama de dependencias entre instancias Nota: La imagen anterior proviene de un escenario real con nombres renombrados por seguridad. Generado automáticamente con software de análisis de migraciones propietario de SolidQ De este análisis, obtendremos información relativa a: • •. ¿Qué servidores abren conexiones hacia la instancia a migrar? Flechas de entrada hacia el servidor ¿Hacia qué servidores abre conexiones la instancia a migrar? Flechas de salida del servidor. Por tanto, debemos analizar la instancia a migrar en busca de: • • • •. ¿Qué servidores vinculados existen hacia otras instancias? ¿Qué componentes crean servidores vinculados al vuelo mediante sp_addlinkedserver? ¿Qué componentes utilizan OPENROWSET? ¿Qué componentes utilizan OPENDATASOURCE?. Visto el diagrama anterior, no será lo mismo migrar la instancia “I”, que la instancia “C”, por ejemplo, ya que queda bastante patente que la instancia “I” posee relaciones hacia 6 instancias con entrada-salida, mientras que la instancia “C” solo posee relaciones de entrada. Y lo mismo, pero buscando en trazas de SQL Server Profiler, puesto que recordemos que una aplicación también puede realizar lo propio y trabajar al vuelo con estas opciones.. © Solid Quality™ Press. Page 26 of 102.

(27) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Pero al igual que buscamos dependencias entre distintos equipos, también puede darse el caso de ser necesario obtener dependencias de bases de datos:. Figura 4-2: Diagramas de dependencia entre bases de datos. NOTA: Las imágenes anteriores provienen de escenarios reales de dependencias entre bases de datos, generadas con software propietario de SolidQ para análisis de migraciones.. © Solid Quality™ Press. Page 27 of 102.

(28) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. ¿Por qué querríamos calcular dependencias entre bases de datos? Si nuestra migración no va a ser de toda la instancia completa, sino de algunas bases de datos, que serán movidas al nuevo servidor en 2008 R2, debemos conocer las implicaciones de llevarnos dichas BBDD a otro equipo. Dicho de otro modo, deberemos saber qué bases de datos deberemos llevarnos en bloque, o qué queries u objetos modificar para que sigan funcionando. Buscaremos los siguientes patrones: -. -. Accesos a objetos utilizando nomenclatura de 4 partes: SERVER.BBDD.SCHEMA.OBJECT En este caso, obviamente SERVER debe ser el mismo server y BBDD debe ser una BBDD diferente a la que se está conectado Accesos a nombres de 3 partes: BBDD.schema.object Al igual que antes, BBDD deberá ser un nombre de BBDD diferente a la que se está conectado. Para información sobre ayuda para crear los scripts ir a la siguiente sección del apéndice.. Instalación y ejecución de SQL Server Upgrade Advisor La herramienta se encuentra tanto en el propio CD de instalación de SQL Server 2008 R2, como disponible para descarga en la siguiente ubicación: Link x86: http://go.microsoft.com/fwlink/?LinkID=188397&clcid=0x409 Link x64: http://go.microsoft.com/fwlink/?LinkID=188398&clcid=0x409 En caso de utilizar la herramienta incluida en el DVD del producto, se recomienda validar la existencia de versiones nuevas de la herramienta (opción “search for product updates”).. Figura 4-3: Instalación de SSUA © Solid Quality™ Press. Page 28 of 102.

(29) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Al contrario que la herramienta de actualización del motor propiamente dicha, SQL Server Upgrade Advisor (SSUA) está pensado para instalarse en un equipo diferente al de producción, por lo que está preparado tanto para solicitar la instancia y servicios a analizar, como el usuario (con permiso sysadmin) que necesitemos para conectar y realizar el análisis. A continuación se expone el análisis realizado sobre los resultados proporcionados por la herramienta SQL Upgrade Advisor sobre un supuesto entorno de producción. En él, podremos ver algunas de las incidencias detectadas mas habituales a la hora de migrar de SQL Server 2000 a SQL Server 2008 R2: 1. Una vez instalada la herramienta, el siguiente paso es ejecutarla para obtener el informe de migración 2. Luego pulsamos sobre “Launch Upgrade Advisor Analysis Wizard” y seguidamente seleccionamos los componentes que deseamos actualizar, así como el servidor donde se encuentran instalados:. Figura 4-4: Según el proyecto, se analizarán los servicios pertinentes. © Solid Quality™ Press. Page 29 of 102.

(30) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. 3. Ahora la herramienta nos irá solicitando las credenciales necesarias por los servicios para poder realizar el análisis. Figura 4-5: Conexión a instancia 4. En el caso del servicio del motor relacional, la herramienta nos solicitará información sobre qué bases de datos deseamos analizar:. Figura 4-6: Selección de bases de datos y ficheros a analizar 5. Una vez seleccionadas dichas bases de datos, podremos continuar pulsando en siguiente y dejando que la herramienta comience el análisis Una vez finalizado el análisis por parte de la herramienta, el siguiente paso será visualizar los informes generados para su posterior análisis de resolución de conflictos.. © Solid Quality™ Press. Page 30 of 102.

(31) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Visualizar e interpretar informes generados por SSUA Una vez la herramienta ha finalizado el análisis, disponemos de una opción para visualizar sus resultados de forma cómoda. Para ello, dentro de la propia herramienta SSUA, podemos hacer click en “Launch Upgrade Advisor Report Viewer”. Figura 4-7: Abrir reporte de resultados SSUA La siguiente imagen ilustra las incidencias detectadas por el asesor de actualización de SQL Server lanzado contra una instancia de SQL Server 2000 de producción de ejemplo:. Figura 4-8: Ejemplo de resultados de análisis SSUA © Solid Quality™ Press. Page 31 of 102.

(32) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Los XML que genera dependen de la selección de análisis realizada de forma que: • • •. AS.xml es el análisis de Analysis Services DE.xml es el análisis del motor de base de datos (Database Engine) DTS.xml es el análisis de los DTS. Los errores que se van a tratar en este punto, son los errores que mayor frecuencia de aparición tienen en los proyectos de migración de SQL Server 2000 a 2008 R2; entender tanto su aparición como su solución es de vital importancia para el proyecto global de migración.. Motor de base de datos A continuación se detalla el análisis de cada una de las puntualizaciones proporcionadas por SSUA:. Mensaje de advertencia sobre imposibilidad de detección de potenciales problemas. Figura 4-9: Mensaje genérico La herramienta nos informa que existen potenciales problemas de actualización del motor de BBDD que no pueden ser detectados de forma automática con certeza y nos invita a revisarlos manualmente: •. Cambios de collation Hemos de cerciorarnos que al migrar, el collation del motor destino sea idéntico. Es importante tenerlo en cuenta durante el proceso de instalación de la nueva instancia SQL 2008 R2 para que coincida con el antiguo SQL Server 2000.. •. Configuraciones de max server memory En SQL 2000, si definimos un “max server memory”, una consulta que puntualmente requiera mas memoria y esté disponible, podrá acceder a ella. Por el contrario, desde SQL 2005, si una consulta necesita más memoria de la máxima configurada, esta no será asignada y devolverá un error de tipo “insufficient system memory”. Se nos avisa de ello para que seamos conscientes.. © Solid Quality™ Press. Page 32 of 102.

(33) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. •. Cambio de modo de compatibilidad Por defecto, al migrar una BBDD, su modo de compatibilidad no varia. Por tanto hemos de cambiar su modo de compatibilidad de 80 (sql server 2000) a 100 (SQL Server 2008 R2) mediante la instrucción “ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 }” ó mediante el procedimiento almacenado “sp_dbcmptlevel” (depreciado). Este paso queda reflejado en el apartado de pasos necesarios para el proceso de migración.. •. Tipos de datos char(0),varchar(0) y nvarchar(0) no soportados En SQL 2000, se pueden definir columnas calculadas que almacenen cadenas vacías, almacenándolas como cadenas de longitud 0. Desde SQL Server 2005 su comportamiento varía, y por defecto son creadas con un tamaño mínimo de 1. Si se detecta esta situación, hay que volver a recrear la columna calculada con un tamaño mínimo de 1.. •. UNION Cuando un operador UNION está dentro de una instrucción INSERT, desde la versión de SQL Server 2005 se convierte el tipo de datos de cada operación UNION por separado, según las reglas de la conversión de tipo de datos. En SQL Server 2000, se hacia la conversión directamente al tipo de datos de la tabla destino. Esto puede incurrir en problemas ya que operaciones que en SQL Server 2000 no producían error, si pueden hacerlo en 2005 y 2008 R2. Para validar este apartado, lo mejor es que se pruebe la aplicación una vez se haya migrado la BBDD en un entorno de preproducción y su modo de compatibilidad esté asignado ya a 100 (SQL Server 2008 R2). •. Vistas indexadas Desde SQL Serve 2005, las referencias a literales de cadena que se convierten de manera implícita en datetime y smalldatetime no son deterministas. Sus resultados dependen de LANGUAGE y DATEFORMAT de la sesión del servidor, por lo que CONVERT(datetime,'30 listopad 1996',113) puede valer diferente en función de LANGUAGE. La conversión implícita de datos de caracteres no Unicode entre intercalaciones ya no son deterministas. Además, la creación de índices en vistas que contienen estas expresiones no se admite ni en el nivel de compatibilidad de base de datos 90 ni en nivel 100. Aunque puedan mantenerse las vistas existentes que contengan estas expresiones de una base de datos actualizada, el optimizador de consultas no las tendrá en cuenta en los planes de consulta, ya sea el nivel de compatibilidad 80, 90 o 100.. © Solid Quality™ Press. Page 33 of 102.

(34) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Para solventar esta situación, desde la versión de SQL Server 2005, se debe convertir explícitamente el literal al tipo de fecha deseada mediante un estilo de formato de fecha determinista. Ver CAST y CONVERT (Transact-SQL). Por lo tanto, partir del momento de la migración, si se utilizan conversiones implícitas de cadena a fecha en vistas indizadas existentes que se han actualizado a SQL Server 2008 R2, hay que asegurarse de que los valores LANGUAGE y DATEFORMAT son coherentes en las bases de datos y en las aplicaciones para impedir posibles daños en las vistas indizadas. • •. FOR XML Desde SQL Server 2005, un carácter de 3-bytes Unicode genera 6 caracteres en XML, mientras que en SQL Server 2000, se generaban 8 caracteres. Uso de objetos del sistema Se han modificado muchos de los procedimientos almacenados y tablas del sistema entre las versiones SQL Server 2000, 2005 y 2008 R2 (especialmente entre 2000 y 2008 R2), por lo que si se consulta información directamente sobre ellos hay que repasar si es correcto. Entre otras cosas, los objetos del sistema ahora residen sobre el esquema sys, no sobre dbo y residen sobre cada BBDD en lugar de únicamente sobre la BBDD master.. •. Cambio en invocaciones múltiples de funciones RAND y NEWID En SQL Server 2005 y 2008 R2, la invocación múltiple de estas funciones no genera varios valores, al contrario de lo que ocurre en SQL Server 2000. Se puede comprobar su comportamiento lanzando la siguiente consulta T-SQL contra un servidor SQL 2000 y un SQL 2008 R2. SELECT Column1, Column1 FROM ( SELECT RAND() Column1 FROM ( SELECT 1 c UNION SELECT 2 c )s )t •. •. WITH CHECK OPTION INSERTS y UPDATES pueden fallar sobre vistas creadas con WITH CHECK OPTION cuando incurren en tablas remotas. Recrear la vista sin WITH CHECK OPTION para evitar este error Ensamblados SQLCLR SQL Server 2008 R2 instala .NET Framework 3.5 SP1, que se encarga de actualizar las. © Solid Quality™ Press. Page 34 of 102.

(35) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. •. •. •. •. bibliotecas de la memoria caché de ensamblados global (GAC). Si tiene bibliotecas no admitidas registradas en una base de datos de SQL Server, es posible que la aplicación de SQL Server deje de funcionar después de realizar la actualización a SQL Server 2008 R2. El motivo es que cuando se da servicio o se actualizan bibliotecas de la GAC, no se actualizan los ensamblados de SQL Server. Si un ensamblado existe tanto en una base de datos de SQL Server como en la GAC, las dos copias deberán coincidir exactamente. Si no coinciden, se producirá un error cuando la integración CLR de SQL Server use el ensamblado. Para obtener más información, vea “Bibliotecas de .NET Framework admitidas” (http://msdn.microsoft.com/eses/library/ms403279.aspx). Después de actualizar la base de datos, dé servicio o actualice la copia del ensamblado situada en las bases de datos de SQL Server con la instrucción ALTER ASSEMBLY. Para obtener más información, vea el artículo “949080 de Knowledge Base” (http://support.microsoft.com/kb/949080). Nuevo error de inicio de sesión incorrecto En SQL Server 2005, se devuelve el error 18452 cuando se usa un inicio de sesión de SQL para conectar con un servidor que está configurado para usar únicamente la autenticación de Windows. En SQL Server 2008 R2, se devuelve el error 18456 en su lugar. Modificaciones en XML de planes de presentación Se ha agregado un nuevo atributo IndexKind al tipo complejo ObjectType en el esquema XML del plan de presentación. En las aplicaciones que validen de forma estricta los planes de SQL Server con el esquema de SQL Server 2005 se producirá un error. Opción recompute Rank a nivel de servidor Esta opción no se admite en SQL Server 2008 R2. Modifique las aplicaciones que actualmente utilizan esta característica lo antes posible. Expresiones XPath y XQuery En SQL Server 2005, se permiten los pasos de una expresión de XQuery o XPath que comienzan con un signo de dos puntos (':'). Por ejemplo, la instrucción siguiente contiene una prueba del nombre (CTR02) dentro de la expresión de ruta de acceso que comienza con dos puntos.. SELECT FileContext.query('for n$ in //CTR return <C>{data )(n$/:CTR02)} </C>) AS Files FROM dbo.MyTable; En SQL Server 2008 R2, este uso se rechaza porque no cumple los estándares de XML. Se devuelve el error 9341. Como solución hay que quitar el signo de dos puntos inicial o especificar un prefijo para la prueba del nombre, por ejemplo (n$/p1:CTR02) o (n$/CTR02). Como se ha visto, al margen de que exista un componente de análisis estático, la herramienta nos informa de que también deberemos realizar un análisis que valide © Solid Quality™ Press. Page 35 of 102.

(36) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. situaciones imposibles de evaluar automáticamente. Se trata en su mayoría de situaciones no habituales, pero que conviene conocer puesto que en nuestro entorno podemos estar utilizándolas. NOTA: Para información más detallada, consultar http://msdn.microsoft.com/es-es/library/ms143179.aspx. Mensaje de advertencia sobre Búsqueda de Texto (fulltext search). Figura 4-10: Mensaje para fulltext search Su mensaje es suficientemente descriptivo y se aplica a SQL Server 2008 R2.. Versión de MDAC 2.6. Figura 4-11: Actualizar version MDAC Esta advertencia solo es necesario validarla en escenarios de migración “in-place”, donde hay que actualizar la versión de MDAC para poder conectar contra SQL Server 2008 R2. En el caso de encontrarnos en una migración “Side-by-side” (migración a otro equipo nuevo), donde ya está instalado SQL Server 2008 R2, podremos dar por validado este apartado. NOTA: Dependiendo de la actualización será MDAC 2.8 o superior. Planes de mantenimiento en SQL Server 2008 R2. Figura 4-12: Planes de mantenimiento desfasados. © Solid Quality™ Press. Page 36 of 102.

(37) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. En este apartado se nos informa de que a pesar de que se podrán migrar los planes de mantenimiento creados en la instancia 2000, en SQL Server 2008 R2 se implementan de forma diferente (mediante paquetes SSIS). Figura 4-13: ORDER BY deprecado. Cláusulas ORDER BY no compatibles Al contrario de SQL Server 2000, en un ORDER BY debemos poner las columnas especificando únicamente el alias proporcionado, o el nombre de dos partes real (TABLA.COLUMNA), pero no está soportado el doble alias ALIASTABLA.ALIASCOLUMNA. Esta validación nos indica que exiten 3 objetos que no funcionarán al poner la BBDD en compatibilidad 100. En estos casos la única solución es recrearlos para evitar este uso incompatible de ORDER BY, actualizándolo a su sintaxis aceptada.. Cláusulas OUTER JOIN depreciadas (*= y =*). Figura 4-14: OUTER JOIN deprecado El asistente de actualización ha detectado que existen 66 objetos con sintaxis no ANSI SQL para determinar operaciones OUTER JOIN. La única solución para dichos objetos es la de ser modificados para hacer referencia a LEFT OUTER JOIN y RIGHT OUTER JOIN en lugar de sus operadores no compatibles (*= y =* respectivamente).. Políticas de seguridad para usuarios de SQL Server En SQL Server 2008 R2 no es posible crear usuarios con password en blanco y al detectarse esta situación en la instancia de SQL Server 2000 se nos avisa de que es algo que tendremos que modificar en nuestras aplicaciones.. © Solid Quality™ Press. Page 37 of 102.

(38) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Figura 4-15: Mensaje generic sobre full-text search. Data Transformation Services La siguiente imagen ilustra las incidencias detectadas por el asesor de actualización de SQL Server, lanzado contra una instancia de SQL Server 2000 durante el análisis de los paquetes DTS:. Figura 4-16: Resultados análisis DTS. Instalar DTS en msdb en caso de actualización in-place. Figura 4-17: Mensaje indicando que DTS no está soportado En el caso de una actualización “in place”, es necesario que los paquetes DTS estén almacenados en la base de datos msdb. Si no es el caso, este mensaje podremos obviarlo. Componentes de edición para DTS en SQL Server 2008 R2. Figura 4-18: No se podran editar paquetes DTS en versión 2008 R2. © Solid Quality™ Press. Page 38 of 102.

(39) Planificando la migración de SQL Server 2000-2005 a SQL Server 2008 R2. Si estuviéramos en el caso de una actualización “in place”, en el momento que desinstaláramos SQL Server 2000 no podríamos editar ni crear paquetes DTS hasta instalar las herramientas para tal fin sobre SQL Server 2008 R2, cosa que como veremos mas adelante no están soportadas desde SQL Server 2008. Las herramientas en cuestión se pueden encontrar en la siguiente ubicación: http://www.microsoft.com/downloads/details.aspx?FamilyId=C6C3E9EF-BA29-4A43-8D69A2BED18FE73C&displaylang=en en la sección “Microsoft SQL Server 2005 Backward Compatibility Components”. Tareas complejas en DTS no migradas completamente. Figura 4-19: Mensaje indicando que revises los DTS puesto que algunos se han encapsulado como DTS dentro de SSIS debido a su complejidad y se deben reprogramar manualmente. Debido a que existe lógica “compleja” en los DTS, el asistente de migración no podrá migrar al 100% alguna de las partes del mismo, dejándolas como paquete de ejecución DTS de forma interna. Se nos avisa de esta circunstancia, para que lo tengamos en cuenta y en los paquetes de SSIS, realicemos la modificación cuando lo estimemos oportuno, pero ya sobre un paquetes SSIS. En este ejemplo concreto, la parte que no puede convertir automáticamente es la encargada de obtener información de otro motor de base de datos mediante un conector ODBC no estándar instalado en el servidor. Obviamente dicho conector deberá ser instalado en el nuevo servidor y deberemos realizar pruebas de conectividad sobre el mismo para validar si su comportamiento es el correcto en la nueva instancia-servidor.. Aviso de característica depreciada: DTS. Figura 4-20: Mensaje generic indicando que DTS está deprecado. © Solid Quality™ Press. Page 39 of 102.

Referencias

Documento similar

95 Los derechos de la personalidad siempre han estado en la mesa de debate, por la naturaleza de éstos. A este respecto se dice que “el hecho de ser catalogados como bienes de

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

Para denegación hegeliana del mal: «Así como no existe lo fal- so, no existe el mal, es objetada primero por Sade y luego por la subjetividad romántica: en la mé- dula de la

1 de 26.. Cálculo Relacional Orientado a Tuplas. Equivalencia entre Cálculo Relacional y Álgebra Relacional: El Algoritmo de Reducción de Codd... Tema

b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación

Esta herramienta gratuita facilita las tareas necesarias para la gestión de Microsoft SQL Server Express, permitiendo modificar las configuraciones de la base de datos y

Al hacer consultas a la base de datos, SQL permite utilizar operaciones algebraicas