Vous êtes sur la page 1sur 0

Planificando la migracio n a SQL

Server 2008 R2
Autor: Enrique Catala

Revisores: Eladio Rincn
Serie Relacional
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 2 of 102
ADVERTENCIA LEGAL

Todos los derechos de esta obra estn reservados a Enrique Catal y a
Sol i dQTM Press.

El edi tor prohbe cual qui er ti po de fijacin, reproduccin, transformaci n o
di stri bucin de esta obra, ya sea mediante venta, al qui ler o cual quier otra
forma de cesi n de uso o comunicacin pbli ca de la misma, total o
parcial mente, por cualqui er sistema o en cual qui er soporte, ya sea por
fotocopi a, medio mecni co o el ectrni co, i ncl ui do el tratami ento informti co
de la misma, en cual qui er l ugar del mundo.

La vulneraci n de cualesqui era de estos derechos podr ser consi derada como
una actividad penal tipi fi cada en l os art culos 270 y sigui entes del Cdigo
Penal.

La proteccin de esta obra se extiende al mundo entero, de acuerdo con l as
l eyes y conveni os i nternacional es.


Enrique Catal, 2011
SolidQ
TM
Press, 2011

Planificando la migracin a SQL Server 2008 R2
Serie Relacional
Autor: Enrique Catal Bauls
Revisores: Eladio Rincn
Editado por SolidQ
TM
Press
Apartado de correos 202
03340 Albatera, Alicante, Espaa
http://www.solidq.com
Precio: Gratuito
ISBN: 978-84-936417-9-5

Bonifcable a travs de la Fundacin Tripartita
Convirtete en un profesional altamente
especializado en tecnologas Microsoft.
Mster en BI
http://www.solidq.com/es/MasterBI
Da un giro a tu carrera profesional.
Es tiempo de oportunidades.
Para ms informacin llama al 800.300.800 o +34 91 414 8950 o bien manda un e-mail a: ventasib@solidq.com
Infrmate Ya!
Mster SQL Server DBA
http://www.solidq.com/es/MasterSQLServerDBA
Mster en SharePoint
http://www.solidq.com/es/MasterSharePoint
M
A
S
T
E
R
S

C
E
R
T
I
F
I
C
A
D
O
S
P
O
R

S
o
l
i
d
Q
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 3 of 102
Tabla de Contenidos
1. Introduccin ...................................................................................................................... 6
2. Estrategias de Migracin ................................................................................................... 7
Actualizacin In-Place ........................................................................................................ 7
Migracin Side-by-side ....................................................................................................... 9
Enfoque del documento ...................................................................................................... 11
3. Diseo de la solucin ....................................................................................................... 12
Roles y departamentos implicados en una migracin ........................................................ 12
Buenas prcticas en la configuracin 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
Configuracin de seguridad bsica .................................................................................. 17
4. Planificacin de la migracin ........................................................................................... 20
Caractersticas 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
Migracin del motor relacional ........................................................................................... 23
Fases de una migracin side-by-side ........................................................................... 23
Minimizar el proceso de actualizacin ............................................................................ 23
Planificacin de la migracin ........................................................................................... 24
Analisis de interconexines ................................................................................................. 25
Figura 4-2: Diagramas de dependencia entre bases de datos ........................................ 27
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 4 of 102
Por qu querramos calcular dependencias entre bases de datos? .............................. 28
Instalacin y ejecucin de SQL Server Upgrade Advisor ..................................................... 28
Visualizar e interpretar informes generados por SSUA ....................................................... 31
Motor de base de datos .................................................................................................. 32
Data Transformation Services ......................................................................................... 38
Anlisis de consultas dinmicas ...................................................................................... 40
Migracin de los paquetes DTS a SSIS. ................................................................................ 44
Qu ocurre durante la migracin? ................................................................................ 44
Guin de migracin ............................................................................................................. 45
Migracin del motor de base de datos ........................................................................... 45
Patrones de codificacin TSQL adaptados para SQL Server 2008 R2 .............................. 47
Solucin de problemas de actualizacin ......................................................................... 52
Migracin de paquetes DTS a SSIS .................................................................................. 53
Migracin de Anlysis Services ........................................................................................ 70
Acciones Post migracin ...................................................................................................... 76
5. Apndice .......................................................................................................................... 78
Actualizaciones de seguridad .............................................................................................. 78
Servidores vinculados desde entornos SQL Server x64 hacia SQL Server 2000 x32 ........... 78
Cadenas de conexin con el nombre de aplicacin ............................................................ 78
Finalizacin de trazas de Sql Profiler ................................................................................... 78
Finalizar la traza ............................................................................................................... 79
Generacin de Scripts de mantenimiento ........................................................................... 79
Solucin al error allow remote connections through DCOM ........................................... 81
Crear una solucin Visual Studio para gestionar todos los paquetes SSIS ...................... 82
Migracin 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
Diseador DTS ................................................................................................................. 91
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 5 of 102
Por qu actualizar el nivel de compatibilidad? .................................................................. 92
Analisis de interconexiones ................................................................................................. 92
Anlisis de aplicaciones que utilizan SQL Server ................................................................. 93
Documentos de referencia .................................................................................................. 96
Recursos de inters ............................................................................................................. 96
6. Figuras ............................................................................................................................. 98


Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 6 of 102
1. Introduccin
El proceso de migracin a SQL Server 2008 R2 no deberia ser un proceso traumtico. 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 migracin traumtica, defectuosa, o incluso que se deba abortar dicha
migracin.
El siguiente documento pretende servir de gua para ayudar a realizar una planificacin
exitosa de migracin hacia SQL Server 2008 R2 basndonos en experiencias adquiridas en
diversos proyectos realizados en SolidQ.
La informacin que aparece en este documento se trata de un suplemento a la informacin
existente en los libros en pantalla de SQL Server 2008 R2 y no se pretende rebatir o
contradecir la informacin que en l aparece, sino complementarla y facilitar su
comprensin. En caso de existir discrepancias entre este ebook y la documentacin oficial
de Microsoft, prevalecer la documentacin oficial del fabricante. Adems, sugerimos que
consulte los enlaces referenciados en la seccin Documentos de Referencia.
Para entender el siguiente documento, creo conveniente definir los siguientes trminos:
Actualizacin o migracin
Transicin entre una versin previa de SQL Server a una versin superior de la
misma
Servidor
Computador fsico o virtual con el sistema operativo Windows Server 2003 o
superior
Componente servicio
Cualquiera de los ejecutables incluidos en la instalacin de SQL Server (motor
relacional, integration services, reporting services, analysis services,)


Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 7 of 102

2. Estrategias de Migracin
A la hora de dar soluciones a la actualizacin de SQL Server hacia 2008 R2, podemos realizar
dos tipos de planteamientos diferentes en funcin de nuestras necesidades:
Actualizacin in-place: Utilizando el propio instalador de SQL Server 2008 R2,
podemos actualizar directamente los servicios de SQL Server a la nueva versin
Migracin 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
Actualizacin In-Place
Se trata de una actualizacin 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 actualizacin 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 estn instalados en el servidor en el momento de
comenzar la migracin.
No es posible realizar una migracin 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
migracin es mnimo, 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 mayora de las situaciones.
Antes de comenzar con el proceso de migracin en si, debe asegurarse que tiene
salvaguardados todos los datos crticos de su instancia de SQL Server, es decir:
Haber hecho copias se seguridad de sus bases de datos de usuario y sistema.
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 8 of 102
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 migracin 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 migracin in-place:
1. Instalar los prerrequisitos de SQL Server 2008 R2
2. Lanzar el proceso de actualizacin in-place
3. Reparar los potenciales problemas o advertencias que sean mostradas por el
asistente de migracin, que los detectar y listar de forma previa a la actualizacin.
Una vez reparados, volver a lanzar el proceso de actualizacin desde el CD de
instalacin.
4. El proceso de migracin 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 automtico, la instancia SQL Server 2008 R2 estar
completamente disponible y la instancia en la versin previa de SQL Server ya no existir
como tal puesto que se encontrar en la nueva versin.
Este tipo de actualizaciones, tradicionalmente vienen siendo consideradas como
automticas y por ello parece que la necesidad de un administrador de base de datos es
menor que en la actualizacin Side-by-side. Ciertamente la gran mayora del trabajo se
realiza automticamente y si todo va bien, prcticamente deberemos realizar pequeas
modificaciones al resultado final (actualizar estadsticas, instalar MDAC 2.8 en los PC
clientes,) que en su gran mayora no necesitan de un DBA experto. En el caso de estar en
esta situacin, hay que tener presente siempre el punto de no retorno.
En qu momento de la migracin in-place si algo sale mal necesitaremos ayuda? Qu
ocurre si llegamos a un estado en el momento de la actualizacin en el que por
inexperiencia, mala planificacin,no podemos continuar? Si se corrompen datos en
cualquier punto de la actualizacin podremos volver atrs? 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 crtica que pueda surgir.
En el caso de que aun as decidamos seguir adelante sin un DBA experto, las siguientes
consideraciones debern ser resueltas antes de plantearse la migracin:
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 9 of 102
Cundo considerars que tu actualizacin ha sido satisfactoria?
tienes alguna forma de testear las aplicaciones sobre el nuevo entorno SQL Server
2008 R2?
Puedes realizar una simulacin de migracin in-place sobre un entorno de
testing?
has resuelto todas las advertencias propuestas por Upgrade Advisor?
Como mnimo, debes poder responder a estas preguntas de manera satisfactoria antes de
plantearte realizar la actualizacin hacia SQL Server 2008 R2 sin un DBA.
Este modelo de migracin, adems de todo lo comentado anteriormente, suele poseer un
factor de riesgo ms, derivado de la versin 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 aadir el factor migracin de
sistema operativo a una migracin in-place en ocasiones (pese a que con frecuencia, se
suele tener como algo habitual, la migracin de SO independientemente de si es requerido o
no). Los siguientes consejos deben ser seguidos en el caso de requerir una migracin del
sistema operativo:
Si deseamos migrar un SQL Server 2000-2005 sobre Windows Server 2000, debemos
realizar primero una migracin de Sistema Operativo a Windows Server 2003
(recuerda que 2008R2 no seria vlido) y posteriormente realizar la migracin a Sql
Server 2008 R2. Una vez realizado este proceso, ya se podr realizar la migracin 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 ejemplohay que realizar
primero la migracin a soluciones de disco mas modernas compatibles con W2k8.
Windows Server 2008 R2 no soporta el formato antiguo de domnios NT. Es preciso
por tanto, si el servidor va a formar parte de un dominio de confianza en nuestra
organizacin, que el dominio sea un dominio de Active Directory.
Para ms informacin Upgrading to Windows Server 2008 R2.
Migracin Side-by-side
Se trata del modelo de migracin mas comn y mas verstil puesto que el destino final es
una nueva instancia de SQL Server 2008 R2, bien sea en la misma mquina donde reside la
antigua, o un nuevo servidor preparado especialmente para albergarla.
Las ventajas frente al modelo de actualizacin in-place son:
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 10 of 102
Se pueden migrar componentes de forma atmica 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 migracin de 32 a 64 bits
Se permite la actualizacin de la versin del Sistema Operativo (normalmente viene
asociado a un nuevo servidor en el que se instala la ltima versin 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 migracin a un servidor mas potente. Al no estar ligados a la
actualizacin 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 todava la migracin a SQL
Server 2005-2008 R2. Revisar apartado Anlisis de interconexiones
Se puede consolidar diferentes instancias de bases de datos en una nica instancia:
generalmente, el incremento de capacidad de las nuevas mquinas adquiridas,
dejan margen de maniobra suficiente para reducir el nmero de servidores a los que
dar soporte y mantenimiento
En este modelo de migracin, 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 ubicacin, 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 migracin 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 (desconexin 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 actualizacin
in-place debido a que en caso de problemas, se tiene la instancia original en
funcionamiento y se puede planificar la vuelta atrs. Adems, se permite realizar un testeo
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 11 of 102
previo a modo de preproduccin de manera independiente, lo cual facilita en mayor medida
la deteccin de potenciales problemas hardware o de migracin que puedan existir el dia de
paso a produccin. En definitiva, pese a que el esfuerzo para llevar a cabo una migracin
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 actualizacin debe realizarse siempre por
profesionales experimentados en SQL Server 2008 R2.
Adems, este tipo de migracin permite que el periodo en que estn las aplicaciones sin dar
servicio pueda ser inferior al tiempo necesario de hacer la actualizacin del motor de SQL
Server.
Enfoque del documento
Una vez hemos visto los dos planteamientos posibles, se indica al lector que debido al gran
nmero de ventajas existentes del modelo de migracin side-by-side y la necesidad de dar
un enfoque lo mas prctico posible al mismo, el documento se centra primordialmente en
una solucin de migracin side-by-side.

Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 12 of 102

3. Diseo de la solucin
El proceso de migracin side-by-side de SQL Server 2000-2005-2008 debe involucrar tanto
la parte de instalacin del entorno de servidor, como la parte de migracin de los datos y
aplicaciones que hacen uso de ellos. En los siguientes puntos se discutirn cada uno de
dichos apartados. En este artculo se va a realizar un mayor nfasis en la migracin desde
SQL Server 2000 por tratarse de la que mayor problemtica puede desatar debido al
drstico cambio de arquitectura en sus servicios.
Roles y departamentos implicados en una migracin
Lo primero que hay que tener presente es que un proceso de migracin, 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 adems
lo sern tanto de la parte de desarrollo, como de la parte de sistemas.
A continuacin se expone un pequeo ejemplo de definicin de roles recomendables en un
proyecto de migracin, as como las funciones que desarrollaran dentro del propio proyecto:
- Responsable de la migracin de SQL Server: RELLENAR NOMBRE.
En el equipo de BBDD, estarn 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 migracin. 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 unin entre todos los departamentos implicados.
- Responsable de sistemas: RELLENAR NOMBRE.
En el equipo de Sistemas, estarn 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 produccin.
- Responsable de desarrollo: RELLENAR NOMBRE.
En el equipo de Desarrollo deberan estar todos los Jefes de Seccin de Desarrollo
implicados en el proyecto, as como los desarrolladores que ellos designen, en el
mbito de los Sistemas de Informacin que son de su respectiva competencia. Se
encargaran o bien de aplicar los cambios propuestos por el responsable de la
migracin, o de validarlos (segn los requerimientos de la firma del proyecto).
- Responsable de testeo de aplicaciones: RELLENAR NOMBRE.
En el equipo de testeo deberan estar todos los Jefes de Seccin de Desarrollo
implicados en el proyecto, as como los usuarios que se considere oportuno para
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 13 of 102
probar las funcionalidades bsicas de los sistemas de informacin que sean crticos 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 grandsima parte del xito de la migracin, puesto que solo si se prueba bien el
entorno sern detectados las potenciales incompatibilidades entre versiones a
reparar.
Buenas prcticas en la configuracin de SQL Server 2008
R2
En el futuro entorno de produccin 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 produccin 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-9fde-
d599bac8184a/Perf-tun-srv.docx (pgina 30, seccin DISKPART)
Si el entorno de produccin 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 albergarn los ficheros .mdf y .ldf de las Bases de datos utilizando diskpart.

Figura 3-1: Diagrama de alineamiento en almacenamiento NTFS
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 14 of 102
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 tamao
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.
Ntese que existen sectores ocultos (63 por defecto en el ejemplo
desalineado y 64 en el ejemplo alineado)
En el ejemplo, la lnea 3 se encuentra desalineada mientras que la 4
est alineada
Teniendo esto presente, se puede ver como cada lectura ensima,
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 ubicacin proporcionada por el subsistema de disco para dicha particion,
Size el tamao de la misma, y StartingOffset la posicin de comienzo de la misma, dentro del
disco.






Figura 3-2: Consulta gwmi en cmd.exe
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 15 of 102
Para ms informacin sobre alineamiento de particiones: http://technet.microsoft.com/en-
us/library/cc766465.aspx seccin 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 pginas). De esta forma se mejorarn las lecturas en los casos
en los que SQL Server decida realizar operaciones de lectura adelantada.











Referencia: http://download.microsoft.com/download/d/9/4/d948f981-926e-40fa-
a026-5bfcf076d9b9/SAP_SQL2005_Best%20Practices.doc (pgina 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
ningn 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
botn derecho dentro de Local Policies->User Rights Assignment->Log on as a service,
aadimos el grupo.
Figura 3-3: Recomendacion de formato mediante interfaz windows
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 16 of 102











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
botn derecho dentro de Local Policies->User Rights Assignment->lock pages in
memory, aadimos el usuario que levanta el servicio de SQL Server.








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
presin de memoria.
Referencia: http://technet.microsoft.com/en-us/library/ms190730.aspx

Figura 3-4: Aplicacion de Seguridad Log on as a service
Figura 3-5: Aplicacion de Seguridad Lock pages in memory
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 17 of 102
Instant File Initialization
Para poder sacarle ventaja a las capacidades de inicializacin instantnea de ficheros, hemos
de agregar el permiso SE_MANAGE_VOLUME_NAME a la cuenta del servicio que levante
SQL Server. Los usuarios de administracin locales de Windows poseen dicho permiso
habilitado, pero dado que se presupone que un usuario con permisos mnimos del dominio
levante los servicios, hemos de agregarle dichos permisos.
Dicho permiso se concede cuando les aadimos la poltica de seguridad Perform Volume
Maintenance Task.










Referencia: http://msdn.microsoft.com/en-us/library/ms175935.aspx
Configuracin de seguridad bsica
Permisos de sysadmin
De forma predeterminada, los miembros de BUILTIN\Administrators poseen derechos de
administracin. 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 mnimos 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.
Figura 3-6: Aplicacion de Seguridad Instant file initialization
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 18 of 102
Por ello, se recomienda crear usuarios del dominio con los mnimos 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.






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 fcil como entrar en el SQL Server Configuration Manager-> SQL Server
Network Configuration-> Protocols for $(InstanceName)








Figura 3-7: Configuracin bsica
Figura 3-8: Propiedades TCP/IP de instancia
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 19 of 102

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 comn pensar en detener el servicio SQL Browser para dificultar la labor de
deteccin de instancias de SQL Server en la red. Ciertamente, este servicio si se para,
producir que no podamos realizar consultas a ningn 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
segn qu escenarios (clustering, conexin DAC con nombre de instancia, )
Lo cierto es que no es necesario detener el servicio para ofuscar la conexin 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.








Segn se puede apreciar en la imagen, al hacer click sobre Protocols for xxxx, disponemos
de la opcin de ocultar la instancia (que por defecto est a No).
Con esto no queremos dar la sensacin al lector de que el servicio se encuentra a salvo de
detectores de SQL Server, pero al menos se lo ponemos ms difcil impidiendo que el
servicio SQLBrowser devuelva informacin sobre esta instancia.
A partir del momento en que se active, ya no se listar en el buscador de instancias SQL
Server.
Figura 3-9: Ofuscacin de instancia
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 20 of 102
4. Planificacin de la migracin
Antes de realizar la planificacin de la migracin, hay que tener presente una serie de
cambios de arquitectura y mejoras de herramientas, que han derivado entre otras cosas, a
la depreciacin y descarte de algunas funcionalidades. Por tanto, previa a cualquier
planificacin se recomienda revisar encarecidamente los siguientes apartados para detectar
potenciales prdidas de funcionalidad actual que podamos sufrir.
Caractersticas de SQL Server Obsoletas y/o
discontinuadas
Existen una serie de caractersticas que sern eliminadas de la siguiente versin de SQL
Server, pero que siguen funcionando en la versin 2008 R2 mediante lo que se denomina
Compatibilidad hacia atrs: http://msdn.microsoft.com/es-es/library/cc707789.aspx
Adems, existen una serie de caractersticas que ya no se encuentran disponibles en la
nueva versin de SQL Server 2008 R2. Para ms informacin: http://msdn.microsoft.com/es-
es/library/cc707782.aspx
SQL-DMO
Se ha actualizado la librera de SQL-DMO de versiones anteriores para dar soporte a
funcionalidades propias de SQL Server 2008 R2, pero simplemente por compatibilidad hacia
atrs. Evite usar esta caracterstica puesto que ser eliminada en futuras versiones de SQL
Server.
Para ms informacin: 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 versin 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 ms informacin sobre la utilidad sqlcmd: http://msdn.microsoft.com/es-
es/library/ms162773.aspx

Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 21 of 102
Bcp
En la versin de SQL Server 2000, la utilidad de carga masiva de datos por lnea de comando
solo requera los permisos INSERT y SELECT en la tabla destino de la carga de datos.
Bcp <tabla_objetivo> IN <fichero> -c -T


Desde la versin SQL Server 2005 se necesita tambin 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 ejecucin de la herramienta.
Bcp <tabla_objetivo> IN <fichero> -c T h CHECK CONSTRAINTS,
FIRE TRIGGERS


Al contrario que ocurria con la versin anterior de bcp, no existe una prdida de
rendimiento considerable en la carga.
Para ms informacin: 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 opcin REBUILDDATABASES de la
utilidad de Setup.exe de SQL Server 2008 R2.
Para ms informacin: 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, todava es posible
utilizarlo en SQL Server 2008 R2. Se recomienda adems, que sean revisados aquellos scripts
que mandan ficheros adjuntos mediante SQL Mail, puesto que la versin de SQL Server 2008
R2 no soporta esta sfuncionalidad si no se est utilizando autentificacin 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 ms informacin: 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
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 22 of 102
Esta herramienta que apareci con SQL Server 2005 ha sido descontinuada en SQL Server
2008 R2. La razn no es otra que la aparicin del framework de administracin declarativa
(DMF), donde podremos configurar la faceta Surface Area Configurator realizando las
mismas acciones que realizbamos anteriormente con la herramienta de SQL Server 2005.
Para ms informacin: 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 administracin declarativa
(DMF)
English query Obsoleto
Planes de mantenimiento (a traves de
trabajos de SQL Server Agent)
Planes de mantenimiento (a travs de
paquetes SSIS)
Index Tunning Wizard (ITW) Database Tunning Advisor (DTA)
SQL-DMO SQL-DMO (solo por compatibilidad hacia
atrs)
BCP BCP (mejorado)


Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 23 of 102
Migracin del motor relacional
El siguiente apartado condensa las recomendaciones especficas para la migracin del motor
relacional.
Fases de una migracin side-by-side
A la hora de acometer una migracin de SQL Server, el siguiente conjunto de tareas debe
llevarse siempre a cabo:
Ejecucin del SQL Upgrade Advisor
Interpretacin y explicacin del resultado del SQL Upgrade Advisor
Instalar SQL Server 2008 R2 siguiendo buenas prcticas
Plantear migracin de paquetes DTS a SSIS o ejecucin en modo compatibilidad.
Plantear migracin de Cubos SQL 2000 a 2008 R2 recrendolos desde 0,
actualizndolos automticamente con el asistente o simplemente manteniendo la
instancia de SQL 2000 pero atacando a SQL Server 2008 R2
Creacin de un guin de migracin para el dia de paso a produccin y testearlo en
pre-produccin.
Independientemente del modelo de migracin a implementar (in-place side-by-side),
se recomienda siempre realizar los pasos 3 al 7 del proceso de migracin del motor
relacional.
Minimizar el proceso de actualizacin
Para tratar de minimizar el proceso de migracin hacia SQL Server 2008 R2, se propone al
lector las siguientes prcticas previas al dia de la misma:
Validar requerimientos de instalacin de actualizaciones in-place.
Disponer del service pack y actualizacin necesaria para poder realizar la migracin
hacia SQL Server 2008 R2, as como la correcta validacin de los requerimientos de
actualizacin propuestos por la herramienta SQL Server Upgrade Advisor.
Pese a que esto es necesario en cualquier tipo de actualizacin, es especialmente
importante en actualizaciones in-place, para evitar retrasos el dia D.
Preinstalar componentes .NET y de Windows necesarios.
Se recomienda instalar la versin .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 instalacin de SQL Server 2008 R2 (que ya
contiene estos instalables).
La instalacin de Windows Installer 4.5 requerir un reinicio del Sistema Operativo.
Preinstalar herramientas de administracin.
En el proceso de instalacin, si se seleccionan, se van a instalar las herramientas de
administracin de sql server y desarrollo de inteligencia de negocio. Estas
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 24 of 102
herramientas son tanto SQL Server Management studio, como el propio Visual
Studio 2008 R2 Business Intelligence. Si ya se encuentran instaladas y actualizadas
como mnimo al SP1, podremos evitarnos el tiempo de instalacin el mismo dia de
actualizacin.
Precrear usuarios del dominio.
Se recomienda disponer de usuarios del dominio especficos para cada servicio de
SQL Server. Es recomendable tener dichos usuarios y grupos precreados antes de la
instalacin, 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 migracin. Puesto que es
un proceso costoso, se recomienda que sea realizado el dia anterior al de la
migracin, para evitar hacerlo el mismo dia.
Formacin para administradores de base de datos.
No menos importante es la formacin de los DBA que se van a encargar de la
nueva/s instancia de SQL Server 2008 R2. Antes de cualquier migracin debe existir
un proceso de formacin/adaptacin a SQL Server 2008 R2, para que los DBA sean
capaces tanto de administrar, como de desplegar caractersticas 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 planificacin de
la migracin, mejorar el tiempo de despliegue en s mismo.
Formacin 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 anlisis de informacin, 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 lnea estn las nuevas construcciones del lenguaje
TSQL como la sentencia MERGE, particioamiento de informacin, gestin de
informacin espacial, tipos de datos nuevos como Filestream, o integracin de .NET
CLR en el gestor de bases de datos.
Planificacin de la migracin
La planificacin de la migracin del motor relacional se compone de tres grandes apartados:
Anlisis de consultas dinmicas generadas por las aplicaciones que explotan las
bases de datos.
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 25 of 102
Hemos de realizar una traza de consultas que llegan al motor, para determinar si
existe cdigo en las aplicaciones cliente depreciado. Para su anlisis nos
apoyaremos en SSUA (Sql Server Upgrade Advisor). Ver apartado anlisis de
consultas dinmicas.
Anlisis de objetos estticos de las bases de datos y servicios a migrar
Utilizando SSUA, obtendremos los reportes de migracin que deberemos analizar
para tratar de superar incompatibilidades. Ver apartado Interpretacin y
explicacin del resultado del SQL Upgrade Advisor
Modificacin 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 migracin. Esto nos evitar tener que lidiar con los problemas sobre la BBDD
migrada a 2008 R2, tenindola que configurar en compatibilidad 90 u 80 por dichos
requerimientos.
Anlisis de interconexin
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 tambin se migran nmbres de
mquina, direccionamiento IP,y obviamente todo debe funcionar, por lo que si
perdemos la pista a una aplicacin que conecta contra la instancia o viceversa,
incurrimos en errores potencialmente crticos
Anlisis 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 interconexines
En este punto se van a tratar aspectos relacionados con la deteccin de interdependencias
de instancias y bases de datos de una migracin.
La importancia de una buena deteccin de interconexin 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 solucin de migracin.
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 26 of 102









Nota: La imagen anterior proviene de un escenario real con
nombres renombrados por seguridad. Generado automticamente
con software de anlisis de migraciones propietario de SolidQ
De este anlisis, obtendremos informacin 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 aplicacin tambin puede realizar lo propio y trabajar al vuelo con estas opciones.
Figura 4-1: Diagrama de dependencias entre instancias
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 27 of 102
Pero al igual que buscamos dependencias entre distintos equipos, tambin puede darse el
caso de ser necesario obtener dependencias de bases de datos:

NOTA: Las imgenes anteriores provienen de escenarios reales de
dependencias entre bases de datos, generadas con software
propietario de SolidQ para anlisis de migraciones.





Figura 4-2: Diagramas de dependencia entre bases de datos
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 28 of 102
Por qu querramos calcular dependencias entre bases de datos?
Si nuestra migracin no va a ser de toda la instancia completa, sino de algunas bases de
datos, que sern 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 informacin sobre ayuda para crear los scripts ir a la siguiente seccin del apndice.
Instalacin y ejecucin de SQL Server Upgrade Advisor
La herramienta se encuentra tanto en el propio CD de instalacin de SQL Server 2008 R2,
como disponible para descarga en la siguiente ubicacin:
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 (opcin search for product updates).







Figura 4-3: Instalacin de SSUA
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 29 of 102

Al contrario que la herramienta de actualizacin del motor propiamente dicha, SQL Server
Upgrade Advisor (SSUA) est pensado para instalarse en un equipo diferente al de
produccin, 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 anlisis.
A continuacin se expone el anlisis realizado sobre los resultados proporcionados por la
herramienta SQL Upgrade Advisor sobre un supuesto entorno de produccin. 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 migracin
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: Segn el proyecto, se analizarn los servicios pertinentes
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 30 of 102
3. Ahora la herramienta nos ir solicitando las credenciales necesarias por los servicios
para poder realizar el anlisis









4. En el caso del servicio del motor relacional, la herramienta nos solicitar
informacin sobre qu bases de datos deseamos analizar:











5. Una vez seleccionadas dichas bases de datos, podremos continuar pulsando en
siguiente y dejando que la herramienta comience el anlisis

Una vez finalizado el anlisis por parte de la herramienta, el siguiente paso ser visualizar los
informes generados para su posterior anlisis de resolucin de conflictos.
Figura 4-5: Conexin a instancia
Figura 4-6: Seleccin de bases de datos y ficheros a analizar
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 31 of 102
Visualizar e interpretar informes generados por SSUA
Una vez la herramienta ha finalizado el anlisis, disponemos de una opcin para visualizar
sus resultados de forma cmoda. Para ello, dentro de la propia herramienta SSUA, podemos
hacer click en Launch Upgrade Advisor Report Viewer










La siguiente imagen ilustra las incidencias detectadas por el asesor de actualizacin de SQL
Server lanzado contra una instancia de SQL Server 2000 de produccin de ejemplo:










Figura 4-7: Abrir reporte de resultados SSUA
Figura 4-8: Ejemplo de resultados de anlisis SSUA
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 32 of 102

Los XML que genera dependen de la seleccin de anlisis realizada de forma que:
AS.xml es el anlisis de Analysis Services
DE.xml es el anlisis del motor de base de datos (Database Engine)
DTS.xml es el anlisis de los DTS
Los errores que se van a tratar en este punto, son los errores que mayor frecuencia de
aparicin tienen en los proyectos de migracin de SQL Server 2000 a 2008 R2; entender
tanto su aparicin como su solucin es de vital importancia para el proyecto global de
migracin.
Motor de base de datos
A continuacin se detalla el anlisis de cada una de las puntualizaciones proporcionadas por
SSUA:
Mensaje de advertencia sobre imposibilidad de deteccin de potenciales
problemas

La herramienta nos informa que existen potenciales problemas de actualizacin del motor
de BBDD que no pueden ser detectados de forma automtica con certeza y nos invita a
revisarlos manualmente:
Cambios de collation
Hemos de cerciorarnos que al migrar, el collation del motor destino sea idntico. Es
importante tenerlo en cuenta durante el proceso de instalacin 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 ms memoria de la
mxima configurada, esta no ser asignada y devolver un error de tipo insufficient
system memory. Se nos avisa de ello para que seamos conscientes.
Figura 4-9: Mensaje genrico
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 33 of 102
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 instruccin 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 migracin.
Tipos de datos char(0),varchar(0) y nvarchar(0) no soportados
En SQL 2000, se pueden definir columnas calculadas que almacenen cadenas vacas,
almacenndolas como cadenas de longitud 0. Desde SQL Server 2005 su
comportamiento vara, y por defecto son creadas con un tamao mnimo de 1.
Si se detecta esta situacin, hay que volver a recrear la columna calculada con un
tamao mnimo de 1.
UNION
Cuando un operador UNION est dentro de una instruccin INSERT, desde la
versin de SQL Server 2005 se convierte el tipo de datos de cada operacin UNION
por separado, segn las reglas de la conversin de tipo de datos. En SQL Server
2000, se hacia la conversin directamente al tipo de datos de la tabla destino. Esto
puede incurrir en problemas ya que operaciones que en SQL Server 2000 no
producan error, si pueden hacerlo en 2005 y 2008 R2.
Para validar este apartado, lo mejor es que se pruebe la aplicacin una vez se haya
migrado la BBDD en un entorno de preproduccin 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 implcita en datetime y smalldatetime no son deterministas. Sus resultados
dependen de LANGUAGE y DATEFORMAT de la sesin del servidor, por lo que
CONVERT(datetime,'30 listopad 1996',113) puede valer diferente en
funcin de LANGUAGE.
La conversin implcita de datos de caracteres no Unicode entre intercalaciones ya
no son deterministas. Adems, la creacin 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.
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 34 of 102
Para solventar esta situacin, desde la versin de SQL Server 2005, se debe convertir
explcitamente 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 migracin, si se utilizan conversiones
implcitas 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 daos en las vistas indizadas.
FOR XML
Desde SQL Server 2005, un carcter 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 informacin 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 mltiples de funciones RAND y NEWID
En SQL Server 2005 y 2008 R2, la invocacin mltiple 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
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 35 of 102
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
aplicacin de SQL Server deje de funcionar despus de realizar la actualizacin 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 debern
coincidir exactamente. Si no coinciden, se producir un error cuando la integracin
CLR de SQL Server use el ensamblado. Para obtener ms informacin, vea
Bibliotecas de .NET Framework admitidas (http://msdn.microsoft.com/es-
es/library/ms403279.aspx).
Despus 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 instruccin ALTER
ASSEMBLY. Para obtener ms informacin, vea el artculo 949080 de Knowledge
Base (http://support.microsoft.com/kb/949080).
Nuevo error de inicio de sesin incorrecto
En SQL Server 2005, se devuelve el error 18452 cuando se usa un inicio de sesin de
SQL para conectar con un servidor que est configurado para usar nicamente la
autenticacin de Windows. En SQL Server 2008 R2, se devuelve el error 18456 en su
lugar.
Modificaciones en XML de planes de presentacin
Se ha agregado un nuevo atributo IndexKind al tipo complejo ObjectType en el
esquema XML del plan de presentacin. En las aplicaciones que validen de forma
estricta los planes de SQL Server con el esquema de SQL Server 2005 se producir
un error.
Opcin recompute Rank a nivel de servidor
Esta opcin no se admite en SQL Server 2008 R2. Modifique las aplicaciones que
actualmente utilizan esta caracterstica lo antes posible.
Expresiones XPath y XQuery
En SQL Server 2005, se permiten los pasos de una expresin de XQuery o XPath que
comienzan con un signo de dos puntos (':'). Por ejemplo, la instruccin siguiente
contiene una prueba del nombre (CTR02) dentro de la expresin 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 estndares de
XML. Se devuelve el error 9341. Como solucin 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 anlisis esttico, la
herramienta nos informa de que tambin deberemos realizar un anlisis que valide
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 36 of 102
situaciones imposibles de evaluar automticamente. Se trata en su mayora de situaciones
no habituales, pero que conviene conocer puesto que en nuestro entorno podemos estar
utilizndolas.
NOTA: Para informacin ms detallada, consultar
http://msdn.microsoft.com/es-es/library/ms143179.aspx
Mensaje de advertencia sobre Bsqueda de Texto (fulltext search)
Su mensaje es suficientemente descriptivo y se aplica a SQL Server 2008 R2.
Versin de MDAC 2.6
Esta advertencia solo es necesario validarla en escenarios de migracin in-place, donde
hay que actualizar la versin de MDAC para poder conectar contra SQL Server 2008 R2. En el
caso de encontrarnos en una migracin Side-by-side (migracin a otro equipo nuevo),
donde ya est instalado SQL Server 2008 R2, podremos dar por validado este apartado.
NOTA: Dependiendo de la actualizacin ser MDAC 2.8 o superior
Planes de mantenimiento en SQL Server 2008 R2

Figura 4-10: Mensaje para fulltext search
Figura 4-11: Actualizar version MDAC
Figura 4-12: Planes de mantenimiento desfasados
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 37 of 102
En este apartado se nos informa de que a pesar de que se podrn migrar los planes de
mantenimiento creados en la instancia 2000, en SQL Server 2008 R2 se implementan de
forma diferente (mediante paquetes SSIS)

Clusulas 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 validacin nos indica que exiten 3 objetos que no funcionarn al poner la BBDD en
compatibilidad 100. En estos casos la nica solucin es recrearlos para evitar este uso
incompatible de ORDER BY, actualizndolo a su sintaxis aceptada.
Clusulas OUTER JOIN depreciadas (*= y =*)
El asistente de actualizacin ha detectado que existen 66 objetos con sintaxis no ANSI SQL
para determinar operaciones OUTER JOIN. La nica solucin 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).
Polticas 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 situacin en la instancia de SQL Server 2000 se nos avisa de que es algo que tendremos
que modificar en nuestras aplicaciones.
Figura 4-13: ORDER BY deprecado
Figura 4-14: OUTER JOIN deprecado
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 38 of 102
Data Transformation Services
La siguiente imagen ilustra las incidencias detectadas por el asesor de actualizacin de SQL
Server, lanzado contra una instancia de SQL Server 2000 durante el anlisis de los paquetes
DTS:

Instalar DTS en msdb en caso de actualizacin in-place

En el caso de una actualizacin in place, es necesario que los paquetes DTS estn
almacenados en la base de datos msdb. Si no es el caso, este mensaje podremos obviarlo
Componentes de edicin para DTS en SQL Server 2008 R2

Figura 4-15: Mensaje generic sobre full-text search
Figura 4-17: Mensaje indicando que DTS no est soportado
Figura 4-16: Resultados anlisis DTS
Figura 4-18: No se podran editar paquetes DTS en versin 2008 R2
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 39 of 102
Si estuviramos en el caso de una actualizacin in place, en el momento que
desinstalramos SQL Server 2000 no podramos editar ni crear paquetes DTS hasta instalar
las herramientas para tal fin sobre SQL Server 2008 R2, cosa que como veremos mas
adelante no estn soportadas desde SQL Server 2008.
Las herramientas en cuestin se pueden encontrar en la siguiente ubicacin:
http://www.microsoft.com/downloads/details.aspx?FamilyId=C6C3E9EF-BA29-4A43-8D69-
A2BED18FE73C&displaylang=en en la seccin Microsoft SQL Server 2005 Backward
Compatibility Components
Tareas complejas en DTS no migradas completamente


Debido a que existe lgica compleja en los DTS, el asistente de migracin no podr migrar
al 100% alguna de las partes del mismo, dejndolas como paquete de ejecucin DTS de
forma interna. Se nos avisa de esta circunstancia, para que lo tengamos en cuenta y en los
paquetes de SSIS, realicemos la modificacin cuando lo estimemos oportuno, pero ya sobre
un paquetes SSIS.
En este ejemplo concreto, la parte que no puede convertir automticamente es la
encargada de obtener informacin de otro motor de base de datos mediante un conector
ODBC no estndar 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 caracterstica depreciada: DTS

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
Figura 4-20: Mensaje generic indicando que DTS est deprecado
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 40 of 102
Esta advertencia nos indica bsicamente que los paquetes DTS son una caracterstica
depreciada que posee compatibilidad en SQL Server 2005 pero que ser eliminada en SQL
Server 2008 R2 en pro de SSIS.
Pese a ello, es posible todava seguir lanzando DTS desde Sql Server 2008 R2 con sus
herramientas de compatibilidad. Esto ltimo no es aconsejable puesto que algunas de las
mismas no han sido portadas a Sql Server 2008 R2 y se usan las que en su dia fueron
diseadas para compatibilidad con Sql Server 2005.
Solo la ltima versin ser migrada

Se nos advierte que el proceso de migracin de DTS est ligado a la ltima versin del
mismo, no migrndose a SSIS el resto de versiones inferiores. El control de versiones se
debe llevar a cabo mediante Visual Studio 2008 R2, que es la herramienta de edicin de
paquetes SSIS.
Anlisis de consultas dinmicas
La herramienta SSUA realiza un anlisis esttico de servicios y objetos, pero obviamente no
es capaz de prevenirnos acerca de la tipologa de consultas que nuestras aplicaciones estn
lanzando contra el servidor porque las desconoce a priori. Para que sea capaz de analizar la
tipologa de consultas que nuestras aplicaciones estn utilizando tendremos que ayudarlo
proporcionndole una traza lo ms representativa posible de las consultas que estn
lanzndose. Gracias a ella, seremos capaces mediante SSUA de analizar la tipologa de
consultas que est procesando el servidor.
Para analizar las consultas dinmicas que las aplicaciones lanzan contra el servidor hemos de
crear una traza que capture sentencias ad-hoc, as como sentencias que ejecuten
procedimientos almacenados en las BBDD a migrar. Para ello SQL Server 2008 R2 dispone de
la herramienta SQL Profiler.




Figura 4-21: Se realiza la migracin automtica de paquetes DTS en su ltima versin de msdb
Figura 4-22: Abrir SQL Profiler desde SSMS
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 41 of 102
Los siguientes pasos, ilustran el proceso de creacin de una traza personalizada, que capture
por un lado la informacin necesaria para el anlisis, y por otro evite tener que dejar la
herramienta de profiler en marcha durante el proceso:
1. Crearemos una nueva traza





2. Nos conectaremos a la instancia que alberga las BBDD a migrar (la instancia 2000 o
2005)










3. Haremos click en la seccin de eventos de definicin de la traza






4. Seleccionaremos nicamente RPC:Completed y SQL:BatchCompleted,
asegurndonos que como mnimo la columna TextData est marcada
Figura 4-23: Crear nueva traza
Figura 4-24: Configuracin de instancia a analizar
Figura 4-25: Eventos de traza
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 42 of 102








5. Lanzaremos la traza






6. Inmediatamente despus de ejecutarla, la pararemos pulsando sobre el botn de
stop. La razn de esto es que lo queremos ser la definicin de la traza en T-SQL
para que no sea necesario tener SQL Profiler abierto.





7. Una vez hemos parado la traza, exportaremos su definicin
Figura 4-26: Captura de datos por evento
Figura 4-27: El boton Run lanza la traza
Figura 4-28: El boton stop para la ejecucin de traza
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 43 of 102







NOTA: La definicin debe coincidir con el motor a analizar (2000
2005)
8. Abrimos el fichero .sql exportado y modificaremos estos dos apartados

















Donde @maxfilesize representa el tamao en megas mximo que queremos que ocupe la
traza (cuando la traza ocupe ese tamao automticamente se parar y finalizar; e
InsertFileNameHere representa la ubicacin (local al servidor que estamos analizando)
donde se ir escribiendo la traza.
Figura 4-29: Se puede exporter definicin para recreacin rpida posterior
Figura 4-30: Existen dos sencillas partes a modificar en el script para creacin
de traza de profiler.
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 44 of 102
9. Ejecucin del script
En este momento, ejecutamos el script contra la BBDD que deseamos analizar para
que comience la captura. A partir de este momento, lo deseable es que todas las
aplicaciones que hagan uso de la BBDD a migrar lo hagan, para que cualquier
consulta que se lance contra la misma, sea capturada.

Lo ideal es que la captura de datos mediante la traza sea realizado contra produccin y que
se est capturando un periodo razonable segn nuestro proceso de negocio. Si en 3 dias el
lector estima que es suficiente para que las aplicaciones hayan podido ejecutar todas las
consultas contra la BBDD posible, es suficiente. Por poner un ejemplo real, en la mayora de
proyectos de migracin en las que hemos trabajado, se ha capturado informacin durante 7
dias consecutivos de media (ntese que se habla de rango temporal, no de tamao de trazas
capturado).
Para conocer el mtodo de cmo parar y finalizar las trazas, consultar apndice la seccin
Finalizacin de trazas de profiler.
Migracin de los paquetes DTS a SSIS.
Antes de enfocar una migracin de paquetes DTS de SQL Server 2000, hay que preguntarse
qu estrategia vamos a seguir. De nuevo, SSUA es una excelente herramienta para la
planificacin, puesto que previo a nuestra migracin podemos saber de antemano qu
ocurrir con nuestros paquetes.
El cambio de DTS a SSIS no es solo un salto generacional, sino un rediseo completo y desde
0 del planteamiento anterior de la herramienta de carga y transformacin de datos. Es por
ello que el paquete SSIS resultado puede no migrarse fcilmente mediante el asistente y
probablemente contenga porciones de DTS internas que deberemos modificar a posteriori si
lo creemos conveniente.
Qu ocurre durante la migracin?
Todo el proceso de migracin lo realiza el asistente de migracin de DTS que existe en SQL
Server 2008 R2 y lo realiza sin alterar la estructura de los paquetes DTS originales a migrar
puesto que nicamente los abre momentneamente para leer su estructura.
El proceso de anlisis se puede realizar tanto a partir de ficheros DTS que se encuentren en
una ruta en disco, como a partir de los DTS que se encuentren alojados en msdb. Algo que
debemos tener en cuenta es que el servidor SQL Server 2000 debe tener instalado SP3 como
mnimo instalado puesto que en dicho SP se modific la estructura interna y la forma en que
almacenaban los DTS.
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 45 of 102
Si la migracin se realizara in-place, justo despus de realizar la migracin, todava
podramos seguir accediendo a los DTS de SQL Server 2000, pero no podramos hacerlo para
edicin, puesto que las cadenas de conexin se actualizan a SQL Server 2008 R2 y Enterprise
Manager de 2000 no puede conectar contra SQL 2008 R2 (ocurrir lo mismo si migramos
paquetes SSIS 2005 con las cadenas de conexin). Para ello tendramos que utilizar SSMS de
2008 R2.
Hay que tener en cuenta que dependiendo de la complejidad de los DTS, puede que el
asistente no obtenga la mejor aproximacin de solucin en trminos de rendimiento
utilizando SSIS, pero realmente realiza una buena aproximacin, que si no nos dice lo
contrario el proceso mediante error o advertencia, es completamente equivalente a la
implementacin DTS. En cualquier caso siempre se recomienda abrir los paquetes SSIS
migrados para no solo actualizar cadenas de conexin, sino repasar si los flujos de control
han sido correctamente interpretados puesto que en alguna ocasin me he encontrado que
pese a no dar advertencia alguna SSUA, se haban quedado sin conectar algunos de ellos.
Guin de migracin
Migracin del motor de base de datos
Todos los scripts mencionados en este apartado pueden ser fcilmente generados mediante
la aplicacin SQL Server Management Studio. Para ms informacin consultar apndice,
seccin de generacin de scripts de mantenimiento.
Se asume que llegados a este punto, se han resuelto todas las advertencias que han sido
sealadas por SSUA. De lo contrario podremos encontrar problemas a la hora de afrontar
cualquiera de los siguientes pasos.
El proceso a seguir el da de la migracin de una supuesta base de datos sql server 2000 a
produccin es el siguiente (en orden):
1. Realizar Backup de las BBDD a migrar
2. Realizar Restore de dichas BBDD en SQL Server 2008 R2
En este punto, las BBDD se encuentran en modo de compatibilidad 80 (SQL Server
2000), por lo que no podemos obtener todo el potencial de SQL Server 2008 R2
(acceso a algunas funciones del sistema, vistas, nuevas clusulas,), aunque s que
podemos trabajar con dichas BBDD.
3. Realizar un checkeo fsico y lgico de las BBDD restauradas

Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 46 of 102
use database_name
go
DBCC CHECKDB;
GO
4. Cambiar el modo de compatibilidad a 100 (SQL Server 2008 R2)
Para ello, vamos a lanzar el siguiente script, que actualizar las BBDD a modo de
compatibilidad 100, que nos permitir obtener todo el potencial y nueva sintaxis de
SQL Server 2008 R2
-- Actualizacin del nivel de compatibilidad a SQL Server 2008 R2
USE [master]
GO
ALTER DATABASE database_name
SET COMPATIBILITY_LEVEL = 100
GO
NOTA: Se puede volver a modo de compatibilidad 80 o 90 en
cualquier momento si se detecta algn problema de compatibilidad
con T-SQL que previamente no haya sido detectado.
5. DBCC UPDATEUSAGE para actualizar el conteo de filas
6. Reconstruir ndices
Lanzar scripts de reconstruccin de ndices.
7. Actualizar estadsticas
Lanzar scripts de actualizacin de estadsticas.
NOTA: Hay que actualizar las estadsticas de las tablas y vistas
indexadas.
8. Reduccin de BBDD
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 47 of 102









Lanzar script de reduccin de BBDD en el caso de que no sea habitual realizarlo.
Es til seleccionar Retain freed space in database files en el caso de que
diariamente se sufran procesos de incorporacin de informacin que hagan crecer
las BBDDs; el disponer del espacio de BBDD reservado al sistema operativo nos
ahorrar esperas para la obtencin de ese recurso cuando sea requerido.
9. Migracin de usuarios
En la mayora de situaciones, lo mejor es recrear los usuarios existentes en SQL
Server 2000, ms an cuando se han detectado inicios de sesin que no poseen
password. Considere que la migracin de inicios de sesin con autenticacin SQL
Server debe realizarse con SIDs en concordancia entre la instancia de SQL Server y la
base de datos a la que accede el usuario; para ello debera usar la opcin CREATE
LOGIN WITH SID = XXX; adems, como medida de precaucin, recomendamos
utilizar el procedimiento almacenado de sistema sp_change_users_login (revise la
documentacin del producto) para asegurarse que no quedan usuarios de bases de
datos hurfanos.
10. Modificar las cadenas de conexin de las aplicaciones para que apunten a la nueva
instancia de SQL Server 2005
Patrones de codificacin TSQL adaptados para SQL Server 2008 R2
El proceso de migracin hacia SQL Server 2008 incluye por supuesto, una serie de tareas que
estn ligadas al proceso de desarrollo de aplicaciones que explotan la informacin.
Es necesario por tanto, conocer una serie de incompatibilidades existentes en la nueva
versin T-SQL de SQL Server 2008 R2 con cdigo proveniente de T-SQL 2000.
Figura 4-31: Interfaz de configuracin de tarea Shrink database
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 48 of 102
El siguiente documento pretende dar los aspectos bsicos a tener en cuenta a la hora de
desarrollar TSQL compatible para SQL Server 2000 y 2008 R2, basado en los patrones
encontrados mas frecuentemente en nuestros clientes.
Clusulas 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.
En casos existentes, la nica solucin es recrearlos para evitar este uso incompatible de
ORDER BY, actualizndolo a su sintaxis aceptada.
Esto es incompatible en SQL Server 2008:
Select columna as alias_columna
From dbo.mitabla alias_tabla
Order by alias_tabla.alias_columna
Esto es compatible
Select columna as alias_columna
From dbo.mitabla alias_tabla
Order by alias_columna
-- Tambien sern compatibles
Order by mitabla.columna
Order by 1
Order by columna
Clusulas OUTER JOIN depreciadas (*= y =*)
Las clusulas *= y =* no forman parte del ANSI SQL para determinar operaciones OUTER
JOIN. La nica solucin 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).
Esto es incompatible en SQL Server 2008
select *
from dbo.EmployeeTerritories et,
dbo.Employees e
where et.employeeid *= e.employeeid
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 49 of 102
Esto es compatible
select *
from dbo.EmployeeTerritories et
left join dbo.Employees e on et.employeeid = e.employeeid
Tipos de datos char(0),varchar(0) y nvarchar(0) no soportados
En SQL 2000, se pueden definir columnas calculadas que almacenen cadenas vacas,
almacenndolas como cadenas de longitud 0. Desde SQL Server 2005 su comportamiento
vara, y por defecto son creadas con un tamao mnimo de 1.
En nuevos desarrollos hay que prevenirlo puesto que no funcionar en SQL Server 2008 R2.
UNION
Cuando un operador UNION est dentro de una instruccin INSERT, desde la versin de SQL
Server 2005 se convierte el tipo de datos de cada operacin UNION por separado, segn las
reglas de la conversin de tipo de datos. En SQL Server 2000, se hacia la conversin
directamente al tipo de datos de la tabla destino. Esto puede incurrir en problemas ya que
operaciones que en SQL Server 2000 no producan error, si pueden hacerlo en 2005 y 2008.
Para validar este apartado, lo mejor es que se pruebe la aplicacin una vez se haya migrado
la BBDD en un entorno de preproduccin y su modo de compatibilidad est asignado ya a
100 (SQL Server 2008 R2)
En el siguiente ejemplo se muestra un error de conversin de tipos de datos. En niveles de
compatibilidad 80 y anteriores, la constante entera 1 de la primera instruccin SELECT se
convierte directamente en el tipo de dato de la columna de destino ReturnedValue, que es
varchar(255). En el nivel de compatibilidad 90, el tipo de datos del conjunto de resultados
UNION se determina antes de la conversin en la columna de destino. Para la segunda
columna de la primera instruccin SELECT, se determina que el tipo de datos sea int. Para la
segunda columna de la segunda instruccin SELECT, se determina que el tipo de datos sea
varchar(4). Como el tipo de datos int tiene una prioridad mayor que el tipo de datos
varchar(4), cuando se determinan los tipos de datos del conjunto de resultados UNION, el
valor test se convierte en el tipo de datos int y produce un error de conversin de tipos de
datos.
CREATE TABLE #test(ReturnedName varchar(255) NOT NULL,
ReturnedValue varchar(255) NULL)

INSERT INTO #test
SELECT 'col1', 1
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 50 of 102
UNION ALL
SELECT 'test', 'test'
DROP TABLE #test
Cuando se lanza contra SQL Server 2000, el cdigo anterior funciona perfectamente, pero al
lanzarse contra SQL Server 2008 R2, se devuelve el siguiente cdigo de error:
Msg 245, Level 16, State 1, Line 4
Conversion failed when converting the varchar value 'test' to data type int.
Constantes y variables grandes
Hasta la aparicin de SQL Server 2005 no era posible utilizar tipos de datos varbinary(max),
varchar(max) o nvarchar(max). No se trata de ningn error, pero a partir de la aparicin de
SQL Server 2005, se recomienda la utilizacin para dichos objetos, de los tipos de datos.
Se recomiendan por tanto Varchar(max), varbinary(max) en lugar de declaraciones de
varchar(8000), text o image.
FOR XML
Desde SQL Server 2005, un carcter de 3-bytes Unicode genera 6 caracteres en XML,
mientras que en SQL Server 2000, se generaban 8 caracteres.
Hay que comprobar por tanto, que las consultas que utilizan FOR XML, siguen funcionando a
la hora de ser recuperada su informacin por las aplicaciones.
FOR XML AUTO
Las consultas que ejecutan FOR XML AUTO, devuelven informacin sobre aliases de tabla,
mientras que en versiones anteriores a SQL Server 2005, se devolva informacin relativa a
la tabla base.
La siguiente consulta
CREATE TABLE Test(id int);
INSERT INTO Test VALUES(1);
INSERT INTO Test VALUES(2);

SELECT * FROM
(SELECT a.id AS a, b.id AS b
FROM Test a JOIN Test b ON a.id=b.id)

Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 51 of 102
AS DerivedTest
FOR XML AUTO;
Devuelve la siguiente construccin XML en SQL Server 2000
<a a=" 1" ><b b=" 1" /></a><a a=" 2" ><b b=" 2" /></a>
Y la siguiente construccin en XML sobre SQL Server 2008 R2
<DerivedTest a=" 1" b=" 1" /><DerivedTest a=" 2" b=" 2" />
Hay que cerciorarse que las consultas que hacen uso de FOR XML AUTO se comportan de
igual manera por las aplicaciones. Si no fuera el caso, habra que adaptar la aplicacin o la
consulta para que fuera as.
Se suministrar una lista con los objetos y consultas que utilizan FOR XML AUTO.
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), por lo
que si se consulta informacin 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 mltiples de funciones RAND y NEWID
A partir de SQL Server 2005, la invocacin mltiple 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
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 52 of 102
incurren en tablas remotas. Recrear la vista sin WITH CHECK OPTION para evitar este error,
en el caso de que exista alguna vista en desarrollo actualmente con dicha declaracin.
Pese a que no se ha encontrado ningun caso en la junta de Extremadura, se encuentra
frecuentemente en escenarios de migracin, por lo que se ha creido conveniente
comentarlo.
Vistas indexadas
Desde SQL Serve 2005, las referencias a literales de cadena que se convierten de manera
implcita en datetime y smalldatetime no son deterministas. Sus resultados dependen de
LANGUAGE y DATEFORMAT de la sesin del servidor, por lo que CONVERT(datetime,'30
listopad 1996',113) puede valer diferente en funcin de LANGUAGE.
La conversin implcita de datos de caracteres no Unicode entre intercalaciones ya no son
deterministas. Adems, la creacin 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.
Para solventar esta situacin, desde la versin de SQL Server 2005, se debe convertir
explcitamente 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 migracin, si se utilizan conversiones implcitas 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 daos en las vistas indizadas.
Solucin de problemas de actualizacin
El momento de detectar problemas de actualizacin, hemos visto que es el de la
planificacin. Como ya hemos introducido anteriormente, el mejor escenario es aquel en el
que podemos realizar una actualizacin en un entorno de pruebas, ya que ah ser donde
validemos si todo se puede realizar correctamente, y en el caso de que no, poder ver los
potenciales errores para poder proporcionar una solucin.
Las siguiente gua, pretende dar una pauta de inicio por donde comenzar a investigar el
origen de un problema ocurrido:
En la ruta Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG, existe un
fichero denominado summary.txt donde podremos encontrar un resumen de la
actualizacin de SQL Server 2008 R2, en el caso de que se haya realizado in-place.
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 53 of 102
Cada ejecucin de setup.exe, crear una carpeta de log, con un formato de nombre
similar a YYYYMMDD_hhmmss, de forma que dentro de el, aparecer informacin
relativa al proceso de instalacin
Se recomienda buscar por las cadenas de texto Watson bucket, Error: y
Exception has been
Para ms informacin: How to: View SQL Server 2008 R2 Setup Log Files
Migracin de paquetes DTS a SSIS
Si lo que estamos planificando es una migracin Side by Side la forma ms fcil de realizar
la migracin de nuestros paquetes DTS es desde el propio SSMS 2008 R2 del servidor
destino. Para continuar con el proceso de migracin, previamente hay que cumplir los
requisitos de compatibilidad con DTS de SQL Server 2000. Para ello, se recomienda la lectura
de la seccin Requisitos para compatibilidad con SQL Server 2000. Una vez cubiertos los
requisitos en el equipo desde el que realicemos la migracin, procederemos con las
siguientes instrucciones.
Migracin automtica
Entrar en Management->Legacy->Data Transformation Services
Nos ponemos sobre cualquiera de ellos y boton derecho->migrate







Ahora seguiremos el asistente de migracin de paquetes DTS a SSIS






Figura 4-32: Migracin de DTSs
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 54 of 102


Seleccionaremos el origen de datos donde se encuentran los DTS que queremos
migrar. En nuestro caso vamos a migrar directamente los del servidor por lo que
aplicamos sus credenciales de conexin. Se permite que el origen sea una carpeta
donde se encuentran los ficheros .dts












Figura 4-33: Pantalla principal de asistente de migracin
Figura 4-34: Instancia con datos origen de DTSs
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 55 of 102
Seleccionaremos el destino. Lo mejor en nuestro caso es que el destino sea el
sistema de ficheros, porque la siguiente accin a realizar una vez migrados los
paquetes ser editarlos para como mnimo, cambiar sus orgenes de datos












Seleccionaremos los paquetes DTS que deseamos migrar con el asistente












Por ltimo, se nos solicita la ruta a un fichero de log que se crear durante el
proceso y en el que se reportarn las acciones pertinentes y su estado final
Figura 4-35: Tipo de destino y ubicacin
Figura 4-36: Resumen
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 56 of 102









Por ltimo solo nos queda esperar a que finalice la migracin









Edicin de paquetes SSIS migrados
Una vez migrado, debemos editarlo para verificar si la migracin ha sido exitosa y para
cambiar los orgenes de datos ya que ahora deberemos apuntar a SQL Server 2008 R2 y no a
SQL Server 2000.
Figura 4-37: Ubicacin de log de procesamiento
Figura 4-38: Informacin de progres
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 57 of 102
Una vez abierto el paquete de SSIS (botn derecho->editar), se nos abrir el entorno de
desarrollo de paquetes SSIS (Visual Studio 2008 R2) y entraremos automticamente en su
zona de edicin.






Pulsaremos sobre el botn Edit Package









Una vez se nos abra el editor de compatibilidad de paquetes DTS 2000,
procederemos a modificar sus orgenes de datos.
Lo primero ser modificar el origen (llamado en este caso Sybase) para que utilice el
ODBC que hemos creado apuntando al servidor (ver apndice seccin Configuracin
driver ODBC Sybase)

Figura 4-39: Componente DTS embebido a editar
Figura 4-40: Pantalla de apertura de editor de compatibilidad DTS
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 58 of 102

























Figura 4-41: Ejemplo de tarea interna como DTS incrustada en SSIS (algo a evitar)
Figura 4-42: Seleccin de driver
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 59 of 102















Lo siguiente ser modificar el destino para que apunte a SQL Server 2008 R2












Figura 4-44: Propiedades de la conexin (pulsar sobre la flecha) con botn derecho
Figura 4-43: Especificacin de conexion
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 60 of 102












Por ltimo, actualizaremos el flujo de control (que automticamente nos recrear
las transformaciones sin error) y validaremos que es correcto.









Una vez salvado el paquete DTS, lo siguiente a realizar ser actualizar las conexiones
del propio paquete SSIS para que apunten a sus orgenes de datos de forma correcta
(antes apuntaban a SQL 2000 y ahora deben hacerlo a un SQL 2008 R2)
Figura 4-45: Propiedades de conexin
Figura 4-46: Propiedades de conexion
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 61 of 102











NOTA: Se recomienda utilizar la seguridad integrada
Importacin de paquetes a SSIS
Una vez tengamos los paquetes SSIS apuntando correctamente a los servidores y revisada su
funcionalidad comprobando que se hace lo que se espera, el siguiente paso es subir a
produccin el paquete. Para ello:
Conectamos a Integration Services y botn derecho->Import Package






Seleccionamos el paquete que queramos subir al servidor
Figura 4-47: Conexin
Figura 4-48: Importar paquete
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 62 of 102










Especificamos que queremos que la seguridad de partes sensibles de la configuracin del
SSIS recaiga sobre el propio motor. Esto es as porque en el caso de haber utilizado
conexiones usuario-password por ejemplo, no queremos que aparezca en texto claro en la
definicin XML del paquete SSIS.











Figura 4-49: Importar paquete
Figura 4-50: Proteccin de datos sensibles en paquete
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 63 of 102
Si el paquete SSIS estaba cifrado con password (ver apndice), nos lo va a solicitar
antes de proceder con la importacin, para asegurarse que disponemos de los
permisos necesarios











Trabajar en modo compatibilidad 2000
Ya no es posible trabajar con DTS desde SQL Server 2008R2. Esta situacin hace imposible
que podamos seguir utilizando los DTS de SQL Server 2000 con SQL Server 2008 R2 durante
todo el tiempo necesario mientras planificamos la migracin real a SSIS bien sea rediseo o
migracin.
Pese a que se indica al lector que existe un mtodo para forzar la compatibilidad con la
opcin que se permitia en SQL Server 2008, no se recomienda y por tanto se asume que el
lector tiene en cuenta este hecho. En caso de encontrarse funcional la opcin propuesta,
esta debe tomarse como un paso temporal de cara a la migracin a SSIS.
Ejecucin de paquetes SSIS
En el siguiente punto se adjunta una gua de como realizar la ejecucin de paquetes SSIS
siguiendo varias vas posibles con las herramientas de SQL Server 2008 R2
Manualmente
Para lanzar manualmente un paquete SSIS:
Figura 4-51: Especificacin de contrasea para almacenar datos sensibles en el paquete SSIS
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 64 of 102
Conectar al servidor de SSIS (por ejemplo vulcano2):






NOTA: No es posible utilizar las herramientas de SQL Server Express
para conectar a Integration Services, hay que utilizar la versin
Standard, Developer o Enterprise
Ir a Stored Packages->MSDB->DTS (la carpeta DTS ha sido creada manualmente por
nosotros para el ejemplo)







Con botn derecho en el paquete SSIS a ejecutar, si lanzar Run Package:





Figura 4-52: Integration Services en SSMS
Figura 4-53: Paquetes SSIS almacenados en BBDD
Figura 4-54: Lanzar paquete
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 65 of 102
Este es el formulario de ejecucin donde poder dar valor a variables. Para terminar
ejecutando, click en execute.








Por cdigo Visual Basic.NET
Existen dos opciones para realizar ejecuciones de paquetes SSIS mediante cdigo, la primera
consiste en utilizar las clases de la librera Microsoft.SqlServer.ManagedDTS.dll y la otra
utilizar la aplicacin enominada dtexec que viene con las herramientas de inteligencia de
negocio de SQL Server.
En ambos casos, hay que instalar como mnimo las herramientas cliente de inteligencia de
negocio como vemos en la imagen:




NOTA: La imagen corresponde a instalacin de SQL Server express
con herramientas avanzadas
Versin express con herramientas cliente avanzadas:
http://www.microsoft.com/downloads/details.aspx?familyid=B5D1B8C3-FDA5-4508-B0D0-
1311D670E336&displaylang=es
Figura 4-55: Interfaz de configuracin del lanzamiento del paquete
Figura 4-56: Instalacin minima recomendada
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 66 of 102
Ejecucin mediante cdigo Visual Basic
Una vez tenemos las libreras instaladas en el equipo desde donde queramos lanzar los
paquetes SSIS, podemos utilizar cdigo como el siguiente para efectuar ejecuciones de los
mismos:
A continuacin vemos como sera el cdigo en Visual Basic.NET para ejecutar un Paquete
SSIS.
NOTA: Si la aplicacin no es .NET (por ejemplo, si es VB6) hay que
programar un wrapper de acceso a la libreria ManagedDTS
mencionada anteriormente (el cdigo de ms abajo es VB.NET). Ms
adelante, se da opcin de utilizar dtexec, si no se quiere
implementar dicho wrapper
Los paquetes deben estar desplegados en el servicio de Integration Services y adems segn
se puede ver en el ejemplo de cdigo, haberse desplegado sobre la carpeta DTS (no es
requisito, pero para el ejemplo se ha realizado de esta forma, para ir alineados con las
imgenes anteriores tambin).
En este caso vemos el ejemplo de ejecucin de un paquete cualquiera.
Imports DTS = Microsoft.SqlServer.Dts.Runtime

Module Module1

Sub Main()
Dim instance As DTS.Application
Dim packagePath As String
Dim serverName As String
Dim serverUserName As String
Dim serverPassword As String
Dim events As DTS.IDTSEvents
Dim returnValue As DTS.Package
Dim executionResult As DTS.DTSExecResult

instance = New DTS.Application()

Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 67 of 102
packagePath = " \DTS\ TuPaqueteDTSX "
serverName = " tuservidor"
serverUserName = " solidq" 'Nombre de usuario
serverPassword = " solidq" 'Password de usuario
events = Nothing
returnValue = instance.LoadFromSqlServer(packagePath,
serverName, serverUserName, serverPassword, Nothing)

Para asignar propiedades a variables
pkg.Variables(" VarName" ).Value = " Value"

executionResult = returnValue.Execute()

If executionResult = DTS.DTSExecResult.Success Then
Console.WriteLine(" Paquete ejecutado correctamente" )
Else
If executionResult = DTS.DTSExecResult.Failure Then
Console.WriteLine(" Se produjo un error al ejecutar el
paquete" )
End If
End If

Console.ReadKey()

End Sub

End Module
NOTA: El usuario que ejecute debe tener permisos en la Base de
datos MSDB, puesto que es necesario listar las carpetas acceder a la
carpeta DTS y cargar el paquete.
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 68 of 102
Ejecucin mediante lnea de commandos dtexec
Este mtodo es el ms sencillo y consiste en lanzar el paquete utilizando la aplicacin
dtexec, destinada especialment para ello.
Se parte de la base nuevamente en que se ha instalado la herramienta en el cliente y por
tanto se encuentra instalada y accessible (por defecto se encuentra en C:\Program
Files\Microsoft SQL Server\100\DTS\Binn\)
Se trataria por tanto de realizar una llamada desde visual basic a la aplicacin dtexec con los
parmetros necesarios (ver imagen adjunta como ejemplo sencillo):
Por ejemplo, para lanzar el paquete llamado paquetePrueba que se encuentra en el
servidor yo-pc\sql2008r2, utilizando un usuario de sql usuariosql y password
passwordusuario, asignando valor a la variable llamada miVariable, podramos crear una
llamada como esta:
Dtexec /ser yo-pc\sql2008r2 /U usuariosql /P passwordusuario /sq
paquetePrueba /set
\package.variable[miVariable].Value;AquiPonesElValorQueQuieresAs
ignar
NOTA: Para informacin sobre los parmetros de entrada podemos
utiliza dtexec /? O dirctamente dirigirnos a la web de consulta de
dtexec aqui: http://technet.microsoft.com/en-
us/library/ms162810(SQL.100).aspx
Recordemos no obstante, que para ejecutar paquetes SSIS mediante lnea de commandos,
al igual que si se desea realizer manualmente utilizando el administrador de SQL Server, es
necesario disponer localmente del servicio de SQL Server Integration Services en la mquina
que lanza la operacin dtexec ya que no todos los componentes de SSIS permiten su
ejecucin sin disponer del servicio instalado localmente.
Ejecucin remota de paquetes SSIS
La ejecucin de paquetes SSIS requiere que sea instalado el servicio SQL Server Integration
Services en las mquinas que van a lanzarlos. Esto quiere decir que si se desea lanzar por un
Figura 4-57: Ejemplo de ejecucin manual mediante dtexec.exe en cmd.exe
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 69 of 102
equipo diferente al de produccin (donde se encuentra instalado SSIS) hay que tener
instalado dicho servicio.
En este apartado veremos cmo conseguir lanzar remotamente dichos paquetes SSIS y que
no sea necesaria la instalacin de SSIS en los clientes.Para conseguir esto, debemos lanzar
los paquetes de forma remota y para ello podemos optar por dos vias:
Ejecutar los paquetes remotamente utilizando herramientas como psexec
Ejecutar los paquetes remotamente mediante PowerShell
Ejecucin mediante psexec
Se trata de la forma ms facil de todas de conseguir la ejecucin remota.
Con los permisos apropiados en el usuario que lanza el ejecutable remoto, basta con copiar
el ejecutable psexec.exe en alguna ubicacin conocida accesible por la variable de entorno
$PATH para lanzarlo de la forma siguiente:
Psexec \\servername ejecutable_con_parmetros
Es decir, que basta aadir psexec \\servername al comienzo de la lnea que tenemos
preparada para ejecutar por consola dtexec y lo tendremos listo.
Permisos necesarios para ejecutar con psexec
El usuario que ejecuta finalmente la operacin psexec debe ser un usuario dado de alta
como administrador local del equipo remoto como requisito imprescindible.
Ejecucin mediante PowerShell
Se trata de utilizar la nueva arquitectura Shell PowerShell de Microsoft, para hacer ejecucin
remota del ejecutable dtexec.
La ventaja frente a psexec es que es ms modular y potente encuanto a configuracin de
seguridad que psexec, pero requiere adaptabilidad por parte de los clientes que finalmente
van a lanzar PowerShell. No es tan transparente como psexec y requiere de entre otros, la
instalacin del propio Shell PowerShell instalado tanto en servidor, como en los clientes.
En este caso, los pasos para configurar PowerShell 2.0 serian:
1. Instalar Windows Management Framework para la versin de Windows que
queramos trabajar (De serie con Win7 y 2008R2)
http://support.microsoft.com/kb/968930
2. Entrar en el servidor SSIS y abrir una consola powershell y ejecutar
enable-psremoting
3. Ir al equipo que lanzar el comando remoto PowerShell sobre el servidor y activar la
ejecucin de scripts
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 70 of 102
Set-executionpolicy scope CurrentUser executionPolicy
Unrestricted -force
4. Escribir cdigo para lanzar los paquetes remotamente desde PS
$server = new-pssession ServidorSSIS
enter-pssession $server
dtexec.exe /ser servidor /sq paquetePrueba
Migracin de Anlysis Services
Pese a que en la mayora de los proyectos de migracin desde SQL Server 2000 se suele
recomendar el rediseo de la solucin utilizando las caractersticas de AS 2008 R2, es posible
realizar una migracin automtica hacia AS2008 R2. El resultado final es similar al que se
obtiene con la migracin desde DTS hacia SSISes decir, que aporta una solucin que
aunque acaba haciendo lo mismo que el original, no es lo mas ptima posible, entendiendo
por esto, que no se explotan las nuevas caractersticas.
Adicionalmente, debido a la profunda re-arquitectura conceptual del producto, hay que
considerar que el cubo resultante no es una fiel rplica operativa del cubo de 2000, y que
esto puede afectar a los informes existentes.
Por ejemplo, en caso de tener multiples jerarquas en una dimensin, el asistente generar
dos dimensiones fsicas diferentes. As mismo, ante la existencia de un cubo virtual, al ser
migrado quedar convertido en un cubo fsico , dado que en SQL 2008 R2 no existen los
cubos virtuales.
Los siguientes pasos, ilustran el proceso necesario a seguir, en el caso de desear migrar un
cubo de AS2000 hacia AS2008 R2:
1. Iniciar el asistente desde Management Studio

Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 71 of 102
















2. Especificar las instancias de origen y destino de AS.















Figura 4-58: Migracion AS
Figura 4-59: Seleccin de instancia AS 2000 a migrar
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 72 of 102
3. Seleccin de las bases de datos a migrar.


















4. Fase de anlisis y validacin de la base de datos seleccionada.



















Figura 4-60: Cubo a migrar
Figura 4-61: Formulario de validacin de migracin
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 73 of 102
5. Migracin.



















6. Fin de migracin y visualizacin de objetos migrados a AS 2005, es necesario
procesar el cubo para poder visualizar /navegar.









7. Procesado de los cubos. Cada cubo debe ser procesado individualmente. Esto
debido a que la migracin no realiza una migracin de datos sino una migracin de
Figura 4-62: Proceso de migracin
Figura 4-63: Resumen del proceso de migracin de AS
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 74 of 102
esquema. Es importante planificar dentro del tiempo estimado de migracin, el
tiempo necesario para el reprocesamiento de los objetos de SSAS







8. Generando una solucin de Visual Studio para poder redisear el resultado de la
migracin.




9. Ejecutar la herramienta Business Intelligence Developement Studio (BIDS) como se
indica en la figura y elegir crear un proyecto nuevo













10. Elegir tipo de proyecto importar bbdd de Analysis Services 2005 en la plantilla de
proyectos y aceptar.
Figura 4-64: Procesamiento manual de cubo migrado
Figura 4-65: Creacin de proyecto BIDS
Figura 4-66: Nuevo proyecto en BIDS
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 75 of 102

11. Elegir instancia de SQL Server 2008 R2 y la base de datos desde la que se quiere
crear el proyecto.













12. Fase de finalizacin de importado.














Figura 4-67: Nuevo proyecto de importacin de cubo analysis service
Figura 4-68: Seleccin de su BBDD
Figura 4-69: Resumen y proceso de importacin
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 76 of 102
Con estos sencillos pasos, hemos obtenido un cubo en AS2008 R2 funcionando gracias al
asistente. Evidentemente, el proceso se puede complicar y para ver en qu medida,
tendremos que analizar mediante SSUA los potenciales problemas con los que nos podemos
encontrar, y por otro lado, la viabilidad de una migracin frente a un rediseo completo
utilizando ya la nueva funcionalidad de AS2008 R2.
Acciones Post migracin
Generalmente, tras un proceso de migracin no debera finalizar el proyecto. Tras la
migracin existosa de cualquier instancia siempre se recomienda realizar ajustes a la nueva
instancia y optimizar dentro de los nuevos parmetros de SQL Server 2008 R2 las BBDD para
exprimir al mximo el nuevo motor relacional.
Para ello, aqu se aportan algunas ideas que producen rendimientos extra sin demasiados
esfuerzos:
1. Aplicar compresin
Siempre es buena prctica aplicar compresin de fila para datos, histricos o tablas
que reciben pocas actualizaciones. Se recomienda adems, revisar si merece la pena
en algn caso la compresin de pgina.
2. Aplicar particionado
Si se han detectado tablas que se beneficiaran de particionamiento debido al
elevado nmero de filas o la profundidad de los rboles de los ndices que poseen,
es un buen momento para considerarlo.
3. Aplicar Resource Governor
Por regla general, en todo un empresarial suelen existir ciertas aplicaciones de
usuario que pueden ejecutar espontneamente consultas ad-hoc que desemboquen
en un comportamiento no predecible del servidor, causando problemas de
rendimiento e incluso interrumpiendo otros procesos de negocio. Resource
Governor puede agregar predictibilidad a este tipo de escenarios.
Tambin resultar til en escenarios en que se solapan operaciones de
mantenimiento de sistema con operativa diaira del sistema y se desea ajusta el uso
de recursos de los diferentes componentes.
4. Aplicar polticas de administracin declarativa
Asegurar cierto tipo de opciones de configuracin del servidor para evitar o notificar
posibles modificaciones por parte de usuarios DBA o aplicaciones no autorizados
(nombres, esquemas,)
5. Ejecutar servicios como SolidQ HealthCheck o Database Tunning Advisor para
deteccin y optimizacin de problemas de rendimiento
6. Formacin
Es importante que los desarrolladores y administradores de BBDD dominen la
tecnologa a utilizar y los marcos de desarrollo creados. Para ello es necesario incluir
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 77 of 102
formacin en el proceso. Dicha formacin debe incluir tanto a los desarrolladores
como a los administradores de BBDD.
Pese a que se recomienda impartirla previamente al proceso de migracin,
generalmente se aprovecha incluso ms, una segunda tanda de formacin unas
semanas tras la migracin exitosa, donde los desarrolladores y dba ya han tenido el
placer de gestionar el nuevo entorno.

Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 78 of 102
5. Apndice
En esta seccin, se da informacin sobre aspectos, que aunque tienen que ver con el
proceso de migracin, su tratamiento no se ha querido que fuese en los puntos donde se
utiliza para mejorar la lectura del documento.
Actualizaciones de seguridad
Se recomienda actualizar a la ltima versin tanto los motores de origen como destino de
SQL Server. Esto incluye tambin, cualquier actualizacin de seguridad de Sistema
Operativo, con la finalidad de minimizar al mnimo cualquier potencial riesgo de seguridad
que haya sido corregido hasta la fecha en la que comienza la migracin.
Servidores vinculados desde entornos SQL Server x64
hacia SQL Server 2000 x32
Es imposible realizar un servidor vinculado ni operaciones openrowset desde un entorno
SQL Server 64-bits hacia un SQL Server 2000 que no tenga SP4 correctamente aplicado. Si se
da la circunstancia de tener que realizarlo a un nuevo servidor, se recomienda revisar el
siguiente enlace http://support.microsoft.com/?scid=kb;en-us;906954&x=16&y=11 donde
se dan los detalles de qu pasos seguir en el caso de requerirlo.
Cadenas de conexin con el nombre de aplicacin
Dado que van a convivir mltiples aplicaciones en el mismo servidor, para que la labor de
deteccin de origen de consultas al realizar un profiling sea ms sencilla, se recomienda
simplemente aadir lo siguiente a la cadena de conexin (al final, por ejemplo): ;Application
Name=Miaplicacion
De esta forma, en la conexin viaja el nombre de la aplicacin que queramos y de esta
forma es ms fcil distinguir conexiones y procedencias de las mismas.
Para ms informacin www.connectionstrings.com
Finalizacin de trazas de Sql Profiler
Una vez declarada una traza de SQL Server Profiler desde cdigo T-SQL, el proceso de
finalizacin de la misma (para poder utilizar su informacin) consta de dos pasos:
1. Parar traza
2. Finalizar traza
Con el siguiente script podemos ver el estado de cualquier traza en ejecucin
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 79 of 102
select traceid,value,
case when value = 1 then 'running'
when value = 0 then 'stopped'
else null
end status
from fn_trace_getinfo(null)
where property in (2,5)
Finalizar la traza
Como hemos comentado, para finalizar una traza, hemos de pararla y posteriormente
cerrarla y finalizarla. Esto se hace mediante el siguiente script:
-- Paramos la traza X
--
sp_trace_setstatus @traceid = x , @status = 0
go
-- Finalizamos la traza X
--
sp_trace_setstatus @traceid = x , @status = 2
go
NOTA: El valor de x es el valor reportado por traceid del script
de ver el estado actual
Generacin de Scripts de mantenimiento
La herramienta SQL Server Management Studio posee entre sus caractersticas ms tiles
para los DBA, que prcticamente cualquier accin que realicemos con ella, es susceptible de
ser convertida en script. Para el caso de los scripts que deberemos lanzar una vez se haya
migrado la BBDD de SQL Server 2000 a 2008 R2, se puede hacer simplemente haciendo
doble click sobre cada uno de los componentes de mantenimiento que queramos. Para ello,
podemos crear nuestra tarea de mantenimiento post-migracin, que incluir Recreacin de
ndices, actualizacin de estadsticas y shrink de base de datos y luego crear un script para
que sea ms rpida su ejecucin el da de puesta en produccin (evitndonos
crear/modificar la tarea de mantenimiento)

Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 80 of 102
Para crear una tarea de mantenimiento:









Una vez dentro de ella, podemos arrastrar componentes de la barra de herramientas a los
sub-planes.
Cuando hemos definido nuestra tarea de mantenimiento, generar los scripts (algo opcional)
puede realizarse simplemente mediante botn derecho->editar (ver siguientes dos
imgenes)








Figura 5-1: Nuevo plan de mantenimiento
Figura 5-2: Edicin de tarea de plan de mantenimiento
Figura 5-3: Edicin
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 81 of 102
Solucin al error allow remote connections through
DCOM
Cuando tratamos de conectar remotamente a SSIS eventualmente podemos recibir el
siguiente mensaje de error, cuando no hemos realizado una correcta configuracin de
seguridad:








En este caso lo que se nos est diciendo es que aunque hemos llegado al servicio, se nos ha
denegado el acceso. Adems de esto nos est dando una pista que es debido a que no
hemos configurado correctamente el acceso remoto.
La solucin es bien sencilla y pasa por aadir en la configuracin DCOM del servicio
MsDtsServer100 o MsDtsServer (segn si estamos en SQL Server 2008 o 2005) al usuario
que queremos que tenga acceso remoto y listo.
Para ello abrimos Component services, buscamos dentro de DCOM las propiedades del
servicio MsDtsServer100 y aadimos en su pestaa de seguridad al usuario en cuestin:





Buscamos en DCOM la configuracin de MsDtsServer o MsDtsServer100 (segn si es Sql
Server 2005 o 2008).

Figura 5-4: Error DCOM genrico
Figura 5-5: Propiedades DCOM a nivel de sistema operativo
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 82 of 102




En las propiedades, se aaden los permisos que necesitemos para el usuario que queramos
que conecte remoto:









Para ms informacin, recomiendo leer el siguiente artculo: http://msdn.microsoft.com/en-
us/library/aa337083.aspx
Crear una solucin Visual Studio para gestionar todos los paquetes
SSIS
Esta opcin es til para gestionar con control de versiones los paquete SSIS. Visual Studio
permite trabajar con control de versiones y por lo tanto, se pueden gestionar paquetes SSIS
mediante Team Foundation Server Visual SourceSafe.
Para ello, lo que debemos hacer es abrir el entorno Visual Studio 2008 R2 (viene
incorporado en las herramientas cliente de SQL Server 2008 R2).
Crearemos un nuevo proyecto de Integration Services
Figura 5-6: Propiedades de paquetes SSIS
Figura 5-7: Edicin de permisos en componente DCOM
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 83 of 102

NOTA: Dependiendo de la edicin de Visual Studio instalada puede
diferir algo la pantalla
Eliminaremos el paquete que nos crea por defecto y lo sustituiremos por todos
nuestros paquetes .dtsx que hemos migrado














Figura 5-8: Nuevo proyecto BIDS par Integration Services
Figura 5-9: Eliminar paquete por defecto en proyecto SSIS de BIDS
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 84 of 102
Una vez eliminado el paquete, ahora aadiremos todos los paquetes que queramos





















Figura 5-10: Aadir Nuevo paquete .dtsx
Figura 5-11: Ubicacin del nuevo paquete SSIS
Figura 5-12: Vista de paquetes en BIDS
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 85 of 102
Una vez tengamos esto, el entorno los deja depurar entre otras cosas









NOTA: la depuracin de tareas DTS en SSIS no funciona en entornos
x64
Migracin Analysis Services en dos pasos
El cambio de Analysis Services entre SQL Server 2000 y 2008 R2 es tan grande, que en la
mayora de ocasiones, se suele proponer rehacer el cubo de nuevo utilizando las
caractersticas de Analysis Services 2008 R2. En casos como este, evidentemetne no se va a
paralizar todo el proyecto porque primero tengamos que redisear la solucin de Analysis
Services (o partes de la misma) para explotar al mximo la nueva tecnologa. En esos casos
se suele optar por algo intermedio como es migrar el motor de SQL Server, pero dejar que
siga funcionando Analysis Services 2000 temporalmente, mientras se finaliza el rediseo de
la solucin.
En estos casos por tanto, existir una primera etapa en la que tendremos todos nuestros
servicios de SQL Server migrados a excepcin de Analysis Services, y que posteriormente
ser migrado (recreado) en Analysis Services 2008 R2.
Para que AS2000 pueda tener acceso a SQL Server 2008 R2, debemos instalar el soporte
nativo de SQL Server 2008 R2 en el servidor donde se encuentre funcionando la instancia de
AS2000. De esta forma, cambiando los orgenes de datos de los cubos hacia el DW en SQL
Server 2008 R2, el cubo de AS2000 tendr como origen un DW en SQL Server 2008 R2.

Figura 5-13: Botn de depuracin
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 86 of 102
Idioma predeterminado de las conexiones
En el caso de que las aplicaciones cliente realicen consultas que involucren cadenas de texto
que deban ser convertidas a datetime, es necesario cerciorarse de que el idioma de las
conexiones que se abran contra el servidor es el adecuado. En el caso de que el formato que
est utilizndose en Sql Server 2000 es ,por ejemplo, Spanish, hay que cerciorarse que en
SQL Server 2008 R2 tambien lo sea. Para ello:
Nos cercioraremos que por defecto el idioma de los nuevos logins que se aadan
ser castellano.


















Figura 5-14: Propiedades a nivel de instancia
Figura 5-15: Seleccin de idioma por defecto en instancia SQL Server 2008 R2
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 87 of 102
Una vez modificado el valor (no requiere reinicio de la instancia pero s que se vuelva a
reconectar el cliente), todos los logins nuevos se crearn con lenguaje Spanish y soportarn
la especificacin de cast string-datetime que las aplicaciones estn utilizando.
Por ltimo, cerciorarse que no exista ningn login creado previamente a la
modificacin anterior con idioma diferente a Spanish.












Gracias a esto, consultas como la siguiente
SELECT top 10 *
FROM tabla
where fecha = '30/11/2006'

No arrojarn el siguiente error:


Msg 242, Level 16, State 3, Line 1
The conversion of a char data type to a datetime data type resulted in an out-of-range
datetime value.
Seguridad en paquetes SSIS
Los paquetes SSIS son internamente XMLs. Puesto que en su definicin podemos configurar
usuarios y contraseas, es importante tener en cuenta el tipo de seguridad que se aplica a
los mismos para que nadie pueda llegar a acceder a dicha informacin sin permiso.

Figura 5-16: Propiedades de login
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 88 of 102
Por defecto, la seguridad de SSIS est ligada al usuario que crea el paquete, de forma que
dicho usuario sin saberlo cifra la informacin contenida en l y le posibilita modificar y
ejecutar el paquete sin introducir sus credenciales. El problema viene cuando ms de un
desarrollador va a realizar modificaciones sobre un paquete. En ese caso necesitaremos
realizar una modificacin de seguridad para que la informacin sensible sea cifrada
mediante password en lugar de mediante un UserKey. Para ello basta con seguir los
siguientes pasos:





































Figura 5-17: Ventana de propiedades de proyecto BIDS
Figura 5-18: Seleccin de nivel de proteccin de datos sensibles en paquete SSIS
Figura 5-19: Password de paquete SSIS
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 89 of 102







A partir de ese momento, cuando un desarrollador quiera modificar o subir a produccin el
paquete, se le solicitar dicho password.
Integrar la nueva instancia en el parque de aplicaciones
El cambio del motor de base de datos va a afectar a ms cosas que solo a las bases de datos
que maneja. Deberemos por tanto adecuar el entorno donde se ha instalado, para que
pueda acceder sin problemas al nuevo motor de SQL Server 2008 R2:
Drivers
Puesto que las aplicaciones van a apuntar sobre un nuevo motor de SQL Sever, es
necesario actualizar los drivers de conexin de las mismas instalando los drivers de
conexin MDAC 2.8 y Sql Native Client 2008 R2.
Servidores vinculados
En el caso de actualizaciones Side-by-side, hay que crear los servidores vinculados
desde y hacia la nueva instancia de SQL Server 2008 R2. Es por tanto necesario
previamente definir aquellos componentes que puedan verse afectados por la
actualizacin.
Procesos de carga
Deberemos actualizar los procesos de carga (DTSs) bien sea mediante la migracin a
SSIS o mediante la utilizacin de los componentes heredados para compatibilidad
hacia atrs. En cualquiera de las dos situaciones, deberemos actualizar las cadenas
de conexin
64 bits
En migraciones en las que adems de la propia migracin a SQL Server 2008 R2,
exista una migracin de 32 a 64 bits, hay que poner especial atencin a los drivers
de conexin sobre todo en el caso de requerir conexin a motores de base de datos
como Oracle, AS400,desde la nueva instancia. Podria darse el caso de tener que
instalar componentes de 64 bits para poder acceder a las mismas desde el nuevo
SQL Server 2008 R2.
Recursos:
MDAC 2.8: http://www.microsoft.com/downloadS/details.aspx?FamilyID=6c050fe3-
c795-4b7d-b037-185d0506396c&displaylang=en
Figura 5-20: Confirmacin de password
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 90 of 102
SQL Native Client 2005: http://msdn.microsoft.com/en-us/data/aa937733.aspx
Cadenas de conexin: www.connectionstrings.com
Instalar compatibilidad con SQL Server 2000
Para poder realizar la migracin de los paquetes DTS, es necesario instalar la compatibilidad
con el runtime de Servicios de Transformacin de datos, as como la compatibilidad de
modo diseo de los servicios de transformacin de datos.
Actualmente se ofrece para SQL Server 2008 R2 nicamente el runtime para DTSs de SQL
Server 2000, pero existe la posibilidad de instalarse el diseador de DTS 2000 sobre SQL
Server 2008 R2 haciendo unas cuantas modificaciones que enseguida detallaremos.
NOTA: Esta seccin no est soportada oficialmente y por tanto se
comenta como una posible via de investigacin de ltima necesidad.
Se encuentra actualmente fuera de soporte.
Runtime DTS
Para disponer del runtime, debemos instalarnos los Componentes de compatibilidad con
versiones anteriores de Microsoft SQL Server 2005:
http://go.microsoft.com/fwlink/?LinkId=123703&clcid=0xc0a
Como vemos en la imagen, para nuestro caso nicamente instalaremos el runtime DTS








Figura 5-21: Instalacin de components de compatibilidad con SQL Server 2005 opcionales
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 91 of 102

Una vez los tengamos instalados, podremos ejecutar paquetes DTS desde el servidor, pero
no podremos editarlos. Para editarlos necesitaremos el componente de edicin DTS.
Diseador DTS
Como hemos comentado varias veces a lo largo del documento, este procedimiento debe
realizarse bajo cuenta y riesgo del lector, ya que no est soportado en SQL Server 2008 R2
oficialmente.
Para instalar la compatibilidad en tiempo de diseo para paquetes de Servicios de
transformacin de datos, hay que descargarse el siguiente instalable:
http://download.microsoft.com/download/2/3/4/2346ff78-ba75-4ba6-83e9-
5c9d66a0a89a/SQLServer2005_DTS.msi
De forma predeterminada, los archivos binarios para SQL Server 2000 estn en la
carpeta %ProgramFiles%\Microsoft SQL Server\80\Tools\Binn y los archivos binarios para
SQL Server 2008 R2 estn en la carpeta %ProgramFiles%\Microsoft SQL
Server\100\Tools\Binn.
Estas ubicaciones predeterminadas podran hacer la ruta de acceso de los archivos binarios
para SQL Server 2000 aparezca en la variable de entorno PATH antes que la ruta de acceso
de los archivos binarios para SQL Server 2008 R2. Si ocurre as, puede aparecer un mensaje
de error al intentar utilizar el Diseador DTS. Para resolver este error, copie los archivos que
requiere el diseador a una nueva ubicacin, tal y como se describe en los procedimientos
siguientes.
Para asegurarse de que el Diseador DTS puede utilizarse en SQL Server Management
Studio
1. Copie los archivos, SEMSFC.DLL, SQLGUI.DLL y SQLSVC.DLL, de la
carpeta %ProgramFiles%\Microsoft SQL Server\80\Tools\Binn a la
carpeta %ProgramFiles%\Microsoft SQL
Server\100\Tools\Binn\VSShell\Common7\IDE.
2. Copie los archivos, SEMSFC.RLL, SQLGUI.RLL y SQLSVC.RLL, de la
carpeta %ProgramFiles%\Microsoft SQL Server\80\Tools\Binn\Resources a la
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 92 of 102
carpeta %ProgramFiles%\Microsoft SQL
Server\100\Tools\Binn\VSShell\Common7\IDE\Resources.
Para asegurarse de que el Diseador DTS se puede utilizar en Business Intelligence
Development Studio
1. Copie los archivos, SEMSFC.DLL, SQLGUI.DLL y SQLSVC.DLL, de la
carpeta %ProgramFiles%\Microsoft SQL Server\80\Tools\Binn a la
carpeta %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE.
2. Copie los archivos, SEMSFC.RLL, SQLGUI.RLL y SQLSVC.RLL, de la
carpeta %ProgramFiles%\Microsoft SQL Server\80\Tools\Binn\Resources a la
carpeta %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\Resources.
Por qu actualizar el nivel de compatibilidad?
El nivel de compatibilidad afecta slo al comportamiento de la base de datos especificada y
no a todo el servidor. El nivel de compatibilidad slo proporciona compatibilidad parcial con
versiones anteriores de SQL Server.
La razn de actualizar el nivel de compatibilidad es para poder soportar mejoras en la
sintaxis T-SQL que hagan uso de nuevas caractersticas soportadas por la ltima versin de
SQL Server 2008 R2. Adems, nuevos operadores existentes en SQL Server 2008 R2 respecto
a SQL Server 2000 pueden producir planes de ejecucin ms eficientes.
Por ejemplo, en la nueva versin de SQL Server 2008 R2 existen operaciones MERGE, CUBE,
ROLLUP, que no pueden utilizarse si la base de datos no est en compabilidad 100 (SQL
Server 2008 R2).
Hay que tener cuidado a la hora de cambiar el nivel de compatibilidad, puesto que si se hace
en mitad de la compilacin de un plan de ejecucin, el nuevo plan podra resultar
inconsistente y los datos devueltos podran ser invlidos. No es necesario reiniciar la
instancia para realizar el cambio.
Para ms informacin: http://msdn.microsoft.com/es-es/library/bb510680.aspx
Analisis de interconexiones
En este apartado se proporciona un script de partida de referencia a la hora de buscar
interconexiones entre instancias SQL Server:
Por ejemplo, el siguiente cdigo servira para detectar qu aplicaciones estn intentando
realizar consultas distribuidas ad-hoc:
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 93 of 102
select
DatabaseID,
ISNULL(databaseName, '???') AS databaseName,

ISNULL(LoginName ,'') as LoginName,
ISNULL(NTUserName,'') as NTUserName,
ISNULL(NTDomainName,'') as NTDomainName,
ISNULL(HostName,'') as HostName,
ISNULL(ApplicationName,'') as ApplicationName,
TextData,
StartTime,
EndTime,
case
when TextData like '%openrowset%' then 'openrowset'
when TextData like '%opendatasource%' then 'opendatasource'
when TextData like '%sp_addlinkedserver%' then 'add_linkedse
rver'
else 'null'
end as pattern_match
FROM fn_trace_gettable ( '$ trace_file$' , $ numberfiles$)
WHERE textdata IS NOT NULL AND EventClass = 12
and( TextData like '%openrowset%'
or TextData like '%opendatasource%'
or TextData like '%sp_addlinkedserver%' )
NOTA: Quedaria realizer el mismo proceso para todas las
definiciones de objetos de cada BBDD implicada en la migracin
Anlisis de aplicaciones que utilizan SQL Server
La idea en este punto es conseguir analizar los ficheros de traza de SQL Server profiler, con
el fin de detectar qu aplicaciones, usuarios, Logins, equipos,estn conectando contra la
instancia actualmente, para tenerlos presentes en las fases de testeo de aplicaciones.
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 94 of 102
Este punto tambin es crtico si se tiene en cuenta que dicho proceso de migracin
generalmente destapa aplicaciones que no siempre tenemos catalogadas, equipos que no
deberan conectarse, usuarios que no deberan de tener accesoEn este momento saltarn
a la luz.
--
-- 1) Include profiler data into database
--
USE database_in_your_own_instance
GO


-- Create table with data
--
CREATE TABLE [dbo].ExternalConnectionAnalysis(
[ServerName] [nvarchar](256) NOT NULL,
[databaseid] [int] NULL,
databaseName sysname null,
[applicationname] [nvarchar](256) NULL,
[hostname] [nvarchar](256) NULL,
[loginname] [nvarchar](256) NULL,
queries_executed bigint not null
) ON [PRIMARY]

GO

--
Aqui tienes que aadir todos los .trc que tengas de todos los servid
ores
--
INSERT into dbo.ExternalConnectionAnalysis(ServerName, database
id, DatabaseName, applicationname, hostname, loginname,queries_e
xecuted)
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 95 of 102
SELECT 'HIDRA' AS ServerName , databaseid, DatabaseName,applic
ationname, hostname, loginname,COUNT(*)
FROM ::fn_trace_gettable('E:\file_.trc', default)
GROUP BY databaseid,DatabaseName, applicationname, hostname, l
oginname
go

--
Aqui est lo mismo que antes, pero de forma que solo se aaden los
nuevos datos. Est pensado para que si lanzas
--
una carga de un servidor que ya has cargado, no te inserte datos du
plicados
--
Para evitar que si vuelves a procesar una traza, o un fichero trc que o
lvidaste
-- de un mismo servidor se inserten datos duplicados.
-- es opcional
--
declare @srvname sysname = srv
declare @trcpath varchar(max) = file_.trc'
;

with existent_data as(
select ServerName, databaseid, applicationname,hostname,loginna
me
from dbo.ExternalConnectionAnalysis
where ServerName = @srvname
),
trc as (
SELECT @srvname AS ServerName , trc.databaseid, trc.applicatio
nname, trc.hostname, trc.loginname
FROM ::fn_trace_gettable(@trcpath, default) trc
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 96 of 102
)
INSERT into dbo.ExternalConnectionAnalysis(ServerName, database
id, applicationname, hostname, loginname,queries_executed)
SELECT @srvname AS ServerName , trc.databaseid, trc.applicationn
ame, trc.hostname, trc.loginname ,COUNT(*)
FROM trc left join existent_data ed on
(trc.DatabaseID = ed.databaseid
and trc.ApplicationName = ed.applicationname
and trc.HostName = ed.hostname
and trc.LoginName = ed.loginname
)
where ed.databaseid is null or ed.applicationname is null or ed.hostn
ame is null or ed.loginname is null
GROUP BY trc.databaseid, trc.applicationname, trc.hostname, trc.log
inname
Una vez finalizada la importacin, en la tabla destino llamada
dbo.ExternalConnectionAnalysis dispondremos de la informacin relativa a qu
aplicaciones, usuarios,Logins, queries,han sido lanzadas contra l.
El resultado final por tanto ser un inventario de aplicaciones que deberemos escrutar y
tener presente siempre en el proceso de testing del nuevo entorno migrado.
NOTA: Si bien cuanto mayor rango temporal analicemos, mejor y
mas fiables sern los resultados, en este tipo de proyectos debemos
asegurarnos que se analiza un perodo completo de aplicaciones. Si
se escapa algo, no ser detectado y por tanto potencialmente no
testeado y en un futuro ser un foco de fallo.
Documentos de referencia
SQL Server 2008 R2 Upgrade Technical Reference Guide
http://download.microsoft.com/download/3/0/D/30DB8D46-8ACF-442A-99A2-
0F4CE74AE14D/SQL_Server_2008_R2_Upgrade_Technical_Reference_Guide.docx
Recursos de inters
Pack de extensibilidad para SQL Server 2008 R2:
http://www.microsoft.com/download/en/details.aspx?id=16978
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 97 of 102
MDAC 2.8: http://www.microsoft.com/downloadS/details.aspx?FamilyID=6c050fe3-
c795-4b7d-b037-185d0506396c&displaylang=en
SQL Native Client 2008 R2:
http://go.microsoft.com/fwlink/?LinkID=188401&clcid=0x409
Cadenas de conexin: www.connectionstrings.com
Diseador de DTS para SQL Server 2008(compatibilidad 2000):
http://download.microsoft.com/download/2/7/c/27c60d49-6dbe-423e-9a9e-
1c873f269484/SQLServer2005_DTS.msi

Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 98 of 102

6. Figuras
Figura 3-1: Diagrama de alineamiento en almacenamiento NTFS .......................................... 13
Figura 3-2: Consulta gwmi en cmd.exe ................................................................................... 14
Figura 3-3: Recomendacion de formato mediante interfaz windows ..................................... 15
Figura 3-4: Aplicacion de Seguridad Log on as a service ...................................................... 16
Figura 3-5: Aplicacion de Seguridad Lock pages in memory ................................................ 16
Figura 3-6: Aplicacion de Seguridad Instant file initialization .............................................. 17
Figura 3-7: Configuracin bsica ............................................................................................. 18
Figura 3-8: Propiedades TCP/IP de instancia ........................................................................... 18
Figura 3-9: Ofuscacin de instancia ......................................................................................... 19
Figura 4-1: Diagrama de dependencias entre instancias ........................................................ 26
Figura 4-2: Diagramas de dependencia entre bases de datos ................................................ 27
Figura 4-3: Instalacin de SSUA ............................................................................................... 28
Figura 4-4: Segn el proyecto, se analizarn los servicios pertinentes ................................... 29
Figura 4-5: Conexin a instancia.............................................................................................. 30
Figura 4-6: Seleccin de bases de datos y ficheros a analizar ................................................. 30
Figura 4-7: Abrir reporte de resultados SSUA ......................................................................... 31
Figura 4-8: Ejemplo de resultados de anlisis SSUA ................................................................ 31
Figura 4-9: Mensaje genrico .................................................................................................. 32
Figura 4-10: Mensaje para fulltext search ............................................................................... 36
Figura 4-11: Actualizar version MDAC ..................................................................................... 36
Figura 4-12: Planes de mantenimiento desfasados ................................................................ 36
Figura 4-13: ORDER BY deprecado .......................................................................................... 37
Figura 4-14: OUTER JOIN deprecado ....................................................................................... 37
Figura 4-15: Mensaje generic sobre full-text search .............................................................. 38
Figura 4-16: Resultados anlisis DTS ....................................................................................... 38
Figura 4-17: Mensaje indicando que DTS no est soportado.................................................. 38
Figura 4-18: No se podran editar paquetes DTS en versin 2008 R2 ...................................... 38
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 . 39
Figura 4-20: Mensaje generic indicando que DTS est deprecado ......................................... 39
Figura 4-21: Se realiza la migracin automtica de paquetes DTS en su ltima versin de
msdb ........................................................................................................................................ 40
Figura 4-22: Abrir SQL Profiler desde SSMS ............................................................................ 40
Figura 4-23: Crear nueva traza ................................................................................................ 41
Figura 4-24: Configuracin de instancia a analizar .................................................................. 41
Figura 4-25: Eventos de traza .................................................................................................. 41
Figura 4-26: Captura de datos por evento .............................................................................. 42
Figura 4-27: El boton Run lanza la traza .................................................................................. 42
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 99 of 102
Figura 4-28: El boton stop para la ejecucin de traza ............................................................. 42
Figura 4-29: Se puede exporter definicin para recreacin rpida posterior ......................... 43
Figura 4-30: Existen dos sencillas partes a modificar en el script para creacin de traza de
profiler. .................................................................................................................................... 43
Figura 4-31: Interfaz de configuracin de tarea Shrink database ........................................ 47
Figura 4-32: Migracin de DTSs ............................................................................................... 53
Figura 4-33: Pantalla principal de asistente de migracin ...................................................... 54
Figura 4-34: Instancia con datos origen de DTSs ..................................................................... 54
Figura 4-35: Tipo de destino y ubicacin ................................................................................. 55
Figura 4-36: Resumen .............................................................................................................. 55
Figura 4-37: Ubicacin de log de procesamiento .................................................................... 56
Figura 4-38: Informacin de progres ....................................................................................... 56
Figura 4-39: Componente DTS embebido a editar .................................................................. 57
Figura 4-40: Pantalla de apertura de editor de compatibilidad DTS ....................................... 57
Figura 4-41: Ejemplo de tarea interna como DTS incrustada en SSIS (algo a evitar) .............. 58
Figura 4-42: Seleccin de driver .............................................................................................. 58
Figura 4-43: Especificacin de conexion ................................................................................. 59
Figura 4-44: Propiedades de la conexin (pulsar sobre la flecha) con botn derecho ........... 59
Figura 4-45: Propiedades de conexin .................................................................................... 60
Figura 4-46: Propiedades de conexion .................................................................................... 60
Figura 4-47: Conexin .............................................................................................................. 61
Figura 4-48: Importar paquete ................................................................................................ 61
Figura 4-49: Importar paquete ................................................................................................ 62
Figura 4-50: Proteccin de datos sensibles en paquete .......................................................... 62
Figura 4-51: Especificacin de contrasea para almacenar datos sensibles en el paquete SSIS
................................................................................................................................................. 63
Figura 4-52: Integration Services en SSMS .............................................................................. 64
Figura 4-53: Paquetes SSIS almacenados en BBDD ................................................................. 64
Figura 4-54: Lanzar paquete .................................................................................................... 64
Figura 4-55: Interfaz de configuracin del lanzamiento del paquete ..................................... 65
Figura 4-56: Instalacin minima recomendada ....................................................................... 65
Figura 4-57: Ejemplo de ejecucin manual mediante dtexec.exe en cmd.exe ....................... 68
Figura 4-58: Migracion AS ....................................................................................................... 71
Figura 4-59: Seleccin de instancia AS 2000 a migrar ............................................................. 71
Figura 4-60: Cubo a migrar ...................................................................................................... 72
Figura 4-61: Formulario de validacin de migracin ............................................................... 72
Figura 4-62: Proceso de migracin .......................................................................................... 73
Figura 4-63: Resumen del proceso de migracin de AS .......................................................... 73
Figura 4-64: Procesamiento manual de cubo migrado .......................................................... 74
Figura 4-65: Creacin de proyecto BIDS .................................................................................. 74
Figura 4-66: Nuevo proyecto en BIDS ..................................................................................... 74
Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 100 of 102
Figura 4-67: Nuevo proyecto de importacin de cubo analysis service .................................. 75
Figura 4-68: Seleccin de su BBDD .......................................................................................... 75
Figura 4-69: Resumen y proceso de importacin .................................................................... 75
Figura 5-1: Nuevo plan de mantenimiento ............................................................................. 80
Figura 5-2: Edicin de tarea de plan de mantenimiento ......................................................... 80
Figura 5-3: Edicin ................................................................................................................... 80
Figura 5-4: Error DCOM genrico ............................................................................................ 81
Figura 5-5: Propiedades DCOM a nivel de sistema operativo ................................................. 81
Figura 5-6: Propiedades de paquetes SSIS .............................................................................. 82
Figura 5-7: Edicin de permisos en componente DCOM ........................................................ 82
Figura 5-8: Nuevo proyecto BIDS par Integration Services ..................................................... 83
Figura 5-9: Eliminar paquete por defecto en proyecto SSIS de BIDS ...................................... 83
Figura 5-10: Aadir Nuevo paquete .dtsx ................................................................................ 84
Figura 5-11: Ubicacin del nuevo paquete SSIS ...................................................................... 84
Figura 5-12: Vista de paquetes en BIDS................................................................................... 84
Figura 5-13: Botn de depuracin ........................................................................................... 85
Figura 5-14: Propiedades a nivel de instancia ......................................................................... 86
Figura 5-15: Seleccin de idioma por defecto en instancia SQL Server 2008 R2 .................... 86
Figura 5-16: Propiedades de login ........................................................................................... 87
Figura 5-17: Ventana de propiedades de proyecto BIDS ........................................................ 88
Figura 5-18: Seleccin de nivel de proteccin de datos sensibles en paquete SSIS ............... 88
Figura 5-19: Password de paquete SSIS .................................................................................. 88
Figura 5-20: Confirmacin de password .................................................................................. 89
Figura 5-21: Instalacin de components de compatibilidad con SQL Server 2005 opcionales
................................................................................................................................................. 90




Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 101 of 102
Acerca del Autor
Enrique Catal
Mentor en SolidQ. Colaborador destacado en la comunidad SQL Server en MSDN
(http://msdn.microsoft.com/es-es/sqlserver/) donde colabora como Technical Ranger.
Ingeniero en informtica, obtuvo la nica matrcula de honor de su promocin en el
proyecto de fin de carrera por su proyecto propuesto de definicin e implementacin de un
sistema de modelado de bases de datos multidimensionales orientadas a objetos usando
lenguajes de especificacin de dominio (DSL). Es Microsoft Certified Trainer (MCT) y fue
nombrado MAP 2010 (Microsoft Active Professional). Centrado en el motor relacional SQL
Server, tanto en la resolucin de problemas de rendimiento y escalabilidad en sistemas
OLTP como la definicin e implementacin de entornos de alta disponibilidad confiables, en
donde ha llevado con xito ms de 70 proyectos no solo en Espaa, sino en diferentes
pases como EEUU, Holanda, Mxico o Austria. Es el arquitecto principal de las soluciones
para SolidQ llamadas HealthCheck, SQL2Cloud, SCODA y del generador de SSIS de SolidQ.
Ponente habitual del SolidQ SUMMIT, miembro y ponente en SQL PASS tanto en Espaa
como Iberoamrica. Colabora con Microsoft realizando Webcast y conferencias para MSDN
y TechNet. Mantiene tanto su blog personal (http://ecatalab.blogspot.com/), como "El
Rincn del DBA" (http://blogs.solidq.com/es/elrincondeldba/) con colegas de SolidQ.
Twitter: @enriquecatala
Especialidades
Sql Server, .NET, Tuning relational engines, High availability systems

Planificando la migracin de SQL Server 2000-2005 a SQL Server 2008 R2
Solid Quality Press Page 102 of 102

Acerca de SolidQ
SolidQ es el estndar para servicios de administracin de informacin al proporcionar
servicios de administracin de datos fiables, inteligencia de negocios, colaboracin y
soluciones de tecnologa avanzada para plataformas de nube y en las instalaciones de
Microsoft ms confiable del mundo.
SolidQ representa el ms altamente reconocido equipo de BI y administracin de
datos con el mayor porcentaje de MVP de Microsoft (SQL Server) en el mundo.
Como un asesor clave y proveedor de contenido a Microsoft, con ms de treinta libros
publicados y ms apariciones de orador en conferencias tcnicas, lderes del mundo,
excepto Microsoft, SolidQ es el experto llamado por los expertos.
Como confiamos en la capacidad de nuestro equipo y el valor que ofrecemos,
incondicionalmente garantizamos su satisfaccin con nuestros servicios.

Vous aimerez peut-être aussi