Creando Escenarios Para Reportes Con Bases de Datos SNAPSHOT - SQL PASS Chile

Embed Size (px)

Citation preview

PowerPoint Presentation

Creando escenarios para reportes con bases de datos SNAPSHOT Hctor Meza SalgadoArquitecto de [email protected]

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerAgendaEsquema de un SNAPSHOT de Base de DatosQue es?Para que sirve?FuncionamientoMetadatosRequisitos y LimitacionesAplicacinCrear una SNAPSHOTRevertir una SNAPSHOTEliminar una SNAPSHOTCuando no usar SNAPSHOT

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerAgendaEscenarios de usoTpicos AvanzadosMirroring + SNAPSHOTSNAPSHOT IsolationUso de memoria (cach de datos)Sparse Files

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerEsquema de un SNAPSHOT de BDQue es una SNAPSHOTUna vista esttica de slo lectura de una BD origen.Pueden existir varias SNAPSHOT de una BD coexistiendo en la misma instancia de servidor.

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerEsquema de un SNAPSHOT de BDPara que sirve una SNAPSHOTCrear una BD para reportes.Devolver una BD al punto en que se creo la SNAPSHOT.Prevencin de errores por uso administrativo o de usuarios de la BD.Utilizar una BD en Mirroring que est en mantenimiento.Obtener una imagen de una BD antes de aplicar un cambio importante (paso a produccin).Administrar escenarios de pruebas de desarrollo y QA.

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerEsquema de un SNAPSHOT de BDFuncionamientoTrabaja a nivel de pginas de datos.Antes de modificar una pgina original la copia a la BD SNAPSHOT (copy-on-write).Almacena las pginas originales en archivos dispersos (sparse files, esencialmente una entrada File allocation table de NTFS).Al momento de crear la SNAPSHOT las transacciones no confirmadas son descartadas.

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerEsquema de un SNAPSHOP de BDFuncionamientoNo hay almacenamiento redundante en la SNAPSHOT, las pginas no modificadas se leen de la BD Original.El espacio en disco de una SNAPSHOT depende la cantidad de pginas diferentes son modificadas de la BD original.El patrn de actualizacin de una BD incide directamente sobre las operaciones de lectura e ndice de crecimiento del tamao de los archivos de la BD SNAPSHOT.

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerEsquema de un SNAPSHOT de BDMETADATOSUna BD SNAPSHOT expone los metadatos de la BD original.No expone metadatos de una BD en Mirroring o de BD con funciones de Full-Text Search activados.En sys.database_files de una BD SNAPSHOT la columna physical_name siempre almacena el nombre de los archivos de la BD de origen.Al revertir una BD desde una SNAPSHOT los Metadatos no se alteran.Las BD SNAPSHOT se crean con la opcin ALLOW_SNAPSHOT_ISOLATION en ON.

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerRequisitos y LimitacionesRequisitosSlo disponible en SQL Server 2005 Enterprice y versiones superiores.Espacio en disco, dependiendo del nivel de actualizacin de la BD origen.Aplicable a cualquier BD de usuario, independiente si tienes otras opciones del motor activadas:RplicacinLog ShippingMirroring (en modo sincronizado)Fail Over Clustering

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerRequisitos y LimitacionesLimitacionesSe crear en la misma instancia de la BD de origen.No admite operaciones de Backup/Restore.Hereda esquema de seguridad de la BD de origen y no puede ser alterado.En combinacin con Log Shipping, slo admite SNAPSHOT sobre la BD primaria.Los archivos FILESTREAM no son compatibles con una SNAPSHOT.Una BD original con SNAPSHOT no puede:Ser eliminada, des-atachada ni restaurada.Reduce su rendimiento por el aumento de E/S.No se pueden eliminar archivos de la BD ni se sus SNAPSHOTS.

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerRequisitos y LimitacionesLimitacionesNo permite operaciones de Full-text indexing.Slo de pueden crear SNAPSHOTS sobre NTFS (no FAT32 ni RAW).Si una BD origen queda en RECOVERY_PENDING es probable que no se tenga acceso a sus SNAPSHOTS.Una BD SNAPSHOT no se puede configurar como una BD compartida escalable.Las BD SNAPSHOT heredan el estado de los grupos de archivos al momento de crearla, on line y off line. Si al momento de grabar una pgina en una BD SNAPSHOT se produce un error, por espacio en disco, la BD queda SUSPECT.

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerAplicacinCrear una SNAPSHOTSe crea a partir de Transact-SQL.CREATE DATABASE AdventureWorks2008R2_dbss1800 ON( NAME = AdventureWorks2008R2_Data, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\AdventureWorks2008R2_data_1800.ss' )AS SNAPSHOT OF AdventureWorks2008R2;GO

Se pueden crear N SNAPSHOT a partir de una BD original, diferencindolas por el nombre.Para conectarse a la BD SNAPSHOT los clientes deben conocer el la instancia y el nombre.

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerAplicacinCrear una SNAPSHOT

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerAplicacinRevertir una BD original a partir de una SNAPSHOTSe revierte va Transact-SQL.USE master;GO

RESTORE DATABASE AdventureWorks2008R2 from DATABASE_SNAPSHOT = 'AdventureWorks2008R2_dbss1800';GO

Cualquier usuario con privilegios de RESTORE DATABASE en la BD de origen puede revertirla a una SNAPSHOT determinada.Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerAplicacinRevertir una BD original a partir de una SNAPSHOT

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerAplicacinRevertir una BD original a partir de una SNAPSHOTPara revertir la BD a una SNAPSHOT en particular se debe:Borrar cualquier SNAPSHOT adicional.La BD de origen no puede tener sus archivos comprimidos o de slo lectura.No debe haber archivos sin conexin, a menos que estuvieran as al momento de crear la SNAPSHOT.La reversin sobre-escribe cualquier actualizacin posterior a la creacin de la SNAPSHOT.Se vuelve a crear el Transaction Log, por lo que se interrumpe la secuencia de backups (rompe el Log Shipping).Durante la reversin la BD original ni la SNAPSHOT estn disponibles (In Restore).Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerAplicacinEliminar una SNAPSHOT Va Management Studio o Transact-SQL.DROP DATABASE AdventureWorks2008R2_dbss1800

Al eliminar una SNAPSHOT se borran todos los archivos dispersos asociados.Se terminan todas las conexiones de usuario.Cualquier usuario con privilegios de DROP DATABASE puede eliminar una SNAPSHOT.

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerAplicacinCuando no usar una SNAPSHOT No se debe usar como alternativa de Alta Disponibilidad.No reemplaza un esquema regular de Backups.Una BD SNAPSHOT no protege contra errores de disco o corrupcin de la BD de origen.

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerEscenarios de UsoInformes por perodo

Bases de datos para ambientes de prueba

Recuperacin de Emergencia en Produccin

Seguridad para operaciones crticas

Bases de datos para reportes

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerTpicos Avanzados

Mirroring + SnapshotCopyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerSNAPSHOT Isolation

Se basa en MVCC (Multi version concurrency control)

Ventajas: Mayor nivel de consistencia incluso que un repetable red, con mayor nivel de concurrencia, ya que no realiza lockeos. Contras: Mayor overhead para mantener las distintas versiones de un conjunto de datos, lo que impacta en la performance. Uso Habitual: Cuando se necesita obtener informacin muy consistente y en entornos de alta concurrencia.

Tpicos AvanzadosCopyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerTpicos AvanzadosUso de Memoria

El SNAPSHOT de base de datos combina los datos que mantiene la BD Original + los cambios sucedidos desde la creacin del snapshot, cada base de datos es independiente, y los datos que necesita leer, residirn en su propia rea de memoria, ejemplo:La BD Original en el momento de creacin del Snapshot tena 100 pginas. Con el paso del tiempo de la original se borraron 30 pginas, por lo que en la Snapshot se registraron las 30 pginas "cambiadas". Al realizar lecturas de pginas suceder lo siguiente: Lecturas en la BD Snapshot de la tabla original devolver 100 pginas, y en su rea de memoria contendr las 100 pginas. Lecturas en la BD Original leern las 70 pginas, y en su rea de memoria contendr las 70 pginas.

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerTpicos AvanzadosSparse Files

Copyright 2012, SQL PASS Chile. All rights reserved.

Professional Association for SQL ServerReferenciasBooks on linehttp://msdn.microsoft.com/en-us/library/ms175158.aspx

Tech Nethttp://technet.microsoft.com/en-us/library/bb418432(SQL.10).aspx

Preguntas?Hctor Meza SalgadoArquitecto de [email protected]