COMUNIDAD SHAREPOINT DE COLOMBIA SharePoint Day Bogotá Julio 13 de 2013 SQL Server 2012 & SharePoint Server 2013, integración cercana a la perfección Guillermo Taylor @guillermotaylor guillermotaylor@hotmail.com http://mastergt68.wordpress.com Propósito y mensajes de valor • Que vean el por qué les irá mejor como IT Pros si implementan SharePoint Server 2013 con SQL Server 2012. • SharePoint Server 2013 se beneficiará más y ofrecerá mayor valor y potencial de negocio si se implementa con SQL Server 2012. • Instancia dedicada de SQL Server 2012 a la que se le haga “benchmark” constante de su capacidad de cómputo. • Escenarios de nube híbrida para complementar la plataforma y su valor. Descripción de la sesión Esta es una sesión con una combinación de conceptos claves sobre cómo se integra SharePoint Server 2013 con SQL Server 2012, esquemas de base de datos involucrados, descripciones de las bases de datos de SharePoint Server 2013, algunas prácticas recomendadas para mejorar el desempeño y por supuesto, algunas configuraciones esenciales a tener en cuenta de SQL Server 2012 para SharePoint Server 2013. Conceptos claves • SharePoint DEBE tener una instancia dedicada de SQL Server. • Crear un ALIAS para la instancia de SQL Server. • Planear un sistema E/S adecuado para SQL Server. • Planear por ambiente, por necesidad y por prácticas recomendadas. Estructura de base de datos en SQL Server 2012 Database Data File .MDF (1) .NDF (0-n) Latin1_General_CI_AS_KS_WS Log File .LDF (1-n) Práctica recomendada: Separación de archivos • Bases de datos de sistema: • 5 unidades de almacenamiento • Para bases de datos del sistema • Para archivos MDF/NDF de bases de datos de usuario • Para archivos LDF de bases de datos de usuario • Para TEMPDB • Para BACKUPS • Master – Configuración de SQL Server • MSDB – Automatización de SQL Server • TEMPDB – Área temporal • Model – Plantilla para nuevas BD • Nota mental: Recordar sacarlos del servidor y probarlos • Bases de datos de usuario: • Todas las aplicaciones Web • Todas las aplicaciones de Servicio • Otras de tipo no-de-sistema • • • • LDF: La más rápida posible TEMPDB: Al menos, más rápida que la de MDF MDF: Que ofrezca redundancia Ambientes de tipo Producción o Pruebas tipo QA Integración entre SP2013 & SQL2012 • 93.8% del contenido de SharePoint se almacena en SQL Server • La información de la configuración de la granja se almacena en la base de datos • El contenido de la administración central se almacena en una base de datos particular • La mayoría de las aplicaciones de servicio tienen al menos una base de datos de contenido • Todas las aplicaciones Web tienen al menos una base de datos de contenido • Durante la instalación de SQL Server, defina el parámetro de Default Collation Setting en Latin1_General_CI_AS_KS_WS Integración entre SP2013 & SQL2012 • Las colecciones de sitio solo residen en una base de datos • La base de datos de contenido contiene múltiples colecciones de sitio, con 2,000 como la configuración por defecto • Si la colección del sitio es mayor a 100 GB, entonces almacénela en su propia base de datos. • • • Tener presente que el límite de una colección de sitio es de 200 GB Usar SharePoint para controlar el tamaño de la base de datos • Cuotas • Número máximo de colecciones de sitio SharePoint solo usa un único grupo de archivos en SQL Server; esto en principio hace que el límite pueda ser de hasta 16 GB, así que hay que planear acorde. Ojo con los cambios al esquema de base de datos • Se recomienda no hacer cambios al esquema, por ser NO soportados por el grupo de producto • Mayor información en http://support.microsoft.com/kb/841057 • Entre los más “delicados” • Agregar o modificar índices • Modificar o eliminar procedimientos almacenados • Modificar la intercalación de la base de datos • Modificar cualquier elemento del esquema de base de datos Full Recovery Model Base de datos de contenido en Disco Duro Datos Data Agregar Contenido .LDF Checkpoint .MDF Datos Data Full Recovery Model (Recomendado) Simple Recovery Model Content Database Located on Hard Drive Datos Agregar Contenido .LDF Checkpoint Datos Simple Recovery Model .MDF Configurando la base de datos TEMPDB • Configurar archivos de datos de Tempdb = Número de Nucleos de Procesador • Configurar el tamaño de la base de datos Tempdb • Al menos 10% del tamaño total de las bases de datos de contenido O • El tamaño de la tabla más grande; cualquiera que sea el mayor número • Parámetros de configuración de la base de datos Tempdb • Incrementar el tamaño inicial • Incrementar el parámetro de “Autogrowth” (Usar MB en lugar de %) • Usar el “Simple Recovery Model” • Ubicarla físicamente en un sitio diferente a donde están las bases de datos de contenido Configuración de parámetro de memoria máxima Configuración de parámetro de memoria máxima SQL Max Memory = TotalPhyMem - (NumOfSQLThreads * ThreadStackSize) - (1GB * CEILING(NumOfCores/4)) NumOfSQLThreads = 256 + (NumOfProcessors*- 4) * 8 ThreadStackSize = 2MB on x64 or 4 MB on 64-bit (IA64) (* If NumOfProcessors > 4, else 0) SELECT * FROM sys.dm_os_performance_counters WHERE counter_name IN ('Target Server Memory (KB)','Total Server Memory (KB)') Max Degree of Parallelism A nivel de sistema operativo, ojo con el sistema E/S • El sistema E/S es crítico para la integración entre SharePoint Server 2013 & SQL Server 2012 • Revisión del parámetro “NTFS Allocation Unit Size” • 64K es óptimo, 4K equivale a una penalidad del 30% en desempeño • Uso de CHKDSK <drive> VERIFY • Si se puede, use FORMAT para configurar • Format <drive> /Q • /FS:NTFS /A:64K /V:<volume> /Y Evitando crecimientos enormes en Transaction Logs Sunday .mdf Monday .ldf Full Backup (2) .mdf .ldf Differential Tuesday .mdf Wednesday .ldf Differential .mdf .ldf Differential (3) Backup Log DB_Name to D:\SQLBackups\Weekly_T_Log.Bak with INIT .mdf .ldf Backup Log DB_Name to D:\SQLBackups\TempBackup.Bak (1)(4) Lose .mdf file of database on Thursday at 4:00pm Sobre las copias de respaldo • Copia local para recuperación rápida • • Mismo cuarto, mismo piso, mismo edificio, mismo ciudad… • Ustedes definen Copia remota para temas tipo desastre • Mismo país, mismo departamento… • ¿Tienen definida una política de respaldo adecuada? Verificando la integridad de las bases de datos • DBCC CHECKDB • Verifique la opción REPAIR_REBUILD para reparar errores, aunque no siempre es posible • La opción REPAIR_ALLOW_DATA_LOSS no es soportada • Ejecutarla durante horas no pico o en ventanas programadas; consume mucho tiempo • Para bases de datos muy grandes, considere la opción MAXDOP=1 SQL Server 2012 AlwaysOn • Requiere Windows Server Failover Clustering • Aprovecha SQL Server Mirroring • No es un remplazo para respaldos de bases de datos • Componentes • Grupos de disponibilidad • Bases de datos de disponibilidad • Réplicas de disponibilidad • Modos de disponibilidad • Tipos de Failover Prácticas recomendadas • Dedicated SQL Server / Instance • Modify Tempdb and Model System Database Settings • Create Multiple TempDB Files on Multiple Disks • Spread Data Files and Transaction Log Files Across Multiple Physical Drives or Locate on RAID 5/10 • Use Database Autogrowth Sparingly (Insurance Policy) • Reduces Fragmentation • Improves Performance Prácticas recomendadas • Create SQL Server alias • Content Databases < 200 GB • Avoid shrinking database files • Check database integrity with DBCC CHECKDB • Monitor disk seconds per read/write (<20ms) • Defragment SQL Server drives containing content database files • Perform regular backups of database and transaction logs Referencias y recomendaciones a seguir Recursos adicionales • Maximizing SQL 2012 Performance for SharePoint 2013 Whitepaper • TechNet’s White Paper Gallery for SharePoint • Database maintenance for SharePoint 2010 Products • Microsoft® SharePoint® 2013: Designing and Architecting Solutions Patrocinadores Q&A Recuerda Evaluar la sesión SQL Server 2012 & SharePoint Server 2013, integración cercana a la perfección Gracias