Octubre 2004

Post on 25-Jan-2016

31 views 0 download

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

Página 1Octubre 2004

Técnicas de Migración a SQL 2000

Miguel Egea GómezMicrosoft SQL-Server MVP

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

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

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

Página 5

AgendaPasos iniciales y principales problemasPasos iniciales y principales problemas

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

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

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

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

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

Página 11Vistas de Information-schema

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

Siendo estándar.

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

Página 13Demos

Demostración

Evitando problemas con los logins

También se puede usar sp_change_users_login

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

Página 15Demos

Demostración

El index tunning Wizard y profilerEl index tunning Wizard y profiler

Página 16Problemas más habituales.

• ANSI_DEFAULTS– ANSI_NULL_DFLT_ON– ANSI_NULLS

• Funciones agregadas con NULL

Nulos

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

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

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

Página 20Problemas más habituales

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

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

Strings Vacios

Página 21Problemas más habituales

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

Creando objetos

Página 22Problemas más habituales

• Problemas con el collate

Demostración

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

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

Página 25Demos

Demostración

Diferencias en los nulos entre ANSI y no ANSI

Página 26

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

Página 27Demos

Demostración

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

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

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.

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

• Para un ordenador• Para dos• Para cinta.

Opciones del asistente

Página 31Métodos de transferencia a evitar

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

Cuidado con esto

Página 32Requisitos hardware y software

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

Siempre depende

Página 33Orden adecuado de actualización

• Primero las bbds de usuario– Estudiando las dependencias

• Después model.

Un consejo

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

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

Página 36Espacio de 7.0 a 2000

No hace falta espacio adicional.

Requisitos de tamaño

Página 37Nombres de los servidores

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

Los nombres

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

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

Página 40Demos

Demostración

Aprovechando la seguridad integrada.Aprovechando la seguridad integrada.

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

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

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

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

Página 45Demos

Demostración

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

Página 46

AgendaPruebas y herramientas de pruebaPruebas y herramientas de prueba

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’.

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.

Página 49Ejemplo de splitTrc

• Splittrc –ifichero.sh –opath –v

Demostración

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.

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.

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.

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,….

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 !!!

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).

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

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.

Página 58Actualizaciones especiales

• Si estamos en cluster• Si hay replicaciones

– Distribuidor– Publicador– Subscriptor.

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

• Analisys Services• Reporting Services• Trigger instead of

Demostración

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.

Página 61Despedida

• Ha sido un placer.

• Me tienen en• miguel.egea@sinergiatec.com• webmaster@portalsql.com• miguel@solidqualitylearning.com

Página 62Hasta la próxima.