620 likes | 765 Views
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’
E N D
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’ • Servidores Federados. • Vistas indexadas. • Trigger Instead Of. • DRI en cascada. • Vistas particionadas actualizables • Text-In row ¿Que es nuevo en SQL.2000?
Agenda Agenda Pasos iniciales y problemas más habituales. Planificando la actualización. Herramientas para la migración Nuevas herramientas de SQL
Planificació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. Pasos en una migración
Vamos por partes • A nivel del sistema. • Tablas del sistema • Vistas de Information_Schemas • Sintaxis • Comportamiento Revisión del código para actualizar
Versiones y posibilidades • 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” A nivel del sistema
Catálogos del sistema • Compatibilidad con 80. • Puedes tener BBDDs a cualquier nivel de compatibilidad. • Puedes migrar en fases. • Eso sí, migre todo cuanto antes. Base de datos Master
Hay que evitar en lo posible su uso • 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 Tablas del sistema
Siendo estándar. • Ayuda a cumplir el ANSI SQL-92. • INFORMATION_SCHEMA.TABLES • INFORMATION_SCHEMA.VIEWS Vistas de Information-schema
Varios • Las claves externas deben ser idénticas. • Antes en 6.5 podían no serlo si eran alfanuméricas. Claves extranjeras
Demostración Evitando problemas con los logins También se puede usar sp_change_users_login Demos
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 Indices
Demostración El index tunning Wizard y profiler Demos
Nulos • ANSI_DEFAULTS • ANSI_NULL_DFLT_ON • ANSI_NULLS • Funciones agregadas con NULL Problemas más habituales.
Nulos • 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. Problemas más habituales.
Varios • 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” Problemas más habituales
Overflows • 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 Problemas más habituales
Strings Vacios • Antes de 7.0 • Datalength(‘’)=1 • RTRIM (‘ ‘)=NULL • Con 7.0 y 2000 • Datalength(‘’)=0 • RTRIM (‘ ‘)=‘’ Problemas más habituales
Creando objetos • Sp’s con referencias a tablas del sistema. • Columnas con nombres nulos Problemas más habituales
Problemas con el collate Demostración Problemas más habituales
Más de creando objetos • Syscomments borrados • Sp_rename One on more warnings has ben logged. Please read the next Screen carefully before you begin your upgrade Problemas más habituales
Revisión del código • 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. Problemas más habituales
Demostración Diferencias en los nulos entre ANSI y no ANSI Demos
Demostración Actualización por defecto De 6.5 a 2.000 Demos
Instalando SQL-Server 2.000 • 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. Opciones de Instalación
Proceso de actualización. • 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 Actualizando bases de datos a 2000
Opciones del asistente • Para un ordenador • Para dos • Para cinta. Algunas opciones del asistente de actualización
Cuidado con esto • DTS • Bcp • Backup/restore (entre 6.5 y cualquier otro) Métodos de transferencia a evitar
Siempre depende • Plataforma • Sistema operativo • Versión del navegador • Versión del SQL. Requisitos hardware y software
Un consejo • Primero las bbds de usuario • Estudiando las dependencias • Después model. Orden adecuado de actualización
Estimaciones • 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. Tiempos estimados de migración
Requisitos de tamaño • 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. Espacio para 6.x a 7.0/200
Requisitos de tamaño • No hace falta espacio adicional. Espacio de 7.0 a 2000
Los nombres • Guiones en el nombre de servidor • Obtener el nombre de servidor. • BBDD por defecto de sa. Nombres de los servidores
Instalando SQL-Server 2.000 • 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. Seguridad NT para la actualización
Seguridad Integrada • 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. Aprovechando ventajas de seguridad
Demostración Aprovechando la seguridad integrada. Demos
Sp_configure • 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). Configuraciones de servidor
Cambios • TEMDB in ram ya no está soportado. • Cambios en las tablas del sistema entre 6.x y posteriores. • Formato de backup. Cambios de formato entre 6.5 y posteriores
Hay que ser precavido • Debe conocer • Número de objetos • Filas en cada tabla • Validaciones por defecto • Validación ‘transferencia de datos’ • Validación exahustiva. Verificaciones
La planificación y organización es muy importante • 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. Planifique la vuelta atrás
Demostración ¿Conocen ustedes la replicación? Demos
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’. Pruebas
Tenga un objetivo • Determine los métodos para analizar resultados. • Ejecute los test de prueba varias veces. • Analize y compare resultados. Saber lo que se prueba
Splittrc –ifichero.sh –opath –v Demostración Ejemplo de splitTrc
Aplicación odbc. • Puede simular 1024 conexiones para un solo proceso ostress. • Contiene bastante funcionalidad (numero de iteraciones, delays entre querys,..) • Es Multithreader. Ostress