Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer...

49
Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA

Transcript of Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer...

Page 1: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000

Diego CasaliSystems Engineer

Microsoft de Argentina

Region Cordoba y NOA

Page 2: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Agenda• Que entendemos por Alta

Disponibilidad (HA)?

• Tecnologías de HA

• Administrando para HA

• Diseñando una Solución para HA

Page 3: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Alta Disponibilidad• Es

– Una combinación de diseño, personas, procesos, y tecnología

• No es– Solo una solución tecnológica– Sinónimo de escalabilidad o managability– Una decisión de IT sin conocimiento del

negocio– Una decisión de negocio aislada del costo de

“downtime”

Page 4: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Cinco Que?

• Que es un Nueve?

Respuesta Ecuación

Por Año ( 8760 – HorasBajoPorAño) / 8760

Por mes ( (24 * NumDiasEseMes) – HorasBajoPorMes)/ (24 * NumDiasEseMes)

Por semana ( 168 – HorasBajoEsaSemana) / 168

12 34599.999 % uptime

A=(F-R)/FA=disponibilidadF=MTBF(Tiempo medio entre fallas)R=Tiempo medio para reparar

Page 5: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Bajando los NuevePorcentaje Sin Respuesta (por Año)

100% Nada

99.999% < 5.26 minutos

99.99% 5.26 – 52 minutos

99.9 % 52 m – 8 h, 45 min

99 % 8 h, 45 m – 87 h, 36 m

90% 788 h, 24 m – 875 h, 54 m

Page 6: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Que significa No Disponible?

• Total de No Disponibilidad– Mantenimiento planeado de Servidores– Caídas no planeadas (ataques, fallas de

hardware, etc.)– Tiempo para switchear a tecnología Disponible– Restauración de Bases de Datos– Que mas……

Page 7: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Que significa No Disponible? (cont.)

• No Disponibilidad perceptible– SitioWeb/aplicación/etc. caído, SQL Server

Funcionando– Problemas de Red– Implementando nueva versión de aplicación– Errores de usuario o aplicación– Recursos mal entrenados

– Etc.

Page 8: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Como obtener mayor Disponibilidad

– Hardware redundante y de Calidad• Correctamente Administrado (SW & HW)

– Procesos que funcionen, incluyendo control de cambios

– Planes apropiados de mitigación (recuperación de desastres, etc.) que estén probados

– Excelencia en Operación, planificación y diseño

– Staff entrenado y calificado – valido en cualquier disciplina

Page 9: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Como obtener mayor Disponibilidad (cont)

• … pero cuales son sus barreras a la Alta Disponibilidad?– Personas?– Procesos?– Dinero?– Tiempo?– Tecnología?– …

Page 10: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

El Costo de HA

99 99.1 99.2 99.3 99.4 99.5 99.6 99.7 99.8 99.9 100

Availability

Cos

t

Page 11: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Calculando el Tiempo y Costo de HA

2: Costos de Administración /Procedimientos

1: Hardware y Software

7: Costos de Usaurios finales

3: Soporte

4: Desarrollo

5: Costos de Telecomunicaciones

6: Caídas

Factores de TCO

Page 12: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Agenda• Que entendemos por Alta

Disponibilidad (HA)?

• Tecnologías de HA

• Administrando para HA

• Diseñando una Solución para HA

Page 13: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Dos Niveles …

• Tecnología SQL– Failover Clustering – Log Shipping– Replicación

• Tecnología Windows– Windows Clustering– NLB

COMBINACIONESCOMBINACIONES

Page 14: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Como funciona el Failover Clustering

PC Clientes

Nodo A Nodo B

Array de discos compartido

HeartbeatSQL ServerSQL Server SQL ServerSQL Server

Page 15: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Log Shipping

SecondaryPrimary

Log Shipping Monitor

Transaction Logs

Page 16: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Usos de Log Shipping

• Usos para HA:– Facilita la actualización 7.0 2000– Método de HA secundario para un failover

cluster (resuelve el problema de la distancia)– Llevar a cabo mantenimiento en el Servidor

principal– Chequeo de estado de la BD

• También para reportes y consultas (no HA)

Page 17: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Evaluando la Replicación como una solución para HA

• Si están descartados failover clustering y log shipping

• Detección de fallas y failover no son automáticos• Cuando una funcionalidad Warm-standby sea

aceptable• Standby server no es idéntico al primario:

– Algunos esquemas de usuario y algunos datos de sistemas no son replicados

– Los datos pueden no estar actuales– La replicación Merge no es consistente transaccional

mente

• Hay algunos beneficios:– Particionar los datos en el standby server (se pueden

replicar partes de tablas)– Acceso a datos para reportes

Page 18: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Comparacion de Soluciones Standby Hot y Warm

• Definiciones– Hot standby– Warm standby

• Soporte de failover Hot standby– Se requiere Failover clustering– Detección de Falla y Failover son automáticos

• Soluciones Warm standby– Log shipping – Transfiere backups desde un

servidor primario a uno secundario– Replicación – Provee acceso simultaneo a

datos en otro nodo y particionamiento de objetos y datos

Page 19: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Comparación Tecnológica de HA en SQL

Feature Failover Clustering Log Shipping Transactional Replication

Failure detection Automatic Not Automatic Not Automatic

Automatic switch to secondary

Yes Manual Manual

Protects against failed server process

Yes Yes, but … Yes, but …

Protects against failed disk

No, Shared-disk clustering Yes, but … Yes, but …

Meta data support All system and user schema and data for all databases

Some system, all user schema and data for select databases

Some user schema and data

Transactionally consistent

Yes Yes Yes

Transactionally current

Yes No, since last transaction log backup

No, since last replicated transaction

Page 20: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Feature Failover Clustering Log Shipping Transactional Replication

Performance impact

None Minimal (file copying on primary)

Log reader continually running

Time to switch Seconds to minutes, depends on db recovery time

Seconds, more to recover more thoroughly

Seconds, more to recover more thoroughly

Locations Close (unless using distance clusters on HCL)

Not location bound Not location bound

Additional complexity

Some Some More

Maximum number of servers

4 32 with NLB, otherwise no limit

No limit

Standby available for reporting, etc.

N/A – not a warm standby solution Yes. Possible Read-only access when logs are not being loaded

Yes

Partitioning of data to standby

No No Yes

Comparación Tecnológica de HA en SQL

Page 21: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Backup/Restore• Se necesita una buena estrategia siempre

pero …– Para HA, debe ser el ultimo resorte

• Pros– Usted conoce de esto y lo Ama !!!!!

• Cons– Fallos de medios, como cinta– Tiempo para llevarlo acabo– No crea redundancia– En realidad, se necesita mas que datos de

usuario – BD de sistema, SO, etc.

Page 22: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Balance de carga de red (NLB)

• Generalmente utilizado para escalabilidad no de SQL Server

• Puede ser usado con BD para obtener HA – usarlo solo en las situaciones correctas– Servidores de datos redundantes para solo

lectura (i.e. información de catalogo)– Front end switch para el cambio de rol en log

shipping– Servidor en espera para los Servicios de

Análisis (BI-DW)

Page 23: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Agenda

• Que entendemos por Alta Disponibilidad (HA)?

• Tecnologías de HA

• Administrando para HA

• Diseñando una Solución para HA

Page 24: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Prevención de Desastres

• Administración de Riesgos

• Estrategias para prevención de desastres

Page 25: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Manejo de Riesgos

Lista de

Riesgos

Descartados Planear

3

Analizar2

Controlar5

Identificar1

Documento

con Riesgos

Seguir4

Topn

Page 26: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Estrategias para prevención de desastres

• Determinar potenciales causas de caida

• Crear Procesos operacionales efectivos

• Prevenir caídas en forma automática– Hardware redundante– Volcado automático a un Servidor en espera– ....DDR y replicación o log shipping con NLB

Page 27: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

• Principios de Data Centers

• Control de Cambios

• Staff

• Plan de recuperación ante desastres

• Libro de Acción

Establecer excelencia operacional

Page 28: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Monitoreo para HA

• Dos Teorías:– Todos los contadores el 100% del tiempo– Solo lo que se necesite

• No olvidar el Profiler

• Coordinar con Event Logs, SQL Logs, IIS Logs, etc. – Horarios de diferencia entre servidores– HA es una solución total … no solo SQL

Page 29: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Backup y Restore

• Desarrollar una estrategia de backup• Full database backups• File/filegroup backups• Transaction log backups• Imagen de disco de SO

• Probar backups en otro servidor

• Rotar cintas off-site– Usar servicios profesionales– Asegurarnos que utilizan buenos principios de

Data Centers

Page 30: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Backup y Restore (cont)

• Testear los planes de recupero– Localizar cintas– Testear usando la interfase grafica– Testear usando solo script– Testear con diferentes personas en todos los

equipos

• Cuanto tiempo lleva?• Conocerá al CEO/CFO/CIO cuando un

servidor importante este caído…• “esta listo ya, esta listo ya?”

Page 31: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

• Una de las claves para HA– Sin esto, …..rece para que todo funcione

• Diferentes planes: – Sitio caído– Servidor caído– Perdida de Datos

• Documentar el plan (mantenerlo actualizado) – testear, testear TESTEAR! Almacenar resultados/aprendizajes

• Almacenamiento de backups Off-site, incluyendo el manual de operaciones (libro de acción)

Diseñando un Plan de recuperación en desastres

Page 32: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

• Desastre ocasionado por la naturaleza ou Hombre

• Buen caso para geoclusters/log shipping

• Puede darse que cada minuto sea crucial – tener un hot/warm/cold standby es crucial

• Si no se cuenta con un hot/warm/cold standby, estar preparado para reconstruir ….rece por que cuente con buenos y recientes backups

Sitio Caído

Page 33: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

• Esto tiende a ser un falla de sw/sw failure o un error human

• Otro buen argumento para geoclusters/log shipping y redundancia

• Si necesita reconstruir, tenga a mano:– Configuración de Sistema (Libro de Acción)– Cintas/CDs disponibles– Software, Claves de CD– Números de soporte

Servidor Caído

Page 34: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Perdida de Datos

• Error Human? Falla de Hardware? – Puede hacer rollback/solucionar el problema?

(i.e. deshacer vía aplicación, instrucción SQL, o herramienta como Lumigent, etc.)

• En estos casos es cuando un plan de backup/restore real, probado, testeado lo salvara

Page 35: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Agenda

• Que entendemos por Alta Disponibilidad (HA)?

• Tecnologías de HA

• Administrando para HA

• Diseñando una Solución para HA

Page 36: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Preguntas Básicas

• Es Misión Critica? Que ocurre cuando esta caído? (Perdida de dinero? Perdida de vidas?)

• EN cuanto impacta el negocio no disponer de HA? Calcular cuanto costaría estar fuera de servicio

• Que industria? Es OLTP, DSS?

• Cual es el presupuesto?

• Que disponibilidad y performance espera el usuario final?

Page 37: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

• No hay ninguna guía al 100% que sirva para cualquier situación

• Asegurarse que la tecnología sea soportable en nuestro entorno

• Solo porque algo “esta de moda”, puede que no sea correcto– i.e. Así como failover clustering es la mejor

opción en la mayoría de las situaciones, no es siempre la elección correcta

Seleccionando la tecnología correcta

Page 38: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Invertir en su App?

• Contrario a lo que se piensa, no importa cuan confiable sea el HW, mala app = baja disponibilidad– Invertir mucho en el desarrollo de su aplicación

• Proyecto Nuevo?– Mejor escenario

• Haga lo correcto desde el comienzo

Page 39: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

• Entorno/app existente? – Evaluar la infraestructura

• Necesita nueva estrategia de mantenimiento?• Nuevo HW? Migración de Datos?

– Rediseño de App?

• Crecimiento …– Capacidad, escalabilidad

• Ajustar índices, esquema, mantenimiento; posibles cambios de diseño

• Que hacer si el HW no escala mas? Minimizar el downtime por el upgrade

Invertir en su App? (cont)

Page 40: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Diseñar su Aplicación de BD para HA

• Involucrar a sus programadores desde el inicio

• Utilizar versioning & source control para todo el código – incluyendo SQL

• Manejar la implementación con cuidado – construir programas con instaladores y desinstaladores “Limpios”

• Utilizar tecnologías apropiadas en el código

Page 41: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

• Establecer entornos de desarrollo, testing, mas uno que sea exacto al entorno de producción (con los datos actuales de producción)

• Tener en cuenta las caídas, y como manejarlas – no dejarlo para IT

• Datos de solo lectura deben manejarse en cache para mejorar la performance de la aplicación (XML)

Diseñar su Aplicación de BD para HA (cont)

Page 42: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

• Resolver cualquier problema de la aplicación que afecte directamente SQL Server– Locking/blocking– Optimizar Consultas/Indización– No procesar sobre la BD (cursores, grandes sp)– Usar sp para IUD– Asegurarse que las estadísticas esten

actualizadas

Diseñar su Aplicación de BD para HA (cont)

Page 43: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

• En lo posible codificar aplicaciones sin estado, si se mantiene estado, seleccionar una forma adecuada de hacerlo

• La experiencia del usuario debe ser positiva• Seguridad• Hacer competir y convivir su app con otras con

las que tenga que vivir• No codificar para un Service Pack/Versión

específicos (OS/SQL)• Dejar que los requerimientos definan la

tecnología

Diseñar su Aplicación de BD para HA (cont)

Page 44: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Diseñar su Aplicación de BD para HA (cont)

• Utilizar nombre completos para tablas y procedimientos almacenados

• Colocar todos los objetos en BD de usuario, no de sistema

• No “harcodear” en la aplicacion nombres de servidores, nombres de instancias, y direcciones IP

• Reutilizar conexiones de BD (Connection pooling)

Page 45: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Diseñar su Aplicación de BD para HA (cont)

• De ser necesario crear errores personalizados de SQL Server, pero asegurarse que no entren en conflicto con errores personalizados de la app

• Analizar Database collations• Nombres de Usuario y logins únicos• Asegurarse que trabajos de una app no

entren en conflicto con otras app• Transacciones pequeñas (rollback de

failover clustering y Log Shipping)

Page 46: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

En Resumen

• Una vez que el servidor este corriendo, déjelo en paz….

• Cuatro pilares de HA– Diseño

– Personas

– Procesos

– Tecnología (comprar un nuevo cluster e instalar SS2KEE no es suficiente)

Page 47: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

9

Hardware bien administradoHardware bien administrado

• Puede tolerar algunas fallas de HW

9Buena administración y planificaciónBuena administración y planificación

• Puede tolerar la mayoría de las fallas de HW• Puede tolerar tareas normales de ope (ej., UPG de SW)• Puede tolerar algunas fallas de SW

9

Excelencia operacional, de diseño y de planificaciónExcelencia operacional, de diseño y de planificación

• Puede soportar la mayoría de las caídas planeadas o no• Puede tolerar algunas fallas de operaciones

99Casi sin administrarCasi sin administrar

En

Res

um

en (

con

t)

Page 48: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

Para mas Información … • SQL Server Technical Information

(http://www.microsoft.com/sql/techinfo/)– Mucha info & links, incluyendo:

• SQL Server 2000 Operations Guide• SQL Server 2000 Resource Kit (info only; you need the printed

book the CD-ROM)• SQL Server 2000 Failover Clustering Whitepaper

• Capacity Planning – Microsoft SQL Server 2000 Administrator’s Companion

• MS Support Homepage (Q Articles)

Page 49: Soluciones de Alta Disponibilidad y Escalabilidad con SQL Server 2000 Diego Casali Systems Engineer Microsoft de Argentina Region Cordoba y NOA.

© 2002 Microsoft Corporation. All rights reserved.© 2002 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.