Buenas practicas de configuracion sobre SQL Server

37
#SQSummit Buenas Prácticas De Configuración Sobre SQL Server Luis José Morán Cuenca [email protected] Data Platform Architect

Transcript of Buenas practicas de configuracion sobre SQL Server

Page 1: Buenas practicas de configuracion sobre SQL Server

#SQSummit

Buenas Prácticas

De Configuración

Sobre SQL Server

Luis José Morán Cuenca

[email protected]

Data Platform Architect

Page 2: Buenas practicas de configuracion sobre SQL Server

EN CUMPLIMIENTO CON LA LEY 15/1999 DE PROTECCIÓN DE DATOS DE CARÁCTER PERSONAL, PONEMOS EN TU CONOCIMIENTO QUE

ESTE EVENTO VA A SER GRABADO· Dichas grabaciones serán utilizadas por SolidQ, bien para uso interno o bien para la creación

de material de marketing con el fin de promocionar nuestra marca.

Page 3: Buenas practicas de configuracion sobre SQL Server

Buenas Prácticas de Configuración Sobre SQL Server

• Introducción• Seguridad

• Exceso de administradores• Permisos Sobre Cuentas de Servicio

• Administración• Métodos DR• Gestión de Recursos y Planificación• Database Mail

• Rendimiento• CPU• Memoria• Disco• Parametrización SQL Server

Page 4: Buenas practicas de configuracion sobre SQL Server

Introducción

Page 5: Buenas practicas de configuracion sobre SQL Server

Seguridad

• ¿Cuantos usuarios hay con rol sysadmin hay en vuestras instancias?

• ¿Porqué se hace esto?• Facilidad de administración• Rápidez• Algunos usuarios/apps necesitan permisos especiales• Los roles fijos de servidor o bbdd son poco flexibles• Problemas de esta práctica

• Concesión de permisos accidental a personas que no deberían tenerlo• Puertas abiertas de seguridad, riesgo evitable

• Cada día hay más usuarios, no se controla quien puede hacer que• Cambios en las instancias insospechados

Exceso de Administradores

Page 6: Buenas practicas de configuracion sobre SQL Server

Seguridad

Usar Roles de Servidor o de BBDD

Roles con permisos personalizados

Usar grupos de windows

Simplicación de la administración

Rapidez

Añaden un plus de seguridad

Exceso de Administradores \ Soluciones

Page 7: Buenas practicas de configuracion sobre SQL Server

DemoSeguridad Roles / Grupos Windows

Page 8: Buenas practicas de configuracion sobre SQL Server

Seguridad

• http://msdn.microsoft.com/es-es/library/ms144228.aspx

Permisos Sobre Cuentas de Servicio

Page 9: Buenas practicas de configuracion sobre SQL Server

Seguridad

• Todos los servicios con la misma cuenta en todos los servidores

• El usuario es administrador de SQL Server

• El usuario es administrador del dominio

Permisos Sobre Cuentas de Servicio

Page 10: Buenas practicas de configuracion sobre SQL Server

Seguridad

• Cuentas del Dominio con permisos mínimos

• Cuentas Virtuales

• Cuentas de Servicio Administradas

• Credenciales + Usuarios Proxy + Execute As

• Para Grupos de AO cuentas de domino o administradas en SQL Server 2016

Permisos Sobre Cuentas de Servicio \ Soluciones

Page 11: Buenas practicas de configuracion sobre SQL Server

Seguridad

• Cuentas Virtuales, son cuentas locales administradas donde la administración de contraseñas no necesaria y pueden tener acceso a la red con una identidad de equipo en un entorno de dominio:

• https://msdn.microsoft.com/en-us/library/ms143504.aspx#VA_Desc

Permisos Sobre Cuentas de Servicio \ Soluciones

Page 12: Buenas practicas de configuracion sobre SQL Server

Seguridad

• Cuentas de Servicio Administradas, son cuentas de dominio conadministración automática de pwd y administración SPNsimplificada

• SPN (Service Principal Name). Def Microsoft: Un nombre principal deservicio (SPN) es el nombre por el que un cliente identifica de formaunívoca una instancia de un servicio. El servicio de autenticación deKerberos puede utilizar un SPN para autenticar un servicio. Cuando uncliente desea conectarse a un servicio, busca una instancia delservicio, compone un SPN para esa instancia, se conecta al servicio ypresenta el SPN para que lo autentique el servicio

Permisos Sobre Cuentas de Servicio \ Soluciones

Page 13: Buenas practicas de configuracion sobre SQL Server

DemoSeguridad

Page 14: Buenas practicas de configuracion sobre SQL Server

Administración

• Backups• Problemas

• BBDDs Sin Backup• Tamaño del Log

• Backup del Log

• Problema: Tiempo máximo caída del negocio• Hay que hacer backups pero quiza no sea la solución• Cluster SQL Server

• Pro: • Failover Automático, aplica a toda la instancia• Tecnología con una eficacia demostrada

• Contras:• ROI• Almacenamiento Compartido

Métodos de DR (Disaster / Recovery )

Page 15: Buenas practicas de configuracion sobre SQL Server

Administración

• Problema: Tiempo máximo caída del negocio• Replicación:

• Transaccional• Pros:

• Muy escalable• Contras

• Mantenimiento• Trabaja tabla a tabla, para ser solución DR replicar todas tablas• No failover automático

• Log Shipping:• Pros:

• Muy Escalable

• Contras:• No failover automático

Métodos de DR (Disaster / Recovery )

Page 16: Buenas practicas de configuracion sobre SQL Server

Administración

• Problema: Tiempo máximo caída del negocio• Mirroring:

• Pros:• Failover Automático• No necesitas cluster de windows

• Contras• Trabaja a nivel de bbdd no de instancia• Requiere al menos el doble de espacio de almacenamiento ya que no es compartido

• AO:• Pros:

• FailOver Automático de las bbdds del grupo de disponibilidad• Muy Escalable

• Contras:• Requiere al menos el doble de espacio de almacenamiento ya que no es compartido

Métodos de DR (Disaster / Recovery )

Page 17: Buenas practicas de configuracion sobre SQL Server

Administración

• Problema procesos concurrentes que compiten por recursos

• Realizar análisis estricto• Incluir todas las tareas (negocio y SQL Server)• Objetivo evitar/minimizar concurrencia de tareas• Identificar permisos de cada proceso• Duraciones estimadas• Dependencias

Gestión de Recursos y Planificación

Page 18: Buenas practicas de configuracion sobre SQL Server

Administración

• Gestión Recursos y Planificación

• Las operaciones checkdb, backups, defragmentación, estadísticas son operaciones que consumen muchos recursos

• Si alguna de estas tareas se sale de la ventana de mantenimiento hay que considerar realizarla varias veces a la semana definiéndolas para unas determinadas bases de datos, tablas etc

Gestión de Recursos y Planificación

Page 19: Buenas practicas de configuracion sobre SQL Server

AdministraciónGestión de Recursos y Planificación

Page 20: Buenas practicas de configuracion sobre SQL Server

DemoPlanificación y Gestión de Recursos

Page 21: Buenas practicas de configuracion sobre SQL Server

Administración

• Problema, no se gestionan los fallos de los procesos un proceso puede estar fallando mucho tiempo y no nos enteramos

• Database Mail nos soluciona esto de manera rápida

Database Mail

Page 22: Buenas practicas de configuracion sobre SQL Server

Administración

• Hay que:• Crear un operador• Configurar el agente• Reiniciar el agente

Database Mail

Page 23: Buenas practicas de configuracion sobre SQL Server

DemoDatabase Mail

Page 24: Buenas practicas de configuracion sobre SQL Server

Rendimiento

• Modo de Energia High Performance• Para activar el turbo de los core• También depende de:

• Configuración BIOS• Si es una VM depende del Host

CPU

Muy útil en:• Bucles• Cursores

Motivos:

• Son procesos dependen frecuencia• No depende número cores

Page 25: Buenas practicas de configuracion sobre SQL Server

Rendimiento

• http://ark.intel.com/products/47923/Intel-Xeon-Processor-E5640-12M-Cache-2_66-GHz-5_86-GTs-Intel-QPI

• http://blogs.msdn.com/b/cindygross/archive/2011/03/09/power-saving-options-on-sql-server.aspx

CPU

Page 26: Buenas practicas de configuracion sobre SQL Server

Rendimiento

• Problema, excesivos planes paralelos provoca:• Mayor consumo de CPU necesario para operaciones simples• Genera mas esperas por CXPackets

CPU

500 500 500 8000 500

> Nº Planes Paralelos � > Posibilidad Esperas por CXPackets

Soluciones:• Actualizar estadísticas• Ajustar el umbral de coste de paralelismo• Reducir el nº de cores de los planes

paralelos

Page 27: Buenas practicas de configuracion sobre SQL Server

Rendimiento

• Umbral de costo de paralelismo.• Valor a partir del cual SQL Server considera usar un plan paralelo para

esa operación• El valor por defecto actual de SQL Server es bajo para los servidores y

la carga actual

• Ajuste del grado de paralelismo• Parametro que indica el numero de cores máximo que SQL Server

utilizará para una consulta que utilize paralelismo

CPU

Page 28: Buenas practicas de configuracion sobre SQL Server

Rendimiento

• Grado de Paralelismo, MS propone una regla base (después ajustar empiricamente)

• For servers that have eight or less processors, use the following configuration where N equals the number of processors: max degree of parallelism = 0 to N.

• For servers that use more than eight processors, use the following configuration: max degree of parallelism = 8

• For servers that have NUMA configured, max degree of parallelism should not exceed the number of CPUs that are assigned to each NUMA node with the max value capped to 8. This will increase the likelyhood of all parallel threads of a query to be located within a NUMA Node and avoid costly remote node data look ups

• For servers that have hyper-threading enabled, the max degree of parallelism value should not exceed the number of physical processors

CPU

Page 29: Buenas practicas de configuracion sobre SQL Server

Rendimiento

• Migraciones la velocidad de los nuevos procesadores• + Cores / - Frecuencia

CPU

Page 30: Buenas practicas de configuracion sobre SQL Server

Rendimiento

• Memoria Máxima de SQL Server• Memoria SQL Server = Total SO – (Memoria exclusiva para el SO + Memoria para otros

programas (Antivirus, herramientas) � No competir por la memoria

• Tener en cuenta memoria máxima de:• SO

• Versión de SQL Server

• Importante:• Como mínimo un 25% respecto del volumen total de datos

• Con SQL Server 2014 se puede usar buffer manager � SSDs

Memoria

Page 31: Buenas practicas de configuracion sobre SQL Server

Rendimiento

• Compresión de backups• Aplicarla siempre que el consumo de CPU lo permita• Adecuado para backups grandes• Especialmente en migraciones

Disco

Compresión

•+ Gasto CPU• - Escrituras

< Tamaño Fichero

•Disco + Lento•Escribe -

Proceso +

Rápido

Page 32: Buenas practicas de configuracion sobre SQL Server

Rendimiento

• Fragmentación• Interna• Externa• Influye elección planes

• Reconstruir / Reorganizar

VS

Parametrización de SQL Server

Page 33: Buenas practicas de configuracion sobre SQL Server

Rendimiento

• AutoIncrementos

Parametrización de SQL Server

Page 34: Buenas practicas de configuracion sobre SQL Server

Rendimiento

• Estadísticas

VS

Parametrización de SQL Server

Page 35: Buenas practicas de configuracion sobre SQL Server

Rendimiento

• Multiples Collations En BBDDs y Tablas• Problema

• Conversiones• No es posible la utilización de:

• Indices• Estadísticas• Debido a la conversión

Parametrización de SQL Server

Page 36: Buenas practicas de configuracion sobre SQL Server

DemoRendimiento

Page 37: Buenas practicas de configuracion sobre SQL Server

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.