Octubre 2004

62
Página 1 Octubre 2004 Técnicas de Migración a SQL 2000 Miguel Egea Gómez Microsoft SQL-Server MVP

description

S. T. Técnicas de Migración a SQL 2000. Miguel Egea Gómez Microsoft SQL-Server MVP. Octubre 2004. El objetivo. Técnicas de migración. Herramientas de migración. Experiencias de migración. ¿Que debe esperar de esta sesión?. Datos a tener en cuenta. XML. Mejoras en el ‘collation’ - PowerPoint PPT Presentation

Transcript of Octubre 2004

Page 1: Octubre 2004

Página 1Octubre 2004

Técnicas de Migración a SQL 2000

Miguel Egea GómezMicrosoft SQL-Server MVP

Page 2: Octubre 2004

Página 2¿Que debe esperar de esta sesión?

• Técnicas de migración.• Herramientas de migración.• Experiencias de migración.

El objetivo

Page 3: Octubre 2004

Página 3¿Que es nuevo en SQL.2000?

• XML.• Mejoras en el ‘collation’• Servidores Federados.• Vistas indexadas.• Trigger Instead Of.• DRI en cascada.• Vistas particionadas actualizables• Text-In row

Datos a tener en cuenta

Page 4: Octubre 2004

Página 4

AgendaAgendaAgenda

Pasos iniciales y problemas más habituales.Pasos iniciales y problemas más habituales.

Planificando la actualización.Planificando la actualización.

Herramientas para la migraciónHerramientas para la migración

Nuevas herramientas de SQLNuevas herramientas de SQL

Page 5: Octubre 2004

Página 5

AgendaPasos iniciales y principales problemasPasos iniciales y principales problemas

Page 6: Octubre 2004

Página 6Pasos en una migración

• Revisión de código SQL 6.x• Planificación de la actualización desde 6.X• Planificación de la actualización desde 7.0• Comprobación.• Implementación.

Planificación

Page 7: Octubre 2004

Página 7Revisión del código para actualizar

• A nivel del sistema.• Tablas del sistema• Vistas de Information_Schemas• Sintaxis• Comportamiento

Vamos por partes

Page 8: Octubre 2004

Página 8A nivel del sistema

• 6.0, 6.5 y 7.0 en Sql-Server 7.0.• 6.0, 6.5 , 7.0 y 8.0 en Sql-Server 2.000.• Sp_dbcmptlevel “BBDD”

Versiones y posibilidades

Page 9: Octubre 2004

Página 9Base de datos Master

• Compatibilidad con 80.• Puedes tener BBDDs a cualquier nivel de

compatibilidad.– Puedes migrar en fases.

• Eso sí, migre todo cuanto antes.

Catálogos del sistema

Page 10: Octubre 2004

Página 10Tablas del sistema

• Procedimientos almacenados del sistema que usamos.

• Accesos a tablas del sistema directamente.– “select * From sysobjects”

• Formato de almacenamiento unicode.• Las vista del sistema pueden minimizar el

problema

Hay que evitar en lo posible su uso

Page 11: Octubre 2004

Página 11Vistas de Information-schema

• Ayuda a cumplir el ANSI SQL-92.– INFORMATION_SCHEMA.TABLES– INFORMATION_SCHEMA.VIEWS

Siendo estándar.

Page 12: Octubre 2004

Página 12Claves extranjeras

• Las claves externas deben ser idénticas.– Antes en 6.5 podían no serlo si eran alfanumérica

s.

Varios

Page 13: Octubre 2004

Página 13Demos

Demostración

Evitando problemas con los logins

También se puede usar sp_change_users_login

Page 14: Octubre 2004

Página 14Indices

• Un índice clustered ya no garantiza resultados ordenados.

• Multiprocesadores y paralelismo.• Búsquedas en índices clustered y heaps.• Estrategias de creación

– Pequeños índices clustered– El index tunning wizard

Page 15: Octubre 2004

Página 15Demos

Demostración

El index tunning Wizard y profilerEl index tunning Wizard y profiler

Page 16: Octubre 2004

Página 16Problemas más habituales.

• ANSI_DEFAULTS– ANSI_NULL_DFLT_ON– ANSI_NULLS

• Funciones agregadas con NULL

Nulos

Page 17: Octubre 2004

Página 17Problemas más habituales.

• 6.5 trabaja como si Concat_null_yields_null está en off

• 7.0 como si está en on.

• Los char null en 6.5 son varchar en 7.0 y posterior son char.

Nulos

Page 18: Octubre 2004

Página 18Problemas más habituales

• Quoted Identifiers– En 2000 por defecto es ON– En 7.0 y 6.5 es OFF

• Truncado de strings.– Intentando insertar demasiados caracteres en un

campo varchar• 6.5 inserta y no dice nada.• 7.0 aborta la insercion y genera un error

– “String or binary data would be trucated”

Varios

Page 19: Octubre 2004

Página 19Problemas más habituales

• Insertar valores más grandes para el tipo de datos

• El resultado depende de– Versión– Modo de ocmpatibillidad– Como esté el ANSI_WARNINGS– Que la columna admita o no admita nulos

Overflows

Page 20: Octubre 2004

Página 20Problemas más habituales

• Antes de 7.0– Datalength(‘’)=1– RTRIM (‘ ‘)=NULL

• Con 7.0 y 2000– Datalength(‘’)=0– RTRIM (‘ ‘)=‘’

Strings Vacios

Page 21: Octubre 2004

Página 21Problemas más habituales

• Sp’s con referencias a tablas del sistema.• Columnas con nombres nulos

Creando objetos

Page 22: Octubre 2004

Página 22Problemas más habituales

• Problemas con el collate

Demostración

Page 23: Octubre 2004

Página 23Problemas más habituales

• Syscomments borrados• Sp_rename

Más de creando objetos

One on more warnings has ben logged. Please read the next Screen carefully before you begin your upgrade

Page 24: Octubre 2004

Página 24Problemas más habituales

• Acciones imprescindibles– Cambios en la sintaxis– Localización en el código T-SQL.– Localizar al responsable (sin hacerle daño ).

• Tener en cuenta el tiempo para revisar el proceso de actualización.

Revisión del código

Page 25: Octubre 2004

Página 25Demos

Demostración

Diferencias en los nulos entre ANSI y no ANSI

Page 26: Octubre 2004

Página 26

AgendaPlanificando la actualización.Planificando la actualización.

Page 27: Octubre 2004

Página 27Demos

Demostración

Actualización por defectoActualización por defectoDe 6.5 a 2.000De 6.5 a 2.000

Page 28: Octubre 2004

Página 28Opciones de Instalación

• Instalar un nuevo servidor• Instalar cuando 6.5 o 7 ya están

– Actualizar/sustituir 6.5 7.0• Actualiza automáticamente la BBDD.

– 6.5/7.0 permanecen, creando instancias con nombre en 2000.

Instalando SQL-Server 2.000

Page 29: Octubre 2004

Página 29Actualizando bases de datos a 2000

• Automáticamente en la instalación.• Actualización selectiva después de la

instalación.– 6.5 *** Asistente de actualización– 7.0

• Asistente para copiar bases de datos• Detach/attach• Backup/Restore

Proceso de actualización.

Page 30: Octubre 2004

Página 30Algunas opciones del asistente de actualización

• Para un ordenador• Para dos• Para cinta.

Opciones del asistente

Page 31: Octubre 2004

Página 31Métodos de transferencia a evitar

• DTS• Bcp• Backup/restore (entre 6.5 y cualquier otro)

Cuidado con esto

Page 32: Octubre 2004

Página 32Requisitos hardware y software

• Plataforma• Sistema operativo• Versión del navegador• Versión del SQL.

Siempre depende

Page 33: Octubre 2004

Página 33Orden adecuado de actualización

• Primero las bbds de usuario– Estudiando las dependencias

• Después model.

Un consejo

Page 34: Octubre 2004

Página 34Tiempos estimados de migración

• Desde 6.5– Depende naturalmente del hardware y software

• 1 GB 1 hora aproximadamente• 10 GB menos de 4 horas• 50 GB menos de 12 horas• 100 GB menos de 24 horas

– Si se hace desde cinta hay que multiplicar por 2.

Estimaciones

Page 35: Octubre 2004

Página 35Espacio para 6.x a 7.0/200

• Incrementar tempb en 10 mb (6.5) (disk init)• Establecer autocrecimiento para 7.0 o 2000• 3 Mb libres en master de 6.5• El espacio total necesario para la migración

es 1.5 el que ocupe ahora.

Requisitos de tamaño

Page 36: Octubre 2004

Página 36Espacio de 7.0 a 2000

No hace falta espacio adicional.

Requisitos de tamaño

Page 37: Octubre 2004

Página 37Nombres de los servidores

• Guiones en el nombre de servidor• Obtener el nombre de servidor.• BBDD por defecto de sa.

Los nombres

Page 38: Octubre 2004

Página 38Seguridad NT para la actualización

• Miembros de Administrador local en los Windows en ambos servidores.

• Autenticación mixta. (SQL y Windows).• Los grupos locales usados deben existir en el

destino y ser iguales.

Instalando SQL-Server 2.000

Page 39: Octubre 2004

Página 39Aprovechando ventajas de seguridad

• Borre todos los Users id• Borre todos los logins• Cree grupos en NT• Cree logins basados en esos grupos• Cree usuarios basados en ese rol• Todos los administradores se basan en un

rol.• Ponga un password complicado a sa.

Seguridad Integrada

Page 40: Octubre 2004

Página 40Demos

Demostración

Aprovechando la seguridad integrada.Aprovechando la seguridad integrada.

Page 41: Octubre 2004

Página 41Configuraciones de servidor

• Algunos parámetros no son actualizados• Tareas después de actualizar

– Establecer los parámetros – Registrar el servidor– Añadir al grupo de servidores (EM).

Sp_configure

Page 42: Octubre 2004

Página 42Cambios de formato entre 6.5 y posteriores

• TEMDB in ram ya no está soportado.• Cambios en las tablas del sistema entre 6.x y

posteriores.• Formato de backup.

Cambios

Page 43: Octubre 2004

Página 43Verificaciones

• Debe conocer– Número de objetos– Filas en cada tabla

• Validaciones por defecto• Validación ‘transferencia de datos’• Validación exahustiva.

Hay que ser precavido

Page 44: Octubre 2004

Página 44Planifique la vuelta atrás

• Desarrolle una estrategia de vuelta atrás• La actualización se para a nivel de paso.• No se puede volver atrás.• Los formatos de backups son incompatibles• Bcp• DTS• Replicación.

La planificación y organización es muy importante

Page 45: Octubre 2004

Página 45Demos

Demostración

¿Conocen ustedes la replicación?¿Conocen ustedes la replicación?

Page 46: Octubre 2004

Página 46

AgendaPruebas y herramientas de pruebaPruebas y herramientas de prueba

Page 47: Octubre 2004

Página 47Pruebas

• Puede reconstruir master para seguir probando con la actualización.

• Herramientas de testing– Splittrc– Ostress

• Comparar los datos.

• Ojo, tanto splittr como Ostress son herramientas ‘no soportadas’.

Page 48: Octubre 2004

Página 48Saber lo que se prueba

• Tenga un objetivo• Determine los métodos para analizar

resultados.• Ejecute los test de prueba varias veces.• Analize y compare resultados.

Page 49: Octubre 2004

Página 49Ejemplo de splitTrc

• Splittrc –ifichero.sh –opath –v

Demostración

Page 50: Octubre 2004

Página 50Ostress

• Aplicación odbc.• Puede simular 1024 conexiones para un solo

proceso ostress.• Contiene bastante funcionalidad (numero de

iteraciones, delays entre querys,..)• Es Multithreader.

Page 51: Octubre 2004

Página 51Ejemplos de uso de ostress

1. ostress -Usa -P -S. -Q"select @@VERSION“*Sencillo y se conecta al servidor actual

2. ostress -Usa -P –S. -q"select @@VERSION“ –r1000*Ejecuta el comando 1000 veces en una sola conexion

3. ostress -Usa -P -S. -Q"select @@VERSION“ –r1000 –n200Abre 200 hilos y en ejecuta el comando 1000 veces en cada

uno

4. ostress -Usa -P -S. -Q"select @@VERSION“ -q*En modo silencioso.

Page 52: Octubre 2004

Página 52También puede utilizar un fichero de entrada

• Ostress –Usa –P –S. –ifichero.sql –q– Se conecta con sa sin password al servidor actual

y lanza las instrucciones de fichero.sql en modo silencioso.

• Admite *, para cada viechro abre un nuevo hilo de ejecución.

Page 53: Octubre 2004

Página 53Más opciones.

• Trazar para volver a ejecutar.– Incluso en 6.5 se pueden elegir una serie de

eventos que permitan volver a ejecutar una traza.– Cuidado con claves primarias, objetos ya

existentes,….

Page 54: Octubre 2004

Página 54Planificando la migración

• Cree un plan de trabajo– Muy detallado– Con responsable de cada paso.

• ¡¡¡ No te olvides de las aplicaciones, quizá sean lo más difícil !!!

Page 55: Octubre 2004

Página 55Implementando la actualización

• Copias de seguridad de 6.5• Ejecutas DBCC’s en 6.5• Confirma que tu backup funciona.• Ejecuta DBCC en las BBDD’s restauradas.• Quita los procedimientos que se ejecutan al

iniciarse SQL menos sp_Sqlregister.• Cierra todas las conexiones• Quita los flags de traza (si es que tienes).

Page 56: Octubre 2004

Página 56Si no funciona la actualización

• Asegurate de tener los servicios por defecto de NT ejecutandose– En el panel de control

• Mata lo que no sea necesario con el administrador de tareas.

• Inténtalo de nuevo.• (8%)• Revisa los logs que deja la actualización en

el directorio Upgrade\servidor_fecha_hora

Page 57: Octubre 2004

Página 57Actualizando desde 7.0

• Nueva instancia en 2000, 7.0 será la instancia por defecto.

• Reemplazar 7.0 por completo.• Métodos de actualización.

Page 58: Octubre 2004

Página 58Actualizaciones especiales

• Si estamos en cluster• Si hay replicaciones

– Distribuidor– Publicador– Subscriptor.

Page 59: Octubre 2004

Página 59Herramientas de SQL-2000 que deberían conocer

• Analisys Services• Reporting Services• Trigger instead of

Demostración

Page 60: Octubre 2004

Página 60Conclusiones

• Hay que tener la mejor herramienta.• El camino puede ser complicado, pero lo

conocemos .• Hay herramientas que nos ayudan.• Muchos ya lo han hecho antes.

Page 61: Octubre 2004

Página 61Despedida

• Ha sido un placer.

• Me tienen en• [email protected][email protected][email protected]

Page 62: Octubre 2004

Página 62Hasta la próxima.