Download - Octubre 2004
![Page 1: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/1.jpg)
Página 1Octubre 2004
Técnicas de Migración a SQL 2000
Miguel Egea GómezMicrosoft SQL-Server MVP
![Page 2: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/5.jpg)
Página 5
AgendaPasos iniciales y principales problemasPasos iniciales y principales problemas
![Page 6: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/13.jpg)
Página 13Demos
Demostración
Evitando problemas con los logins
También se puede usar sp_change_users_login
![Page 14: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/15.jpg)
Página 15Demos
Demostración
El index tunning Wizard y profilerEl index tunning Wizard y profiler
![Page 16: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/16.jpg)
Página 16Problemas más habituales.
• ANSI_DEFAULTS– ANSI_NULL_DFLT_ON– ANSI_NULLS
• Funciones agregadas con NULL
Nulos
![Page 17: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/21.jpg)
Página 21Problemas más habituales
• Sp’s con referencias a tablas del sistema.• Columnas con nombres nulos
Creando objetos
![Page 22: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/22.jpg)
Página 22Problemas más habituales
• Problemas con el collate
Demostración
![Page 23: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/25.jpg)
Página 25Demos
Demostración
Diferencias en los nulos entre ANSI y no ANSI
![Page 26: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/26.jpg)
Página 26
AgendaPlanificando la actualización.Planificando la actualización.
![Page 27: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/30.jpg)
Página 30Algunas opciones del asistente de actualización
• Para un ordenador• Para dos• Para cinta.
Opciones del asistente
![Page 31: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/31.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/32.jpg)
Página 32Requisitos hardware y software
• Plataforma• Sistema operativo• Versión del navegador• Versión del SQL.
Siempre depende
![Page 33: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/33.jpg)
Página 33Orden adecuado de actualización
• Primero las bbds de usuario– Estudiando las dependencias
• Después model.
Un consejo
![Page 34: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/34.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/35.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/36.jpg)
Página 36Espacio de 7.0 a 2000
No hace falta espacio adicional.
Requisitos de tamaño
![Page 37: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/37.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/38.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/39.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/40.jpg)
Página 40Demos
Demostración
Aprovechando la seguridad integrada.Aprovechando la seguridad integrada.
![Page 41: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/41.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/42.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/43.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/44.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/45.jpg)
Página 45Demos
Demostración
¿Conocen ustedes la replicación?¿Conocen ustedes la replicación?
![Page 46: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/46.jpg)
Página 46
AgendaPruebas y herramientas de pruebaPruebas y herramientas de prueba
![Page 47: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/47.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/48.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/49.jpg)
Página 49Ejemplo de splitTrc
• Splittrc –ifichero.sh –opath –v
Demostración
![Page 50: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/50.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/51.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/52.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/53.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/54.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/55.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/56.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/57.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/58.jpg)
Página 58Actualizaciones especiales
• Si estamos en cluster• Si hay replicaciones
– Distribuidor– Publicador– Subscriptor.
![Page 59: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/59.jpg)
Página 59Herramientas de SQL-2000 que deberían conocer
• Analisys Services• Reporting Services• Trigger instead of
Demostración
![Page 60: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/60.jpg)
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](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/61.jpg)
Página 61Despedida
• Ha sido un placer.
• Me tienen en• [email protected]• [email protected]• [email protected]
![Page 62: Octubre 2004](https://reader036.vdocuments.co/reader036/viewer/2022062410/5681538f550346895dc1943e/html5/thumbnails/62.jpg)
Página 62Hasta la próxima.