octubre 2004
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 PresentationTRANSCRIPT
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• [email protected]• [email protected]• [email protected]
Página 62Hasta la próxima.