La adopción de SQL Server 2016 debe ser “tranquila” y sin problemas. En esta sesión le guiaremos en cómo hacer dicha migración/actualización y cuales son los pasos que tomamos en SolidQ en estos proyectos de migración. Trataremos tanto migraciones side-by-side como migraciones in-place.
Aquí podrás encontrar la grabación completa de la ponencia de Catalá en el SolidQ Summit:
Presentación realizada en el SolidQ Summit por: Enrique Catalá
[slideshare id=62417969&doc=migracinasqlserver2016-160526082253&h=495&w=595]
1. #SQSummit Migración a SQL Server 2016 Enrique Catalá Bañuls Mentor ecatala@solidq.com
2. Contenido de la sesión • ¿Interesa migrar? • Tipos de actualización • Escenarios soportados • Características discontinuadas y deprecadas • Cómo enfrentarnos a migraciones
3. SQL Server 2016 “It just run faster” • Solo por migrar, mejora de rendimiento apreciable • La primera vez que MS lo promueve oficialmente “SQL Server 2016 running on the same hardware as SQL Server 2014, 2012, 2008, 2008 R2 or 2005 uses fewer resources and executes a wide range of workloads faster. I have studied code check-ins and tested the improvements seeing the scalability improvement first hand and running SQL Server 2016 for internal SQL Support needs since Mar 2015 because of the improved features and scalability.” – Bob Dorr, Principle Engineer SQL Server Support
4. SQL Server 2016 “It just run faster” DBCC escala 7x mejor Native Spatial (2000x) Automatic tempdb conf Best .ldf expansion performance Automatic Soft NUMA Scheduling algorithm actualizado Indirect checkpoints por defecto Multiple log writer workers Column Store soporta SSE/AVX HW BULK INSERT usa SSE/AVX HW AlwaysOn log transport mejorado AlwaysON parallel compression In-Memory optimized DB worker pool On demand MSDTC startup Xevent Linq Reader NCCI updatable
5. Contenido de la sesión • ¿Interesa migrar? • Tipos de actualización • Escenarios soportados • Características discontinuadas y deprecadas • Cómo enfrentarnos a migraciones
6. Tipos de actualización • In-place y side-by-side • OnPremise to OnPremise • Pero también OnPremise Azure IaaSAzure PaaS
7. Proceso de actualización in-place 8 La instancia pasa a estar disponible Aquí comienza la disponibilidad parcial Punto de no retorno Instancia todavía disponible La instancia ya no está disponible Instalar prerequisitos Comprobar blockers de actualización Instalar los binarios de SQL Server 2008 R2 Parar el servicio Redirigir servicios a nuevos binarios Iniciar servicio en modo usuario unico Adjuntar bd de recursos Parar el servicio Reiniciar el servicio Iniciar actualización de todas las BDs Ejecución de scripts de migración de SQL Agent y Replicación Desinstalar binarios “viejos”
8. Proceso de migración side-by-side Comparar y verificar SQL Server 2012 Instancia: Foo SQL Server 2016 Instancia : Bar Comprobado!
9. Contenido de la sesión • ¿Interesa migrar? • Tipos de actualización • Escenarios soportados • Características discontinuadas y deprecadas • Cómo enfrentarnos a migraciones
10. Escenarios soportados Solo X64 IA64, x86 WS2012+Solo X64 SQL2008+ SQL2005 ya no se puede migrar directo
<a title="Replicación heterogénea • Versión publicador 11. Replicación heterogénea • Versión publicador <= versión distribuidor • Versión subscriptor between: • -2 versión publicador • Versión publicador Escenarios soportados
12. Replicación heterogénea DBreplica1 SQL Subscriber1 SQL2008R2 SQL Subscriber2 SQL2012 SQLSubscriber SQL2016 DBreplica2 DBreplica3 SQL Publisher SQL2008R2 Transactional replication SYNC SQL Distributor SQL2012 DistributionTU BBDD PUSH/PULL SQLSubscriber SQL2014 DBreplica3 ? Nodos secundarios replicación ? Capa de base de datos, suscriptores de SQL1 ? SQL Standard Edition ? Pueden ser desde SQL2008R2 hasta 2016 debido al publicador ? Nodo publicador ? Instancia SQL1 que contiene los datos maestros a replicar mediante replicación transaccional ? Es 2008 para que se puedan tener subscriptores desde 2008R2 ? Nodo publicador ? Tiene que ser mayor o igual a publicador ? Para poder usar SQL2016 tiene que ser como mínimo 2012
13. DBreplica1 SQL Subscriber1 SQL2012 SQL Subscriber2 SQL2014 SQLSubscriber SQL2016 DBreplica2 DBreplica3 SQL Publisher SQL2012 Transactional replication SYNC SQL Distributor SQL2012 Distribution TU BBDD PUSH/PULL ? Nodos secundarios replicación ? Capa de base de datos, suscriptores de SQL1 ? SQL Standard Edition ? Pueden ser desde SQL2012 hasta 2016 debido al publicador ? Nodo publicador ? Instancia SQL1 que contiene los datos maestros a replicar mediante replicación transaccional ? Es 2012, por lo que no podemos tener subscriptores anteriores ? Nodo publicador ? Tiene que ser mayor o igual a publicador ? Para poder usar SQL2016 tiene que ser como mínimo 2012 Replicación heterogénea
14. Contenido de la sesión • ¿Interesa migrar? • Tipos de actualización • Escenarios soportados • Características discontinuadas y deprecadas • Cómo enfrentarnos a migraciones
15. Características discontinuadas • Compatibility level 90 SQL Server 2014 • Se permite migrar con modo 90 SQL Server 2016 • Necesitas migrar antes a 100 Replicación • SQL2008R2 NO SOPORTADO DTS • SSUA ni escanea • CUIDADO CON DTS embebido • Otras características destacables
16. Características deprecadas y final support SET ROWCOUNT Usa TOP BACKUP … WITH PASSWORD Sin workaround Cmpt_level 100 Mínimo 110 Encryption RC4 o RC4_128 Usa AES Remote Servers Linked Servers ResultSets de triggers Sin workaround Final Support ANSI_NULLS, ANSI_PADDI NG OFF Siempre ON timestamp Usa rowversion Text, ntext, image Varchar,nvarc har y varbinary(ma x) Sp_attach_db CREATE DATABASE FOR ATTACH DBREINDEX, INDEXDEFRAG ALTER INDEX Database Mirroring AlwaysON GRANT, DENY y REVOKE ALL Hacerlo específicame nte NOLOCK Sin workaround Deprecadas
17. Breaking changes sys.dm_io_virtual_file_stats •Columna sample_ms pasa de int a bigint MD2, MD4, MD5, SHA, or SHA1 •No recomendado su uso •Solo válido con modo de compatibilidad < 130 REPLICACIÓN •Subscriptores SQL2012+ •Si tienes anteriores CUIDADO! En SQL Server 2014 no hubo ninguno, en SQL Server 2016:
18. SQL Server Upgrade Advisor Rediseño completo • Multitarea • Multihilo Instalación independiente • No viene con la ISO Novedades en análisis • In-memory • Stretch database • Análisis Azure • Realiza la migración Grandes carencias • Sin soporte profiler ni XEvents • Todavía en RC
19. SQL Server Upgrade Advisor
20. Demo Probar el nuevo SSUA
21. Contenido de la sesión • ¿Interesa migrar? • Tipos de actualización • Escenarios soportados • Características discontinuadas y deprecadas • Cómo enfrentarnos a migraciones
22. Tareas pre-migración Cuidado, SSMA no cubre todos los escenarios No te olvides openrowset, linked server, código dinámico…
23. Ratios de trabajo Recurso Horas %Tiempo SolidQ 841,96 58% ClienteX 603,83 42% Recurso Horas %Tiempo SolidQ 841,96 58% Desarrollo ClienteX1 496 34% Infraestructura ClienteX 97,83 7% Dirección ClienteX 10 1% Recurso Horas %Tiempo Desarrollo ClienteX1 381 26% SolidQ DPA 346,03 24% SolidQ Mentor 335,93 23% SolidQ DPE 160 11% Infraestructura ClienteX 97,83 7% Desarrollo ClienteX3 63 4% Desarrollo ClienteX2 43 3% Dirección ClienteX 10 1% Desarrollo ClienteX 9,37 1% Migracion Duración(jornadas) %duration Mediciones inicio proyecto 70 60,78% Pruebas 38,56 33,48% Solución de problemas 4 3,47% Migración 1,3 1,13% Preparacion entorno servidor (Dia D -1) 0,64 0,56% Migración efectiva (Dia D) 0,41 0,36% Migración de aplicaciones 0,25 0,22% TOTAL 115,16
24. Demo Project Migración tipo
25. Pánico!!! Migración a SQL 2014+ TPC-C SQL Server 2012 TPC-C SQL Server 2016
26. Demo Pánico en migración a SQL Server 2016
27. Test de estrés Minuto AVG MAX AVG2 MAX2 45 1624,528802 2194,034666 82,15531969 95,13892289 46 1936,319018 2879,29798 95,62455852 99,42307696 47 1870,446072 2733,40779 97,66567275 100 48 1717,19154 2486,401791 96,67114984 99,9023509 49 1744,939078 2395,207878 95,24085408 98,90873864 50 1719,669011 3119,186734 96,01381844 98,92578881 Grand Total 1768,84892 3119,186734 93,89522889 100 Batch Requests/sec % Processor Time
28. Tareas post-migración •QueryStore •Row level security •Dynamic datamasking •Backup to Azure •Buffer Pool Extension •Data/Backup Compression •Transparent Data Encryption •Resource Governor •Incremental statistics •Mejoras en seguridad •Stretch database •Partitioning •AlwaysOn •Transact-SQL enhancements •Proyectos de BBDD •Semantic search •Operational Analytics •In-memory+OnDisk+Columnar •Polybase •Always Encrypted •JSON •Temporal tables •Spatial Support •Filestream Support •Hierarchy Id Support •CDC,Change Tracking Cambios significantes en aplicación, operacionales o de desarrollo Cambios moderados Cambios menores
29. Consejos: Sé precavido • Piensa en planes de “vuelta atrás” • Anota benchmarks antes de la actualización • Funcional, rendimiento, Stress • Tiempo necesario para la actualización • Ninguna de las herramientas de actualización muestra “tiempo restante…” ? • Realiza pruebas de actualización • Identifica problemas de compatibilidad hacia atrás
30. Consejos: Sé precavido • Captura actividad que cubra el uso de tu sistema • Trazas de SQL Profiler • Monitor de rendimiento • Si es posible Team System para preparar carga de la aplicación actual • Procesos no tan habituales: fin de mes, cierre de ejercicio
31. Contenido de la sesión • ¿Interesa migrar? • Tipos de actualización • Escenarios soportados • Características discontinuadas y deprecadas • Cómo enfrentarnos a migraciones
32. También puedes preguntar tus dudas con el hashtag #SQSummit en Twitter ADAPTIVE BI FRAMEWORK Te ayudaremos a mejorar la velocidad de desarrollo de tu plataforma de analítica de negocio basada en nuestra experiencia: •Diseña antes de construir •Automatización de procesos por ETL •Servicios de mentoring para ayudarte a conseguir mejores prácticas para la construcción de procesos específicos y plataformas de analítica de negocio •Muy fácil de mantener SOLIDQ FLEX SERVICES Con SolidQ Flex Services evitarás sustos, consiguiendo que tus sistemas sean estables. Desde una solución sencilla de monitorización, hasta un servicio de atención de incidencias 24/7, mantenimiento proactivo, resolución de problemas y línea de soporte. Todo con un coste fijo mensual… y tú dedica el tiempo a las cosas importantes. ¡Gracias!