sql server 2005. comunidad technet regístrate en:

41
SQL Server 2005

Upload: chuy-jarquin

Post on 03-Feb-2015

5 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: SQL Server 2005. Comunidad TechNet Regístrate en:

SQL Server 2005

Page 2: SQL Server 2005. Comunidad TechNet Regístrate en:

Comunidad TechNet

Regístrate en:

http://groups.msn.com/technetmexico-online

Page 3: SQL Server 2005. Comunidad TechNet Regístrate en:

SQL Server 2005 WebcastParte 8: Minimizando el Tiempo Muerto

Page 4: SQL Server 2005. Comunidad TechNet Regístrate en:

Qué Cubriremos:

• Mejorar disponibilidad de la base de datos usando operaciones de restauración en línea

• Reinicio y recuperación mas rápido de las bases de datos con SQL Server 2005

• Usando la administración de la fragmentación para reducir la cantidad de tiempo muerto que usamos en el mantenimiento de la base de datos.

Page 5: SQL Server 2005. Comunidad TechNet Regístrate en:

Conocimiento Necesario

Nivel 200Nivel 200

• Experiencia manejando servidores Windows 2003

• Experiencia manejando y manteniendo SQL Server 2000.

• Experiencia administrando bases de datos.

Page 6: SQL Server 2005. Comunidad TechNet Regístrate en:

Agenda

• Revisión

• Operaciones de restauración en línea

• Administración de la fragmentación.

Page 7: SQL Server 2005. Comunidad TechNet Regístrate en:

RevisiónMejoras en la indexación• Declaraciones ALTER INDEX

• Operaciones de indexación en línea.

• Operaciones de indexación en paralelo.

• Opciones de bloqueo

• Incluir columnas.

Page 8: SQL Server 2005. Comunidad TechNet Regístrate en:

RevisiónMejoras en los índices

• Fragmentando usando ALTER INDEX con REORGANIZE y cláusulas REBUILD

SELECT TableName, IndexName, AvgPageFullness, AvgFragmentationFROM sys.dm_db_index_physical_stats(DEFAULT, '*', DEFAULT, 'DETAILED')ORDER BY TableName, IndexName

• Monitor usando SQL Server Management Studio o dinámicamente usando funciones de administración.

Page 9: SQL Server 2005. Comunidad TechNet Regístrate en:

RevisiónMejoras en la indexación• Nueva

herramienta de tuning en SQL Server 2005

• Optimizar la estructura de la base de datos para una especifica carga de trabajo

Page 10: SQL Server 2005. Comunidad TechNet Regístrate en:

RevisiónMejoras en la indexación

¿Cuál es la sentencia que puedes usar para fragmentar un índice?

1. ALTER INDEX con la opción REORGANIZE.

2. ALTER INDEX con la opción DEFRAGMENT.

3. ALTER INDEX con la opción REBUILD.

4. DBCC INDEXDEFRAG

Page 11: SQL Server 2005. Comunidad TechNet Regístrate en:

RevisiónMejoras en la indexación

¿Cual es la vista donde puedes buscar los índices de la fragmentación?

1. sys.dm_db_index_operational_stats.

2. sys.dm_db_index_physical_stats.

3. sys.dm_db_index_usage_stats.

4. sys.indexes.

Page 12: SQL Server 2005. Comunidad TechNet Regístrate en:

Agenda

• Revisión

• Operaciones de restauración en línea

• Administración de la fragmentación

Page 13: SQL Server 2005. Comunidad TechNet Regístrate en:

Operaciones de restauración en líneaDescripción

• SQL Server 2000– La base de datos no esta disponible durante la

restauración.

• SQL Server 2005– La base de datos permanece en línea si el filegroup

primario permanece en línea

• Opciones de Restauración– Pagina

• Otras paginas y archivos permanecen en linea.

– Archivos / Grupo de archivos (Filegroups)• Solamente los filegroups afectados se encuentran fuera de

línea los demás permanecen en línea.

Page 14: SQL Server 2005. Comunidad TechNet Regístrate en:

Operaciones de restauración en líneaSeguimiento del daño en la pagina• Daños a las paginas encontrados al leer

– Una pagina rota o un error en el checksum– ID erróneos en las paginas– No se puede leer

• Bases de datos permanecen disponibles– Transaction rolls back– Errores durante el rollback forza a la base de datos a un

reinicio.• Daños en las paginas

– Automáticamente guardar el error en un log con suspect_page_table

– Se puede restaurar y recuperar en línea– Trabajar en la base de datos con un solo filegroup

Page 15: SQL Server 2005. Comunidad TechNet Regístrate en:

Operaciones de Restauración en líneaRestaurando una pagina

1. Obtener el ID de las paginas dañadas.

SELECT * FROM msdb..suspect_page_tableSELECT * FROM msdb..suspect_page_table

Page 16: SQL Server 2005. Comunidad TechNet Regístrate en:

Operaciones de restauración en líneaRestaurando una pagina1. Obtener el ID de las paginas dañadas.

2. Hacer un respaldo de la parte activa del Log de transacciones

BACKUP LOG AdventureWorksTO DISK = 'Active_Log.bak' WITH NO_TRUNCATE;

BACKUP LOG AdventureWorksTO DISK = 'Active_Log.bak' WITH NO_TRUNCATE;

Page 17: SQL Server 2005. Comunidad TechNet Regístrate en:

Operaciones de restauración en líneaRestaurando una pagina

1. Obtener el ID de las paginas dañadas.

2. Hacer un respaldo de la parte activa del Log de transacciones

3. Restaurar las paginas dañadas del mas reciente respaldo

RESTORE DATABASE AdventureWorks PAGE = '3:3241'FROM DISK = '...' WITH NORECOVERY;

RESTORE DATABASE AdventureWorks PAGE = '3:3241'FROM DISK = '...' WITH NORECOVERY;

Page 18: SQL Server 2005. Comunidad TechNet Regístrate en:

Operaciones de restauración en líneaRestaurando una pagina1. Obtener el ID de las paginas dañadas.

2. Hacer un respaldo de la parte activa del Log de transacciones

3. Restaurar las paginas dañadas del mas reciente respaldo

4. Aplicar el respaldo del log y recuperar la base de datos

RESTORE LOG AdventureWorksFROM DISK = '...' WITH NORECOVERY;

RESTORE LOG AdventureWorksFROM DISK = '...' WITH RECOVERY;

RESTORE LOG AdventureWorksFROM DISK = '...' WITH NORECOVERY;

RESTORE LOG AdventureWorksFROM DISK = '...' WITH RECOVERY;

Page 19: SQL Server 2005. Comunidad TechNet Regístrate en:

Operaciones de restauración en líneaRestaurando una pagina1. Obtener el ID de las paginas dañadas.

2. Hacer un respaldo de la parte activa del Log de transacciones

3. Restaurar las paginas dañadas del mas reciente respaldo

4. Aplicar el respaldo del log y recuperar la base de datos

5. Bring the database up to date using the active log backup RESTORE LOG AdventureWorks

FROM DISK = 'Active_Log.bak' WITH RECOVERY;

RESTORE LOG AdventureWorksFROM DISK = 'Active_Log.bak' WITH RECOVERY;

Page 20: SQL Server 2005. Comunidad TechNet Regístrate en:

Operaciones de restauración en líneaRestaurando una archivo• Si mas de cinco paginas son dañadas

• Procedimiento:1. Respalda el log de transacciones activo

BACKUP LOG AdventureWorksTO DISK = 'Active_Log.bak' WITH NO_TRUNCATE;

BACKUP LOG AdventureWorksTO DISK = 'Active_Log.bak' WITH NO_TRUNCATE;

Page 21: SQL Server 2005. Comunidad TechNet Regístrate en:

Operaciones de restauración en líneaRestaurando una archivo• Si mas de cinco paginas son dañadas

• Procedimiento:1. Respalda el log de transacciones activo2. Restaura el archivo dañado

RESTORE DATABASE AdventureWorks FILE = 'Logical_Damaged_Filename' FROM DISK = '...' WITH NORECOVERY

RESTORE DATABASE AdventureWorks FILE = 'Logical_Damaged_Filename' FROM DISK = '...' WITH NORECOVERY

Page 22: SQL Server 2005. Comunidad TechNet Regístrate en:

Operaciones de restauración en líneaRestaurando una archivo• Si mas de cinco paginas son dañadas

• Procedimiento:1. Respalda el log de transacciones activo2. Restaura el archivo dañado3. Restaura los logs de transacciones

RESTORE LOG AdventureWorksFROM DISK = '...' WITH NORECOVERY;

RESTORE LOG AdventureWorksFROM DISK = '...' WITH NORECOVERY;

RESTORE LOG AdventureWorksFROM DISK = '...' WITH NORECOVERY;

RESTORE LOG AdventureWorksFROM DISK = '...' WITH NORECOVERY;

Page 23: SQL Server 2005. Comunidad TechNet Regístrate en:

Operaciones de restauración en líneaRestaurando una archivo• Si mas de cinco paginas son dañadas

• Procedimiento:1. Respalda el log de transacciones activo2. Restaura el archivo dañado3. Restaura los logs de transacciones4. Restaura el log de transacciones activo y recupera

la base de datos

RESTORE LOG AdventureWorksFROM DISK = 'Active_Log.bak' WITH RECOVERY;

RESTORE LOG AdventureWorksFROM DISK = 'Active_Log.bak' WITH RECOVERY;

Page 24: SQL Server 2005. Comunidad TechNet Regístrate en:

Operaciones de restauración en línea¿Restaurar un archivo o una pagina?• Considera restaurar la pagina cuando

– Cuando tienes un numero limitado de paginas– Cuando debes mantener una disponibilidad máxima

• Considera restaurar el archivo cuando– Un dispositivo esta fallando

• Cuando tienes un gran nuera de paginas dañadas• Cuando necesitas reubicar los datos en otra dispositivo

– Cuando puedes tolerar que el filegroup quede inaccesible

Page 25: SQL Server 2005. Comunidad TechNet Regístrate en:

Restaurando una pagina en líneaRestaurando una pagina en línea Corrompiendo los datos de un archivoCorrompiendo los datos de un archivo Accesando a una pagina dañadaAccesando a una pagina dañada Identificar una pagina dañadaIdentificar una pagina dañada Restaurar una pagina dañadaRestaurar una pagina dañada

DemostraciónDemostración

Page 26: SQL Server 2005. Comunidad TechNet Regístrate en:

Operaciones de restauración en líneaRecuperación y reinicio rápido• La recuperación de base de datos comprende dos fases

– Haga de nuevo los cambios en registro de la transacción pero no en base de datos

– Desahace los cambios no hehos a la base de datos

• Con SQL Server 2000, la base de datos no esta disponible mientras redo and rollback phases complete

• Con SQL Server 2005, database available when redo phase completes– La fase de Rollback continua mientras esta en uso la base de

datos – Las paginas que requieran Rolback permeceran bloqueadas

hasta que termine.

Page 27: SQL Server 2005. Comunidad TechNet Regístrate en:

Agenda

• Revisión

• Operaciones de restauración en línea

• Administración de la fragmentación.

Page 28: SQL Server 2005. Comunidad TechNet Regístrate en:

Administración de la fragmentaciónFilegroups y disponibilidad• Filegroup

– Administrar los archivos que puedes administrar en grupo

– Frecuentemente los usamos para particionar los datos

• Las bases de datos tiene uno o mas filegroups

– Filegroup primario bloquea los metadatos del sistema

– Alamacnamos los datos del usuarios sobre filegroups definidos por el usuario

• Filegroup es una unidad de disponibilidad

– Si una archivo no esta disponible, el filegroup esta fuera de linea

– Otros filegroups permanecen en• Si el filegroup primario esta en linea, la

base de datos esta disponible

DatabaseDatabase

PrimaryPrimaryFilegroupFilegroup

Filegroup AFilegroup A

Filegroup BFilegroup B

Arcgivos no Arcgivos no disponibles, disponibles, filegroup fuera de filegroup fuera de linealinea

Todos loa archivos Todos loa archivos disponibles, disponibles, filegroup en lineafilegroup en linea

Primer filegroup en Primer filegroup en linea, base de linea, base de datos disponibledatos disponible

Page 29: SQL Server 2005. Comunidad TechNet Regístrate en:

Administración de la fragmentaciónFilegroups y disponibilidad• Respaldo de filegroups usando BACKUP

DATABASE con la opcion FILEGROUP

• Los Filegroups pueden ser read-write y read-only

• Crear respaldo de base de deatos particionada con la opcion READ_WRITE_FILEGROUPS– Contiene filegroup primarios y todos los

filegroups read-write

BACKUP DATABASE AdventureWorksFILEGROUP = 'Filegroup B'TO DISK = 'Filegroup B.bak';

BACKUP DATABASE AdventureWorksFILEGROUP = 'Filegroup B'TO DISK = 'Filegroup B.bak';

BACKUP DATABASE AdventureWorksREAD_WRITE_FILEGROUPS TO DISK = 'Partial.bak';

BACKUP DATABASE AdventureWorksREAD_WRITE_FILEGROUPS TO DISK = 'Partial.bak';

DatabaseDatabase

PrimaryPrimaryFilegroupFilegroup

Filegroup A Filegroup A (read-write)(read-write)

Filegroup B Filegroup B (read-only)(read-only)

Partial.bakPartial.bak

Filegroup B.bakFilegroup B.bak

Page 30: SQL Server 2005. Comunidad TechNet Regístrate en:

Administración de la fragmentaciónFilegroups y disponibilidad• Use RESTORE DATABASE con la opcion FILEGROUP

– Aplica a cualquier respaldo del log de transacciones• La base de datos permanece online

– No permanece fuera de linea, como en SQL Server 2000

• Si el filegroup es read-only, RESTORE LOG no es usado

RESTORE DATABASE AdventureWorksFILEGROUP = 'Filegroup B'FROM DISK = 'Filegroup B.bak' WITH NORECOVERY;

RESTORE LOG AdventureWorksFROM DISK = '...' WITH RECOVERY;

RESTORE DATABASE AdventureWorksFILEGROUP = 'Filegroup B'FROM DISK = 'Filegroup B.bak' WITH NORECOVERY;

RESTORE LOG AdventureWorksFROM DISK = '...' WITH RECOVERY;

Page 31: SQL Server 2005. Comunidad TechNet Regístrate en:

Administración de la fragmentaciónFilegroups y disponibilidad• Una restauracion de la base de

datos particionada nos proporciona una recuperacion y restauracion mas rapida.

DatabaseDatabase

PrimaryPrimaryFilegroupFilegroup

Filegroup A Filegroup A (read-write)(read-write)

Filegroup B Filegroup B (read-only)(read-only)

Partial.bakPartial.bakRESTORE DATABASE AdventureWorksFROM DISK = 'Partial.bak'WITH PARTIAL, NORECOVERY;

RESTORE LOG AdventureWorks FROM DISK = '...' WITH NORECOVERY;

RESTORE LOG AdventureWorks FROM DISK = '...' WITH RECOVERY;

RESTORE DATABASE AdventureWorksFROM DISK = 'Partial.bak'WITH PARTIAL, NORECOVERY;

RESTORE LOG AdventureWorks FROM DISK = '...' WITH NORECOVERY;

RESTORE LOG AdventureWorks FROM DISK = '...' WITH RECOVERY;

Page 32: SQL Server 2005. Comunidad TechNet Regístrate en:

Administración de la fragmentaciónFilegroups y disponibilidad

DatabaseDatabase

PrimaryPrimaryFilegroupFilegroup

Filegroup A Filegroup A (read-write)(read-write)

Filegroup B Filegroup B (read-only)(read-only)

Filegroup B.bakFilegroup B.bak

RESTORE DATABASE AdventureWorksFILEGROUP = 'Filegroup B'FROM DISK = 'Filegroup B.bak'WITH RECOVERY;

RESTORE DATABASE AdventureWorksFILEGROUP = 'Filegroup B'FROM DISK = 'Filegroup B.bak'WITH RECOVERY;

2. Restaurar otros filegroups

• Los filegroups con propiedad Read-only no requiren respaldo, pero debe ser constante con el filegroup primario

Page 33: SQL Server 2005. Comunidad TechNet Regístrate en:

Ejecutar una restauración por Ejecutar una restauración por partespartes

Creando un respaldo parcialCreando un respaldo parcial Restaurando el filegroup primario en lectura y Restaurando el filegroup primario en lectura y

escrituraescritura Restaurando filegroup de solo lecturaRestaurando filegroup de solo lectura

DemostraciónDemostración

Page 34: SQL Server 2005. Comunidad TechNet Regístrate en:

Repaso

Al restaurar una pagina requiere que los archivos afectados estén fuera de línea, pero los demás archivos permanecen en línea.

1. Verdadero

2. Falso

Page 35: SQL Server 2005. Comunidad TechNet Regístrate en:

Repaso

¿En que tabla se pueden encontrar las paginas que contienen errores?

1. master.dbo.suspect_page_table

2. master.dbo.page_error_log

3. msdb.dbo.suspect_page_table

4. AdventureWorks.dbo.suspect_page_table

Page 36: SQL Server 2005. Comunidad TechNet Regístrate en:

Repaso

¿Que opción le puedes especificar al comando BACKUP DATABASE para crear un respaldo parcial de la base de datos?

1. PARTIAL

2. READ_WRITE_FILEGROUPS

3. SELECTED_FILEGROUPS

4. FILEGROUP

Page 37: SQL Server 2005. Comunidad TechNet Regístrate en:

Repaso

¿Con que opción le puedes especificar al comando RESTORE DATABASE iniciar la restauración por partes del filegroup primario y todos los filegroups read-write?

1. WITH PRIMARY

2. WITH READ_WRITE_FILEGROUPS

3. WITH PIECEMEAL

4. WITH PARTIAL

Page 38: SQL Server 2005. Comunidad TechNet Regístrate en:

Resumen de la sesión

• Ejecución de paginas en línea y operaciones de restauración• Mejor recuperación de las bases de datos SQL Server• Usando operaciones de fragmentación y restauración

Page 40: SQL Server 2005. Comunidad TechNet Regístrate en:

Preguntas…

• Visita el foro de TechNet en http://groups.msn.com/technetmexico-online

Page 41: SQL Server 2005. Comunidad TechNet Regístrate en: