0% encontró este documento útil (0 votos)
107 vistas206 páginas

SQL Server 2005 - Curso 5 Estrellas

SQL Server 2005 - Curso 5 Estrellas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
107 vistas206 páginas

SQL Server 2005 - Curso 5 Estrellas

SQL Server 2005 - Curso 5 Estrellas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 206

Curso 5 estrellas

SQL Server 2005


Curso 5 estrellas SQL Server 2005

Contenidos:
• Modulo 1
o Introducción a la arquitectura de SQL Server 2005
Descripción de SQL Server 2005
Mejoras para Administradores

• Modulo 2
o Instalación de SQL Server 2005
Instalación y Performing de SQL Server 2005
Mantenimiento de la Instalación de SQL Server 2005
Coexistencia con SQL Server 2000 y SQL 7.0
Migracion desde SQL Server 2000

• Modulo 3
o Herramientas Administrativas de SQL Server 2005
Usando Management Studio de SQL Server
Usando Computer Manager de SQL
Usando el Utilitario para sqlcmd
Usando Management Objects de SQL

• Modulo 4
o Monitoreo de SQL Server 2005
Uso de SQL Profiler
Uso de DDL Triggers
Uso de Event Notification
Uso de Metadata Views

• Modulo 5
o Mantenimiento de Bases de Datos e Indices
Manejo de Indices
Uso del Tuning Advisor de la Base de Datos

• Modulo 6
o Seguridad
Overview de Seguridad de SQL Server 2005
Administración de Seguridad de SQL Server 2005
Administración de Permisos
Administración de Certificados

• Modulo 7
o Recuperación de Desastres
Recupero de Desastres en SQL Server 2005
Uso de Snapshots de la Base de Datos
Backup y Recuperación
Curso 5 estrellas SQL Server 2005

• Modulo 8
o Disponibilidad de Datos y Replicación en SQL Server 2005
Introducción a la Disponibilidad de Datos
Failover Clustering
Database Mirroring
Mejoras en Replicación

• Modulo 9
o Replicación en SQL Server 2005
Introducción a la Replicación de Datos
Mejoras en Replicación
Curso 5 estrellas SQL Server 2005

Modulo 1

Introducción a la arquitectura de SQL Server 2005


○ Descripción de SQL Server 2005
○ Mejoras para Administradores

Introducción a SQL Server 2005

Introducción

Este modulo contiene una descripción de varios componentes de SQL Server 2005. Se
incluyen puntos sobre cada componente; si el componente del producto existía en
versiones anteriores de SQL Server, se concentra la información sobre las mejoras en
SQL Server 2005.

Objetivos

Luego de completar este capitulo usted podrá:


Describir los componentes principales de SQL Server 2005.
Describir las mejoras del motor de base de datos.
Describir las mejoras de Analysis Services.
Describir las mejoras de SQL Server Integration Services (SSIS).
Describir Notification Services.
Describir Reporting Services.
Describir Service Broker.
Describir como se integra el .NET common language runtime (CLR) en SQL
Server 2005.
Describir como se implementa native HTTP support en SQL Server 2005.
Describir las mejoras en replicación.
Describir las mejoras en full-text search.
Curso 5 estrellas SQL Server 2005

Que es SQL Server 2005?

Introducción

SQL Server 2005 es más que un sistema de administración de base de datos. Incluye
componentes múltiples y servicios los cuales la hacen una plataforma comprensiva
para programas de la empresa.
Curso 5 estrellas SQL Server 2005

SQL Server 2005 componentes

SQL Server 2005 se compone de los componentes siguientes.

Componente Descripción
El motor de base de datos relacional de SQL Server es el corazón de SQL Server 2005
Motor de Base de y proporciona un ambiente de alto rendimiento, scalable, seguro para almacenar y
datos Relacional recuperar dator de modificación relacional o formato Extensible Markup Language
(XML)
Analysis Services Proporciona la base de una solucion business intelligence para soporte de Online
Analytical processing (OLAP) aplicaciones y data mining.

SQL Server
Un motor para importar y exportar datos soluciones y transformaciones de datos
Integration Services
mientras que se transfieren.
(SSIS)
Un framework para las soluciones en las cuales se envían a los suscriptores las
Notification Services notificaciones cuando ocurren los acontecimientos específicos. Las notificaciones se
pueden generar eficientemente y enviar a dispositivo múltiples de diferentes tipos.
Reporting Services Se utiliza para extraer datos desde SQL Server y generar reportes.
Service Broker Un mecanismo confiable de queuing, y comunicación transaccional basada en
mensajes entre los servicios de software.
.NET common Incluido adentro de SQL Server, permitiendo poner soluciones de base de datos en
language ejecución usando el código manejado escrito en .NET language por ejemplo Microsoft
runtime(CLR) Visual C#® .NET o Microsoft Visual Basic® .NET.
Native HTTP Permite a programas de cliente conectarse con HTTP endpoints dentro de SQL Server
Support sin requerir Internet Information Services (IIS).

Replicación Un sistema de tecnologías para el copiado de datos y distribucion de base de datos a


partir de una base de datos o servidor a otro y sincronizando entre las bases de datos
para asegurar consistencia.

Full-text search Permite la indexación rápida y flexible basada en keyword queries de texto sobre datos
almacenados en un base de datos en SQL Server.

El motor de base de datos


Introducción

El motor de base de datos es el componente principal de SQL Server. Proporciona


almacenaje de datos, recuperación, y servicios de modificación que pueden escalar desde
soluciones personales hasta el nivel empresa.

Mejoras del motor de base de datos

SQL Server 2005 incluye un número de mejoras significativas al


motor de base de datos, según lo descrito en la tabla siguiente.
Curso 5 estrellas SQL Server 2005

Característica / Mejora Descripción


Partitioning
Las tablas y los índices se pueden repartir a través de grupos múltiples de archivo.
Esto puede mejorar el funcionamiento y la capacidad de mantenimiento.

DDL triggers pueden ser utilizados para ejecutar stored procedures cuando DDL
DDL triggers y event statements (por ejemplo CREATE) se ejecutan. Event notifications pueden ser
notifications utilizados para disparar eventos para el servicio Service Broker cuando se
modifica la base de datos.
New data types Un número de nuevos tipos de datos se han incluido en esta version, por ejemplo
xml y un max modificante para nvarchar, varchar, y varbinary types.
Multiple Active Result
MARS permite que los clientes tengan más de una petición por conexión.
Sets (MARS)
Transact-SQL Transact-SQL ahora incluye palabras claves estructuradas de dirección de
excepción (por ejemplo, TRY y CATCH), soporte para expresiones comunes de
tabla, y nuevas funciones de graduación y operadores relacionales. Los DDL
statements se han mejorado.

Seguridad Una nueva arquitectura de seguridad proporciona la protección mejorada de base


de datos a través de principales, y permisos.

XML El soporte para XML ha sido mejorado notablemente.

The .NET Framework El .NET Framework CLR es integrado en el motor de SQL Server, hacienda
posible construir soluciones de base de datos con codigo administrado.

Replicacion La funcionalidad de replicacion ha sido mejorada para hacer mas sencilla la


configuracion y proveer soporte de replicación transnacional para peer-to-peer,
replicacion over HTTP, y considerables mejoras para replicación heterogenea.

Mantenimiento de base de Las tareas de mantenimiento fueron mejoradas, con online restore y
datos online index operations.

Analysis Services

Introducción

Analysis Services trae un de gran alcance a la plataforma business intelligence para


SQL Server, permitiendo poner en ejecucion OLAP data warehouses y usar tecnicas de
data mining para analizar datos de negocio y tomar decisiones apropiadas.
Curso 5 estrellas SQL Server 2005

Mejoras en Analysis Services

Algunas de las mejoras de Analysis Services en SQL Server 2005 se describen en la tabla
siguiente.

Característica / Mejora Descripción


Interfaz de usuario Las soluciones Analysis Services son más fáciles de crear con el nuevo Business
Intelligence Development Studio.

Analysis Services engine Usted puede ahora instalar múltiples instancias de Analysis Services en una sola
computadora.

Cubos Los cubos se pueden ahora basar en las tablas múltiples de hecho. Características
por ejemplo en Key Performance Indicators (KPI) y Business Intelligence las
mejoras proporcionan la major manera de mejorar la toma de decisión, y el soporte
para los procedimientos almacenados amplía la funcionalidad de los cubos.
Curso 5 estrellas SQL Server 2005

SQL Server Integration Services

Introducción

SQL Server Integration Services (antes Data Transformation Services)


proporciona una solución comprensiva para la transferencia y transformación de datos
entre fuentes de datos diversas.

SSIS mejoras

SQL Server Integration Services (SSIS) se ha mejorado considerablemente en


SQL Server 2005. Algunas de las mejoras principales se describen en
tabla de siguiente.

Característica Descripción
/Mejora
SSIS arquitectura La arquitectura de SSIS se ha reajustado para separar flujo de paquete-control de
flujo de datos. Dos motores se han introducido para manejar estos aspectos de la
transformación de los datos: el SSIS Run-time engine y el SSIS Data-Flow engine.

El SSIS Designer es parte del Business Intelligence Development Studio,


permitiendo convertir los proyectos SSIS mientras que está desconectado del
SSIS Designer
servidor. Usted puede también convertir soluciones SSIS usando SQL Server
Management Studio.
Transformaciones SSIS prove las siguientes transformaciones:
• Conditional Split transformation
• Multicast transformation
• Union-All, Merge, and Merge Join transformations
• Sort transformation
• Fuzzy Grouping transformation
• Lookup y Fuzzy Lookup transformations
• Percentage Sampling and Row Sampling
transformations
• Copy/Map, Data Conversion, and Derived Column
transformations.
• Aggregation transformation
• Data Mining Model Training, Data Mining Query,
Partition Processing, and Dimension Processing
transformations
• Pivot and UnPivot transformations
Curso 5 estrellas SQL Server 2005

Notification Services

Introducción

Notification Services proporciona un framework para el desarrollo de aplicaciones


basadas en subscripciones a traves de las cuales se notifica a los usuarios acerca de
eventos.

Nota
Notification Services 2.0 está disponible en forma separada para SQL Server 2000. SQL
Server 2005 Notification Services incluye un número de mejoras sobre Notification
Services 2.0.
Curso 5 estrellas SQL Server 2005

Caracteristicas de Notification Services

Las características principales de Notification Services en SQL Server 2005 se describen


en la tabla siguiente.

Característica Descripción
Subscription Management Objects Una API para construir la administracion de susscripcion de aplicaciones
a través de la qué usuarios pueden suscribir a eventos.
Event APIs Cuatro maneras para que origenes de eventos incorporen la información
del evento en el sistema.

Reporting Services
Curso 5 estrellas SQL Server 2005

Introducción

Reporting Services permite la creación de informes de datos de SQL Server.


Los informes pueden ser diseñados usando Visual Studio .NET–based Report Designer
y accedidos usando un IIS Web site.

Nota
Reporting Services está disponible para descargar en forma directa separada para SQL
Server 2000.

Caracteristicas Reporting Services

Las características principales de Reporting Services se describen en la tabla siguiente.

Característica Descripción
Report authoring Usted puede utilizar Report Designer en Business Intelligence Development Studio para
crear un informe.

Report Reporting Services incluye la herramienta Report Manager, la cuál puede utilizar para
management administrar la seguridad del informe, generación y distribución de informe segun agenda,
y administrar la historia del informe.
Report execution Los reportes son ejecutados en forma conjunta, aprovechando procesos de consultas
paralelas para mejoras. Los reportes son compilados mientras .NET los ensambla para
realizar mayores mejoras aun.

Report access Los usuarios pueden acceder a los reportes por un IIS Web Site especial, del cual los
reportes pueden ser exportados en los formatos mas comunes como HTML y PDF.
También los reportes pueden ser enviados a los usuarios vía e-mail a través de una
suscripción.

Service Broker
Curso 5 estrellas SQL Server 2005

Introducción

Service Broker habilita la creación de colas para comunicación message-based


transaccionales y confiables entre servicios de software. Esto hace a SQL Server 2005
una mejor plataforma para soluciones service-based.

Mejoras del Service Broker

Las principales mejoras del Service Broker son descriptas en la siguiente tabla:

Mejora Descripción

Service Broker asegura que los mensajes sean recibidos en el orden correcto y sean
Coordinación y orden enviados solo una vez. Utiliza un único identificador para rastrear mensajes que
de Mensajes pertenecen a la misma conversación, haciendo mas fácil implementar operaciones
distribuidas, desincronizadas y de largo proceso.

Disponibilidad Service Broker usa colas para enviar mensajes desincronizados; los mensajes
desincronizada pueden ser enviados a un servicio incluso cuando este no esta disponible.

Flexibilidad de Trabajo El conjunto que desincroniza la comunicación message-based hace posible para los
sistemas distribuir sus procesos de trabajo mas continuamente.

Mensajes de Bloqueo Cuando hay en cola muchos mensajes relacionados a la misma tarea, Service Broker
Relacionados asegura que los mensajes sean procesados como una unidad bloqueando todos los
mensajes relacionados cuando el primero de la cola es leído.

Programa de activacion Service Broker puede activar automáticamente una instancia de un servicio de
automatica de Servicio programa cuando un mensaje llega a su cola. Mientras aumenta el volumen de los
mensajes recibidos, Service Broker puede activar mas de una instancia de servicio
de programa hasta un número máximo configurado, y desactivarlos cuando el
trabajo disminuye.

Integración de Base de Service Broker esta totalmente integrado con el motor de la base de datos de SQL
Datos Server, dando soporte para procesamiento de mensaje transaccional y simplificando
la administración. Por ejemplo, las colas de Service Broker están implementadas
como tablas de base de datos, y por lo tanto se les puede hacer back up durante el
proceso normal de back up de la base de datos.
Curso 5 estrellas SQL Server 2005

El Lenguaje común de Los Tiempos de Ejecución

Introducción

El Lenguaje Común de Tiempos de Ejecución de .NET (CLR) provee un ambiente de


administración para código escrito en lenguaje .NET como Visual C# o Visual Basic
.NET.

Integración de .NET CLR en SQL Server


El motor de la base de datos SQL Server 2005 tiene alojado el .NET CLR,
haciendo posible desarrollar objetos de base de datos usando códigos
escritos en un lenguaje de programación .NET.
La habilidad de desarrollar objetos de base de datos en código .NET
provee varias ventajas, incluyendo un modelo de administración de
seguridad, funcionalidad que no esta disponible o es difícil de implementar
en Transact-SQL, y es una mayor elección para desarrollar lenguaje.
Se pueden desarrollar las siguientes clases de objetos de base de datos
en código administrado:
! Procesos Almacenados
! Tipos de datos User-defined
! Funciones User-defined
! Triggers
! Agregar funciones User-defined
Curso 5 estrellas SQL Server 2005

Definir objetos de base de datos con código administrado

La unidad de despliegue de aplicaciones para .NET Framework es la assembly. Una


assembly es un archivo DLL o EXE compilado que contiene clase de definiciones y
código.
Se puede importar una assembly a una base de datos usando el documento CREATE
ASSEMBLY, y use mejoras para el CREATE PROCEDURE, CREATE
TRIGGER, CREATE FUNCTION, CREATE AGGREGATE, y el documento
CREATE TYPE para implementar un objeto de base de datos usando el código dentro
del assembly.
Desarrolladores pueden crear objetos de base de datos en el entorno de Visual Studio
.NET y desplegarlos directamente en la base de datos.

Soporte Innato HTTP

Introducción

Cuando usamos Microsoft Windows Server™ 2003, SQL Server 2005 responde de
manera innata a los requerimientos HTTP sin la ayuda de software Web Server como IIS.
Esto hace mas fácil implementar Web Services basados en una base de datos SQL Server.

Administrar HTTP endpoints

Para habilitar que los requerimientos HTTP sean manejados innatamente por SQL Server,
debes crear uno o mas HTTP endpoints usando los documentos CREATE ENDPOINT.
El documento CREATE ENDPOINT es usado para:
! Registrar una URL con http.sys asi los requerimientos a esa URL es redireccionado al
SQL Server.
! Especificar los puertos TCP en los cuales los requerimientos van a ser aceptados.
! Especificar un mecanismo de autenticación para el endpoint. Se puede autenticar un
cliente usando métodos de autenticación básicos, integrados o resumidos.
La autenticación anónima ha sido borrada.
! Setear el estado inicial (stopped o started) del endpoint. Por defecto, los endpoint son
creados en un estado stopped. Para iniciar un endpoint luego de que este ha sido creado,
debes usar el documento ALTER ENDPOINT para cambiar al estado a started.
! Especificar las limitaciones del protocolo de Internet (IP) para controlar el acceso al
endpoint.
! Crear uno o más métodos Web que los usuarios puedan llamar a través del endpoint.
Métodos Web pueden ser procesos almacenados o funciones user-defined.
Curso 5 estrellas SQL Server 2005

Luego que un endpoint HTTP ha sido creado, puedes dar, revocar o negar permisos de
conexión para controlar el acceso al endpoint.

Replicación

Introducción

La replicación permite copiar y distribuir datos y objetos de las bases de datos, de una
base de datos o servidor a otro, y luego opcionalmente sincronizar entre las bases de
datos para asegurar consistencia.

Perfeccionamientos de Replicación

La siguiente tabla describe un numero de perfeccionamientos significativos para la


replicación en SQL Server 2005.

Perfeccionamiento Descripción
Seguridad El modelo de replicación de seguridad ha sido actualizado para permitir mas
control sobre las cuentas bajo las cuales corre la replicación.
Administración La interface de replicación de usuario ha sido mejorada e incluye un nuevo
Replication Monitor.
Disponibilidad Cambios en las schema pueden ser realizados a tablas publicadas.
Programabilidad Un nuevo modelo de administración de programación, Replication Management
Objects (RMO), te permite incluir lógicas de trabajo dentro de los procesos de
sincronización.
Replicación La Replicación Transaccional ahora puede ser iniciada desde un backup
Transaccional
Replicación Heterogénea Los datos pueden ser publicados desde una base de datos Oracle a una base de
datos SQL Server usando replicación transaccional o instantánea.

Replicación Peer-to-peer Los datos pueden ser replicados entre múltiples peer servers. Datos a todos los
servidores pueden ser actualizados y todos los servidores reciben los cambios
hechos a los otros servidores.
Replicación HTTP Para simplificar las replicaciones a través de un firewall o para mobile users, ha
sido introducida la replicación sobre HTTP o HTTPS. Esto transmite datos en
formato XML entre un suscriptor y el IIS, y usa formato binario sobre TCP/IP
entre IIS y el publicador.
Curso 5 estrellas SQL Server 2005

Búsqueda de Full-Text

Introducción

Búsqueda Full-Text permite indexar rápida y flexiblemente consultas keyword-based de


datos.

Perfeccionamientos de Búsqueda Full-text

SQL Server 2005 incluye un numero significativo de perfeccionamientos para Búsqueda


de full-text, descrito en la siguiente tabla.

Perfeccionamiento Descripción
Servidores enlazados Puedes ejecutar consultas full-text contra servidores enlazados.
Columnas Múltiples Ya no estas limitado a usar una o todas las columnas en una tabla, ahora podes
especificar que columnas queres en el argumento column_list.

Especificar LocaleID Podes ejecutar consultas full-text usando un idioma diferente del idioma por defecto.

Backup y Los catálogos Full-text ahora pueden ser backapeados y restaurados con o sin los
Restauración datos de la base de datos.
Attach y Detach
Los catálogos Full-text están incluidos en las operaciones de attach y detach.

Datos XML Full-text indexes pueden ser creados en datos XML.


Performance Performance de index populares son mejoradas.
Curso 5 estrellas SQL Server 2005

Perfeccionamientos del Sistema para Administradores

Perfeccionamiento del Sistema

Introducción

SQL Server 2005 introduce un numero de perfeccionamientos que impactan en la manera


en que el sistema de SQL Server puede ser administrado. Los perfeccionamientos
incluyen:
! Soporte de memoria de Dynamic Address Windowing Extensions (AWE)
! Memoria Hot-add
! Afinidad Dinámica de CPU

Memoria Dinámica AWE

Soporte AWE permite 32-bit aplicaciones para direccionar memoria física mas allá de los
límites de su memoria virtual configurada. La edición Windows Server 2003 puede
soportar el máximo de cantidades mostrados en la siguiente tabla:

Edición Windows Server Máximo de Memoria física


2003
Standard 4 GB
Enterprise 32 GB
Datacenter 64 GB

Se puede configurar SQL Server 2005 para usar AWE, usando la opción de configuración
awe enabled. Después podes setear las opciones min server memory y max server
memory para que el SQL Server use memoria AWE dinámicamente según lo requerido.
El siguiente ejemplo, muestra como usar la memoria AWE:

**************************************************
Curso 5 estrellas SQL Server 2005

sp_configure 'show advanced options', 1


RECONFIGURE
GO

sp_configure 'awe enabled', 1


RECONFIGURE
GO
*************************************************

Memoria Hot-add

Cuando se usa la memoria AWE, el SQL Server 2005 también puede sacar provecho del
soporte de Windows Server 2003.s para memoria hot-add. Si el hardware del Server
soporta memoria hot-add, los administradores pueden agregar memoria física sin reiniciar
el servicio SQL Server. El SQL Server usara la memoria física adicional si es requerido.
Para aprovechar las memorias hot-add, el SQL Server debe estar corriendo en Windows
Server 2003 Enterprise o la edición Datacenter con la opción configurada awe
habilitada.

Afinidad Dinámica de CPU

En SQL Server 2005, puedes reconfigurar la opción affinity mask sin tener que reiniciar
el servicio. El SQL Server automáticamente ajusta el numero de CPUs schedulers usadas
para juntar las conversaciones.

Perfeccionamiento de Almacenamiento de Datos


SQL Server 2005 introduce un numero de perfeccionamientos de almacenamiento de
datos, incluyendo nuevos y mejorados tipos de datos y un tamaño row mayor. Estas
mejoras hacen el almacenamiento de datos más eficiente y flexible.

Nuevos y mejorados tipos de datos

El SQL Server 2005 incluye los nuevos y mejores almacenamientos de datos descriptos
en la siguiente tabla:

Tipo de Dato Descripción


El tipo de datos xml es usado para almacenar datos XML
directamente en la base de datos. Los valores para los datos
xml
xml pueden ser opcionalmente asociados con una XML
schema.
El maximo de Keyword que pude ser usado para extender el
varchar, nvarchar,
lardo de alguno de estos tipos de datos es hasta 2^31 bytes
and varbinary
(aproximadamente 2 GB).

Mayor tamaño de Row


Curso 5 estrellas SQL Server 2005

En las ediciones previas de SQL Server, el máximo de un row table era 8 KB.
Mientras que este es aun el máximo físico de una pagina, el SQL Server 2005
puede mover el reflujo de datos varchar, nvarchar, varbinary, o sql_variant
a otra pagina manteniendo 24-byte puntero en la pagina original, haciendo posible
almacenar una row que contenga mas de 8 KB de datos.
Para acomodar el reflujo de esta manera, cada columna en la row debe tener un
maximo de 8 KB. Cuando la combinación de todas las columnas es mayor a 8
KB, SQL Server va automáticamente a mover la columna mas larga a una pagina
de reflujo.

Nota
El limite 8 KB aplica solo para las columnas varchar, nvarchar, o varbinary
definidos sin el max keyword. Cuando el max keyword es usado, los datos son
implementados como un gran objeto usando un puntero a las paginas donde los datos
estan fisicamente almacenados.

Tablas e Indexes Particionados

El SQL Server 2005 da soporte para Tablas e Indexes particionados.


Esto permite a una tabla ser esparcida a través de un numero de Grupos de
Archivos físicos, mejorando la performance y haciendo mas fácil administrar
los procesos archivados range-based.
Curso 5 estrellas SQL Server 2005

Esparcimiento de Table data a través de Grupos de Archivos

Puedes particionar una tabla horizontalmente así los rows son expandidos
a través de múltiples Grupos de Archivos. Implemente esta partición para
obtener los siguientes resultados:
! Mejorar la performance en sistemas de multiprocesadores
Tablas particionadas puede aumentar la performance cuando estas
consultando grandes tablas en un sistema con 8 o mas procesadores. El
optimizador de consultas de SQL Server 2005 puede ejecutar consultas
sobre múltiples particiones en paralelo, reduciendo el tiempo requerido
del proceso.
! Administración mas fácil de grandes tablas.
Una tabla particionada hace la administración mas fácil de data subsets,
las cuales se pueden agrupar lógicamente por un rango de datos. por ejemplo:
Un requerimiento común de datos es trabajar solo con los datos del mes en
curso. Puedes especificar la columna particionada, numero de particiones y
el rango de valores de las columnas particionadas para cada partición.
Un beneficio de particionar es que se pueden mover datos entre las tablas
particionadas muy rápido con relación a tener que hacer un INSERT INTO
SELECT FROM statement. Esto es porque los datos no están siendo movidos
físicamente; solo la metadata concerniente al lugar de almacenamiento es
movido.
Curso 5 estrellas SQL Server 2005

Snapshot Isolation Level

El SQL Server 2005 incluye una nueva transacción de isolation level llamada snapshot.
Snapshot isolation permite a los usuarios leer previamente valores de datos usando una
vista consistente transaccionalemente de la base de datos. En este isolation level, los
lectores no bloquean otros lectores y escritores que están accediendo al mismo dato.
Similarmente, los escritores no bloquean a los lectores. La operación de escritura en el
snapshot isolation level esta basada en un mecanismo de bloqueo con detector de
conflicto aumamatico. El mecanismo de detección de conflictos evita que un usuario
haga cambios basados en datos que otro usuario haya cambiado.

Como Trabaja Snapshot Isolation

Snapshot isolation esta basado en row versioning, el cual da consistencia de lectura


siguiendo una cadena de versiones que contienen las rows comprometidas de datos.
Esta cadena está situada en una version separada de almacenamiento alojada en
tempdb. Varias versiones comprometidas de rows individuales de datos son creados
durante la ejecución del UPDATE statement y recuperados por la operación
SELECT a través de las consultas del snapshot. Las consultas Snapshot son consultas
que corren bajo el snapshot isolation que lee los datos de snapshot.
Curso 5 estrellas SQL Server 2005

Administración de snapshot isolation

Los Administradores pueden habilitar o no la snapshot isolation en una base de datos


poniendo la opcion ALLOW_SNAPSHOT_ISOLATION en ON u OFF en una statement
CREATE DATABASE o ALTER DATABASE. El siguiente ejemplo muestra como
habilitar la snapshot isolation:
ALTER DATABASE AdventureWorks
SET ALLOW_SNAPSHOT_ISOLATION = ON

Cuando la snapshot isolation esta habilitada, las aplicaciones que quieran usarla deben
setear el isolation level transaccional a SNAPSHOT para conectarse, según se indica en
el siguiente ejemplo:
SET TRANSACTION ISOLATION LEVEL SNAPSHOT

Statements ejecutados en transacciones luego usaran snapshot isolation.

SQLiMail

SQLiMail es un nuevo sistema en SQL Server 2005. Usa el Standard Simple


Mail Transfer Protocol (SMTP) para enviar un e-mail desde una instancia de SQL Server
2005. Usando SQLiMail, las aplicaciones de base de datos pueden enviar e-mails que
contengan resultados de consultas y archivos. SQLiMail esta diseñado para ser un
sistema confiable, escalable y seguro para SQL Server. La información en la siguiente
tabla describe como SQLiMail implementa estos atributos:

Feature Descripción
No Extended MAPI
SQLiMail usa SMTP, no Extended MAPI.
requirement

Process isolation El componente que envía e-mails corre en un proceso separado para minimizar el
impacto en el SQL Server.
Failover accounts Puedes especificar mas de un servidor SMTP por perfil, así si el servidor SMTP no
esta disponible, los mails aun pueden ser enviados.
Envío Desincronizado SQLiMail usa Service Broker para enviar mensajes para evitar el bloqueo de un
proceso almacenado.
Perfil de Seguridad SQL Server ayuda a asegurar la seguridad dándote la posibilidad de especificar que
usuarios en una base de datos pueden acceder al perfil de SQLiMail.

Configuración SQLiMail almacena la información de perfiles dentro del SQL Server. No es


Integrada necesario administrar el perfil en una aplicación externa.
Curso 5 estrellas SQL Server 2005

Instalar y configurar SQLiMail

Puedes usar el SQLiMail Configuración Wizard para instalar y configurar


SQLiMail en una base de datos. Puedes iniciar el asistente desde el SQLiMail
en la Management folder de Object Explorer. El asistente junta la información,
incluyendo la base de datos a instalar y la información del usuario para crear un
perfil SQLiMail.

Usar SQLiMail

Luego de configurar un perfil de mail, puedes llamar el proceso almacenado


sendimail_sp para enviar un mail desde el SQL Server. El siguiente ejemplo muestra
como enviar SQLiMail usando un perfil llamado SQLServer.
************************************************************************
DECLARE @QueryResult int
SET @QueryResult = (SELECT Count(*) FROM Person.Contact)

EXECUTE sendimail_sp
@profile_name='SQLServer',
@recipients='[email protected]',
@subject='Test',
@body=@QueryResult
************************************************************************
Curso 5 estrellas SQL Server 2005

Modulo 2

Instalación de SQL Server 2005


○ Instalación y Performing de SQL Server 2005
○ Mantenimiento de la Instalación de SQL
Server 2005
○ Coexistencia con SQL Server 2000 y SQL 7.0
○ Migracion desde SQL Server 2000

Prepararse para instalar SQL Server 2005

Introducción

Esta sección describe los requerimientos que hay que tener en cuenta antes de instalar
SQL Server 2005. El entendimiento de los requisitos del setup y las opciones te ayudaran
para una instalación exitosa.
Objetivos

Elegir la edición correcta de SQL Server 2005


Listar el hardware requerido para instalar SQL Server 2005.
Listar el software requerido para instalar SQL Server 2005.
Considere temas coexistentes con ediciones previas de SQL Server.
Planifique una instalación SQL Server 2005.
Curso 5 estrellas SQL Server 2005

Ediciones SQL Server 2005


Curso 5 estrellas SQL Server 2005

Introducción
El SQL Server 2005 esta disponible en un gran numero de ediciones, cada una
adecuada para un entorno o tarea en particular. Es importante entender las diferencias
entre las ediciones disponibles para poder elegir la mas apropiada para tus necesidades.
Ediciones Disponibles
Las ediciones disponibles de SQL Server 2005 están descriptas en el siguiente cuadro:

Edicion SQL Server 2005 Descripción


Enterprise Edition (Disponible en versiones 32-bit y Una versión comprensiva de SQL Server diseñada para
altos niveles de performance. Use esta edición para
64-bit)
grandes escalas, niveles empresarios, aplicaciones
criticas.
La Enterprise Edition contiene todos las ventajas de la
edición Standard, como así también las de Enterprise,
incluyendo:
Failover clustering
Database mirroring
Snapshot databases
Mirrored backups
Online page and file restore
Distributed partitioned views
Heterogeneous replication
Peer-to-peer replication

Standard Edition (Disponible en versiones 32-bit y Diseñado para aplicaciones de trabajo de grupo y
64-bit versions) departamentales. Use esta edición si no necesita los
niveles de performance y disponibilidad ofrecidos por la
Enterprise Edition.

Express Edition (Disponible en 32-bit) Una versión de SQL Server 2005 para clientes que no
están conectados o aplicaciones que corren solas.

Mobile Edition Una edición compacta que provee administración de


datos para equipos inteligentes. Esta edición es capaz de
replicar datos con SQL Server 2005 y SQL Server 2000,
permitiendo a los usuarios mantener un mobile data
store que puede ser sincronizado con enterprise data.

Developer Edition (Available in 32-bit and 64-bit Incluye todas las funcionalidades de la Enterprise
versions) Edition, pero esta licenciado para ser usado como un
sistema de testeo y desarrollo, no como un servidor de
producción. Use esta edición para desarrollar y testear
soluciones para base de datos.

Adicionalmente, una evaluación de 120 días de ambas versiones de SQL Server 2005
Enterprise Edition esta disponible.
Curso 5 estrellas SQL Server 2005

Requerimientos del Hardware


Curso 5 estrellas SQL Server 2005

Requerimientos del Procesador

Cuando se planea la instalación de un SQL Server 2005 se debe asegurar que la


computadora en la cual se lo quiere instalar, debe tener el mínimo de hardware requerido.
Caso contrario, se pueden producir fallas durante la instalacion de algunos o todos los
componentes.
El procesador de la computadora en la cual se quiere instalar SQL Server debe ser un
procesador Intel Pentium o uno compatible de 600 megahertz (MHz) o mayor. Microsoft
recomienda que se use un procesador de 1 gigahertz (GHz) o más.

Requerimientos de la Memoria

Una instalacion de SQL Server 2005 Enterprise Edition o SQL Server 2005 Developer
Edition debe tener un mínimo de memoria de 256 megabytes (MB), adicionalmente de la
requerida por el sistema operativo. Microsoft recomienda que se use al menos una
memoria de 512 MB.
El SQL Server 2005 Standard Edition requiere un mínimo de memoria de 64 MB. La
Express Edition requiere una memoria de 64 MB cuando es instalado en un Microsoft
Windows® 2000 o Windows Server™ 2003, y 32 MB en Windows XP.

Nota: Los requerimientos de memoria indicados en este documento son solo para
el SQL Server 2005. Estos no incluyen los necesitados para los sistemas operativos
y cualquier otro software instalado en la computadora.

Requisitos del Disco Rígido

Los componentes de la base de datos SQL Server 2005 requieren entre 95 y 300
MB de espacio en disco, Dependiendo de las opciones elegidas. Una instalacion
típica requiere 250 MB de espacio en disco. Si elige instalar un SQL Server 2005
Analysis Services, necesitara un adicional de 50 MB de espacio en disco para una
instalacion base, o 130 MB para una instalacion típica. Si elige instalar SQL Server
2005 Reporting Services, necesitara un adicional de 50 MB de espacio en
discoReport Server, y 30 MB para Report Designer.

Hardware Adicional
Requerimientos de hardware adicional para escenarios de instalaciones tipicas incluyen:
¢ Monitor (Las herramientas de administración de SQL Server
estan optimizadas para una resolucion de 1024 x 786)
¢ Mouse
¢ Adaptador
para Redes
¢ CD / DVD drive (para instalación desde el CD)
Curso 5 estrellas SQL Server 2005

Requerimientos de Software

Introducción
Antes de instalar SQL Server 2005, debes asegurarte de instalar el software pre-requerido necesario.

Sistema Operativo

El SQL Server 2005 requiere uno de los siguientes sistemas operativos:

Windows Server 2003 Standard Edition


Windows Server 2003 Enterprise Edition
Windows Server 2003 Datacenter Edition
Windows Server 2003 Embedded Edition
Windows 2003 Web Edition
Windows XP Home Edition con Service Pack 1 o más
Windows XP Professional Edition con Service Pack 1 o más
Windows XP Media Center con Service Pack 1 o más
Windows XP Embedded Edition
Windows 2000 Professional con Service Pack 4 o más
Windows 2000 Server con Service Pack 4 o más
Windows 2000 Advanced Server con Service Pack 4 o más
Curso 5 estrellas SQL Server 2005

Windows 2000 Datacenter Server con Service Pack 4 o más

Nota: Las ediciones 32-bit de SQL Server 2005 deben ser instaladas en versiones
de Windows 32-bit. Las ediciones 64-bit de SQL Server 2005 deben ser instaladas
en versiones de Windows 64-bit.

Requerimientos de Software Adicional

El SQL Server 2005 también requiere del siguiente software:


¢ Microsoft Internet Explorer 6.0 Service Pack 1 o mas (requerido para Microsoft Management
Console)
¢ Internet Information Services (IIS) 5.0 o mas (requerido para Reporting Services)
¢ TCP/IP networking
¢ Microsoft .NET Framework 2.0 (el SQL Server lo instalara si es necesario.)
¢ Microsoft Windows Installer 2.0 (SQL Server lo instalara si es necesario.)

Performnace para instalar un SQL Server 2005

Instalacion de SQL Server 2005


Curso 5 estrellas SQL Server 2005

Introducción

El proceso de instalacion de SQL Server 2005 consiste de dos fases principales:


actualización de componentes y setup de SQL Setup MSI package.
Entender el proceso de instalacion te ayudara a planificar y realizar la instalacion de SQL
Server 2005.

Actualización de Componentes

Durante la fase de actualización de componentes en la instalacion, el programa de setup


de SQL Server 2005 chequea e instala si es necesario los siguientes componentes:

Windows Installer 2.0


The .NET Framework 2.0
SQL Server Setup support files

Nota Si la instalacion es cancelada luego de completarse la actualización de


componentes, los mismos no serán removidos.
Curso 5 estrellas SQL Server 2005

SQL Setup MSI

Luego de la fase de actualización de componentes, el Windows Installer es usado para


instalar el SQL Setup MSI package. Durante esta fase, el setup realiza las siguientes
tareas:
1 Determina si esta es una instalacion local o remota.
2 Determina el tipo de instalacion (instancia por defecto o instancia con nombre).
3 Analiza la computadora usando el System Consistency Checker.
4 Determina los features a instalar y realiza la instalación apropiada.

El System Consistency Checker

Introducción
Curso 5 estrellas SQL Server 2005

El System Consistency Checker (SCC) es un feature del proceso de setup de SQL Server.
El SCC realiza una serie de chequeos del sistema y compara los setings que detecta, con
los requeridos para una instalacion exitosa de SQL Server 2005. Si algunas
incompatibilidades son detectadas, el SCC sugiere acciones para remediar los problemas.
Los chequeos de SCC están divididos en 5 categorías: configuración del sistema,
disponibilidad del sistema, configuración de seguridad, configuración de la versión, y
configuración remota y de cluster.
Entender que chquea el SCC durante la instalación te ayudara a preparar tu computadora
para la instalacion.

Chequeos de Configuración del Sistema

La siguiente tabla muestra los chequeos de configuración del sistema que realiza el SCC.

Ítem a Chequear Descripción Remedio para la Falla


Requerimientos Mínimos Asegúrese que el Sistema Operativo (OS) tiene Referir al usuario a los
para el Sistema Operativo soporte. requisitos del OS.
Referir al usuario al
Nivel Requerido del
Asegúrese que el service pack requerido es aplicado al Windows Update
Operating System Service
sistema operativo. Components para el
Pack
service pack requerido.
Referir al usuario a la
Compatibilidad de SQL con Asegúrese que el Sistema Operativo tiene soporte para
edición matriz de
el Sistema Operativo el SQL Server que esta instalando.
OS/SQL Server.
Asegúrese que el usuario esta intentando instalar la Informe al usuario de la
Configuración 32-bit o
edición 32-bit en una plataforma 32-bit, o la edición imcopatibilidad y luego
64-bit
64-bit en una plataforma 64-bit. salga del Setup.
Chequee que el WMI esta instalado. Informe al usuario que el
Windows Management
WMI debe ser instalado y
Interface (Requerimientos
luego salga del Setup
de WMI_ Service)
Requerimientos mínimos
Asegúrese el hardware sea el mínimo requerido. Refiera al usuario a los
de Hardware.
requerimientos mínimos
para instalacion.

.
Curso 5 estrellas SQL Server 2005

Chequeos de Disponibilidad del Sistema


El siguiente cuadro muestra los chequeos de disponibilidad del sistema que el SCC realiza.

Ítem a Chequear Descripción Remedio para la Falla

Exclusive Mutex Object Asegúrese que no haya otras Informe al usuario que debe
instancias corriendo o debe salir del completar el proceso y reiniciar el
Setup Setup.

Requerimiento Pendiente de Asegúrese que ninguno de los Liste los servicios,


Rebooteo archivos requeridos por el Setup procesos, o aplicaciones
están bloqueados por otros que deben ser detenidas.
servicios o procesos. Los usuarios también pueden
ser requeridos para reiniciar
la computadora antes de
correr el.

Requerimiento de Performance Verifique la incrementacion Indique al usuario que actualice la


Monitor Counter apropiada para la instalacion registry key necesaria.
de SQL Server performance
monitor counters.

Disponibilidad de Features Determine que features Muestra las features que no


pueden ser instaladas están disponibles y sus
en la configuración del dependencias en reporte de
corriente sistema. SCC.

Requerimiento por defecto de los Chequee que el drive este Informe al usuario del problema y
permisos en el Path de instalacion formateado, que no este en, read- salga del Setup.
only, o que no este comprimido.

Chequeos de la Configuración Seguridad

El siguiente cuadro muestra los chequeos de configuración de seguridad que el SCC realiza.

Ítem a Chequear Descripción Remedio para la Falla

Privilegios del Administrador del Asegúrese que el setup de usuario Informe al usuario que debe
Sistema tiene privilegios de administrador loggearse como Administrador del
del sistema. Sistema.
Curso 5 estrellas SQL Server 2005

Chequeos de Configuración de versión


La siguiente tabla muestra los chequeos de Configuración de versión que SCC realiza.

Ítem a Chequear Descripción Remedio para la Falla

Requerimiento de Internet Explorer Asegúrese que el Internet Explorer Refiera al usuario al


6.0 Service Pack 1 esta instalado. Windows Update
Component para instalar
El navegador requerido.

versión de SQL Server Chequee las versiones instaladas de Refiera el usuario a los
SQL Server para tener las archivos de instalacion
condiciones necesarias cuando del service pack
actualiza.

Requisitos MSXML Asegúrese que el MSXML esta Refiera al usuario al


instalado. Windows Update
Component para instalar
MSXML.

Chequeador de Configuración Remota y de Cluster.

El siguiente cuadro muestra los chequeos de configuración remota y de Cluster que el SCC realiza.

Ítem a Chequear Descripción Remedio para la Falla

Habilita el Default Asegúrese que el administrative Preguntar al usuario y ofrecer


Administrative Share share (admin$) esta habilitado habilitar el share.
Directory en la computadora remota o en el
cluster node.

El SCC Report

Luego de completar estos chequeos, el SCC genera un reporte que puede ser visto o guardado.
Este reporte incluye información y soluciones recomendadas en cualquiera de los ítems que pueden
no permitir la instalacion. también incluye advertencias y recomendaciones en ítems que permitirán la
instalacion pero que pueden causar problemas, como configuraciones de seguridad.
Curso 5 estrellas SQL Server 2005

Instalar Componentes de SQL Server 2005

Introduccion

Cuando instala SQL Server 2005, usa un programa interactivo para el setup.
Es importante entender los pasos que debe seguir cuando usa el programa para
el setup para que haga las selecciones adecuadas de instalacion de acuerdo a
Curso 5 estrellas SQL Server 2005

su necesidades particulares.

Pasos para la Instalacion

Siga las siguientes instrucciones para instalar SQL Server 2005:

1. Verifique que su computadora cumple con los requisitos mínimos de hardware y


software para SQL Server 2005.
2. Inserte el CD de SQL Server 2005.
3. Si aparece la pantalla del Setup de SQL Server 2005, haga clic en Run the
SQL Server Installation Wizard.
4. Si la pantalla del Set up de SQL Server 2005 no aparece, vea los contenidos
del CD y haga doble clic en setup.exe para empezar el programa de Setup.
5. Acepte el End User License Agreement.
6. Instale los pre-requisitos necesarios detectados por SQL Server Component
Update.
7. Inicie el SQL Server Installation Wizard para instalar una nueva instancia del
SQL Server.
8. Vea el reporte del System Consistency Checker.
9. Ingrese la información de registro.
10. Seleccione las features que quiere instalar. Puede seleccionar grupos predefinidos
o usar la opción Advanced para seleccionar componentes individuales para cada
feature.
11. Seleccione instalar una instancia por defecto o una instancia con nombre.
12. Si estas instalando en un Windows cluster, ingrese la información de configuración
del cluster.
13. Ingrese la información de la cuenta para el servicio de SQL Server 2005.
14. Seleccione el modo de autentificación. Puede seleccionar Windows Authentication o
Windows y SQL Server Authentication.
15. Selecione el collation setting.
16. Si selecciona el Reporting Services en el paso 10, ingrese la información de configuración
del Reporting Services.
17. Haga clic en Finish cuando la instalacion se complete.
18. Verifique la instalacion haciendo las siguientes tareas:
• Examine los archivos de log del setup ubicados en C:\Program Files\
Microsoft SQL Server\90\Setup Bootstrap\LOG\Files folder.
El resumen en el archivo .txt localizado en C:\Program Files\
Microsoft SQL Server\90\Setup Bootstrap\LOG\ lista los logs creados.
• Examine el estado de los servicios instalados del SQL Server.
• Conéctese al SQL Server usando sqlcmd.exe o SQL Server Management
Studio.
Curso 5 estrellas SQL Server 2005

Realice una instalacion desatendida

Introduccion

Puedes realizar una instalacion desatendida de SQL Server 2005 creando un archivo
.ini que contenta la información de setup requerido y ejecute setup.exe en una linea de
comando.
Entender como realizar una instalacion desatendida te ayudara a realizar instalaciones
múltiples e idénticas de SQL Server en una empresa o delegar la instalacion a otro técnico.
Curso 5 estrellas SQL Server 2005

Crear un archivo .ini

Puedes crear un archivo .ini para la instalacion desatendida usando cualquier editor de texto, como
el Notepad. El CD del SQL Server contiene un archivo llamado template.ini en el cual puedes usar
tu archivo .ini.
El archivo .ini esta compuesto de una sección simple [Options] que contiene parámetros, cada uno
relacionado a una feature diferente o seting de configuración.

Empezar una instalacion desatendida

Para empezar una instalacion desatendida, use la siguiente sintaxis en una linea de
comando:

setup.exe /settings <path to .ini file>

Por ejemplo, para realizar una instalacion desatendida sin un archivo .ini llamado
installsettings.ini en el C:\setup folder, use el siguiente comando:

setup.exe /settings c:\setup\installsettings.ini

Adicionalmente, puede especificar el /qn switch para realizar una instalacion silenciosa
(sin cuadros de diálogos) o el /qb switch para especificar que solo sean mostrados los cuadros
de progreso.
Curso 5 estrellas SQL Server 2005

Realizar una instalacion Remota

Introduccion

Puedes instalar SQL Server 2005 en una computadora a trabes de una red. Poder
realizar esto es útil cuando se necesita instalar SQL Server en múltiples computadoras
en distintos lugares, o cuando no es necesario acceder físicamente a la computadora en
la que se quiere instalar SQL Server.

Requerimientos de Instalacion Remota

La instalacion remota debe ser efectuada desde una linea de comando usando un archivo .ini.
Curso 5 estrellas SQL Server 2005

El archivo .ini debe contener los parámetros explicados en el siguiente cuadro:

Parámetro Descripción

TARGETCOMPUTER El nombre de la maquina en red en la cual SQL


Server
va a ser instalado.

ADMINACCOUNT La cuenta con privilegios de administrador para ser


usada para loggearse en la computadora remota.
ADMINPASSWORD La clave de la cuenta del administrador para
loggearse en la computadora remota.

La instalacion remota es soportada solo en un entorno de dominio, no puede ser usada para instalar
SQL Server en una computadora remota en un grupo de trabajo.

Instale SQL Server en un Cluster

Introducción
Curso 5 estrellas SQL Server 2005

El SQL Server 2005 Enterprise Edition soporta la instalacion en un failover cluster


en Windows 2000 Advanced Server, Windows 2000 Datacenter Server,
Windows Server 2003 Enterprise Edition, y Windows Server 2003 Datacenter Edition.
Es importante entender como prepararse para la instalacion en un cluster para asegurarse
una instalacion exitosa que provea un alto nivel de disponibilidad.

Prepararse para la instalacion en un cluster

Antes de instalar SQL Server 2005 en un cluster, considere los ítems descriptos en la
siguiente tabla:

Consideración Descripción

Configuración del Sistema Operativo Asegúrese que el clustering esta instalado y


configurado apropiadamente en el sistema Windows
que planea usar para SQL Server. Asegúrese que las
letras de unidades para los discos del cluster coinciden
con todos los nodos y que deshabilito NetBIOS en
todas las placas de red privadas.

Soporte de SQL Server component clustering Asegúrese que los componentes de SQL Server que
planea usar están soportados en un cluster. Lea la
documentación del Setup de SQL Server 2005 para
información acerca de los componentes soportados en
un closter.

Dependencias de Clustering Asegúrese que ha configurado correctamente los


componentes de software en los cuales dependen los
clustering de SQL Server 2005. Ver los documentos
del setup de SQL Server 2005 y los documentos de
herramientas de Windows 2003 Cluster Administrator.

Instalar SQL Server 2005 en un cluster

Luego de configurar el clustering en Windows 2000 o Windows Server 2003, siga las siguientes
instrucciones para instalar SQL Server 2005 en el cluster:

1. Inserte el CD de SQL Server 2005.


2. Si la pantalla del setup de SQL Server 2005 no es mostrada, vea los contenidos del
Curso 5 estrellas SQL Server 2005

CD y haga click en setup.exe para empezar el programa del setup.


3. Acepte el End User License Agreement.
4. Instale los componentes pre-requeridos necesarios detectados por SQL Server
Component Update.
5. Inicie el SQL Server Installation Wizard para instalar una nueva instancia de
SQL Server.
6. En la pagina de Installation Computer, seleccione Virtual Server (el cual sera
seleccionado automaticamente si un Windows cluster es detectado), y especifique las
credenciales de login remoto para los otros nodos en los cluster.
7. Vea el reporte del System Consistency Checker.
8. Ingrese la informacion de registracion.
9. Seleccione las features que quiere instalar. Puede seleccionar grupos preseleccionados
o usar la opcion Advanced para seccionar componentes individuales para cada feature.
10. Seleccione si instalar una instancia por defecto o una instancia nombrada.
11. En la pagina de Virtual Server Name, Especifique un nombre para el servidor virtual.
12. En la pagina de Virtual Server Configuration, Ingrese un protocolo de Internet (IP)
para cada red en las cuales estara disponible el servidor virtual para los clientes.
13. En la pagina de Cluster Node Configuration, especifique los nodos a incluir en el
Servidor virtual.
14. En la pagina de Remote Account Information, especifique la informacion de la cuenta
remota. Esta cuenta sera usada para configurar SQL Server en cada nodo en el servidor
virtual; sera solo usanda durante el setup. Esta cuenta debe ser valida como adminsitrador
en todos los nodos del cluster.
15. Ingrese la informacion de la cuenta para los servicios de SQL Server 2005.
16. Seleccione el modo de autenticacion. Puede seleccionar Windows Authentication o
Windows and SQL Server Authentication.
17. Seleccione un seting correlativo.
18. Si selecciona el feature Reporting Services en el paso 10, ingrese la informacion de
configuracion de Reporting Services.
19. Haga click en Finish cuando la instalacion termine.

Actualizar un cluster existente

Considere los siguientes items cuando actualice de un SQL Server cluster existente a un SQL Server
2005:

Cuando actualiza a un SQL Server 2005 cluster, solo la instancia por defecto es permitida:
! Ediciones previas de SQL Server no pueden coexistir con un failover cluster SQL
Server 2005.
! Debe usar un cuenta dominio para todos los servicios de SQL Server.
! Si ha configurado replicacion en el cluster, debe borrar todas las publicaciones,
remover la replicacion, y luego reconfigurar despues que el proceso de actualizacion
haya finalizado.
Curso 5 estrellas SQL Server 2005

Administrar una instalacion de SQL Server 2005

Introduccion

Esta seccion describe los procesos para administrar la instalacion existente de SQL Server 2005.

Objetivos

! Agregar o quitar componentes de SQL Server 2005.


! Remover SQL Server 2005.
! Administrar una instalacion de SQL Server.
Curso 5 estrellas SQL Server 2005

Agregar o Remover componentes de SQL Server 2005


Curso 5 estrellas SQL Server 2005

Introduction

Puedes remover o agregar componentes de instalacion de un SQL Server 2005 usando


las aplicaciones del panel de control Add or Remove Programs.

Poder usar la aplicacion Add or Remove Programs para administrar una instalacion de
SQL Server es una gran mejora sobre las ediciones previas de SQL Server, las cuales
requerian que el administrador re-ejecute el programa del setup para cambiar features
instaladas.
Curso 5 estrellas SQL Server 2005

Aplicacion Add or Remove Program de SQL Server

Las aplicacion Add or Remove Program lista una entrada para cada instancia instalada de
SQL Server en la computadora. Adicionalmente, si ha instalado alguno de los samples
que provee SQL Server 2005, cada sample sera listado por separado.

Use el siguiente procedimiento para midificar la instalacion de SQL Server 2005:


1. En el Panel de Control, haga click en Add or Remove Programs.
2. Seleccione la instancia del SQL Server 2005 que quiera modificar.
3. Haga click en Change.
4. En la pagina Welcome to the Microsoft SQL Server Installation Wizard,
haga click en Next.
5. En la pagina System Configuration Check, haga click en Next.
6. En la pagina Change or Remove Instance, haga click en Change Installed
Components.
7. Use el programa del setup para hacer los cambios necesarios en la instalacion de
SQL Server.

Remover SQL Server 2005

Introduccion

Si necesita remover SQL Server 2005 de una computadora, use las aplicaciones Add
or Remove Programs del Panel de Control.
Curso 5 estrellas SQL Server 2005

Remover SQL Server

Puede usar uno de los dos metodos para iniciar el programa de setup de SQL Server
Y remover SQL Server:

! En Add or Remove Programs, seleccione la instancia de SQL Server que quiere


remover, y luego haga click en Remove.
! En Add or Remove Programs, seleccione la instancia de SQL Server que quiere
remover, y luego haga click en Change. Use las opciones por defecto del programa
del setup hasta que la pagina Change or Remove Instance es mostrada. En esta pagina,
haga click Remove Microsoft SQL Server.

Trabajando con versiones previas


Curso 5 estrellas SQL Server 2005

Introduccion

If you are using a previous version of SQL Server, you can either upgrade to
SQL Server 2005 or use SQL Server 2005 side by side with your existing
installation.
Running SQL Server 2005 in conjunction with your existing installation can
simplify the migration process by making it possible to test your existing
applications without committing to an upgrade.

Upgrading to SQL Server 2005

Podes usar el programa de setup de SQL Server 2005 para actualizar un SQL Server 2000
Service Pack 3 a SQL Server 2005. Si estas usando versions anteriores de SQL Server, primero debes
actualizar a SQL Server 2000 y después actualizar a SQL Server 2005.

Podes actualizar las bases de datos desde versions previas de SQL Server usando el
Copy Database Wizard.

Compatibilidad Backward

Si necesitas mantener compatibilidad con aplicaciones contruidas con versiones anteriores de SQL
Server, considera los siguientes puntos:
! Modo de compatibilidad
SQL Server 2005 provee del sp_dbcmptlevel stored procedure para habilitar compatibilidad con
versions previas de SQL Server.

@new_cmptlevel value SQL Server version

60 SQL Server 6.0

65 SQL Server 6.5

70 SQL Server 7.0

80 SQL Server 2000

90 SQL Server 2005

! Opciones de collation

Durante el setup, generalmente usted selecciona el default Windows collation. Podes cambiar esta
configuración si necesitas que sea compatible con otra instalacion de SQL Server 2005 o un SQL
Server 2000
Existente. Asegurate de seleccionar el collation apropiado cuando estes actualizando de versions
anteriores.
Curso 5 estrellas SQL Server 2005

Modulo 3

Herramientas Administrativas de SQL Server 2005


○ Usando Management Studio de SQL Server
○ Usando Computer Manager de SQL
○ Usando el Utilitario para sqlcmd
○ Usando Management Objects de SQL

Uso de SQL Server Management Studio

Introducción

El SQL Server 2005 provee herramientas graficas que permiten al administrador


realizar tareas diarias mas rápida y fácilmente. El SQL Server Management Studio es
la herramienta gráfica más frecuentemente usada.
Esta lección describe como puede realizar tareas de administración usando SQL
Server Management Studio.
Curso 5 estrellas SQL Server 2005

Objetivos
! Navegar el SQL Server Management Studio.
! Registrar un servidor en SQL Server Management Studio.
! Explorar los objetos en la base de datos en SQL Server Management Studio.
! Ejecute consultas Transact-SQL usando SQL Server Management Studio.
! Describir soluciones de SQL Server Management Studio.
! Crear una solución de SQL Server Management Studio.
! Usar SQL Server Management Studio para administrar bases de datos.

Qué es SQL Server Management?

Introducción

La mayor parte de las tareas de administración de base de datos SQL Server 2005 se realizan con SQL
Server Management Studio. Debe familiarizarse con esta herramienta para administrar sistemas de
SQL Server 2005.

Definición

El SQL Server Management Studio es un entorno integrado para acceder, configurar, administrar y
manejar todos los componentes de SQL Server 2005.
Combina las capacidades de Enterprise Manager, Query Analyzer, y Analysis Manager,
las cuales eran provistas por las versiones previas de SQL Server.

Features
Curso 5 estrellas SQL Server 2005

El SQL Server Management Studio provee las siguientes features para administradores:

! Administración completa de bases de datos relacionadas, Analysis Services


Databases, Reporting Services, SQL Server Integration Services (SSIS), y SQL
Mobile databases.
! Herramientas visuales para crear Transact-SQL, XMLA, MDX, y XQuery
Statements

El SQL Server Management Studio usa Microsoft Visual Studio® Framework e


incluye funcionalidades de Visual Studio para crear consultas o scripts, soporte de
fuente de control para almacenar y administrar copias de scripts mientras que
evolucionan en el tiempo, y acceso al sistema de ayuda interactiva. También incluye
Object Explorer, un panel para navegar servidores y sus bases de datos y un Solution Explorer, un
panel para administrar soluciones de SQL Server guardadas.

Nota

Contrariamente a las herramientas provistas por las versiones previas de SQL Server,
el SQL Server Management Studio no requiere una conexión activa a la base de datos
cuando escribe scripts o consultas.

Locación

Encontrará el SQL Server Management Studio en el grupo de programas Microsoft


SQL Server, disponible haciendo clic en All Programs en el menú Start de Windows.
Curso 5 estrellas SQL Server 2005

Cómo registrar un Servidor?

Introducción

Registrar un servidor le permitirá almacenar la información de una conexión para conexiones futuras.

Antes de registrar un servidor debe saber:

! El nombre del instanacia del SQL Server que quiere registrar.


! El método de autenticación usado para acceder al instanacia del SQL Server siendo Microsoft
Windows® Authentication o SQL Server Authentication.
! Un nombre de usuario y clave válidos si intenta conectarse a una instancia de SQL Server
usando SQL Server Authentication.
Curso 5 estrellas SQL Server 2005

Registrar un SQL Server

Use el siguiente procedimiento para registrar un servidor:


1. Haga clic con el botón derecho sobre Microsoft SQL Servers en el Registered
Servers window, posiciónese sobre New, y luego haga clic en Server Registration.
2. En el cuadro de diálogo New Registered Server:
• Seleccione la instancia de SQL Server o navegue a la instancia de SQL Server que
quiera registrar desde el cuadro Server name.
• Seleccione el modo de autenticación usado por la instancia de SQL Server desde
el cuadro Authentication.
• Si ha seleccionado el SQL Server Authentication, ingrese un nombre de usuario
y clave en los campos User name y Password.
• Ingrese un nombre y descripción para el servidor en los campos Registered
server name y Registered server description.
3. Haga click Test para verificar que los datos que ha ingresado son válidos.
• Si aparece el mensaje The connection was tested successfully, haga clic en
OK, y luego en Save.
• Si aparece un mensaje de error, chequee que haya ingresada la instancia correcta
de servidor, tipo de autenticación, y nombre de usuario y contraseña (si corresponde)
y pruebe otra vez.
4. Verifique el nuevo servidor aparece en la ventana Registered Servers.
Curso 5 estrellas SQL Server 2005

Qué es el Object Explorer?

Introducción

Puede administrar objetos en la base de datos de SQL Server usando el


Object Explorer. Object Explorer presenta los objetos en una manera jerárquica,
usando una vista tipo árbol agrupado por tipos de objetos.

Definición

Object Explorer, es una feature de SQL Server Management Studio, es una ventana que te permite
navegar y administrar objetos. Al usa Object Explorer, puede realizar las siguientes tareas:
! Construir y manejar bases de datos y objetos.
! Ver y modificar propiedades de la base de datos.
! Generar scripts para reconstruir los contenidos de la base de datos.
! Crear fuentes de datos.
! Controlar privilegios y permisos.
! Configurar replicación.
! Crear paquetes de Data Transformation Services (DTS).
! Ver archivos logs de SQL Server.
Curso 5 estrellas SQL Server 2005

! Administrar el SQL Server Agent.

Carpetas de Object Explorer

Puede usar el Object Explorer para administrar los siguientes ítems:


! Base de datos. El Object Explorer distingue entre sistemas de base de datos
usados por SQL Server y bases de datos de usuarios manteniendo datos del
usuario y de la aplicación. Puede navegar los contenidos de una base de datos
individual usando la misma vista que el Enterprise Manager proveía en in SQL
Server 2000.
! Seguridad. La carpeta de seguridad en Object Explorer provee accesos a los
logins del servidor, roles del servidor, servidores conectados, y a servidores
remotos de la misma manera que SQL Server 2000 Enterprise Manager.
! Servicios de Notificación. Puede usar la carpeta de Notification Services para
crear y administrar instancias de SQL Server Notification Services.
! Replicación. La carpeta de Replicación le permite crear replicaciones públicas
y suscripciones, y configurar servidores de distribución.
! Administración. La carpeta de Administración provee acceso a los archivos de
log de SQL Server, dispositivos de backup, planes de mantenimientos de base
de datos, y el Activity Monitor (llamado Current Activity en SQL Server 2000
Enterprise Manager). Puede también usar esta carpeta para configurar el SQL
Mail y SQLiMail.
! Servicios de soporte. La carpeta de Support Services provee para herramientas
iniciar o detener los Distributed Transaction Coordinator y búsquedas Full-Text.
! SQL Server Agent. La carpeta de SQL Server Agent permite administrar trabajos
de SQL Server Agent, alertas, operaciones, proxies y logs de error.

Botones de Object Explorer

Junto con el control de vista, Object Explorer incluye seis botones que puede usar
para controlar su operación:
! Connect. Este botón muestra el cuadro de Connect to Server que le permite
conectarse a una instancia de SQL Server.
! Disconnect. Este botón cierra la conexión al servidor seleccionado.
! Stop. El control de vista tipo árbol expande carpetas dinámicamente mientras
son seleccionadas; una carpeta que contiene un gran número de objetos puede
tomar un tiempo en ser mostrada. Puede presionar este botón para que el Object
Explorer detenga una operación que esta tomando mucho tiempo.
! Refresh. Este botón refresca la información mostrada en Object Explorer,
reemplazándola con la información más recientemente disponible.
! Filter. Este botón permite seleccionar objetos filtrados que el Object Explorer
muestra, por ejemplo, mostrar solo tablas dentro de un schema específico.
! Schema. Este botón te permite agrupar objetos, como tablas, por su shema
pre-fijo o por tipo de objeto.
Curso 5 estrellas SQL Server 2005

Cómo ejecutar consultas Transact-SQL?

Introducción

Una feature clave de SQL Server Management Studio es la habilidad para crear,
editar, y ejecutar consultas Transact-SQL. Esta funcionalidad reemplaza el Query
Analyzer, que fue suplido con SQL Server 2000.
El menú Query en SQL Server Management Studio provee varias opciones para
usar las consultas Transact-SQL. Por ejemplo, puede analizar una consulta para
verificar que es sintacticamente correcta sin tener que correrla y generar información
de plan de ejecución de consulta.

Ejecutar una consulta en SQL Server

Siga los siguientes pasos para ejecutar una consulta en SQL Server.
1. En el menú File, posicionese sobre New, y luego haga clic en New SQL Server Query.
2. En el cuadro de dialogo Connect to SQL Server, haga clic en Cancel.
3. En el editor de SQL, tipee un statement Transact-SQL.
Curso 5 estrellas SQL Server 2005

4. En el menú Query, haga clic en Execute.

Nota
La primera vez que corra una consulta. será llevado a conectarse a SQL Server.
También será llevado a conectarse si su conexión se ha cortado.

5. Navegue por los resultados en la parte inferior del panel de la ventana de la consulta.

Qué es SQL Server Management Studio Solution?

Introducción

Es útil para agrupar juntas consultas e información de conexión y almacenarlas para poder acceder a
ellas y ejecutarlas fácilmente mas tarde.

Definición
Una SQL Server Management Studio solution es una colección de uno o más
proyectos de SQL Server Management Studio. Un SQL Server Management Studio
proyecto es un set de definiciones de conexiones y consultas que provee
una forma de organización conveniente de consultas relacionadas e información de
conexión. Puede ubicar proyectos bajo un código de control.
Los objetos que hacen a una SQL Server Management Studio project son almacenados
como archivos en una carpeta que es especificada cuando creas el proyecto.
Curso 5 estrellas SQL Server 2005

Los templates de SQL Server project

El SQL Server Management Studio provee los siguientes project templates:


! SQL Server Scripts
Este template te permite crear, editar, y guardar consultas Transact-SQL y
asociarlas con conexiones a SQL Server.
! Analysis Server Scripts.
Este template te permite crear, editar, y guardar consultas MDX, DMX, y XMLA
y asociarlas con conexiones de Analysis Server.
! SQL Mobile Scripts
Este template te permite crear, editar, y guardar consultas Transact-SQL y
asociarlas con conexiones de SQL Server.

Cómo crear un SQL Server Management Studio Solution?

Introducción

Cuando crea una SQL Server Management Studio solution, puede usar el
Solution Explorer para definir conexiones y consultas y setear sus propiedades.

Crear una SQL Server Management Studio solution

Siga estos pasos para crear una SQL Server Management Studio solution usando
Solution Explorer:

1. En el menú File, párese sobre New, y luego haga click en Project.

Nota
Si tiene un SQL Server Management Studio project ya abierto, puede seleccionar
agregar el proyecto a esta solución o puede cerrarlo y crear un nuevo proyecto.

2. En el cuadro de dialogo New Project, haga click en el SQL Server Scripts


template. Provea un nombre y ubicación para el nuevo proyecto. Haga clic en OK.
Vea la ventana Solution Explorer. Una nueva solución con proyecto ha sido creada.
3. En Solution Explorer, haga click con el botón derecho sobre la carpeta de
Connections, y luego haga clic en New Connection. En el cuadro de dialogo
Connect to Server, seleccione la instancia de servidor apropiado y mecanismo de
autenticación y haga clic en OK.
4. En la ventana Properties, seleccione las propiedades de Execution Timeout,
Initial Database, y Login Timeout.
5. En Solution Explorer, haga click con el botón derecho en la carpeta Queries,
y luego haga click en New Query.
6. En la ventana Properties, setee las propiedades en Name de la consulta.
7. En el SQL Editor, tipee una Transact-SQL statements para que sea ejecutada.
8. En el menú File, haga clic en Save All.
Curso 5 estrellas SQL Server 2005

• En el menú File, posicionese sobre Add, y luego haga clic en New Project.
• En el menú File, posicionese sobre New, y luego haga clic en Project. seleccione
la opción Add to Solution cuando cree el nuevo proyecto.
Puede crear soluciones que incluyan proyectos múltiples, haciendo más fácil agregar
proyectos relacionados que hayan sido desarrollados de manera independiente uno del otro.
9. Cierre SQL Server Management Studio.

Qué es SQL Computer Manager?

Introducción

SQL Computer Manager es una Microsoft Management Console (MMC) snap-in.


Provee los medios para controlar los servicios de SQL Server 2005, como también
la funcionalidad previamente provista por la utilidad SQL Server 2000 Client Network
y la Server Network.

Iconos de SQL Computer Manager

El SQL Computer Manager agrupa las tareas que pude realizar bajo tres iconos:
! SQL Server 2005 Services
Este icono provee acceso a los servicios de SQL Server 2005, permitiéndole iniciarlos,
pararlos o detenerlos, y setear sus propiedades.
! SQL Server 2005 Network Configuration
Este icono le permite configurar los protocolos de red que la instancia de SQL Server
2005 usara para los requerimientos de los clientes aceptados.
Curso 5 estrellas SQL Server 2005

! SQL Native Client Configuration


Este icono le permite configurar los protocolos de cliente que las aplicaciones que esta corriendo en
esa computadora puede usar para comunicarse con los servicios de SQL
Server 2005.

Cómo Controlar Servicios?

Introducción

Los servicios de SQL Server 2005 son configurados cuando se instala SQL Server 2005.
Sin embargo, es importante entender como controlar estos servicios manualmente, en
caso que surja la necesidad.

Iniciar, Detener, Pausa, Resumir y Reiniciar un servicio

Siga el siguiente procedimiento para controlar los servicios de SQL Server:


1. Haga clic en Start, posicionese sobre All Programs, posicionese sobre Microsoft
SQL Server 2005, y luego haga clic en SQL Computer Manager.
2. En la consola de Computer Management, expanda SQL Server 2005 Services.
3. Haga click sobre un servicio, y luego haga click sobre un servicio en el panel de la derecha.
4. Haga click con el botón derecho sobre el servicio o haga click en el menú Action, y luego haga
click en:
• Start para correr un servicio.
• Stop para detener un servicio.
• Pause para suspender un servicio y dejar de aceptar nuevas conexiones.
• Resume para continuar un servicio suspendido.
• Restart para reiniciar un servicio.
Curso 5 estrellas SQL Server 2005

Cómo ver y Cambiar Propiedades de un Servicio?

Introducción

El SQL Server 2005 services tiene una serie de propiedades que se pueden ver
y cambiar según lo necesario. Las propiedades de los servicios están divididas en
dos paginas:

Las propiedades comunes del servicio, que incluye el modo de inicio del servicio y la
cuenta de seguridad que el servicio debe usar.
! Propiedades especificas de SQL Server 2005, que incluye el numero de versión de
SQL Server, el path de instalación, y el idioma usado.

Algunas de estas propiedades no pueden ser modificadas.


Curso 5 estrellas SQL Server 2005

Setee las Propiedades de un Servicio

Siga el siguiente procedimiento para setear las propiedades:


1. Bajo el nodo de SQL Server 2005 Services, haga click en un servicio
y luego haga click en una instancia de servicio en el panel de la derecha.
2. Haga click con el botón derecho sobre el servicio o haga click en el menú Action,
y luego haga click en Properties.
3. En la página de propiedades para el servicio:
• Haga Click sobre el Service tab para ver las propiedades básicas comunes a
varios servicios.
-o-
• Haga click en el Advanced tab para ver las propiedades especificas a los servicios
de SQL Server 2005.
4. Actualice la propiedad o las propiedades que quiera modificar y luego haga click en OK.

Como Administrar la Conexión de Red?

Introducción

El icono de SQL Server Network Configuration le permite especificar que protocolos


la instancia SQL Server 2005 debe escuchar para los requerimientos de los clientes.
también puede especificar información para cada protocolo. Protocolos diferentes
contienen diferentes parámetros de dirección.

Habilitar o Deshabilitar un Protocolo de Servidor

Siga el siguiente procedimiento para habilitar o deshabilitar el protocolo de un servidor:


1. En la consola de SQL Computer Manager, expanda SQL Server 2005
Network Configuration.
2. Haga click en una instancia de SQL Server 2005, y luego haga click en un protocolo
en el protocolo de la derecha.
3. En el menú de Action, haga click en Enable para permitir aceptar los
requerimientos usando el protocolo, o haga click en Disable para no permitir
los requerimientos.

Cambiar los Parámetros de una Dirección de un Protocolo de Servidor

Siga el siguiente procedimiento para cambiar los parámetros de una dirección


de un protocolo de servidor:
1. En SQL Computer Manager, haga click en un instancia SQL Server 2005, y luego
haga click en un protocolo en el panel de la derecha.
2. En el menú Action, haga click en Properties.
3. Modifique los seteos de protocolo, y luego haga click en OK.
Para mas información acerca de seteos de protocolos específicos, vea .Net-Libraries
Curso 5 estrellas SQL Server 2005

y Network Protocols en SQL Server 2005 Books Online.

Nota

Debe reiniciar una instancia luego de reconfigurar los parámetros de su protocolo de red, o habilitar o
deshabilitar protocolos.

Como Administrar Client Network Connectivity?

Introducción

Los clientes deben ser configurados para usar protocolos y direcciones que coinciden
con los de los servicios de SQL Server 2005. Puede usar la utilidad Client Network
Configuration en la consola del SQL Computer Manager en cada cliente para que cumpla con esta
tarea.

Nota

Los protocolos del cliente incluyen parámetros adicionales que no son aplicables a servidores,
incluyendo seteos de conexión inactiva.

Habilitar o Deshabilitar un protocolo de cliente

Siga el siguiente procedimiento para habilitar o deshabilitar un protocolo de cliente:


1. En la consola de SQL Computer Manager, expanda SQL Native Client
Configuration.
2. Haga click en Client Protocols, y luego haga click en un protocolo en el panel
derecho.
3. En el menú Action, haga click en Enable para habilitar clientes a emitir
requerimientos usando el protocolo, o haga click en Disable para no permitir a los
clientes emitir los requerimientos.

Cambiar los Parámetros de un Protocolo de un Cliente

Siga el siguiente procedimiento para cambiar los parámetros de un protocolo de cliente:


1. En SQL Computer Manager, haga click en Client Protocols, y luego haga click en
un protocolo en el panel derecho.
2. En el menú Action, haga click en Properties.
3. Modifique los settings del protocolo, y luego haga click en OK.

Uso de la utilidad sqlcmd


Curso 5 estrellas SQL Server 2005

Introducción

Esta lección describe como usar la utilidad sqlcmd para ejecutar consultas Transact-SQL
desde la línea de comandos.

Objetivos de la lección

Luego de completar esta lección usted podrá:


! Describir la utilidad sqlcmd.
! Usar la utilidad sqlcmd interactivamente.
! Usar la utilidad sqlcmd para ejecutar un script.
! Usar variables con la utilidad sqlcmd.
! Usar sqlcmd con un Dedicated Administrator Connection.
! Usar la utilidad sqlcmd para ejecutar Transact-SQL desde la línea de comando.

Qué es la Utilidad sqlcmd?

Introducción
No es siempre posible o deseable usar una herramienta grafica como SQL Server Management Studio
para ejecutar una Transact-SQL statements. Por ejemplo,
un grupo de scheduleados para una ejecución unattended normalmente no operan en un entorno
grafico. El SQL Server 2005 incluye una utilidad llamada sqlcmd para facilitar este requerimiento.

Definición

La utilidad sqlcmd le permite ejecutar statements y scripts Transact-SQL desde la línea


de comando y schedulear trabajos agrupados. Esta utilidad usa OLE DB para correr agrupaciones
Transact-SQL. (Antes las utilidades de SQL Server estaban basadas en ODBC o DBLibrary.)

Importante

Aunque el SQL Server 2005 provee ambos sqlcmd y osql, osql no será soportado en
las futuras versiones de SQL Server. Debe usar sqlcmd para todos los nuevos desarrollos.

Perfeccionamientos de sqlcmd

La utilidad sqlcmd extiende las features encontradas en osql, incluyendo la habilidad de usar
variables, conectarse a servidores dinámicamente consultar información del servidor y enviar
información de error al entorno que esta llamando. también provee una Dedicated Administrator
Connection (DAC) que le permite al administrador de una base de datos conectarse al servidor y
resolver problemas.
Curso 5 estrellas SQL Server 2005

Comandos de sqlcmd

La utilidad sqlcmd soporta los siguientes comandos junto con statements Transact-
SQL.

Comando Descripción

GO [count] Ejecuta el comando batch la cantidad de veces


especificada (por defecto es una).

RESET Limpia el statement cache.

ED Invoca al editor de texto sobre el mas reciente


batch. El entorno variable SQLCMDEDITOR
especifica el editor a usar (edit.com por defecto).

!! cmd Ejecuta el comando de sistema operativos especificado


y vuelve a la utilidad sqlcmd.

QUIT Sale de la utilidad sqlcmd.

EXIT (statement) Sale de la utilidad sqlcmd pero pasa el primer valor


devuelto por la statement especificada al entorno que
llama como el código de salida.
Curso 5 estrellas SQL Server 2005

Todos los siguientes comandos requieren como prefijo “:”


:r filename Lee el contenido del archivo especificado dentro del
statement buffer.

:ServerList Lista todas las computadoras corriendo SQL Server en


la red.

:List Muestra los contenidos del statement cache.

:Listvar Muestra las variables scripting y valores que son


actualmente seteadas
:Error filename | STDOUT | STDERR Redirecciona todas las salidas de error al archivo
especificado, la salida stream standard, o la salida
stream standar de error.

:Out filename | STDOUT | STDERR Redirecciona todos los resutados de una consulta al
archivo especificado, la salida stream standard, o la
salida stream standard de error.

:Perftrace filename | STDOUT | Redirecciona toda la información de performance de


STDERR rastreo al archivo especificado, la salida stream
standard, o la salida stream standard de error.

:Connect server[\instance] [timeout] Conecta al servidor e instancia especificada usando un


[user_name[password]] nombre de usuario y clave. Se desconecta i el servidor
no responde en una determinada cantidad de segundos.
Valores por defecto para los parámetros de concesión
pueden ser especificados en los entornos variables
SQLCMDLOGINTIMEOUT, SQLCMDSERVER,
SQLCMDUSER, y SQLCMDPASSWORD.

:On Error [exit | ignore] Especifica una acción a ser realizada cuando ocurre un
error durante la ejecución del comando. La opción exit
sale de la utilidad sqlcmd con un error. La opción
ignore mostrara un mensaje de error pero el script
continuara.

:SetVar variable value Crea o setea una variable scripting con el valor
especificado.

:Help Lista los comandos de sqlcmd con una pequeña


explicación de cada uno.

sqlcmd Command-Line Switches


Curso 5 estrellas SQL Server 2005

Introducción

La utilidad sqlcmd se invoca desde la línea de comando. La utilidad sqlcmd puede realizar una
cantidad de switches de línea de comando. Algunos de estos switches son similares a los usados por
osql.

Switches

El siguiente cuadro describe los switches de línea de comando de sqlcmd. Algunas de estas opciones
son principalmente usadas cuando se corre un sqlcmd como parte de un trabajo agrupado no
interactivo.

Switch Description

-? Muestra el resumen de sintaxis de las opciones de


sqlcmd.

-L[c] Lista los servidores disponibles en la red. Si la opción


c es especificada, la lista es mostrada sin un heading.
Este switch no puede ser usado en conjunción con
otros switches.

-U login_id [-P password] Conecta usando el nombre de usuario y clave de SQL


Server 20050. Si estos switches son omitidos, sqlcmd
tratara de conectarse usando Windows Authentication
como la cuenta que esta corriendo en la utilidad
sqlcmd. Alternativamente, el nombre de usuario y
clave puede ser especificado en los variables de
entorno sqlcmd y SQLCMDPASSWORD.

-E Conecta usando Windows Authentication. (Esto es por


defecto si los switches -U y -P son omitidos.)
Curso 5 estrellas SQL Server 2005

-S server_name[\instance_name] Especifica el servidor e instanacia a la cual conectarse .


Esta información también puede ser especificada en el
variable de entorno SQLCMDSERVER.

-H wksta_name El nombre de la estación de trabajo es mostrado por el


proceso almacenado sp_who y el Activity Monitor en
SQL Server Management Studio. El valor usado por
defecto es el nombre de la computadora que esta
siendo usada para correr la utilidad sqlcmd. Esta
información también puede ser especificada en la
variable de entorno SQLCMDWORKSTATION.

-d db_name La base de datos a la cual conectarse. Esta información


puede ser especificada en la variable de entorno
SQLCMDDBNAME.

-l time_out La cantidad de segundos para conectarse al proveedor


OLE DB antes que se pierda la conexión. Por defecto
son ocho segundos. Esta información puede también
ser especificada en la variable de entorno
SQLCMDLOGINTIMEOUT.

-t time_out La cantidad de segundos antes que un comando o SQL


statement se corten. Por defecto, los comandos no se
cortan. Esta información puede ser también
especificada en la variable de entorno
SQLCMDSTATTIMEOUT.

-h headers El numero de rows que serán impresos entre los


headings de una columna. Por defecto, los headings de
una columna aparecen solo una vez, al principio de un
set de resultados. Use .h-1 para indicar que los
headings de una columna no deben ser mostrados. Esta
información tambien puede ser especificada en la
variable de entorno SQLCMDHEADERS.

-s col_separator El carácter usado para separar columnas. Por defecto,


la utilidad sqlcmd usa un espacio en blanco. Este valor
también puede ser especificado en la variable de
entorno
SQLCMDCOLSEP.

-w column_width El ancho de la salida de pantalla. El valor por defecto


es. Este valor también puede ser especificado en la
variable de entorno
SQLCMDCOLWIDTH.

-a packet_size Requiere que las comunicaciones con SQL Server usen


el tamaño de paquete especificado. Esta información
también puede ser especificada en la variable de
entorno SQLCMDPACKETSIZE.

-e Echo input.

-I Habilítala opción de conexión


QUOTED_IDENTIFIER.

-c cmd_end El batch terminator a usar. Por defecto, es la palabra


Curso 5 estrellas SQL Server 2005

GO en una línea sola. No use una palabra reservada de


Transact-SQL.

-q "query" Ejecute las consultas especificadas pero permanece


conectado cuando la consulta termina.

-Q "query" Ejecuta la consulta especificada, desconecta y luego


sale de la utilidad sqlcmd. No incluya el terminador
GO en la consulta.

-m error_level Muestra el número de mensaje, estado, y nivel de error


solo para mensajes del nivel especificado o más altos.
Esta información puede ser especificada en la variable
de entorno SQLCMDERRORLEVEL.

-r [0 | 1] Redirecciona los mensajes de error al dispositivo


standard (la pantalla por defecto). El switch -r 0
Redireccionara mensajes con un nivel de severidad de
17 o mas solamente. el switch -r 1 redireccionara todas
las salidas de mensajes de error (incluyendo salida
impresa de statement).

-i input_file[,file2.] Lee la entrada desde la lista o archivos especificados


en vez del teclado.

-o output_file Redirecciona la salida al archivo especificado en lugar


de la pantalla.

-p[1] Imprime la información de performance para cada set


de resultados. Si el parámetro 1 es especificado, la
información de performance será mostrada como una
serie de valores de datos raw separados por “:”.

-b Si ocurre un error, sale de la utilidad sqlcmd y


devuelve un valorDOS ERRORLEVEL.

-u Almacena el archivo de salida en formato Unicode.

-R Usa los seteos regionales cuando convierte datos de


moneda e información de dato y tiempo en formato de
caracteres.

-v var="value"[var="value".] Crea variables scripting con los valores y nombres


especificados.

-A Usa un DAC.

-X[1] Deshabilita comandos que pueden comprometer la


seguridad del sistema (comandos ED y !! ), muestran
una advertencia pero luego continúan. Si es usado -X1,
muestra un mensaje de error y luego sale de la utilidad
sqlcmd si uno de estos comandos es intentado.

-V severitylevel Especifica el nivel de severidad mas bajo que será


reportado por la utilidad sqlcmd.
Curso 5 estrellas SQL Server 2005

Cómo usar la utilidad sqlcmd Interactivamente

Introducción
Cualquier usuario que tenga una cuenta valida de SQL Server 2005 puede invocar la
utilidad sqlcmd interactivamente, realizar comandos y mostrar los resultados.

Ejecutar Comandos usando sqlcmd

Siga el siguiente proceso para ejecutar un comando interactivamente:


1. Abra una ventana de comando.
2. Tipee sqlcmd seguido de las switches apropiadas. Para conectarse usando
Windows Authentication, simplemente tipee sqlcmd.
3. Tipee statements Transact-SQL y comandos de sqlcmd. Puede tipear múltiples
comandos y esparcirlos por múltiples líneas.
4. Tipee GO para ejecutar el comando batch.
5. Tipee QUIT para cerrar la utilidad sqlcmd.

Como ejecutar Scripts Usando la utilidad sqlcmd


Curso 5 estrellas SQL Server 2005

Introducción

Así como también correr la utilidad sqlcmd interactivamente, puede almacenar


comandos y statements Transact-SQL en un archivo script e invocar sqlcmd para
ejecutar este script. Muchos de los switches de línea de comando para la utilidad
sqlcmd son creadas para correr sqlcmd de esta manera.

Ejecutar un script

Siga el siguiente procedimiento para ejecutar un script usando sqlcmd:


1. Use un editor de texto, cree un archivo de texto que contenga los comandos
y statements que quiera ejecutar.

Nota
Asegúrese que no incluye el statement GO para de hecho correr los comandos.

2. Setee las variables de entorno necesarias para acceder a la computadora


apropiada corriendo SQL Server, mas comunmente SQLCMDUSER,
SQLCMDPASSWORD, y SQLCMDSERVER.

Tip

Aunque puede especificar nombre de login, clave, y servidor como parámetro


en una línea de comando de la utilidad sqlcmd, es mejor usar las variables del
entorno, porque después puede evitar la necesidad de hard-code estos valores
en scripts batch.

3. Desde la línea de comando, invoque sqlcmd usando el switch -i para especificar


el nombre del archivo script. Capture la salida usando el switch -o.
4. Examine la variable ERRORLEVEL para asegurarse que el script fue ejecutado
con éxito.
5. Examine la salida del archivo capturada y chequee que los resultados son los
Curso 5 estrellas SQL Server 2005

esperados.

Cómo Usar las Variables de la Utilidad sqlcmd

Introducción

Usar variables con sqlcmd permite crear cripts generalizados que pueden ser ejecutados
contra diferentes bases de datos y servidores. Aparte de las variables de entorno de sqlcmd, puede
definir variables dentro de los scripts usando el comando :setvar. también puede pasar variables
dentro de scripts sqlcmd desde el entorno, o usar el switch -v desde la línea de comando.

Uso de Variables

Siga el siguiente procedimiento para ejecutar un script usando variables:


1. Crear un script sqlcmd. Valores de referencia que serán pasados usando la siguiente referencia:

$(variable)

Por ejemplo:
SELECT $(colname)
FROM $(tabname)
GO

2. Ejecute el script usando el switch .v para especificar los valores de las variables. Por ejemplo:

sqlcmd .i MyScript.sql .o MyScript.out .v colname="name"


!tabname="sys.databases"

Alternativamente, puede especificar colname y tabname como variables de entorno.

Cómo Usar una Dedicated Administrator Connection

Introducción

En las ediciones previas de SQL Server, conectarse a un servidor que no respondía


no era posible. Sin embargo, Dedicated Administrator Connection (DAC), una
feature de SQL Server 2005, le permitirá acceder aunque el servidor este frizado o de otra manera no
esta disponible.
Una DAC tiene su propio scheduler SQL Server. Por lo tanto, en el único momento
Curso 5 estrellas SQL Server 2005

que no puede conectarse es si el servicio SQL Server ha sido detenido o pausado.


Note que SQL Server solo soporta una sola DAC; un intento de usar una segunda
DAC mientras la primera todavía esta activa, será rechazada.
Una vez que haya accedido al servidor que no responde, puede ejecutar comandos
para diagnosticar el problema, terminar conexiones problemáticas, o apagar el servidor
de manera correcta y reiniciarlo.

Usar una Dedicated Administrator Connection

Siga el siguiente procedimiento para abrir una DAC:


1. Invoque la utilidad sqlcmd especificando el switch -A :

SQLCMD .A

2. Diagnostique y solucione el problema, termine conexiones problemáticas, o apague


el servidor de manera correcta:

1> SHUTDOWN WITH NOWAIT


2> GO
Server shut down by request

Tip

Una conexión de usuario que no responde es usualmente causada por un proceso


que esta esperando por un lock, que es producido por una transacción larga. Puede usar
el proceso almacenado sp_lock para encontrar conexiones que tienen locks exclusivas sobre los
recursos, y que están bloqueando requerimientos de conexión. usted puede terminar estas conexiones
que bloquean usando el comando KILL, si no terminan en tiempo.

Uso de SQL Management Objects

Introducción

Esta lección describe el SQL Management Objects (SMO).

Objetivos de la Lección

Luego de completar esta lección, usted podrá:


! Describir SMO.
! Comparar SMO a SQL Server Distributed Management Objects (SQLDMO).
Curso 5 estrellas SQL Server 2005

! Crear aplicaciones SMO.


! Usar SMO para recuperar información del servidor.
! Usar SMO para hacer backups de bases de datos.
! Usar SMO para script tareas comunes de administración.

Qué son los SQL Management Objects?


Curso 5 estrellas SQL Server 2005

Introducción

Es útil automatizar las tareas de administración que un administrador necesita


realizar, especialmente porque reduce la posibilidad de errores e inconsistencias.
Esto es particularmente verdad cuando una empresa contiene múltiples servidores
SQL Server e instancias. SQL Server 2005 provee el SQL Management Objects (SMO)
API para este propósito.

Definición

SMO provee la habilidad de crear programas y scripts de administración. Es un set


de objetos de programación hechos para escribir programas usados para administrar
objetos y tareas de SQL Server.
El SMO es complementado como un .NET ensamble (Microsoft.SqlServer.Smo.dll).
El SMO define una jerarquía de objetos y sus propios modelos de objetos.
Usted puede usar SMO para construir aplicaciones que hagan varias tareas
administrativas, tal como recuperar y modificar seteos de configuración, crear nuevas
bases de datos, administrar trabajos de SQL Server Agent, y schedulear backups.
Curso 5 estrellas SQL Server 2005

SMO Comparado con SQL Server Distributed


Management Objects

Introducción

El SMO intenta ser un completo reemplazo de SQL Server Distributed Management


Objects (SQL-DMO) provisto con las versiones anteriores de SQL Server. El motor
de la base de datos en SQL Server 2005 ha experimentado muchos cambios
internos, y SMO es diseñado para tomar todas las ventajas de estos cambios. El SMO
es optimizado para realizar el uso mas eficiente de los recursos, y balancea la
necesidad de guardar memoria contra los requerimientos completos de consultas instanciadas de
objectos a través de la red. Usar SMO, un desarrollador puede
prácticamente controlar el punto al cual los objetos son instanciados.

Nota

Aunque el SQL-DMO es entregado con SQL Server 2005, es provisto solo por
compatibilidad retrazada. SQL-DMO no opera de manera óptima con el SQL Server
2005. Debe usar SMO para los nuevos desarrollos.

SMO y WMI

El SQL-DMO fue creado para ser una interfase programmer-centric para SQL Server.
El SMO extiende su programabilidad, y provee una vista más administrator-centric
a través de su interfase simplificada para Windows Management Instrumentation
(WMI). Puede hacer uso de WMI con SMO para monitorear y configurar los servidores
e instancias de SQL Server 2005.
SMO Scripting

El SMO provee una feature de scripting perfeccionada a través de la clase Scripter. Por ejemplo,
puede usar esta clase para automáticamente script una dependencia completa
basada en árbol en un objeto simple.

Cómo crear Aplicaciones SMO


Curso 5 estrellas SQL Server 2005

Introducción

Puede usar Visual Studio 2005 para desarrollar aplicaciones SMO. Pueden ser
diseñadas como aplicaciones Windows Forms, aplicaciones ASP.NET Web, o
aplicaciones de consolas, dependiendo en sus requerimientos específicos. Por
ejemplo, si necesita administrar bases de datos desde muchas locaciones dentro
de su compañía, una aplicación ASP.NET corriendo en la intranet de la corporación
quita la necesidad de instalar en computadoras clientes.

Crear una Aplicación .NET SMO

Siga el siguiente procedimiento para crear una aplicación de .NET SMO.


1. Abra Visual Studio 2005.
2. Cree un nuevo proyecto usando el lenguaje que elija y el tipo de aplicación
requerida, por ejemplo, un proyecto Microsoft Visual Basic® .NET Windows
Form.
3. Referencias a los ensambles de SQL SMO. Para trabajar con SQL Server, debe
hacer referencia a Microsoft.SqlServer.SMO. Dependiendo en la funcionalidad de
su aplicación, debe necesitar referirse a otros ensambles de en el namespaces Microsoft.SqlServer.
Por ejemplo, Microsoft.SqlServer.ConnectionInfo.
4. Importe los namespaces de SMO usando los Imports statement en
Visual Basic .NET o el using statement en Microsoft Visual C#®.
5. Conectese con la computadora corriendo SQL Server para instantiating
un object Server, obteniendo el objeto ConnectionContext, especifique el
nombre del servidos instancia, y conéctese al servidor. Por defecto, el Windows
Authentication es usado para conectarse cuando desarrolla aplicaciones SMO.
6. Codifique su aplicación.

Cómo Usar SMO para Recuperar Información del


Servidor
Curso 5 estrellas SQL Server 2005

Introducción

Puede usar SMO para recuperar información acerca de la computadora que corre SQL Server. Por
ejemplo, puede consultar la edición, lenguaje, y versión de un servidor.

Recuperar Información

Luego de conectarse a una computadora corriendo SQL Server, puede usar el objeto
Server para recuperar información server-specific. El objeto Server tiene Información propia que
expone varios de las propiedades del servidor no configurables.
La siguiente tabla lista las propiedades del objeto Información que puede usar para
devolver información del servidor a su aplicación.

Propiedad Descripción

Edition Obtiene la edición de la computadora corriendo SQL


Server.

IsClustered Obtiene un valor Boolean que indica si el servidor es


parte de un cluster.

IsSingleUser Obtiene un valor Boolean que indica si el servidor esta


seteado como solo lectura.

Languaje Obtiene el lenguaje por defecto de la computadora


corriendo SQL Server.

NetName Obtiene el nombre NetBIOS del servidor.

OSVersion Obtiene la versión del sistema operativo de la


computadora.

Parent Obtiene el objeto Server que es padre de este objeto


Information.

PhysicalMemory Obtiene el total de la RAM (en MB) de la


computadora.

Platform Obtiene la plataforma hardware de la computadora.

Processors Obtiene el número de procesadores instalados en la


computadora.

Product Obtiene el titulo del producto para la computadora


corriendo SQL Server.

ProductLevel Obtiene el nivel del producto para la computadora


corriendo SQL Server.

VersionString Obtiene la versión de la computadora corriendo SQL


Server.
Curso 5 estrellas SQL Server 2005

Cómo Usar SMO para hacer Backup de una Base de Datos

Introducción

Puede usar SMO para realizar tareas administrativas regulares, tal como hacer
backups de bases de datos.
Puede usar las propiedades del objeto Backup para customizar sus backups y
llegar a sus requerimientos. La información en el siguiente cuadro describe las propiedades claves del
objeto Backup.

Property Description

Action El tipo de backup a realizarse

BackupSetDescription Descripción textual para un set de backup set

BackupSetName Nombre para identificar un set de backup

BlockSize Bloquea el tamaño de la unidad a ser usada cuando el


formateo es parte de un backup.

Checksum Propiedad Boolean que determina si el valor de una


checksum es calculado durante el backup o la
operación de restauración.

Database La base de datos en la cual las operaciones de backup


o restauración corren.

DatabaseFileGroups Grupos de archivos de SQL Server destinados a la


operación de backup

DatabaseFiles Archivos del sistema operativo destinados a la


operación de backup.

Devices Dispositivos especificados para la operación de backup

DeviceType Tipo de dispositivo de un dispositivo asociado a la


operación de backup.

ExpirationDate Fecha y tiempo en que el set de backup vence y los


datos ya no son considerados relevantes.

FormatMedia Propiedades Bolean que determinan si una cinta es


formateada como primer paso en una operación de
backup.
Curso 5 estrellas SQL Server 2005

Incremental Propiedades Boolean que determinan si realizar un


backup de incremento.

Initialize Propiedades Bolean que determinan si los dispositivos


asociados con una operación de backup son partes
inicializadas de una operación de backup.

LogTruncation Nombre del método usado para truncar el log de la


base de datos como parte de la operación de backup.

MediaDescription Descripción textual de la media que contiene la


información del set de backup

MediaName Nombre especificado para identificar un set de media.

NoRewind Propiedad Boolean que determina si un SQL Server


mantendrá la cinta abierta luego de una operación de
backup

Restart Propiedades Bolean que determinan si una operación


de backup reiniciara si es interrumpida.

RetainDays Cantidad de días que deben transcurrir antes que un set


de backup sea sobre-escrito.

SkipTapeHeader Operación lógica del backup que determina sin la


media cargada es correcta.

UnloadTapeAfter Propiedad Boolean que determina si una cinta de


media es rebobinada y no cargada luego que se
completa la operación de backup.

Hacer Backup de una Base de Datos

Siga el siguiente procedimiento para escribir un código SMO para hacer backup
de una base de datos:
1. Conéctese a la computadora corriendo SQL Server.
2. Declare y instancie un objeto de Backup.
3. Setee las siguientes propiedades del objeto de Backup:
a. Action
b. BackupSetName
c. Database
d. DeviceType
e. Alguna otra propiedad customizada, como Incremental y NoRewind
4. Llame al método Devices.Add del objeto del Backup, pasando el path al dispositivo. Llame al
método SqlBackup del objeto Backup, pasando el objeto Server.
Curso 5 estrellas SQL Server 2005

Modulo 4

Monitoreo de SQL Server 2005


○ Uso de SQL Profiler
○ Uso de DDL Triggers
○ Uso de Event Notification
○ Uso de Metadata Views

Introduction

Los Administradores necesitan monitorear un servidor de base de datos para resolver problemas de
performance o identificar problemas. En este modulo, aprenderas acerca de varias herramientas y
tecnicas para monitorear un Microsoft® SQL Server. 2005.

Uso del SQL Profiler

Introducción

El SQL Server 2005 provee una versión actualizada del SQL Server Profiler encontrada
en SQL Server 2000. Esta nueva versión incluye muchas mejoras especialmente para
SQL Server 2005. Ya debe estar familiarizado con las funcionalidades provistas por el
SQL Profiler; esta lección se concentra en las nuevas features implementadas con SQL Server 2005.

Objetivos

! Describir las mejoras de SQL Profiler en SQL Server 2005.


! Guardar información SQL Profiler trace como XML.
! Usar SQL Profiler para monitorear SQL Server 2005.
Curso 5 estrellas SQL Server 2005

Mejoras de SQL Profiler en SQL Server 2005

Introducción

El SQL Profiler en SQL Server 2005 provee información adicional para realizar
procesos de base de datos que en las versiones anteriores estaban disponibles.

Nuevas Mejoras y Features

Los cambios importantes a SQL Profiler están resumidos a continuación:


! Profiling Analysis Services. El SQL Profiler puede capturar y rastrear eventos
levantados por SQL Server 2005 Analysis Services. (Profiling Analysis Services
no esta incluido en este curso y no sera visto mas tarde.)
! Tracing Showplan y deadlock events. El SQL Profiler provee mejoras en rastreo
de eventos de Showplan y deadlock, incluyendo:
• Representación graficas de ciclos de deadlock, permitiendole analizar como
ocurren los deadlock.
• La habilidad de guardar resultados de Showplan como XML, los cuales pueden
ser importados a otras herramientas capaces de leer archivos XML.
! Guardar resultados como XML. El SQL Profiler rastrea resultados que pueden ser
salvados como XML y también como formatos standars: ANSI, Unicode, y OEM.
! Agregar datos. Los datos de SQL Profiler pueden ser agregados basados en una
llave seleccionada. Puede usar esta nueva feature proveyendo una simple cuenta
del numero de veces que estos eventos hayan ocurrido.
Curso 5 estrellas SQL Server 2005

Cómo Guardar un Rastro como XML

Introducción

El XML es un formato de datos portátil, entendido por cada vez mas herramientas.
Guardando información rastreada como archivos XML, en vez de en el formato nativo
de SQL Profiler, permite al administrador usar una variedad de herramientas para
analizar los datos. Por ejemplo, puede importar los datos XML a aplicaciones como
Microsoft Office Excel, o puede escribir una aplicación customizada para realizar su
análisis.

Guardar un Rastreo como XML

Siga el siguiente procedimiento para guardar rastreos como XML:


1. En SQL Profiler, crear un ejecutar un rastreo.
2. Cuando el rastreo termine, en el menú File, posiciones sobre Save As, y luego
haga clic en Trace XML File.
3. Especifique un nombre y una locación, y luego haga clic en Save.

Uso de DDL Triggers

Introducción

Los DDL triggers son unas nuevas features en SQL Server 2005 que pueden ser
usadas para responder a acciones en objetos en una base de datos, en cambio,
triggers standard, solo pueden responder a cambios en datos. Por ejemplo, una DDL
puede ser usada para auditar operaciones como crear tablas. Los DDL triggers son
entonces una herramienta muy útil para monitorear acciones que ocurren dentro de una
base de datos.
Curso 5 estrellas SQL Server 2005

Objetivos

! Describir DDL triggers.


! Crear DDL triggers.
! Administrar DDL triggers.
! Usar DDL triggers para responder a eventos de DDL.

Qué son DDL Triggers?

Introducción

Es útil poder monitorear operación de definición de datos, como un usuario creando


una tabla, cuando audita y regula acciones de la base de datos. El DDL triggers
provee los medios para capturar eventos de definiciones de datos transparentemente,
así un usuario ejecutando una statement de definición de lenguaje, no sabrá que la
tarea esta siendo observada.

Definición

Un DDL trigger dispara cuando un usuario ejecuta una statement de definición de


Curso 5 estrellas SQL Server 2005

lenguaje, como CREATE TABLE, DROP TRIGGER, o UPDATE STATISTICS.

Ejemplo

El DDL triggers puede ser útil para registrar acciones de administración al sistema. Por
ejemplo, puede crear un trigger en el statement UPDATE STATISTICS para registrar
detalles acerca de la tabla en la cual las estadísticas fueron actualizadas, el usuario
que las actualizó, y la hora y fecha que la actualización fue hecha.

Alcance DDL trigger

Al contrario de los triggers ordinarios que están asociados con tablas, un DDL
trigger se ejecuta cuando una statement particular es ejecutada, sin importar el
destino de la statement. Por ejemplo, un DDL trigger DROP_TABLE se disparará
cuando cualquier tabla se caiga. Algunos DDL triggers operan a nivel de base de
datos y solo se disparan cuando el evento correspondiente ocurre en una base de
datos especifica. Estos triggers predominantemente conciernen con un objeto en
una sola base de datos, como tablas, indexes, usuarios, procedimientos, vistas, y
demás. Un ejemplo de una DDL trigger que opera con un alcance de base de
datos es CREATE_TABLE.
Otras DDL triggers operan a nivel de servidor y se disparan sin importar la base de
datos en uso. Estos triggers están asociados con objetos a nivel de servidor, como
logins y certificados de seguridad. El CREATE_LOGIN DDL trigger es un ejemplo
que opera con alcance de servidor. Para información de cuales DDL triggers operan
en alcance de base de datos y servidor, vea la sección Event Groups for Use with DDL Triggers en
SQL Server 2005 Books Online.

Procesos DDL trigger

Los DDL triggers se disparan para completar la acción de triggering. Por ejemplo,
un DROP_TABLE trigger se dispara cuando la tabla destino ha sido borrada
exitosamente. No hay ningun equivalente a EN VEZ DE triggers para operaciones.
Puede usar el statement ROLLBACK TRANSACTION para abortar la transacción
en curso y deshacer cualquier trabajo que ha sido realizado, incluyendo las
operaciones DDL que hicieron disparar el trigger.
Un sola operación DDL puede disparar múltiples DDL triggers. El orden en el cual
los triggers disparan no es documentado; no se debería confiar de los DDL triggers
para ejecutar alguna secuencia en especial.
Curso 5 estrellas SQL Server 2005

Cómo Crear DDL Triggers

Introducción

Los DDL triggers se crean usando el statement CREATE TRIGGER. Adicionalmente,


pueden usarse algunas extensiones de sintaxis que han sido agregadas a SQL
Server 2005.

La statement CREATE TRIGGER

Cuando crea una DDL trigger, debe especificar el alcance y tipo de la operacion DDL.
El siguiente ejemplo crea un trigger que se dispara cuando un usuario ejecuta el
comando UPDATE STATISTICS en la base de datos en curso:

CREATE TRIGGER UpdStats


ON DATABASE
FOR UPDATE_STATISTICS
AS
...

Nota
Tambien puede especificar el evento DDL_DATABASE_LEVEL_EVENTS
para responder a cualquier operación DDL en una base de datos.

Indique el alcance de una base de datos usando o la cláusula ON DATABASE ó


ON ALL SERVER en la definición del trigger. El cuerpo de una DDL trigger
puede contener statements Transact-SQL o pueden referirse aun método en un
ensamble .NET.
Curso 5 estrellas SQL Server 2005

La Función del Evento de Datos

El Standard Data Manipulation Language (DML) triggers crea las tablas inserted
y deleted, permitiendo al desarrollador examinar los datos originales mientras son
cambiados y los nuevos valores a los cuales están siendo cambiados. El DDL
triggers no crea estas tablas. En su lugar, puede usar la función eventdata para
obtener información acerca del evento disparando el trigger.
La función eventdata recupera un documento EVENT_INSTANCE XML del que los
contenidos variaron acorde al destino del DDL trigger. Todos los DDL triggers
recuperan un documento que incluye los siguientes elementos:
! <PostTime>
• El tiempo en el cual el trigger fue disparado
! <SPID>
• El numero de ID del proceso de la base de datos que causa el disparo del trigger.
! <EventType>
• El tipo de evento que causo el disparo del trigger, como CREATE_TABLE o
UPDATE_STATISTICS
El resto del documento XML contiene información que depende del comando que
disparo el trigger. Por ejemplo, el siguiente documento fue rdevuelto por un DDL
trigger disparado por el comando UPDATE STATISTICS:

<EVENT_INSTANCE>
<PostTime>2004-06-18T02:14:20.640</PostTime>
<SPID>58</SPID>
<EventType>UPDATE_STATISTICS</EventType>
<ServerName>SQL2005PC</ServerName>
<LoginName>SQL2005PC\Administrator</LoginName>
<UserName>SQL2005PC\Administrator</UserName>
<DatabaseName>AdventureWorks</DatabaseName>
<SchemaName>Production</SchemaName>
<ObjectType>STATISTICS</ObjectType>
<TargetObjectName>Product</TargetObjectName>
<TargetObjectType>TABLE</TargetObjectType>
<TSQLCommand>
<SetOptions ANSI_NULLS="ON" ANSI_NULL_DEFAULT="ON"
ANSI_PADDING="ON" QUOTED_IDENTIFIER="ON"
ENCRYPTED="FALSE"/>
<CommandText>
UPDATE STATISTICS Production.Product&#x0D;
</CommandText>
</TSQLCommand>
</EVENT_INSTANCE>

Para descripción detallada del documento devuelto por la función eventdata, vea
la referencia Transact-SQL Reference en SQL Server 2005 Books Online.

Extraer Información de Eventos

Use el método de query del documento devuelto por al funcion eventdata para
extraer información del evento. Por ejemplo, El siguiente codigo, es un ejemplo que
devuelve los elementos PostTime, Database, y TargetObject elements en una UPDATE_STATISTICS
DDL trigger y los muestra:
Curso 5 estrellas SQL Server 2005

CREATE TRIGGER UpdStats


ON DATABASE
FOR UPDATE_STATISTICS
AS
DECLARE @data XML
DECLARE @posttime NVARCHAR(24)
DECLARE @database NVARCHAR(100)
DECLARE @targetobject NVARCHAR(100)
SET @data = eventdata()
SET @posttime = CONVERT(NVARCHAR(24),
[email protected]('data(//PostTime)'))
SET @database = CONVERT(NVARCHAR(100),
[email protected]('data(//DatabaseName)'))
SET @targetobject = CONVERT(NVARCHAR(100),
[email protected]('data(//TargetObjectName)'))
PRINT @posttime
PRINT @database
PRINT @targetobject

Cómo Administrar DDL Triggers

Introducción

El SQL Server 2005 ha extendido la sintaxis de los comandos usados para administrar triggers con
extenciones específicamente para DDL triggers.
Curso 5 estrellas SQL Server 2005

Ver triggers

Puede obtener una lista de trigger disponibles en una base de datos, incluyendo DDL triggers,
consultando la vista del catalogo del sys.triggers, como muestra el siguiente código:

SELECT name
FROM sys.triggers

Puede obtener información de un trigger consultando la vista del catalogo sys.sql_modules, como
muestra el siguiente código:

SELECT definition
FROM sys.sql_modules
WHERE [object_id] =
(SELECT [object_id]
FROM sys.triggers
WHERE name='trigger_name')

Alternativamente, puede ver los triggers de la base de datos usando Object Explorer en
SQL Server Management Studio.

Modificar un Trigger

Use el comando ALTER TRIGGER para cambiar la definición de un DDL trigger.


La sintaxis para cambiar una DDL es muy similar a cambiar una trigger standard.
Usted puede:
! Cambiar el evento trigger.
! Encriptar el trigger.
! Modificar el statement Transact-SQL comprimiendo el cuerpo del trigger.

Borrar un Trigger

Use el comando DROP TRIGGER para borrar una trigger. Por ejemplo:

DROP TRIGGER UpdStats


ON DATABASE

Importante
Cuando se modifica o borra un trigger, debe especificar la cláusula ON DATABASE o ON ALL
SERVER como sea apropiado para el trigger. Si omite esta cláusula, el SQL Server 2005 asumirá que
se esta refiriendo al trigger Standard y reportara un error porque no lo encontrara.
Curso 5 estrellas SQL Server 2005

Usar Event Notifications

Introducción

Eventos de Notificación son una nueva feature en SQL Server 2005 que provee un
alto mecanismo scalable para monitorear las actividades de SQL Server. Son una
herramienta util para grabar actividades de la base de datos con el minimo impacto
en la performance de SQL Server.

Objetivos

! Describir event notifications.


! Crear event notifications.
! Procesar event notifications.
! Administrar event notifications.
! Usar event notifications para capturer eventos de base de datos.

Qué son Event Notifications?

Introducción

Notificaciones de eventos, como los triggers, pueden responder a una variedad de


eventos de la base de datos. Al contrario de los triggers, que ejecutan el mismo código
en el mismo motor de la base de datos SQL Server 2005 que el evento que los dispara,
las notificaciones de eventos pueden comunicarse con brokers de servicio para transmitir información
acerca de eventos a procesos externos usualmente otras instancias de SQL Server 2005.

Definición

Un evento de notificación reaccione a uno o mas eventos en la base de datos y envia un


mensaje al Service Broker service diseñado para manejar eventos. Un evento de base de datospuede
ser una operacion DML o DDL en un objeto de base de datos, o el rastro de
un evento similar a esos que pueden ser capturados usando SQL Profiler.

Capturar Eventos

Un servicio Service Broker es un proceso almacenado o una aplicación construida


Curso 5 estrellas SQL Server 2005

usando el Service Broker framework que monitorea una cola para mensajes
entrantes. Un servicio Service Broker puede ser escrito usando Transact-SQL o uno
de los lenguajes CLR. Los mensajes son enviados al servicio por Service Broker, que
usa una cola para información de mensajes persistentes hasta que el servicio esta
listo para aceptarlos. El servicio también puede usar una cola para retener
requerimientos hasta que pueda procesarlos. Para simplificar el proceso de creación
de notificación de eventos, SQL Server 2005 incluye un tipo de mensaje y contacto
diseñado para notificación de eventos. Los únicos objetos de Service Broker objects
que tiene que crear son colas, un servicio y una ruta.

Cómo crear Event Notifications

Introducción

Use el statement CREATE EVENT NOTIFICATION para crear un nuevo objeto de notificación de
eventos.

Ejemplo

La siguiente notificación de eventos enviara información al servidio UpdateStatsLogger siempre que


el comando UPDATE STATISTICS sea ejecutado:

CREATE EVENT NOTIFICATION UpdateStats


ON SERVER
FOR UPDATE_STATISTICS
TO SERVICE [UpdateStatsLogger]

Especificar Rango

Usted especifica el rango de una notificación de evento cuando la creat. El


ejemplo mostrado arriba usa un rango server-wide, y el notificador de eventos
ocurrira siempre que el comando UPDATE STATISTICS sea ejecutado en alguna
base de datos del servidor. Puede restringir las notificaciones para que ocurran
solo cuando un comando es ejecutado en la base de datos en curso usando ON DATABASE, o un
objeto especificado. Por ejemplo, la siguiente notificación de
eventos, ocurrira cuando la statement DELETE es ejecutada sobre la tabla
Products en la base de datos en curso:
Curso 5 estrellas SQL Server 2005

CREATE EVENT NOTIFICATION DeleteProducts


ON TABLE Production.Products
FOR DELETE
TO SERVICE [DeleteLogger]

Especificar Tipos de Eventos


Los eventos capturados por una notificación de eventos, pueden ser muy específicos,
como muestra el ejemplo anterior, o pueden ser mas genéricos. Por ejemplo, para
capturar todos los eventos DDL en una base de datos, use FOR
DDL_DATABASE_LEVEL_EVENTS. También puede capturar todos los eventos DML
sobre un objeto especificando FOR DML_EVENTS. También se puede capturar un
rastreo de evento. Por ejemplo, la siguiente notificación de eventos captura el evento
del proceso almacenado completo (los eventos rastreados solo pueden ser capturados
a nivel de servidor.)

CREATE EVENT NOTIFICATION TraceProcs


ON SERVER
FOR SP_Completed
TO SERVICE [SpLogger]

Para un lista completa de eventos de rastreo, vea SQL Trace Events for Use with Event
Notifications en SQL Server 2005 Books Online.

Cómo Procesar Notificaciones de Eventos

Introducción
Curso 5 estrellas SQL Server 2005

La forma mas sencilla de crear un servicio Service Broker para manejar eventos de SQL Server es
usar un proceso almacenado que es activado cada vez que un mensaje aparece en una cola, enviado
por una notificación de eventos. Usted debe especificar que proceso almacenado debería ser ejecutado
cuando creas una cola. El siguiente código muestra como especificar correr un proceso almacenado
llamado EventProc cuando un mensaje es recibido en la cola NotifyQueue.

CREATE QUEUE NotifyQueue


WITH ACTIVATION (
PROCEDURE_NAME = dbo.EventProc,
MAX_QUEUE_READERS = 5,
EXECUTE AS SELF)
GO

Recibir Mensajes

El proceso almacenado deberia prime recuperar el mensaje de la cola usando el comando RECEIVE
y almacenar la información en variables. El comando WAITFOR es usado para suspender un proceso
hasta que un mensaje es recibido o han pasado dos segundos. Si no se reciben mensajes, no hace falta
realizar ninguna accion mas. El siguiente ejemplo muestra como recibir mensajes desde la cola
llamada NotifyQueue:

DECLARE @messageTypeName NVARCHAR(256),


@messageBody XML
;WAITFOR(
RECEIVE TOP(1)
@messageTypeName = message_type_name,
@messageBody = message_body
FROM dbo.NotifyQueue;
), TIMEOUT 2000 ;

IF @@ROWCOUNT = 0
RETURN

Procesar Mensajes

El Proceso almacenado puede luego procesar el mensaje.


Los mensajes en la cola están asignados como un message_type_name que
describe el tipo de mensaje. Puede usar esto para identificar si el mensaje es una notificación de
eventos o un mensaje de error de notificación de eventos. Los
mensajes también contienen una columna message_body que de hecho contiene
la información de ese evento. Esta columna contiene un documento EVENT_INSTANCE XML, que
incluye los mismos elementos que el documento generado por el DDL trigger.
Por ejemplo, el siguiente documento fue generado por una notificación de eventos
disparando al comando ALTER TABLE.

<EVENT_INSTANCE>
Curso 5 estrellas SQL Server 2005

<SPID>58</SPID>
<EventType>ALTER_TABLE</EventType>
<ServerName>SQL2005PC</ServerName>
<LoginName>SQL2005PC\Administrator</LoginName>
<UserName>SQL2005PC\Administrator</UserName>
<DatabaseName>AdventureWorks</DatabaseName>
<SchemaName>dbo</SchemaName>
<ObjectName>T1</ObjectName>
<ObjectType>TABLE</ObjectType>
<TSQLCommand>
<SetOptions ANSI_NULLS="ON" ANSI_NULL_DEFAULT="ON"
ANSI_PADDING="ON" QUOTED_IDENTIFIER="ON"
ENCRYPTED="FALSE"/>
<CommandText>ALTER TABLE T1 ADD col13 int</CommandText>
</TSQLCommand>
</EVENT_INSTANCE>

Puede usar el método query de la documentación para recuperar una información de evento, como
muestra el siguiente ejemplo:

DECLARE @cmd NVARCHAR(1000)


DECLARE @posttime NVARCHAR(24)
DECLARE @spid NVARCHAR(6)
DECLARE @hostname NVARCHAR(100)
DECLARE @loginname NVARCHAR(100)
SET @cmd = CONVERT(NVARCHAR(100),
@messagebody.query('data(//TSQLCommand//CommandText)'))
SET @posttime = CONVERT(NVARCHAR(24),
@messagebody.query('data(//PostTime)'))
SET @spid = CONVERT(NVARCHAR(6),
@messagebody.query('data(//SPID)'))
SET @hostname = HOST_NAME()
SET @loginname = SYSTEM_USER

INSERT INTO AuditLog(Command,PostTime,HostName,LoginName)


VALUES(@cmd, @posttime, @hostname, @loginname)
GO

Cómo Administrar una Notificación de Eventos


Curso 5 estrellas SQL Server 2005

Introducción

El SQL Server 2005 provee nuevos statements Transact-SQL para manejar notificaciones de eventos.
Estos statements hacen posible ver, modificar y borrar notificaciones de eventos.

Ver Notificaciones de Eventos y Colas

Puede obtene una lista de notificaciones de eventos consultando la vista del catalogo
sys.event_notifications:

SELECT name
FROM sys.event_notifications

Puede ver una lista de colas, incluyendo las usadas por el notificador de eventos, consultando la vista
del catalogo sys.service_queues:

SELECT name
FROM sys.service_queues

Borrar una Nota de Notificación de Eventos

Use el comando DROP EVENT NOTIFICATION para borrar pernamentemente una notificación de
eventos de una base de datos:

DROP EVENT NOTIFICATION UpdateStats


ON SERVER

Para mas información del comando DROP EVENT NOTIFICATION, vea el Transact-SQL
Reference en SQL Server 2005 Books Online.

Nota
Las notificaciones de eventos están en la funcionalidad SQL Server 2005 Service Broker.
Para usar una notificación de eventos, debe habilitar el Service Broker habilitando el setting
ENABLE_BROKER de la base de datos en la cual reside su código de notificador de eventos.

Uso de Vistas de Metadatos


Curso 5 estrellas SQL Server 2005

Introducción

El SQL Server 2005 provee dos formas de consultas de metadatos: vistas de catálogos para metadatos
estáticos y vistas de administración dinámica para metadatos dinámicos. Estos dos tipos de vistas
deberían ser usados en preferencia a consultar tablas de sistema porque muestran datos directamente
del SQL Server y algunos contienen mas información que su correspondiente tabla de sistema.

Objetivos

! Consultar metadatos estáticos.


! Consultar metadatos dinámicos.
! Consultar metadatos de SQL Server.

Consultar Metadatos Estáticos

Introducción

Puede usar las vistas de catalogo de SQL Server 2005 para consultar metadatos
estáticos. Estos proveen información acerca de los objetos en la base de datos de
SQL Server, como tablas, procesos almacenados, y constraints, y son el medio
mas efectivo de acceder a metadatos del sistema. Algunas de las vistas de
catálogos listan información server-wide, pero la mayoría son database-specific.
Las vistas de catálogos están listadas en la carpeta <Database name>\Views\System
Views en Object Explorer en SQL Server Management Studio. Sin embargo, no
están aun implementadas como vistas tradicionales bajo las tablas, si no como
metadato del sistema consultado directamente. Están definidas en el espacio de
nombre sys.

Categorías de Vistas de Catálogos


Curso 5 estrellas SQL Server 2005

Las vistas de catálogos están categorizadas de acuerdo a su funcionalidad. La información en la


siguiente tabla lista las categorías llave y algunos de las vistas de catálogos mas usada dentro de cada
categoría.

Categoría Vista de Catalogo Descripción

CLR sys.assemblies Devuelve una row para cada


Assembly ensamble en al base de datos.

Databases and sys.databases Devuelve una row para cada base


files de datos en el servidor.

sys.database_files Devuelve una row para cada


archivo en la base de datos.

Linked sys.linked_logins Devuelve una row para cada linked


servers server login mapping

sys.remote_logins Devuelve una row para cada


remote server login mapping

sys.servers Devuelve una row para cada


servidor remoto o conectado.

Object sys.columns Devuelve una row para objeto que


contiene columnas (por ejemplo,
una tabla o una vista)

sys.events Devuelve una row para cada evento


que disparan una notificación o un
trigger.

sys.indexes Devuelve una row para cada index


o heap de un objeto tabular.

sys.tables Devuelve una row para cada tabla


en la base de datos.

sys.views Devuelve una row para cada vista


en la base de datos.

Schemas sys.schemas Devuelve una row para cada


schema definido en la base de
datos.

Security sys.database_permissions Devuelve una row para cada


permiso definido en la base de
datos.

sys.database_principals Devuelve una row para cada


principio de seguridad en la base de
datos.

sys.database_role_members Devuelve una row para cada


miembro de cada rol de base de
Curso 5 estrellas SQL Server 2005

datos.

Server-wide sys.configurations Devuelve una row para cada opcion


configuration de configuración en el sistema.

Consultas a Vistas de Catálogos

Puede consultar una vista de catalogo de la misma manera que consulta otras
vistas y tablas en una base de datos SQL Server:
1. Ejecute una statement USE para cada base de datos con la que quiera trabajar.
2. Ejecute statement SELECT contra la vista de catalogo que quiere consultar.
Por ejemplo, El siguiente código devuelve una lista de tablas dentro de la base de
datos AdventureWorks:

USE AdventureWorks
SELECT * FROM sys.tables

Nota
Vistas de catalogos no proveen replicación, SQL Agent, o información de backup.

Consulta de Metadatos Dinámicos


Curso 5 estrellas SQL Server 2005

Introducción

Puede usar vistas de administración dinámica y funciones de administración


dinámicas para consultar metadatos dinámicos en SQL Server 2005. Proveen
información del estado actual del SQL Server, tal como locks currently held
dentro de una base de datos. Funciones de administración dinámica son un
caso especial de vista de administración dinámica en la cual la consulta
requiere parámetros para ser enviados para ejecutarse. Por ejemplo,
sys.dm_db_index_physical_stats, requiere el statement DBCC
SHOWCONTIG, necesita saber de que tabla e index usted requiere la
información.

Vistas de Administración Dinámica

Las vistas dinamicas de Administración estan listadas junto con la vista de


catalogo en la carpeta <Database name>\Views\System Views en Object Explorer
en SQL Server Management Studio. Tambien estan definidas en el espacio de
nombre, pero sus nombres generalmente contienen el prefijo dm para distinguirlos de la vista de
catalogo, por ejemplo, sys.dm_tran_locks.

La información en la siguiente tabla, lista algunas de las vistas de administración dinámica mas
comúnmente usada.

Vista de Administración Dinamica Descripción

sys.dm_db_partition_stats Devuelve información en una pagina y row para cada


partición en la base de datos.

sys.dm_exec_sessions Devuelve información acerca de todas los servicios


conectados al servidor.

sys.dm_io_pending_io_requests Devuelve información acerca de requerimientos


pendientes de entrada y salida.

sys.dm_os_memory_pools Devuelve información acerca de cada objeto cache en


el sistema.

sys.dm_os_threads Devuelve información acerca de los threads en el


sistema.

sys.dm_broker_queue_monitors Devuelve información acerca de cada cola


monitoreada en el sistema.

sys.dm_tran_locks Devuelve información acerca de cada lock


o request de lock en el sistema

Consultar Vistas de Administración Dinámicas


Curso 5 estrellas SQL Server 2005

Puede consultar vistas de administración dinámica usando un statement standard


SELECT. Por ejemplo, El siguiente código devuelve una lista de las colas monitoreadas
en SQL Server:

SELECT * FROM sys.dm_tran_locks


Curso 5 estrellas SQL Server 2005

Modulo 5

Mantenimiento de Bases de Datos e Indices


○ Manejo de Indices
○ Uso del Tuning Advisor de la Base de Datos

Administración de Indices

Introducción

Una index es una estructura vital en una base de datos que provee acceso rápido
a los datos. Sin embargo, los indexes se pueden deteriorar con el tiempo y requerir
reorganización como datos en una base de datos que es modificada. Es entonces,
importante para los administradores de bases de datos entender como crear, alterar,
y hacer caer indexes, como así también saber como administrar la fragmentación
que pude resultar cuando las indexes son usadas. La administración Index ha sido
altamente mejorada en SQL Server 2005 a través de las nuevas funcionalidades
statements y de definición de lenguaje (DDL) de index.

Objetivos

! Describir las nuevas features index en SQL Server 2005.


! Crear indices.
! Alterar indices.
! Borrar indices.
! Detectar fragmentación de indices y reorganizar o reconstruir un indice apropiadamente.
! Mantener indices en una base de datos SQL Server 2005.
Curso 5 estrellas SQL Server 2005

Nuevas Features de indices en SQL Server 2005

Introducción

El SQL Server 2005 provee indexes clustered y nonclustered, como lo hace SQL
Server 2000. El SQL Server 2005 también soporta indexes en columnas computadas
como muestras. Sin embargo, SQL Server 2005 extiende la forma en la cual los indexes
son estructurados y procesados, así como también son agregadas y escriben las nuevas
indexes.

El Statement ALTER INDEX

Una nueva index feature en SQL Server 2005 es la statement Transact- SQL ALTER
INDEX, que le permite reconstruir, reorganizar, deshabilitar, o modificar opciones para
una index. Este comando remueve la necesidad de borrar y crear una index para
defragmentarla, y reemplaza algunos de los comando Database Consistency Checker
(DBCC) usados en la versión anterior de SQL Server.
Curso 5 estrellas SQL Server 2005

Operaciones Index Online

El SQL Server 2005 provee la habilidad de administrar indexes mientras que


están en uso, minimizando la ventana requerida de mantenimiento. Por ejemplo:
puede construir una index clustered sobre una tabla mientras otro usuario esta
consultando esa tabla. Aparte de dos periodos cortos de tiempo cuando SQL
Server toma dos snapshots de un dato existente al inicio de una operación y
emergen cambios causados por actualizaciones concurrentes al final, usuarios
concurrentes pueden insertar, actualizar y borrar datos en una tabla. Versiones
anteriores de SQL Server adquirieron locks exclusivos en tabla e index,
bloqueando efectivamente acceso a la tabla hasta que la operación index era
completada.

Operaciones Index Online requieren espacio en disco adicional para soportar


operación online. Debe especificar cuando una index debería permitir operaciones
online como parte de los comandos CREATE INDEX, ALTER INDEX, y DROP
INDEX.

Para mas información acerca de operaciones index online, vea How Online Index
Operations Work en SQL Server 2005 Books Online.

Operaciones Index en Paralelo

Operaciones Index, como crear, alterar, o borrar un index, pueden aprovechar


de varias CPUs para acomodar y escanear operaciones en paralelo. Esto sucede
automáticamente en SQL Server 2005, y las operaciones pueden usar cualquier
numero de procesadores hasta llegar al especificado en la opción de configuración
de servidor de max degree of parallelism.

Sin embargo, crear, reconstruir y borrar indices puede ser una tarea que use
muchos recursos. Permitir una operación index monopolizar procesadores puede
dañar otros trabajos que se estén realizando en la base de datos al mismo tiempo.
Por lo tanto, puede limitar el numero de procesadores usado especificando en el
aviso de la consulta MAXDOP cuando ejecute los comandos CREATE INDEX,
ALTER INDEX, y DROP INDEX Transact-SQL.

Nota
Si no especifica el parámetro MAXDOP, la configuración en max degree of
parallelism especifica el numero máximo de procesadores que una operación
utilizara. Sin embargo, el motor de la base de datos puede decidir usar menos
procesadores si el servidor esta bajo mucha presión y asignar todos los
procesadores a la operación index haría sufrir mucho la performance de las
tareas concurrentes.
Curso 5 estrellas SQL Server 2005

Opciones Locking

El SQL Server 2005 introduce dos nuevas opciones locking cuando se usan
indicess:
! ALLOW_PAGE_LOCKS
Cuando esta habilitado, esta opción provee acceso al index using table and
page-level locks. Cuando deshabilitado, los page-level locks no son usados.
! ALLOW_ROW_LOCKS
Cuando esta habilitado, esta opción provee acceso al the index using table and
row-level locks. Cuando deshabilitado, row-level locks no son usados.
Ambas opciones pueden ser habilitadas simultáneamente.

Indexes con Columnas Incluidas

Indicess nonclustered ahora pueden contener datos nonkey en sus leaf nodes.
Esta feature puede mejorar la performance de consultas que acceden a las
columnas incluidas, al costo del almacenamiento adicional para sostener estos
valores. Las indexes con columnas incluidas pueden ser usadas para reemplazar
las covering indexes usadas en las versiones anteriores de SQL Server.

Un beneficio adicional de las indexes con columnas incluidas tiene que ver con
el limite de las indexes key. En SQL Server 2000, el tamaño de la index key era
limitado a 900 bytes. El leaf node dato en un index con columnas incluidas puede
ser hasta 8060 bytes de tamaño, que es igual al máximo de tamaño de row.

Indices Particionados

Indices Particionados son otra nueva feature administración de index de SQL


Server 2005. Una Index Particionada es una index que se expande a través de
grupos de archivos comprimiendo la base de datos física. Indexes Particionadas
son comúnmente creadas sobre tablas particionads. Particionar puede mejorar
la performance distribuyendo datos a través de múltiples archivos, reduciendo
los contenidos, y aumentando la posibilidad de realizar operaciones IO en
paralelo. Para más información, vea Partitioned Index Concepts en SQL Server
2005 Books Online.

Indexes XML

El tipo de dato xml es una nueva feature en SQL Server 2005. Puede crear una
index XML sobre columnas xml usando los Transact-SQL comandos CREATE
PRIMARY XML INDEX y CREATE XML INDEX. Indexes XML pueden mejorar la
performance de operaciones XQuery sobre datos XML, aunque pueden incurrir
algunos costos significantes cuando los datos son modificados. Indexes XML tienen
un número de features y limitaciones. Para mas información acerca de indexes XML,
vea Indexes on xml Type Columns en SQL Server 2005 Books Online.
Curso 5 estrellas SQL Server 2005

Cómo crear un Index

Introducción

Usted usa el statement CREATE INDEX para hacer una index. El SQL Server 2005
ha extendido la sintaxis de este statement para soportar las nuevas index features.
Adicionalmente, el cuadro de dialogo the New Index en Object Explorer in SQL Server
Management Studio provee acceso completo a estas nuevas features.

Uso CREATE INDEX

El siguiente código muestra la sintaxis completa para crear un statement CREATE INDEX:

CREATE [UNIQUE][CLUSTERED | NONCLUSTERED] INDEX index_name


ON [{database_name.[schema_name]. | schema_name.}]
{table_or_view_name}(column [ASC | DESC][,...n])
[INCLUDE (column_name[,...n])]
[WITH(<relational_index_option>[,...n])]
[ON {partition_scheme_name(column_name[,...n])
| filegroup_name | DEFAULT}]

<relation_index_option> ::=
{ PAD_INDEX = {ON | OFF}
| FILLFACTOR = fillfactor
| SORT_IN_TEMPDB = {ON | OFF}
| IGNORE_DUP_KEY = {ON | OFF}
| STATISTICS_NO_RECOMPUTE = {ON | OFF}
| DROP_EXISTING = {ON | OFF}
| ONLINE = {ON | OFF}
| ALLOW_ROW_LOCKS = {ON | OFF}
| ALLOW_PAGE_LOCKS = {ON | OFF}
| MAXDOP = number_of_processors }

Para detalles adicionales, revea el statement CREATE INDEX en Transact-SQL Reference en SQL
Server 2005 Books Online.

Nota
Ahora puede especificar usar las opciones PAD_INDEX, SORT_IN_TEMPdb,
IGNORE_DUP_KEY y ONLINE cuando usa el Maintenance Plan Wizard.

Permitir Operaciones Online

Especifique la opción ONLINE=ON en la cláusula WITH del statement CREATE


INDEX para permitir otras operaciones DML ejecutarse concurrentemente. El siguiente
Curso 5 estrellas SQL Server 2005

ejemplo muestra como usar la opción ONLINE:

CREATE INDEX IX_Employee_ManagerID


ON HumanResources.Employee (ManagerID)
WITH (ONLINE=ON)

Nota
Las tablas con columnas xml, text, ntext, image, varchar(max), nvarchar(max),
varbinary(max), o filestream no permiten operaciones online.

Especificar el Grado de Paralelismo

Por defecto, el motor de la base de datos usa la configuración del parámetro con el
valor de max degree of parallelism para determinar el numero máximo de CPUs
que puede usar cuando crea una index. Como esta operación puede dejar recursos
insuficientes para otras operaciones concurrente, usted puede limitar los recursos
de la CUP usados especificando la opción MAXDOP, según muestra el siguiente
ejemplo:

CREATE INDEX IX_Employee_ManagerID


ON HumanResources.Employee (ManagerID)
WITH (ONLINE=ON, MAXDOP = 3)

La opción MAXDOP no acepta la opción de configuración max degree of


parallelism. Especificando MAXDOP = 0 hace que la operación use todas las
CPUs disponibles, dependiendo en la cantidad de trabajo del motor de la base
de datos.

Nota
Como con la opción ONLINE, la opción MAXDOP solo afecta al statement que esta
siendo usado para crear, alterar, o borrar el index. El optimizador de consulta usa la opción
de configuración max degree of parallelism para determinar la mejor manera de optimizar
consultas que hacen referencia al index.

Especificar Opciones Locking

Puede indicar las opciones locking disponibles para acceder la index en la cláusula WITH, como se
muestra en el siguiente ejemplo:

CREATE INDEX IX_Employee_ManagerID


ON HumanResources.Employee (ManagerID)
WITH (ALLOW_ROW_LOCKS = ON)
Curso 5 estrellas SQL Server 2005

Agregar Columnas Incluidas

Puede especificar que el index debería contener columnas en los leaf nodes.
Por ejemplo, El siguiente index esta basado en la columna AddressID en la
tabla Address, pero los leaf nodes incluyes las columnas adicionales
AddressLine1 y AddressLine2:

CREATE INDEX IX_AddressDetails


ON Person.Address (AddressID)
INCLUDE (AddressLine1, AddressLine2)

Esta index es útil para cubrir consultas que devuelven los valores en las
columnas AddressLine1 o AddressLine2 basadas en valores en
AddressID. Sin embargo, las operaciones, INSERT, UPDATE, y DELETE
en la tabla incurrirán sobre todo en el mantenimiento de duplicar datos en
el index. No puede incluir las columnas text, ntext, o image.

Indexes Particionadas

Puede especificar una index particionada especificando un grupo de archivos


o partición scheme como parte del statement CREATE INDEX. El siguiente
ejemplo usa la partición scheme llamada CustomerScheme para distribuir los
datos para el index a través de los archivos, basado en el valor de CustomerID:

CREATE INDEX IX_CustomerDetails


ON Sales.Customer(CustomerID)
ON Sales.CustomerScheme(CustomerID)

Si no especifica que una index esta perticionada, pero la tabla que esta siendo indexada
esta particionada, el index es creado usando la misma partición scheme que la tabla.

Crear Indexes XML

Puedes crear una index XML con el statement CREATE [PRIMARY] XML INDEX
que tiene la siguiente sintaxis:

CREATE [PRIMARY] XML INDEX index_name


ON [{database_name.[schema_name]. | schema_name.}]table_name
(xml_column_name)
[ USING XML INDEX xml_index_name
[ FOR { VALUE | PATH } ]
[WITH(<xml_index_option>[,...n])]

<xml_index_option> ::=
{ PAD_INDEX = {ON | OFF}
| FILLFACTOR = fillfactor
| SORT_IN_TEMPDB = {ON | OFF}
| STATISTICS_NO_RECOMPUTE = {ON | OFF}
| DROP_EXISTING = {ON | OFF}
| ALLOW_ROW_LOCKS = {ON | OFF}
| ALLOW_PAGE_LOCKS = {ON | OFF}
Curso 5 estrellas SQL Server 2005

| MAXDOP = number_of_processors }

El siguiente código muestra un ejemplo de cómo crear una index XML:

CREATE PRIMARY XML INDEX IXML_ContactAddContact


ON Person.Contact(AdditionalContactInfo)

Una tabla debe tener un index clustered antes de crear un index XML. Un index XML
primario en una columna xml debe existir antes que una index XML secundaria sea
creada en la columna. No puede usar la opción ONLINE o cuando una index XML
esta siendo creada.

Cómo Alterar una Index

Introducción

Use el statement ALTER INDEX para reconstruir, reorganizar o deshabilitar una


index, o para modificar opciones que usa una index. Estas features están también
disponibles a través del cuadro de dialogo Index Properties en el SQL Server
Management Studio Object Explorer.

Usar ALTER INDEX

ALTER INDEX {index_name | ALL}


ON [{database_name.[schema_name]. | schema_name.}]
{table_or_view_name}
{ REBUILD [WITH(<rebuild_index_option>[,...n])]
| REORGANIZE [ WITH( LOB_COMPACTION = {ON | OFF})]
| DISABLE
| SET (<set_index_option>[,...n]) }

<rebuild_index_option> ::=
{ PAD_INDEX = {ON | OFF}
| FILLFACTOR = fillfactor
| SORT_IN_TEMPDB = {ON | OFF}
| IGNORE_DUP_KEY = {ON | OFF}
| STATISTICS_NO_RECOMPUTE = {ON | OFF}
| ONLINE = {ON | OFF}
| ALLOW_ROW_LOCKS = {ON | OFF}
| ALLOW_PAGE_LOCKS = {ON | OFF}
| MAXDOP = number_of_processors }

<set_index_option> ::=
{ IGNORE_DUP_KEY = {ON | OFF}
| STATISTICS_NO_RECOMPUTE = {ON | OFF}
| ALLOW_ROW_LOCKS = {ON | OFF}
| ALLOW_PAGE_LOCKS = {ON | OFF} }
Curso 5 estrellas SQL Server 2005

La siguiente tabla describe las palabras claves para cada tarea que puede realizar
usando la statement ALTER INDEX:

Palabra Clave Descripción

REBUILD Reconstruir una index, borrando efectivamente y


recrear una index para compactar el espacio que usa y
reordenar su estructura interna para que coincidan los
datos en la tabla.

REORGANIZE Reordena las paginas leaf de una index para que


coincida el orden lógico de los datos en la tabla.

DISABLE Deshabilita temporalmente un index, aun un index


clustered para prevenir su uso.

SET Modifica opciones de cómo una index es mantenida y


accedida.

No puede usar la opción de comando ALTER INDEX para reparticionar una


index, o para agregar o borrar columnas. Debe usar el comando CREATE
INDEX con la opción DROP_EXISTING para realizar estas tareas.

Para mas detalles acerca del statement ALTER INDEX, vea la Transact-SQL
Reference en SQL Server 2005 Books Online.

Reconstruir una Index

La cláusula REBUILD permite modificar la forma en la cual una index es


estructurada y construida usando las opciones FILLFACTOR, PAD_INDEX,
SORT_IN_TEMPDB, IGNORE_DUP_KEY, y STATISTICS_NORECOMPUTE.
El siguiente ejemplo muestra como usar la cláusula REBUILD con la opción
FILLFACTOR:

ALTER INDEX IX_Employee_ManagerID


ON HumanResources.Employee
REBUILD WITH (FILLFACTOR = 80)

Si reconstruye una index larga (una index con más de 128 extents) mientras
le permite operaciones online, el motor de la base de datos copia y reorganiza
los datos usando almacenamiento nuevo desalojando el espacio existente usado
por la index. Debe asegurarse que tiene suficiente espacio de almacenamiento
antes de reconstruir.

Nota
Reconstruir una index clustered no reconstruye automáticamente todas las indexes
nonclustered. Sin embargo, puede ejecutar el comando ALTER INDEX ALL .
REBUILD . para borrar y recrear todas las indexes en una tabla en una operación
simple.
Curso 5 estrellas SQL Server 2005

La cláusula REBUILD permite realizar modificaciones online especificando la opción


ONLINE = ON e indicando el grado de paralelismo con la opción MAXDOP.

Reorganizar una Index

Reorganizar una index mejora la performance de las consultas y operaciones


que escanean un largo numero de rows secuenciales usando una index. Una
Index reorganizada re-usará las mismas paginas previamente asignadas a esta,
aunque algunas paginas pueden ser desasignadas si se vacían como resultado
de compactar datos. Es mas, reorganizar una index no requiere ningún espacio
adicional en tempdb, porque todas las reorganizaciones sin in situ.

La única opción que puede especificar con la cláusula REORGANIZE es


LOB_COMPACTION, la cual puede usar para especificar si las paginas que
contienen largos objetos de datos (image, text, ntext, varchar(max),
nvarchar(max), y varbinary(max)) son también compactadas. El siguiente
ejemplo muestra como usar la cláusula REORGANIZE con la opción
LOB_COMPACTION:

ALTER INDEX IX_Employee_ManagerID


ON HumanResources.Employee
REORGANIZE WITH (LOB_COMPACTION = ON)

Las reorganizaciones son siempre realizadas online, y no bloquearan consultas


o datos que están siendo actualizados. No puede especificar la opción MAXDOP,
e ignorar la opción de configuración max degree of parallelism.

Deshabilitando una Index

El siguiente ejemplo muestra como usar la cláusula DISABLE:

ALTER INDEX IX_Employee_ManagerID


ON HumanResources.Employee
DISABLE

El optimizador de consultas no considera una index deshabilitada cuando evalúa


posibles planes de ejecución para una statement de SQL. Las consultas que hacen
referencia a una index deshabilitada en un aviso de optimización, no se realizaran.
Cualquier restricción y primary o foreign keys asociados con una index deshabilitada
también será deshabilitada.
Curso 5 estrellas SQL Server 2005

El motor de la base de datos no mantiene una index deshabilitada. Puede rehabilitar


una index usando el statement ALTER INDEX . REBUILD o la statement CREATE
INDEX . WITH DROP_EXISTING. Debe rehabilitar restricciones deshabilitadas
usando el statement ALTER TABLE.

Nota
Si deshabilita una index clustered para una tabla, La tabla será marcada OFFLINE.
Todas las modificaciones a la tabla serán prohibidas hasta que el index sea rehabilitado. Tampoco
podrá realizar consultas SELECT.

Cambiar Opciones de Index

Puede modificar las opciones ALLOW_ROW_LOCKS, ALLOW_PAGE_LOCKS,


IGNORE_DUP_KEY, y STATISTICS_NORECOMPUTE para un index usando la
cláusula SET. El siguiente ejemplo muestra la opción ALLOW_PAGE_LOCKS:

ALTER INDEX IX_Employee_ManagerID


ON HumanResources.Employee
SET (ALLOW_PAGE_LOCKS = ON)

Cómo borrar un Indice

Introducción

Use el statement DROP INDEX para borrar un index de una tabla. Este statement
aplica para todas las formas de indexes, incluyendo indexes XML. También puede
borrar una index usando la opción Delete en menú acceso directo en SQL Server Management Studio
Object Explorer.

Uso de DROP INDEX

El siguiente código muestra la sintaxis completa para la statement DROP INDEX:

DROP INDEX index_name


ON [schema_name.]{table_or_view_name}
[ WITH (<drop_index_option>[,...n]) ]

<drop_index_option> ::=
{ ONLINE = {ON | OFF}
| MAXDOP = number_of_processors
| MOVETO { partition_scheme_name(column_name[,...n])] |
filegroup_name | DEFAULT }
Curso 5 estrellas SQL Server 2005

Las opciones DROP INDEX son disponibles solo cuando esta borrando una index
clustered. La opción MOVETO permite especificar donde ubicar los datos luego que
una index haya sido borrada.
Para mas información acerca del la statement DROP INDEX, vea the Transact-
SQL Reference en SQL Server 2005 Books Online.

Borrando una Index

La sintaxis de la statement DROP INDEX ha cambiado en SQL Server 2005.


Especifique la tabla que sostiene la index usando una cláusula ON en vez de la que
usa la notación “.” de las versiones anteriores de SQL Server. El siguiente ejemplo
nuestra la nueva sintaxis:

DROP INDEX IX_Employee_ManagerID


ON HumanResources.Employee

La vieja sintaxis es aun soportada en varios casos (pero no para indexes XML), pero
no debería ser usada para nuevos desarrollos.

Puede borrar una index nonclustered que esta deshabilitada.

Especificar Opciones para Indexes Clustered

El statement DROP INDEX soporta las opciones MAXDOP y ONLINE solo cuando se
borra una index clustered. El siguiente ejemplo borra una index mientras permite a actividades
concurrentes el acceso a tablas subyacentes y limitando el numero de
procesadores realizando la operación a tres:

DROP INDEX IX_Cluster


ON Sales.Customer
WITH (ONLINE = ON, MAXDOP = 3)

No puede borrar una index clustered que esta deshabilitada, y no puede usar la opción
ONLINE para una index clustered que contiene datos Large Object (LOB).

Relocalizar Datos Index Clustered

Cuando borra una index clustered, usted puede especificar donde las rows de datos
en la leaf pages deben ser almacenadas usando la opción MOVE TO. Los datos
serán reconstituidos como una tabla en el lugar especificado. Puede especificar el
destino usando una partición scheme o un grupo de archivos. El siguiente ejemplo
mueve los datos a una partición scheme definida por el NewCustomerScheme:

DROP INDEX IX_Cluster


ON Sales.Customer
WITH (MOVE TO NewCustomerScheme)
Curso 5 estrellas SQL Server 2005

Cómo Administrar Fragmentación

Introducción

Inicialmente, los datos en una index eran publicados y ordenados de acuerdo a las
rows en la tabla subyacente. El motor de la base de datos de SQL Server 2005
automáticamente actualiza las indexes a medida que las rows son insertadas,
actualizadas, o borradas en una tabla. Sin embargo, mientras los datos en una tabla
van cambiando, puede ser relocalizada físicamente en los archivos de la base de
datos. Estas modificaciones puede desalinear las indexes con sus datos
correspondientes, haciendo decaer la performance.

Este fenómeno es conocido como fragmentación. Eventualmente, necesitara


reorganizar o reconstruir sus indexes para ganar beneficio de ellas.

Reorganizar versus Reconstruir

Dependiendo en el grado de fragmentación que ocurre en una index, puede elegir


entre reorganizar o reconstruir la index.

Reorganizar una index clustered o nonclustered defragmenta el los leaf nodes del
index y compacta la información en los nodes internos de acuerdo al setting fill factor
que afecta a la index. El resultado es una index que es mas pequeña, tanto como el
espacio vació causado por borrar una row y las actualizaciones habrán sido borradas,
mientras que los leaf nodes estarán en el mismo orden que la tabla.

Reorganizar una index también puede compactar cualquier objeto grande de columna
en la tabla. Si una index es altamente fragmentada, es mejor reconstruirla. Reconstruir
una index la borra y recrea. También puede cambiar cualquier setting de index, como
el fill factor, cuando reconstruye una index; no puede cambiar estos settings cuando
simplemente esta reorganizando la index.

Determinar el Grado de Fragmentación

Reconstruir o reorganizar una index puede ser una tarea muy cara que utilice muchos recursos.
Reconstruir es significantemente más costoso que reorganizar. Por lo tanto, es
útil determinar cuanto se ha defragmentado index, y solo reconstruir la index si es
absolutamente necesario. Puede usar la función sys.dm_db_index_physical_stats
para asignar el grado de fragmentación de una index.

Nota
Debe correr la función sys.dm_db_index_physical_stats en vez de la statement
DBCC SHOWCONTIG usada con versiones anteriores de SQL Server.
Curso 5 estrellas SQL Server 2005

El siguiente ejemplo muestra como usar la función sys.dm_db_index_physical_stats


sobre todas las tablas en la base de datos en curso:

SELECT
TableName, IndexName, AvgFragmentation
FROM sys.dm_db_index_physical_stats(DEFAULT, '*', DEFAULT,
'DETAILED')

Los parámetros para función sys.dm_db_index_physical_stats, en orden, son:

! @TableName. La tabla de la cual juntar la información. Esta puede ser el nombre


de una tabla especifica, o los valores DEFAULT o NULL. DEFAULT y NULL ambos
hacen devolver al sys.dm_db_index_physical_stats información acerca de todas
las tablas y vistas en la base de datos en curso.

! @IndexName. La index acerca de la cual juntar información. Este puede ser el


nombre de una index especifica, DEFAULT, NULL o '*'. Los valores DEFAULT y NULL
ambos devuelven información solo acerca de la tabla base (o indexes clustered , so la
tabla tiene una). El valor '*' devuelve información acerca de todas las indexes en la
tabla.

! @PartitionId. El numero de ID de la partición de la index. Los valores DEFAULT,


NULL, o 0 devuelven información de todas las particiones.

! @Mode. El nivel de scan a usar para obtener la información requerida. Los valores
soportados son LIMITED, que solo leen paginas parent-level pero es muy rápido, SAMPLED, que
lee solo paginas parent-level y sample leaf pages, y DETAILED, que
lee páginas parent-level y todas las leaf pages.

Para mas información acerca de la función sys.dm_db_index_physical_stats, vea


la Transact-SQL Reference en SQL Server 2005 Books Online.

También puede ver información de fragmentación de index en la pagina Fragmentation


del cuadro de dialogo Index Properties.

Reorganizar una Index

Use el comando ALTER INDEX con la cláusula REORGANIZE para reorganizar una
index.

Nota
Debe utilizar la cláusula REORGANIZE del comando ALTER INDEX preferentemente al statement
DBCC INDEXDEFRAG usado en versiones anteriores de SQL Server.

Reconstruir una Index

Puede reconstruir una index de dos maneras:

! Ejecute el comando CREATE INDEX con la cláusula DROP_EXISTING. Esta cláusula


Curso 5 estrellas SQL Server 2005

Esta cláusula también estaba disponible en versiones anteriores de SQL Server. Use
este statement si no tiene que agregar o remover columnas en una index, reparticionar
una index reparticionada, o mover una index a un grupo de archivos diferente.

! Ejecute el comando ALTER INDEX con la cláusula REBUILD. (Use este comando
preferentemente al statement al DBCC REINDEX.) Use el comando ALTER INDEX si no necesita
reconstruir múltiples indexes, o si quiere evitar cualquier reconstrucción
innecesaria de indexes nonclustered mientras que reconstruye una indexes clustered.

Tip
Aunque puede reconstruir una index simplemente borrando y recreándola, este acercamiento no es
recomendado. es altamente ineficiente y no puede hacer uso de las optimizaciones disponibles para el
statement CREATE INDEX con la cláusula DROP_EXISTING o el statement ALTER INDEX con
la cláusula REBUILD.

Uso del Tuning Advisor de la Base de Datos

Introducción

El punto de crear indexes y datos particionados en una base de datos es para producir
buena performance para los usuarios. Sin embargo, crear las indexes equivocadas o particiones de
datos de mala manera puede terminar en una performance pobre. El
tuning requiere entendimiento de cómo los datos son usados y accedidos en la base de datos, y luego
crear estructuras que soporten estas operaciones en lugar de limitarlas.

El Tuning Advisor de la base de datos (DTA) es una nueva herramienta basada en el


SQL Server 2000 Index Tuning Wizard para establecer que indexes son útiles y como
los datos deberían ser particionados sin requerir un comprendimiento experto de la
estructura de la base de datos o los internos de SQL Server.

Objetivos

! Describir el DTA.
! Usar el DTA para analizar cargas de trabajos.
! Obtener resultados del DTA como XML.
! Use el DTA para asistir en el diseño de la base de datos.
Curso 5 estrellas SQL Server 2005

Qué es el Tuning Advisor de la Base de Datos?

Introducción

El DTA es una nueva herramienta tuning que extiende la funcionalidad disponible en el


Index Tuning Wizard provisto con SQL Server 2000. Puede usar el DTA para analizar
las cargas de trabajos de una base de datos. El análisis puede generar una serie de
recomendaciones para crear y borrar indicess, vistas indexed, y particiones, para que
el motor de la base de datos pueda optimizar las operaciones mientras son realizadas.
La principal ventaja del DTA es que permite a los administradores de bases de datos a
Poner a punto las estructuras de la base de datos basadas directamente en los comandos
realizados por una aplicación, sin necesitar conocimiento profundo de los mecanismos
de optimización de consultas de SQL Server.
Curso 5 estrellas SQL Server 2005

Nuevas Features

Las nuevas features de DTA que no estaban disponibles en el Index Tuning


Wizard incluyen:

! Timebound tuning. Puede especificar durante cuanto tiempo el DTA debería estar
analizando una carga de trabajo. Generalmente, cuanto más tiempo empleado,
más alta la calidad de las recomendaciones que producirá

! Cross-database tuning. Puede poner a punto una carga de trabajo que ocupa múltiples
bases de datos. El DTA generara recomendaciones para cualquiera de las bases
de datos referidas.

!XML output. El DTA puede generar reportes y resultados en XML, para análisis
usando cualquier aplicación que pueda leer XML.

Carga de Trabajo DTA

El DTA puede tomar sus cargas de trabajo de cualquiera de los siguientes recursos:

! Un script de SQL conteniendo los comandos Transact-SQL comúnmente realizados


por usuarios realizando sus trabajos normales.
! Un rastro de archivo capturado por el SQL Profiler mientras monitorea SQL Server
2005.
! Una tabla conteniendo información rastreada capturada, también generada cuando
se monitorea SQL Server 2005.

Puede especificar cual o cuales bases de datos el DTA debe analizar cuando se usa
la carga de trabajo, como así también limitar el rango a las tablas seleccionadas.

Resultados de DTA

Un análisis de DTA genera recomendaciones y reportes.

Las recomendaciones toman la forma de una lista que puede ser cubierta por un
script XML o por una serie scripts de Transact-SQL. Puede evaluar las
recomendaciones o aplicarlas. Las recomendaciones por separado, son generadas
para particionamiento e indexing schemes.

Los reportes resumen diferentes aspectos de la carga de trabajo y resultados.


también puede guardar los reportes como.
Curso 5 estrellas SQL Server 2005

Como Usar el Tuning Advisor de la Base de Datos

Cree una Nueva Sesión

Cada vez que corre el DTA para realizar un análisis, crea una nueva sesión.
Una sesión contiene información acerca de los recursos de carga de trabajo, las
opciones tuning usadas, y los resultados del análisis. Las sesiones aparecen
en la ventana Sesión Monitor del DTA. Puede retener los detalles de sesiones
anteriores o borrarlas. Para crear una nueva sesión, posiciónese sobre el menú
File y haga click en New Session. Luego puede darle un nombre a la sesión.

Especificar la Carga de Trabajo

Puede indicar de donde el DTA debería obtener la información de la carga de


trabajo, y la base de datos a analizar, usando el tab Workload del DTA.

La opción File en el tab Workload le permite especificar un archivo de rastreo


(.trc) generado por SQL Profiler, o un script de SQL que contenga comandos
Transact-SQL, como fuente de la carga de trabajo. Los comandos en el archivo
serán ejecutados contra la base de datos seleccionada, y recomendaciones serán
generadas para optimizar la carga de trabajo.

La opción Table en el tab Workload le permite usar un rastro como la fuente de


carga de trabajo. La tabla debe contener información de rastreo generado por el
SQL Profiler y ser guardada usando la opción Save As/Trace Table.

Setear Opciones Tuning

Antes de comenzar análisis DTA de una carga de trabajo, debe especificar las
opciones de tuning a utilizar. Esto afectara la manera en que el DTA realiza su
análisis y las recomendaciones que genera.

El tab Tuning Options permite especificar:

Si el análisis debe correr hasta completarse, si debe terminar a un tiempo


determinado ( por defecto, a una hora de la hora en curso).

! Que diseño de estructura física (PDSs) a usarse en la base de datos. Puede


evaluar estructuras existentes y generar recomendaciones para que
estructuras retener y cuales desechar. También puede especificar si el DTA
debe asegurar cuales nuevas vistas de indexes e indexed (en varias
combinaciones) deben ser creadas, como así también que indexes y vistas indexed
existentes deben ser borradas.

! Si considerar implementar particionamiento, y hasta que grado.


! Que PDSs mantener en la base de datos. puede especificar si el DTA debe retener
todas las PDSs existentes y solo recomendar ítems nuevos, si considerar borrar
todas las PDSs existentes, y otras combinaciones de opciones.
Curso 5 estrellas SQL Server 2005

Un cuadro de dialogo Advanced Tuning Options esta también disponible. En este


cuadro, usted especifica si los scripts que son generados deben realizar operaciones
online u offline.

Realizar un Análisis

Se realiza un análisis haciendo click en botón Start Analysis en la toolbar del DTA.
Una pantalla de progreso aparecerá, mostrando los pasos del análisis a medida que
van realizándose. Cualquier error o advertencias serán mostrados en esta pantalla
de progreso. La información acerca del progreso de la operación puede ser guardada
en el Tuning log.

Examinar los Resultados

Cuando el análisis esta completo, dos nuevas tabs aparecerán en el.

El tab Recommendations muestra una lista de objetos que deben ser creados o
descartados. Puede filtrar esta lista para mostrar recomendaciones para las bases
de datos y objetos seleccionados. Haciendo click en el link en la columna Definition
mostrara los comandos Transact-SQL que implementaran cada recomendación.

Dependiendo de las opciones tuning elegidas, habrá dos sets de recomendaciones:


una para particiones y otra para indexes.

El tab Reports le permite mostrar un número de reportes predefinidos resumiendo


el análisis incluyendo:

! Statement cost report


Este reporte muestra el costo estimado para cada statement SQL en la carga de
trabajo. Puede usar este reporte para determinar que statements lo beneficiaran
de los cambios recomendados.

! Statement detail report


Este reporte lista cada statement encontrado en la carga de trabajo, junto con el
costo en curso y el costo estimando si las recomendaciones son implementadas.

! Statement-index relations report (en curso)


Este reporte muestra que consultas usan que indexes y tablas o vistas.

! Statement-index relations report (recomendado)


Este reporte muestra que consultas usarían que indexes y tablas si fueran
implementadas las recomendaciones.
Index usage report (en curso)
Este reporte lista los indexes en curso y su uso en un ejemplo de carga de trabajo.
! Index usage report (recomendado)
Este reporte lista alas indexes recomendadas y su uso en un ejemplo de carga de
Curso 5 estrellas SQL Server 2005

trabajo.
! Index detail report (en curso)
Este reporte lista alas indexes en curso y sus detalles.
! View-Table relations report
Este reporte muestra información acerca de las tablas de referencia por las vistas
usadas en la carga de trabajo.
! Workload analysis report
Este reporte resume los resultados del análisis, agrupado por tipo de statement
(SELECT, INSERT, UPDATE, DELETE), y muestra cuantos statements habrán
mejorado la performance, cuantos no tendrán cambios en performance, y cuantos
habrán bajado su performance si las recomendaciones son implementadas.
! Database access report
Este reporte lista las bases de datos de referencia en una carga de trabajo y el
numero de veces que cada una fue usada.
! Table access report
Este reporte lista las tablas de referencia en una carga de trabajo y el numero de
veces que cada una fue usada.

! Column access report


Este reporte lista las columnas de referencia en una carga de trabajo y el número
de veces que cada una fue usada.

El tab Reports también incluye una sección Tuning Summary, la cual muestra
todas las estadísticas y las mejoras en la performance si se implementan las recomendaciones.

Implementar las Recomendaciones

Puede implementar las recomendaciones hacienda click en Apply Recommendations


en el menú Actions. Puede realizar los cambios de inmediato, programarlos para una ejecutarse mas
tarde, o guardarlos como un script de SQL.

Cómo ver los Resultados XML

Introducción

El DTA permite exportar sus recomendaciones y reportes como archivos XML. Esto
permite usar otras herramientas que pueden separar XML para analizar más
profundamente los scripts si es necesario.

Guardar Recomendaciones como XML

Para guardar recomendaciones como XML, en el menú del DTA File, haga click en
Export Session Results y tipee el nombre del Nuevo archivo XML. puede usar
cualquier utilidad que pueda separar XML, tal como Microsoft Internet Explorer, para
ver el archive, puede usar cualquier aplicación customizada basada en XML para
procesar los resultados.
Curso 5 estrellas SQL Server 2005

El archive XML contiene un elemento de Configuration que lista todas las recomendaciones hechas.
El siguiente cuadro muestra parte de un elemento de Configuration:

<Configuration>
<Server>
<Name>localhost</Name>
<Database>
<Name>AdventureWorks</Name>
<Schema>
<Name>Production</Name>
<View>
<Name>vProductAndDescription</Name>
<Recommendation>
<Drop>
<Index Clustered="true">
<Name>
IX_vProductAndDescription
</Name>
</Index>
</Drop>
</Recommendation>
</View>
<Table>
<Name>TransactionHistory</Name>
<Recommendation>
<Drop>
<Index>
<Name>
IX_TransactionHistory_RefOrdID_RefOrdLineNumber
</Name>
</Index>
</Drop>
<Drop>
<Index>
<Name>
IX_TransactionHistory_ProductID
</Name>
</Index>
</Drop>
</Recommendation>
</Table>
...
</Configuration>

Guardar Reportes como XML

Para guardar reportes como XML, haga click con el botón derecho en cualquier parte del reporte, haga
click en Export to file en el menú de acceso directo, y luego tipee el nombre del nuevo archivo XML.
Curso 5 estrellas SQL Server 2005

Modulo 6

Seguridad
○ Overview de Seguridad de SQL Server 2005
○ Administración de Seguridad de SQL Server 2005
○ Administración de Permisos
○ Administración de Certificados

Revisión Seguridad SQL Server 2005

Introducción

Esta seccion describe la arquitectura de SQL Server 2005, incluyendo las mejoras que
que se han hecho en esta versión. El SQL Server 2005 introduce un numero de cambios
a la manera en la cual la aplicación de la base de datos es segura. Esta lección lo ayudara
a preparar para diseñar y administrar seguridad de soluciones SQL Server 2005.

Objetivos
Luego de completar esta lección, usted podrá:
! Describir las mejoras de seguridad de SQL Server 2005.
! Describir principales.
! Describir permisos.
! Describir la arquitectura de seguridad de SQL Server 2005.
Curso 5 estrellas SQL Server 2005

Mejoras en la Seguridad de SQL Server 2005

Introducción

El SQL Server 2005 implementa mejoras en la arquitectura de seguridad que usa un sistema de
jerarquías de objetos asegurables. Debe entender absolutamente las nuevas
Features de seguridad en SQL Server 2005 antes de planificar las soluciones de
seguridad para su base de datos.

Políticas de Claves para SQL Server Logins

Puede proveer accesos al sistema SQL Server 2005 a través de Microsoft Windows®
logins o SQL Server logins, de la misma manera usada en las versiones anteriores de
SQL Server. En esta versión de SQL Server, también puede aplicar políticas de seguridad
Para SQL Server logins. Estas políticas actúan similarmente a como Windows permite restricciones de
claves para Windows logins.

Rangos Jerárquicos de Seguridad

El SQL Server 2005 provee un modelo consistente para asegurar objetos en diferente
Rangos usando un arreglo jerárquico de principios, seguridad, y permisos. Este nuevo
acercamiento ayuda a hacer la seguridad mas administrable que en las ediciones
anteriores.
Curso 5 estrellas SQL Server 2005

Separación de Usuario y Schema

En ediciones previas de SQL Server, los espacios de nombres de objetos eran dictados
por el propietario del objeto. En SQL Server 2005, los espacios de nombres de objetos
son determinados usando schemas, independientemente del propietario del objeto. Esta
separación del propietario del espacio de nombres del objeto provee una administración
de la framework más flexible.

Visibilidad Limitada de los Metadatos

La introducción de la vista de catálogos en SQL Server 2005 resulta en visibilidad limitada de los
metadatos. Por defecto, los usuarios pueden ver los metadatos solo para objetos para los cuales ellos
tienen permiso.

Ejecución de Contexto Declarativo

La ejecución de contexto de módulos programables (como procesos almacenados o funciones) ahora


puede ser seteado explícitamente en la statement CREATE. Esta feature permite al creador del objeto
a especificar la cuenta de usuario bajo la cual el objeto se ejecutara, haciendo posible controlar el
accesos a objetos dependientes sin cadenas de
propiedad.

Que son los Principals?


Curso 5 estrellas SQL Server 2005

Introducción

La documentación de SQL Server 2005 usa el termino principal para referirse a identidades
autenticadas en un sistema de SQL Server. Entender como los diferentes principales pueden existir en
un sistema de SQL Server le ayudara a planificar su modelo se seguridad.

Definición

Un principal es cualquier identidad autenticada que puede tener permisos de acceso a un objeto en un
sistema de base de dato. La documentación de SQL Server distinguen entre principales indivisibles,
que son identidades simples (como logins), y grupo de principales, que es un grupo de identidades
(como roles fijos de servidor).

Nieveles de Principals

Los principales existen en tres niveles: Windows, SQL Server, y base de datos. Los tipos de
principales posibles en cada uno de estos tres niveles son mostrados en la siguiente tabla:

Nivel Principales

Windows Cuenta de usuario local Windows


Cuenta de usuario de dominio Windows
Grupo Windows

SQL Server SQL Server login


SQL Server role

Base de datos Usuario de base de datos


Rol de base de datos
Grupo de base de datos
Rol de la aplicación

Nota
Grupos de base de datos son primariamente soportados para compatibilidad retrazada. Debe usar roles
de base de datos para crear grupo de principales al nivel de base de datos.
Curso 5 estrellas SQL Server 2005

Qué son Securables?

Introducción

Los objetos en el sistema de autorización del SQL Server 2005 que regulan los accesos son llamados
securables. Como con los principales, debe entender la diferencia de los rangos de securable en SQL
Server para planificar su modelo de seguridad.

Definición

Los Securables son recursos a los cuales el sistema de autorización de SQL Server controla el acceso.
Los securables están arreglados en jerarquías seteadas llamadas scopes, que también pueden ser
aseguras. Estos tres scopes asegurables son servidor, base de datos, y schema. Asegurables a nivel de
Windows incluye archivos y registry keys.

El Rango Servidor

Asegurables contenidos en el rango del servidor incluyen:


! Logins
! HTTP endpoints
! Certificados
! Notificación de evento
! Bases de datos
Curso 5 estrellas SQL Server 2005

Rango Base de Datos

Asegurables contenidos en el rango de base de datos incluyen:


! Usuarios
! Roles
! Aplicación de roles
! Ensambles
! Tipos de mensajes
! Contratos de Servicio
! Servicios
! Catálogos Full-text
! Eventos DDL
! Schemas

Rango de Schema

Asegurables contenidos en el rango schema incluyen:


! Tablas
! Vistas
! Funciones
! Procedimientos
! Colas
! Tipos
! Reglas
! Defaults
! Sinónimos
! Agregados
Curso 5 estrellas SQL Server 2005

Qué son los Permisos?

Introducción

El SQL Server 2005 usa permisos para controlar el acceso a asegurables por principales. Para
planificar el modelo se seguridad de su base de datos, en importante que entienda como son
implementados los permisos en los rangos asegurables.

Definición

Los Permisos son las reglas que gobiernan el nivel de accesos que los principals tienen para los
asegurables. Los permisos de sistema en SQL Server pueden ser concedidos, revocados o denegados.
Cada uno de los asegurables del SQL Server tiene permisos asociados que pueden ser concedidos a
cada principal.

Nota
El SQL Server 2005 introduce la habilidad de conceder permisos al rango de servidor. En ediciones
anteriores de SQL Server, los permisos a nivel servidor eran administrados usando roles fijos de
servidor.
Curso 5 estrellas SQL Server 2005

Ejemplos de Permisos

Los permisos específicos asociados con asegurables individuales varían dependiendo en la clase de
acciones que un asegurable soporta. La siguiente tabla lista algunos ejemplos de permisos en varios
rangos. Para una lista completa de permisos, vea SQL Server 2005 Books Online.

Asegurable Permiso Descripción

Server CONNECT_SQL Conecta al servidor.

CREATE LOGIN Crea un login.

ALTER ANY LOGIN Altera cualquier login en el rango


del servidor.

CONTROL SERVER Control completo de


administración del sistema.

Login ALTER Altera el login.

IMPERSONATE Impersonar el login.

Base de Datos CREATE TABLE Crea una tabla en la base de datos.

ALTER ANY USER Altera cualquier usuario en la base


de datos.

CONTROL Control completo de la base de


datos.

Usuario ALTER Altera el usuario especificado.

Schema SELECT Selecciona rows para cualquier


objeto en el schema.

ALTER Altera cualquier objeto en el


schema.

TAKE OWNERSHIP Toma propiedad del schema.

Tabla SELECT Selecciona rows de la tabla.

ALTER Altera la tabla.

CONTROL Control total de la tabla.

Permisos Hereditarios
Curso 5 estrellas SQL Server 2005

El SQL Server 2005 soporta permisos hereditarios para asegurables contenidos en un rango dado. Por
ejemplo, un permiso principal concedido CONTROL en un objeto de base de datos, automáticamente
heredara permiso CONTROL en todos los asegurables contenidos en esa base de datos y en todos los
asegurables contenidos en los schemas dentro de esa base de dato.

Administración de Seguridad de SQL Server 2005

Introducción

Esta sección le enseña como administrar principales, asegurables y permisos. Entender como
administrar estos componentes claves del modelo de seguridad de SQL Server 2005 es esencial y le
ayudará a implementar exitosamente seguridad en su sistema de SQL Server 2005.

Objetivos

! Administrar logins.
! Administrar usuarios.
! Describir schemas
! Administrar schemas.
! Setear un schema por defecto para un usuario
! Controlar ejecución de contexto.
! Administrar asegurables y principales.
Curso 5 estrellas SQL Server 2005

Como Administrar Logins

Introducción

Como en ediciones previas de SQL Server, el SQL Server 2005 soporta ambos Windows y SQL
Server logins. Puede crear un login usando Object Explorer en SQL Server Management Studio o
ejecutando el statement CREATE LOGIN Transact-SQL.

Nota
Por defecto, el SQL Server soporta solo autenticación de Windows. Cuando el servidor es
configurado para autenticación Windows, aun puede crear logins para SQL Server, pero no podrán
conectarse con el servidor. Para habilitar a los usuarios a conectarse usando login para SQL Server,
debe configurar el servidor para ambas autenticaciones, SQL Server y Windows.

Uso de Object Explorer

El siguiente procedimiento describe como crear un login de Windows o SQL Server usando Object
Explorer en SQL Server Management Studio:
1. Conéctese con el servidor en el cual quiera crear el login.
2. Expanda los nodos del servidor y Security.
3. Haga click con el botón derecho en Logins, y luego haga clic en New Login.
4. Use la interfase de usuario para especificar el tipo de login que quiere crear, e ingrese los detalles
del login.
5. Haga click en el botón Execute on Server, o genere un script para ser ejecutado mas tarde.

Uso de CREATE LOGIN

También puede usar el statement CREATE LOGIN para crear logins para Windows o
SQL Server.

Nota el statement CREATE LOGIN reemplaza los procesos almacenados del sistema, sp_addlogin
y sp_grantlogin en las versiones previas de SQL Server. Estos procesos almacenados son provistos en
SQL Server 2005 para compatibilidad de retrazo pero serán removidos en una edición futura.

El siguiente código muestra la sintaxis completa para el statement CREATE LOGIN:

CREATE LOGIN login_name


{ WITH option_list1 | FROM sources}
sources ::=
WINDOWS [ WITH windows_options[,...] ]
| CERTIFICATE certname
Curso 5 estrellas SQL Server 2005

| ASYMMETRIC KEY asym_key_name

option_list1 ::=
PASSWORD = ’password’ [ HASHED ]
[ MUST_CHANGE ] [ , option_list2 [,...]]
option_list2 ::=
SID = sid
| DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
| CHECK_EXPIRATION = { ON | OFF }
| CHECK_POLICY = { ON | OFF }
[ CREDENTIAL = credential_name ]
windows_options ::=
DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language

La opción especificada que puede usar dentro del statement CREATE LOGIN dependiendo en si esta
creando un login para Windows o para SQL Server. Las cláusulas FROM WINDOWS y windows
options son usadas cuando se crean logias para Windows, mientras que option_list1 y option_list2
solo son aplicables para logins de SQL Server.

Políticas de Claves para Loguearse a SQL Server

Las cuentas de usuarios de Windows están sujetas a políticas reforzadas por Windows. El
SQL Server 2005 provee políticas de restricción similares para logins de SQL Server, usando las
opciones mostradas en la siguiente tabla en el statement CREATE LOGIN.

Opción Descripción

HASHED Especifica que la clave no es valida. Si esto no es


especificado, la cadena será inválida antes de
almacenarse.

MUST_CHANGE Muestra un login para cambiar la clave la primera vez


que se conecta. Si esta opción es especificada, los
CHECK_EXPIRATION y CHECK_POLICY
deben estar en ON.

CHECK_EXPIRATION Cuando puesto en ON (por defecto) esta opción


especifica que la política de vencimiento de clave de
Microsoft Windows Server 2003 debe ser aplicada al
login de SQL Server. En servidores Windows 2000,
esta opción no tiene efecto. Si esta opción esta en ON,
la opción CHECK_POLICY también debe estar en
ON o la statement fallara.

CHECK_POLICY Cuando puesto en ON (por defecto), esta política


refuerza la complejidad de política de clave definida
para Windows Server 2003 computadora corriendo
SQL Server. En servidores Windows 2000, esta opción
refuerza una política de seguridad de SQL Server
específica basada en las complejidades de clave de
Curso 5 estrellas SQL Server 2005

Microsoft Security Baseline Analyzer.

Ejemplos

El siguiente ejemplo muestra la statement CREATE LOGIN que crea un login de Windows:

CREATE LOGIN [SERVERX\Bill]


FROM WINDOWS
WITH DEFAULT_DATABASE = AdventureWorks

El siguiente ejemplo muestra la statement CREATE LOGIN que crea un login de SQL Server:

CREATE LOGIN Ted


WITH PASSWORD = ’P@ssw0rd’,
DEFAULT_DATABASE = AdventureWorks,
CHECK_EXPIRATION = ON,
CHECK_POLICY = ON

Alterar logins

Puede modificar un login viendo las propiedades en Object Explorer o ejecutando la statement
ALTER LOGIN. Un uso común de la statement ALTER LOGIN es desbloquear un login que ha
sido bloqueada por una clave vencida. El siguiente ejemplo muestra como desbloquear una cuenta
bloqueada:

ALTER LOGIN Ted WITH PASSWORD = ’NewP@ssw0rd’ UNLOCK

Remover logins

Puede remover un login haciendo botón derecho sobre el mismo en Object Explorer y luego hacer
click en Delete, o ejecutando una statement DROP LOGIN como nuestra el siguiente ejemplo:

DROP LOGIN Ted

Nota
La statement DROP LOGIN reemplaza los procesos almacenados de sistema sp_droplogin y
sp_revokelogin en versiones previas de SQL Server. Estos procesos almacenados son provistos en
SQL Server 2005 para compatibilidad retrazada pero serán removidas en versiones futuras.

Cómo Administrar Usuarios

Introducción

Los logins son usados para permitir acceso al sistema SQL Server. Sin embargo, acceso a bases de
datos individuales es logrado creando usuarios en esas bases de datos. Puede crear usuarios usando el
Curso 5 estrellas SQL Server 2005

Object Explorer en SQL Server Management Studio o ejecutando la statement CREATE USER en la
base de datos apropiada.

Mapeando Usuarios para Logins

En la mayoría de los casos, los usuarios de las base de datos son mapeados para loguearse. Por
ejemplo, debe crear un usuario llamado Bill en la base de datos AdventureWorks para hacer esa base
de datos accesible por un login llamado SERVERX\Bill. Por defecto, todos los logins con membresía
del rol fijo de servidor sysadmin es mapeado al usuario dbo en todas las bases.

Algunos usuarios de bases de datos no son mapeados para logins. Por ejemplo, crear un usuario
llamado guest en una base de datos permite acceso para cualquiera con un nombre de login valido
pero sin una cuenta de usuario. Otros usuarios no mapeados incluyen sys y
INFORMATION_SCHEMA.

Usar Object Explorer

El siguiente procedimiento describe como usar Object Explorer para crear un usuario en una base de
datos SQL Server:
1. Conéctese al servidor.
2. Expanda el nodo del servidor, y luego expanda el nodo Databases.
3. Expanda la base de datos en la cual quiere crear el usuario, y luego expanda su nodo de Security.
4. Haga click con el botón derecho sobre el nodo Users, y luego haga click en New User.
5. Seleccione el login al cual quiera mapear el usuario, y luego tipee un nombre para un usuario.
6. Especifique cualquier rol de base de datos al cual quiera agregar el usuario.
7. Haga click en OK.

Usar CREATE USER

Puede también usar la statement CREATE USER para crear un usuario en una base de datos SQL
Server.

Nota
El statement CREATE USER reemplaza los procesos almacenados del sistema sp_adduser y
sp_grantdbaccess en versiones previas de SQL Server. Estos procesos almacenados son provistos en
SQL Server 2005 para compatibilidad atasada pero serán removidas en ediciones futuras.

La sintaxis para el statement CREATE USER es mostrada aquí:

CREATE USER user_name


[ FOR {LOGIN login_name
| CERTIFICATE cert_name
| ASYMMETRIC KEY asym_key_name
}
]
[ WITH DEFAULT_SCHEMA = schema_name ]

Nota
La creación de usuarios para certificados de la base de datos será discutida mas tarde en este modulo.
Curso 5 estrellas SQL Server 2005

Los parámetros clave para el statement CREATE USER son descriptos en la siguiente tabla:

Parámetro Descripción

user_name El nombre del nuevo usuario.

login_name El nombre del login para ser mapeado a este usuario.


Si este parámetro es omitido:
• SQL Server trata de encontrar un login con el
nombre especificado en el parámetro user_name.
• Si no se encuentra uno que coincida, y el user_name
es guest (y el usuario guest aun no existe), un usuario
guest es creado.
• Si el user_name no es guest, y no se encuentra un
nombre que coincida, la statement falla.

schema_name El nombre por defecto del schema usado para este


usuario para resolución de objeto de nombre. Los
schemas y resolución de nombre son discutidos mas
tarde en este modulo.

Alterar un Usuario

Puede modificar un usuario cambiando sus propiedades en Object Explorer o ejecutando la statement
ALTER USER.

Remover un Usuario

Puede remover un usuario borrándolo en Object Explorer o ejecutando el statement DROP USER.
Usuarios que poseen objetos no pueden ser borrados, así que debe transferir la propiedad de esos
usuarios antes de borrarlos.

Nota
El statement DROP USER reemplaza los procesos almacenados del sistema sp_dropuser y
sp_revokedbaccess. Estos procesos almacenados son provistos en SQL Server 2005 para
compatibilidad retrazada pero en el futuro serán removidos.

Que son las Schemas?


Curso 5 estrellas SQL Server 2005

Introducción

Los objetos en una base de datos, (como tablas, vistas y procesos almacenados) son creados dentro de
un schema. Es esencial que entienda que es un schema antes de planificar y administrar una base de
datos de SQL Server 2005.

Definición

Un schema es un espacio de nombre para objetos en una base de datos. El nombre completo calificado
de un objeto en una base de datos tiene la forma server.database.schema.object. Dentro de una base
de datos, esto puede ser acortado a schema.object. En las ediciones anteriores de SQL Server, un
espacio de nombre en un objeto era determinado por el nombre de usuario dueño del objeto. EI SQL
Server 2005, los schemas son separados de la titularidad, proveyendo los siguiente beneficios:
! Mayor flexibilidad cuando organiza objetos de base de datos dentro de nombres de espacios, porque
el agrupamiento de objetos dentro de schemas no depende de la titularidad del objeto.
! Permisos de administración mas simples, porque los permisos pueden ser otorgados al rango de
schema tal como en los objetos individuales.
! Administración mejorada, porque borrar un usuario no necesita renombrar todos los objetos que el
usuario posee.

Nota
Los Schemas existieron en una forma limitada en versiones anteriores de SQL Server. Su función ha
sido enormemente expandida en SQL Server 2005.
Curso 5 estrellas SQL Server 2005

Ejemplo de un Schema

La base de datos AdventureWorks usa los siguiente schemas para organizar los objetos en la base de
datos dentro de espacios de nombres:
! HumanResources
! Person
! Production
! Purchasing
! Sales
Por ejemplo, Employee hace referencia a una tabla en el schema HumanResources como
HumanResources.Employee.

El Schema dbo

Cada base de datos contiene un schema llamado dbo. El schema dbo es el schema por defecto para
todos los usuarios que no tienen un schema definido por defecto explicito.

Cómo Administrar Schemas

Introducción

Puede crear, alterar o borrar schemas usando el Object Explorer en SQL Server Management Studio o
ejecutando los statements apropiados CREATE SCHEMA, ALTER SCHEMA, o DROP
SCHEMA.

Crear un Schema con Object Explorer

El siguiente procedimiento para crear un schema con Object Explorer en SQL Server Management
Studio:
1. Conéctese con el servidor que contiene la base de datos en la que quiera crear el schema.
2. Expanda el nodo del servidor y luego expanda el nodo de la Databases.
3. Expanda el nodo de la base de datos en la cual quiera crear el schema, y luego expanda el nodo de
Security.
4. Haga click con el botón derecho sobre el nodo Schemas, y luego haga clic en New Schema.
5. Especifique un nombre, y, opcionalmente, un propietario para el schema.
6. Haga clic en OK.

Uso de CREATE SCHEMA

Use el statement CREATE SCHEMA para crear un nuevo, y opcionalmente para crear objetos en el
schema en una statement simple. La sintaxis del stament CREATE SCHEMA es mostrada aquí:

CREATE SCHEMA schema_name_clause


[ < schema_element > [ , ...n ] ]
< schema_name_clause > ::=
{
< schema_name >
| AUTHORIZATION < owner_name >
Curso 5 estrellas SQL Server 2005

| < schema_name > AUTHORIZATION < owner_name >


}
< schema_element > ::=
{ table_definition | view_definition | grant_statement
| revoke_statement | deny statement }

Los parámetros en la sintaxis CREATE SCHEMA son descriptos en el siguiente cuadro.

Parámetro Descripción

schema_name El nombre del schema.

owner_name El usuario que será asignado como dueño del schema.


Si este parámetro es omitido, el usuario ejecutando la
statement será asignado como dueño de la misma.

table_definition El statement CREATE TABLE es usado para crear


una tabla en el schema.

view_definition El statement CREATE VIEW es usado para crear una


vista en un schema.

grant_statement El statement GRANT es usado para asignar permisos


en u objeto en una en el schema a un principal en la
base de datos.

revoke_statement El statement REVOKE es usado para revocar los


permisos en cualquier asegurable excepto en un nuevo
schema.

deny_statement Un statement DENY es usado para revocar permisos


en cualquier asegurable excepto en los nuevos schema.

Nota
La forma CREATE SCHEMA AUTHORIZATION owner_name de la statement CREATE
SCHEMA (sin nombre de schema) es provisto por compatibilidad retrazada. Es usado
preferentemente como un modo conveniente para crear múltiples objetos y asignar permisos en una
statement simple.

El siguiente ejemplo muestra como crear un schema que contenga una tabla y otorgar permisos en la
tabla de un usuario:

CREATE SCHEMA sales


CREATE TABLE orders
(OrderID INT, SalesPersonID INT, OrderDate DATETIME)
GRANT SELECT ON orders TO Bill
GO

Alterar un Schema

Puede modificar un schema usando Object Explorer o ejecutando la statement ALTER SCHEMA. La
razón principal para hacer esto es para cambiar los titulares de la schema, como muestra el siguiente
ejemplo:
Curso 5 estrellas SQL Server 2005

ALTER SCHEMA sales AUTHORIZATION Ted

Nota
Cambiar las titularidades de un schema borra todos los permisos de ese schema y los objetos que este
contiene.

Borrar un Schema

Puede borrar un schema usando Object Explorer o ejecutar el statement DROP SCHEMA como
muestra el siguiente esquema:

DROP SCHEMA sales

Nota
No puede borrar un schema que contiene objetos. Primero debe borrar los objetos en el schema.

Cómo Setear un Schema para un Usuario


Curso 5 estrellas SQL Server 2005

Introducción

Cuando una base de datos contiene schemas múltiples, la resolución para el nombre del objeto puede
volverse confusa. Por ejemplo, una base de datos puede contener dos tablas llamadas orders en dos
schemas diferentes, sales y dbo. Los nombres calificados de los objetos en la base de datos no son
ambiguos: sales.orders y dbo.orders, respectivamente. Sin embargo, el uso de orders de nombres no
calificados puede producir resultados inesperados. Puede asignar un schema por defecto para controlar
como los objetos no calificados son resueltos.

Como Funciona la Resolución de Nombre

El SQL Server 2005 usa el siguiente procedimiento para resolver nombres de objetos no calificados:
1. Si el usuario tiene un schema por defecto, el SQL Server intenta encontrar el objeto en el schema
por defecto.
2. Si el objeto no es encontrado en el schema por defecto del usuario, o si el usuario no tiene un
schema por defecto, el SQL Server intenta encontrar el objeto en el schema dbo.
Por ejemplo, un usuario con un schema por defecto sales ejecuta la siguiente statement
Transact-SQL:

SELECT * FROM orders

El SQL Server 2005 primero intentara resolver el nombre del objeto en sales.orders. Si el schema
sales no contiene un objeto llamado orders, el SQL Server intentara resolver el nombre del objeto en
dbo.orders.
Curso 5 estrellas SQL Server 2005

Si un usuario con un schema por defecto no especificado ejecuta el mismo statement,


el SQL Server inmediatamente resolverá el nombre de objeto en dbo.schema.

Asignar un Schema por Defecto

Puede asignar un schema por defecto a un usuario usando el cuadro de dialogo Database User
properties o especificando el nombre del schema con la cláusula DEFAULT_SCHEMA de los
statement CREATE USER o ALTER USER. Por ejemplo, el siguiente codigo Transact-SQL asigna
sales como el schema por defecto para el usuario Ted:

ALTER USER Ted


WITH DEFAULT_SCHEMA = sales

Cómo Controlar la Ejecución de Contexto

Introducción

Puede usar la cláusula EXECUTE AS en un proceso almacenado o la función para setear la identidad
usada en esta ejecución de contexto. Entender como usar la cláusula EXECUTE AS puede ayudarle a
implementar escenarios de seguridad en los cuales necesita acceder a objetos dependientes pero no
quiere confiarse de cadenas de propiedad sin roturas.

Uso de EXECUTE AS

Puede usar la cláusula EXECUTE AS con cualquier statement CREATE PROCEDURE


y cualquier statement CREATE FUNCTION excepto declaraciones de función table-valued dentro
de líneas. La sintaxis para la cláusula EXECUTE AS es la siguiente:

EXECUTE AS { CALLER | SELF | OWNER | user_name }


Curso 5 estrellas SQL Server 2005

Las opciones incluidas en la sintaxis de la cláusula EXECUTE AS son descriptas en la siguiente


tabla.

Opción Descripción

CALLER Ejecute usando la identidad del usuario que llama. Este


es el seting por defecto.

SELF Ejecute usando la identidad del usuario que creo el


proceso almacenado o la función.

OWNER Ejecute usando la identidad del propietario de la


función.

user_name Ejecute usando la identidad del usuario específico.


Para especificar un nombre de usuario, debe ser un
miembro del rol fijo del servidor sysadmin o del rol
fijo de la base de datos db_owner, tener permisos
CONTROL SERVER en el servidor, tener permisos
CONTROL en la base de datos, o tener permiso
IMPERSONATE en el login correspondiente al
usuario user_name.

Ejemplo

El siguiente ejemplo muestra la statement CREATE PROCEDURE que específica que in proceso
almacenado es ejecutado usando la identificación del usuario que lo creo:

CREATE PROCEDURE GetOrders


WITH EXECUTE AS SELF
AS
SELECT * FROM sales.orders
Curso 5 estrellas SQL Server 2005

Administración de Permisos

Introducción

Para acceder a objetos y datos dentro de SQL Server, los principales deben ser concedidos con
permisos. En esta sección, aprenderá como conceder esos permisos en asegurables en diferentes
rangos.

Objetivos

! Entender como los permisos son concedidos y asignados.


! Administrar permisos de servidor.
! Administrar permisos a asegurables al rango del servidor.
! Administrar permisos de base de datos.
! Administrar permisos a asegurables al rango de la base de datos.
! Administrar permisos a asegurables al rango de los schema.
! Administrar permisos.

Entendimiento de los Permisos

Introducción

La única manera en la que un principal puede acceder a un asegurable en el sistema de SQL Server
system es si sus permisos concedidos se lo permiten, o directa o indirectamente a través de una
membresía de un principal segundario, como rol o grupo. Puede administrar los permisos usando el
Object Explorer en SQL Server Management Studio o ejecutando las statements GRANT, REVOKE,
o DENY. Entender como administrar permisos para cada uno de los tres rangos del sistema, le
ayudara a implementar un modelo de seguridad efectivo en las aplicaciones de su base de datos.

Permisos Efectivos

Los permisos efectivos para un principal son evaluados de la misma manera que en las versiones
anteriores de SQL Server. Un principal puede realizar una acción en particular si:
Curso 5 estrellas SQL Server 2005

! Los permisos pueden ser concedidos explícitamente al principal o a un grupo del cual el principal es
miembro.
! Los permisos que no han sido negados explícitamente al principal o al grupo del cual el principal es
miembro.

Nota
Un statement DENY explicito siempre sobrescribe un statement GRANT. Por ejemplo, si un usuario
ha sido explícitamente concedido con el permiso en SELECT en una tabla en particular pero es
miembro de un rol que ha sido explícitamente denegado en SELECT en la tabla, el usuario no podrá
ejecutar una statement SELECT contra la tabla.

Adicionalmente, algunos permisos en SQL Server 2005 pueden ser heredados a través de un permiso
concedido a un nivel mas alto en la jerarquía del rango de asegurables. Por ejemplo, un principal que
ha sido concedido con un permiso SELECT en un schema automáticamente hereda permisos SELECT
en todos los objetos en la schema.

Como Administrar Permisos de Servidor

Introducción

En las ediciones anteriores de SQL Server, los permisos a nivel de servidor eran roles fijos del
servidor. El SQL Server 2005 agrega la capacidad de conceder expresamente permisos a nivel de
servidor a principales.

Conceder Permisos a Nivel de Servidor usando Object Explorer

Puede conceder permisos en un servidor usando Object Explorer en SQL Server Management Studio.

1. Conéctese al servidor en el cual quiera aplicar los permisos.


2. Expanda los nodos del servidor, Security, y Logins.
3. Haga click con el botón derecho sobre el login al cual quiera conceder permisos, y luego haga click
en Properties.
4. En la página Permissions, haga click en Add Objects.
5. En el cuadro de dialogo Add Objects, haga click en The server ’<servername>’ y luego en OK.
6. En la sección Permissions for <servername>, conceda los permisos requeridos.
Curso 5 estrellas SQL Server 2005

Conceder Permisos a Nivel de Servidor usando Transact-SQL

La sintaxis para conceder permisos a nivel de servidor es la siguiente:

GRANT { server_permission [ ,...n ] }


TO login [ ,...n ]
[ WITH GRANT OPTION ]
[ AS { group | role } ]

Las cláusulas y parámetros de nivel de servidor de la statement GRANT son descriptas a continuación
en la siguiente tabla.

Cláusula / Parámetro Descripción

server_permission El permiso a nivel de servidor que se concede. Para


una lista completa de permisos a nivel de servidor, vea
SQL Server Books Online.

login Un login para quienes los permisos son concedidos.

WITH GRANT OPTION Una opción que permite al concedido conceder el


mismo permiso a otros.

AS group | role La especificación de un principal con los permisos


necesarios para conceder estos permisos a nivel de
servidor. Esto es requerido en escenarios en los cuales
el que concede no tiene suficientes permisos para
conceder el permiso, pero tiene la membresía de un rol
o grupo que si lo tiene.

El siguiente ejemplo muestra como conceder el permiso a nivel de servidor ALTER ANY
DATABASE:

USE master
GRANT ALTER ANY DATABASE TO [SERVERX\Bill]

Nota
Para permisos a nivel de servidor, el statement GRANT debe ser ejecutado en la base de datos
master.

Como Administrar Permisos Asegurables a Nivel de


Servidor
Curso 5 estrellas SQL Server 2005

Introducción

Los asegurables en el rango del servidor incluyen objetos como HTTP endpoints y certificados.

Conceder Permisos a Nivel de Servidor usando Transact-SQL

Para conceder permisos en asegurables en el rango del servidor, use la siguiente sintaxis:

GRANT { securable_permission [ ,...n ] }


ON securable_type :: securable_name
TO login [ ,...n ]
[ WITH GRANT OPTION ]
[ AS { group | role } ]

Las cláusulas y parámetros del statement GRANT para los asegurables en el rango del servidor son
descriptos en la siguiente tabla.

Cláusula / Parámetro Descripción

securable_permission El permiso especifico asegurable que es concedido.

securable_type El tipo de asegurable del rango de servidor al cual los


permisos son aplicables.

securable_name El nombre del asegurable del rango del servidor.

login Un login al cual los permisos son concedidos.

WITH GRANT OPTION Una opción que permite al que concede, conceder los
mismos permisos a otros.

AS group | role Una especificación a un principal con los permisos


necesarios para conceder estos permisos a rango del
servidor. Esto es necesario en escenarios en los cuales
el que concede no tiene los permisos suficientes para
conceder el permiso, pero tiene la membresía de un rol
o grupo que si lo tiene.

El siguiente ejemplo muestra como conceder permisos CONNECT en un HTTP endpoint llamado
AWWebService:

USE master
GRANT CONNECT
ON HTTP ENDPOINT :: AWWebService
TO [SERVERX\Bill]
Curso 5 estrellas SQL Server 2005

Nota
Para asegurables a rango de servidor, la statement GRANT debe ser ejecutada en la base de datos
master.

Como Administrar Permisos de una Base de Datos

Introducción

Los permisos de bases de datos son permisos que permiten al principal a ejecutar ciertas tareas dentro
de una base de datos. Por ejemplo, el permiso ALTER ANY USER permite al principal crear, alterar
y borrar usuarios en la base de datos.

Conceder Permisos en Base de Datos usando Object Explorer

Puede conceder permisos en una base de datos usando Object Explorer en SQL Server
Management Studio.
1. Conéctese con el servidor al cual quiere aplicar los permisos.
2. Expanda los nodos del servidor y Databases.
3. Haga click con el botón derecho en database, y luego en Properties.
4. En la pagina de permisos, en la sección Permissions for <principal>, conceda los permisos
requeridos al principal requerido.

Conceda Permisos de Base de Datos usando Transact-SQL

Para conceder permisos en una base de datos, use la siguiente sintaxis:

GRANT { database_permission [ ,...n ] }


TO security_account [ ,...n ]
[ WITH GRANT OPTION ]
[ AS { group | role } ]

Las cláusulas y parámetros del nivel de base de datos de la statement GRANT son descriptos en la
siguiente tabla.

Cláusula / Parámetro Descripción

database_permission Los permisos específicos de la base de datos que son


concedidos.

security_account Un principal de nivel de base de datos a quien los


permisos son concedidos.

WITH GRANT OPTION Una opción que permite al que concede, conceder los
Curso 5 estrellas SQL Server 2005

mismos permisos a otros.

AS group | role Una especificación de un principal con los permisos


necesarios para conceder estos permisos de nivel de
base de datos. Esto es requerido en escenarios en los
cuales el que concede no tiene suficientes permisos
para conceder estos permisos, pero tiene la membresía
de un rol o grupo que si lo tiene.

El siguiente ejemplo muestra como conceder el permiso ALTER ANY USER:

USE AdventureWorks
GRANT ALTER ANY USER
TO Ted

Nota
Para permisos de base de datos, la statement GRANT debe ser ejecutada en la base de datos a la cual
quieren aplicarse los permisos.

Cómo Administrar Permisos Asegurables en el Rango de


Base de Datos

Introducción

Los asegurables en el rango de la base de datos incluyen objetos como usuarios, schemas,
ensambles, y objetos service broker.

Conceder Permisos asegurables de Rangos de Base de Datos usando Object Explorer


Curso 5 estrellas SQL Server 2005

Puede conceder permisos a alguien en los asegurables de la base de datos usando Object Explorer en
SQL Server Management Studio.
1. Conéctese al servidor en el cual quiera aplicar los permisos.
2. Expanda los siguientes nodos: server, Databases, y el tipo de objetos que quiere usar.
3. Haga doble click sobre el objeto específico, y luego haga click en Properties.
4. En la página de permisos, en la sección Permissions for <object>, conceda el permiso requerido al
principal requerido.

Conceder Permisos asegurables de Rangos de Base de Datos usando Transact-SQL

Para conceder permisos en asegurables de rango de base de datos use la siguiente sintaxis:

GRANT {securable_permission [ ,...n ] }


ON securable_type : : securable_name
TO security_account [ ,...n ]
[ WITH GRANT OPTION ]
[ AS { group | role } ]

La cláusula y parámetros de los asegurables de rango de base de datos del statement GRANT son
descriptos en la siguiente tabla.

Cláusula / Parámetro Descripción

securable_permission Los permisos de asegurables específicos que son


concedidos.

securable_type El tipo de asegurable de rango de base de datos al cual


aplica los permisos.

securable_name El nombre de los asegurables de rango de base de


datos.

security_account Un principal a nivel de base de datos a quien se le


conceden los permisos.

WITH GRANT OPTION Una opción que permite al concedido, conceder los
mismos permisos a otros.

AS group | role Una especificación de un principal con los permisos


necesarios para conceder estos permisos a nivel de
base de datos. Esto es requerido en escenarios en los
cuales el que concede los permisos no tiene permisos
suficientes para concederlos, pero tiene membresía de
rol o de grupo que si la tiene.
Curso 5 estrellas SQL Server 2005

El siguiente ejemplo muestra como conceder permisos SELECT en un schema llamado sales:

USE AdventureWorks
GRANT SELECT
ON SCHEMA :: sales
TO Ted

Nota
Para permisos de rango de base de datos, el statement GRANT debe ser ejecutado en la base de datos
que contiene el asegurable al cual el permiso es aplicado.
Curso 5 estrellas SQL Server 2005

Cómo Administrar Permisos de Asegurables Schema-


Scope

Introducción

Los asegurables en un rango de base de datos incluyen objetos como tablas, vistas, procesos
almacenados y tipos.

Conceder Permisos asegurables schema-scope usando Object Explorer

Puede conceder permisos en algunos asegurables de la base de datos usando Object


Explorer en SQL Server Management Studio.
1. Conéctese al servidor en el cual quiere aplicar los permisos.
2. Expanda los siguientes nodos: server, Databases, y los tipos de objetos que quiera usar.
3. Haga botón derecho sobre el objeto específico, y luego haga click en Properties.
4. En la página de los permisos, en la sección Permissions for <object>, conceda el permiso
requerido al principal requerido.

Conceder Permisos asegurables schema-scope usando Transact-SQL

Para conceder permisos en un tipo, use la siguiente sintaxis:

GRANT { type_permission [ ,...n ] }


ON TYPE :: type_name
TO security_account [ ,...n ]
[ WITH GRANT OPTION ]
[ AS { group | role } ]

Las cláusulas y parámetros de la statement GRANT para un tipo son descriptas en la siguiente tabla.

Cláusula / Parámetro Descripción

type_permission El tipo especifico de permiso que es concedido.

type_name El nombre del tipo en el cual el permiso es aplicado.

security_account Un principal a nivel de base de datos a quien el


permiso le es concedido.

WITH GRANT OPTION Una opción que habilita a quien le fueron concedidos
los permisos, condecer los mismos a otros.

AS group | role Una especificación de un principal con los permisos


necesarios para conceder estos permisos schema-level.
Este es un escenario requerido cuando el que concede
los permisos no tiene permisos suficientes para
conceder los permisos pero tiene membresía de rol o
de grupo que si los tiene.
Curso 5 estrellas SQL Server 2005

El siguiente ejemplo muestra como conceder permisos EXECUTE en un tipo llamado addressType:

USE AdventureWorks
GRANT EXECUTE
ON TYPE :: addressType
TO Ted

Para otros asegurables schema-scope (como tablas, vistas y procesos almacenados) use la siguiente
sintaxis:

GRANT
{ ALL [ PRIVILEGES ] | object_permission [ ,...n ] }
{
[ ( column [ ,...n ] ) ]
ON { table | view | table_valued_function }
| ON { table | view | table_valued_function}
[ ( column [ ,...n ] ) ]
| ON { stored_procedure | extended_procedure }
| ON { scalar_function | aggregate_function }
| ON { service_queue }
| ON { synonym }
}
TO security_account [ ,...n ]
[ WITH GRANT OPTION ]
[ AS { group | role } ]

Las cláusulas y parámetros del asegurable schema-scope de la statement GRANT son descriptos en la
siguiente tabla:

Cláusula / Parámetro Descripción

object_permission El objeto especifico al cual el permiso es concedido.

column El nombre de una columna a la cual se le aplica el


permiso.

table El nombre de una tabla a la cual se le aplica el


permiso.

view El nombre de una vista a la cual se le aplica el


permiso.

table_valued_function El nombre de una función table-valued a la cual se le


aplica el permiso.

Stored_procedure El nombre de un proceso almacenado al cual se le


aplica el permiso.
Curso 5 estrellas SQL Server 2005

extended_procedure El nombre de un proceso almacenado extendido al cual


se le aplica el permiso.

scalar_function El nombre de una scalar function a la cual se le aplica


el permiso.

aggregate_function El nombre de una función agregada a la cual se le


aplica el permiso.

service_queue El nombre de una cola de servicio a la cual se le aplica


el permiso.

synonym El nombre de un sinónimo al cual se le aplica el


permiso.

security_accoun El nombre de un principal a nivel de base de datos al


cual se le aplica el permiso.

WITH GRANT OPTION Habilita al concedido, conceder los mismos permisos a


otros.

AS group | role Usado para especificar un principal con los permisos


necesarios para conceder permisos a nivel de base de
datos. Este escenario es requerido cuando el que
concede no tiene los permisos necesarios para
concederlos, pero tiene membresía de rol o de grupo
que si la tiene.

El siguiente ejemplo muestra como conceder permisos SELECT en una tabla llamada orders en el
schema sales:

USE AdventureWorks
GRANT SELECT
ON sales.orders
TO Ted

Administración de Certificados
Curso 5 estrellas SQL Server 2005

Introducción

Los certificados digitales son usados por SQL Server para crear conexiones SSL y para el Service
Broker. El SQL Server puede crear certificados X.509v3-compliant.

Objetivos

! Describir certificados.
! Describir el uso de certificados en SQL Server.
! Administrar Certificados.
! Usar certificados en SQL Server 2005.

Qué son Certificados?

Introducción

Los certificados digitales pueden ser usados para autenticar y/o encriptar mensajes entre dos partes.
Ellos contienen información que puede verificar al que envía un mensaje o pueden ser usados para
encriptar o desencriptar algoritmos.

Definición

Un certificado es un documento firmado digitalmente que consiste en un par de llaves privada/publica.


Usted usa la parte privada disponible para cualquiera al que quiera comunicar de forma segura, pero
debe conservar la parte privada de la llave segura y solo accesible a usted.

Obtener Certificados

Hay dos tipos de llaves de certificados:


! Autoridades de Certificación Comercial.
Certificación Comercial son usadas por autoridades confiables, llamadas autoridades de
certificación(CAs). Cuando requiere un certificado, la autoridad verificara su identidad y le asignara
un certificado que contiene el par de llaves privada/publica. Debe asegurarse que almacena la llave
privada en una locución segura; si esta comprometida, su certificado es efectivamente inútil.
Debe usar este tipo de certificado si necesita ser confiado por una tercera parte que quizás no usa un
certificado confiable por usted.
! Certificados de Servidores.
Los certificados pueden ser hechos por aplicaciones como Microsoft Certificate Server. Puede usar
este tipo de certificación para aplicación internas donde la confianza del usuario no es un tema. Por
ejemplo, para una aplicación de intranet disponible para empleados y partners. Los certificados
contienen la misma información que uno hecho por una comercial CA, y puede ser usada para ambas
certificaciones y encriptamiento. Sin embargo, requiere el acuerdo explicito del usuario final de
confiar en el certificado emitido por su organización.

Autenticación
Curso 5 estrellas SQL Server 2005

Los mensajes firmados con su llave privada lo identifican como el que envió el mensaje. Una tercera
parte puede usar su llave pública para asegurarse que el mensaje ha sido firmado por una persona u
organización nombrada en el certificado y no por alguien haciéndose pasar por usted.

Encriptación

Los certificados también pueden ser usados para encriptar y desencriptar información. Si un mensaje
es encriptado usando una llave pública, solo puede ser desencriptado usando la llave privada
correspondiente. Similarmente, si los datos son encriptados usando una llave privada, solo puede ser
desencriptada usando una llave pública.

Este mecanismo puede ser usado para asegurarse que solo los servicios a los cuales usted hace
disponible su llave pública puede desencriptar los mensajes que usted envía. por ejemplo, si manda
información por una red pública como Internet, esa información puede ser desencriptada solo por la
organización que tiene una copia de su llave pública. Si ellos luego quieren enviarle información
segura, pueden ecriptarlo usando su llave pública, y usted, el que tiene la llave privada puede
desencriptarla.

Cómo usa SQL Server los Certificados?

Introducción

El SQL Server usa certificados como un mecanismo de autenticación y encriptamiento entre instancias
remotas del Service Broker, y para proveer una conexión segura de comunicación para sincronizacion
Web para juntar replicación.

El SQL Server como un Servidor de Certificación

Puede usar SQL Server para dar certificados a usuarios dentro del servidor para propósitos de
autenticación y encriptación. El SQL Server 2005 incluye nuevas statements Transact-SQL para la
creación y administración de certificados.

Los certificados creados por SQL Server adhieren al certificado standard X.509v3. Cuando usted crea
un certificado, es almacenado en la base de datos del usuario en curso, por lo tanto, si mueve una base
de datos, cualquier certificado que la misma usa es movida con ella.

Certificados en Service Broker

El Service Broker puede asegurar, comunicación autenticada entre dos servicios en una conversación.
El HTTP endpoint al cual los mensajes son enviados en el servidor remoto puede ser configurado para
requerir autenticación, y si el usuario dbo en la base de datos master tiene asociado un certificado
digital, es usada la autenticación basada en certificado.

El Service Broker también puede usar dialogo de seguridad completo, que usa certificados digitales
para encriptar mensajes entre usuarios remotos.

Autenticación de Código
Curso 5 estrellas SQL Server 2005

Puede usar un certificado en una base de datos de SQL Server para agregar una firma digital a
un objeto de base de datos como un proceso almacenado o función. Esta es una forma común de
garantizar la autenticidad de un modulo de código.

Encriptación de Datos

Puede usar certificados para encriptar o desencriptar datos. Sin embargo, debe tener en cuenta
que la criptografía basada en certificados incurre en una mayor performance por encima de la
criptografía con una llave simétrica.

Cómo Administrar Certificados

Introducción

Puede crear, importar, exportar, y borrar certificados de SQL Server usando statements Transact-SQL.

Crear Certificados

Para crear certificados, use la siguiente sintaxis


:
CREATE CERTIFICATE certificate_name [AUTHORIZATION user_name]
{
FROM < certificate_source >
| WITH < cert_options > [ , ... n ] ]
}
[ < SSB_option > ]
< certificate_source >::=
{
FILE = ’ path_to_certificate ’
| EXECUTABLE FILE = ’ path_to_file ’
| ASSEMBLY assembly_name
}
[ WITH PRIVATE_KEY
(
FILE = ’ path_to_private_key ’ ,
DECRYPTION_PASSWORD = ’ key_password ’,
[ ENCRYPTION_PASSWORD = ’ password ’ ]
)
]
<cert_options>::=
START_DATE = < mm/dd/yyyy > | EXPIRY_DATE = < mm/dd/yyyy >
| SUBJECT = ’ certificate_subject_name ’
| ENCRYPTION_PASSWORD = ’ password ’
< SSB_option >::
ACTIVE FOR BEGIN_DIALOG = { ON | OFF }
Curso 5 estrellas SQL Server 2005

Las cláusulas y parámetros de la statement CREATE CERTIFICATE son descriptas en la siguiente


tabla.

Cláusula / Parámetro Descripción

certificate_name El nombre con el cual el certificado será conocido en


la base de datos.

user_name El nombre del usuario que será el dueño del


certificado.

FILE Especifica el path al certificado como local o


UNC path.

EXECUTABLE_FILE Especifica el nombre del path y archivo que fue


firmado con el certificado.

ASSEMBLY Especifica una asamblea firmada, que ha sido cargada,


de la cual el certificado será cargado.

FILE Especifica el path completo incluyendo el nombre del


archivo a la llave privada, como local o UNC path

DECRYPTION_PASSWORD Clave necesitada para desencriptar una llave que es


recuperada de un archivo.

ENCRYPTION_PASSWORD Clave usada para desencriptar una llave privada.


START_DATE La fecha en la cual el certificado se vuelve valido. Por
defecto el día en curso.

EXPIRY_DATE La fecha de vencimiento del certificado. Por defecto


un año desde la START_DATE.

SUBJECT El sujeto del certificado definido en el standard X.509.

ENCRYPTION_PASSWORD Clave usada para encriptar la llave privada del


certificado.

ACTIVE_FOR_BEGIN_DIALOG Hace valido al certificado al iniciador de una


conversación del Service Broker. El valor por defecto
es OFF.

El siguiente ejemplo muestra como crear un certificado en la base de datos AdventureWorks:

USE AdventureWorks
CREATE CERTIFICATE AWCert
WITH SUBJECT = ’CertificateForAdventureWorks’
, ENCRYPTION_PASSWORD = ’P@ssw0rd’

El siguiente ejemplo muestra como crear un certificado y hacerlo disponible al iniciador del dialogo
del Server Broker:

USE AdventureWorks
CREATE CERTIFICATE AWCertSB
WITH SUBJECT =
Curso 5 estrellas SQL Server 2005

’CertificateForAdventureWorksServiceBrokerApp’
, ENCRYPTION_PASSWORD = ’P@ssw0rd’
ACTIVE FOR BEGIN_DIALOG = ON

Puede usar la statement ALTER CERTIFICATE para agregar una llave pública a un certificado o
para alterar el dueño del certificado.

Exportar Certificados

Use el statement DUMP CERTIFICATE para exportar certificados a un archivo, como muestra el
siguiente ejemplo:

DUMP CERTIFICATE AWCert TO FILE = ’C:\MyCert.cer’

Borrar Certificados

Use el statement DROP CERTIFCATE para borrar certificados, como es mostrado en el siguiente
ejemplo:

DROP CERTIFICATE certificate_name


Curso 5 estrellas SQL Server 2005

Modulo 7

Recuperación de Desastres
○ Recupero de Desastres en SQL Server 2005
○ Uso de Snapshots de la Base de Datos
○ Backup y Recuperación

Recupero de Desastre en SQL Server 2005

Introducción

El recupero de Desastres un proceso de restauración del sistema y recupero luego que ha sucedido un
desastre. Un desastre puede ser cualquier cosa causada por un error de un usuario (como un
administrador que borra una tabla) o una falla de hardware (como la falla de un disco) todo el camino
a un colapso catastrófico de la infraestructura y el hardware donde se aloja la base de datos, quizás
como resultado de un terremoto, incendio o acto de terrorismo.

Mejoras de Desastre- Recupero


Curso 5 estrellas SQL Server 2005

El SQL Server 2005 continua soportando clustering, backup y restauración, y log shipping como
mecanismo de desastre-recupero. También suma un número de mejoras a las features disponibles en
las versiones anteriores.
! Snapshots de Base de Datos. Un snapshot de base de datos es una copia de solo lectura de la base de
datos hecha en un momento en particular. Los usuarios pueden consultar el snapshot de la base de
datos en la misma manera en la que consultarían la base de datos. Una snapshot de la base de datos
puede ser usada para restaurar los datos y agregarla devuelta en la base de datos original rápida y
fácilmente. Para una descripción mas detallada de snapshots de bases de datos, vea Using Database
Snapshots mas tarde en este modulo.

!Operaciones Online. En SQL Server 2005, puede restaurar paginas dañadas y archivos
comprimiendo una base de datos mientras que la base de datos esta online y otro usuario esta
accediendo a partes de la base de datos no dañada. Para un descripción mas detallada de cómo realizar
una restauración online, vea Backup and Restore Operations mas tarde en este modulo.

!Backup media mirroring. El SQL Server 2005 permite hacer mirror backup media, incrementando la
confiabilidad reduciendo los efectos de una mala función de los dispositivos de backup. Backup
mirroring puede ser usado con dispositivos de disco o cinta (todos los dispositivos formando un mirror
set deben ser del mismo tipo) El backup fallara si algún dispositivo en el mirror set no esta disponible
o no se encuentra. Sin embargo, las operaciones de restauración solo requieren de un solo dispositivo
en cada mirror set para tener éxito. Para una descripción mas detallada de backup media mirroring,
vea .Backup
and Restore Operations mas tarde en este modulo.

!Verificación Improvisada. Los backup y operaciones de restauración pueden realizar un chequeo de


error adicional en SQL Server 2005, incrementando la confiabilidad que una base de datos será
restaurada correctamente desde un set dado de backups. Puede opcionalmente generar checksums
cuando realiza un backup que puede ser verificado cuando los datos son restaurados El comando
RESTORE VERIFYONLY ha sido extendido para incluir información checksum cuando examina
un set de backup.

Uso de Snapshots de Base de Datos

Introducción

Los snapshots de la base de datos proveen la capacidad para los administradores de generar y usar una
base de datos de solo lectura y vista estable. Una snapshot de la base de datos puede ser usada para
recuperar datos perdidos por un cambio accidental hecho a la base de datos.

Esta sección describe los snapshots de la base de datos y discute su uso como un herramienta para
asistir en un recupero de desastre.
Curso 5 estrellas SQL Server 2005

Objetivos

! Definir snapshots de base de datos.


! Crear, alterar, y borrar snapshots de base de datos.
! Usar una snapshot de base de datos para asistir en la restauración de datos luego de un desastre.
! Usar snapshots de base de datos.

Qué son Snapshots de Base de Datos?

Introducción

Mientras que el mirroring provee soporte continuo, hay muchos escenarios en los cuales un simple
snapshot de la base de datos es útil como una base de datos en standby, como un test o una base de
datos en desarrollo o simplemente como una base de datos de reporte.

Definición

Un snapshot de base de datos es una vista de la base de datos como solo lectura, consistente en un
punto especifico de tiempo.

Modificar Datos

SQL Server 2005 usa tecnología copy-on-write para implementar los snapshots de la base de datos sin
incurrir en crear una copia completa de la base de datos. Una snapshot de la base de datos, empleando
archivos separados NTFS para alojar espacio físico en el disco solo cuando es requerido. Cuando una
página en la fuente de la base de datos es actualizada por primera vez, la imagen original de esa
página es copiada a la snapshot de la base de datos. (Actualizaciones subsiguientes de la misma página
no incurren en copias adicionales sobre la misma.) Si una página no es nunca modificada, no es nunca
copiada.

Nota
Si borra un archivo de la fuente de la base de datos, el contenido completo de la base de datos será
copiado al snapshot de la base de datos.

Lectura de Datos

un usuario que accede a la snapshot de la base de datos vera una copia de la página en la snapshot solo
si la pagina ha sido modificada desde que la snapshot ha sido creada. De todas formas, el usuario es
redireccionado a la página correspondiente en la fuente de la base de datos. Esta redirección es
transparente para el usuario.
Curso 5 estrellas SQL Server 2005

Cómo Administrar Snapshots de Base de Datos

Crear un Snapshot

Crea una snapshot de base de datos usando el comando CREATE DATABASE con la cláusula AS
SNAPSHOT, como muestra el siguiente ejemplo:

CREATE DATABASE database_snapshot_name


ON <filespec>[,...n]
AS SNAPSHOT OF source_database_name

El siguiente código muestra como crear una snapshot de la base de datos AdventureWorks
en la carpeta C:\SnapshotData:

CREATE DATABASE AdventureWorks_dbsnapshot_1800


ON (NAME = AdventureWorks_Data,
FILENAME = ’C:\SnapshotData\AdventureWorks_Data.mdf’)
AS SNAPSHOT OF AdventureWorks

La snapshot debe ser creada en la misma instancia de SQL Server que la de la fuente de la base de
datos, y la carpeta de destino debe existir. Adicionalmente, la cláusula ON debe incluir un archivo
para cada fila de datos usado en la fuente de la base de datos, Aunque no debería especificar los
parámetros SIZE, MAXSIZE, o FILEGROWTH.

Nota
La cláusula filespec no puede incluir la palabra clave PRIMARY o especificar una lista de grupos de
archivo.

Crear una snapshot crea una vista de la base de datos en el tiempo en curso. Puede usar el SQL Server
Agent para agendar tareas que crean snapshots en un tiempo determinado. Una base de datos puede
tener múltiples snapshots. Por lo tanto es recomendado que usted adopte una conversión de nombre
para una snapshots de base de datos que incluye el tiempo en que la snapshot fue creada. Por ejemplo,
AdventureWorks_dbsnapshot_1800 indica que una snapshot fue creada a las t 6:00 P.M.

En una base de datos que cambia frecuentemente, los archivos snapshot pueden agrandarse
rápidamente, así que es recomendado que si agenda la creación de snapshot, también agende trabajos
de borrado de las versiones anteriores de la snapshot.

Tip
Curso 5 estrellas SQL Server 2005

Puede descubrir la fuente de la base de datos para una consulta de la snapshot de base de datos
consultando la vista de catálogos sys.databases y examinar la columna source_database_id.

Borrar una Snapshot

Use el comando DROP DATABASE para borrar una snapshot y tener el espacio en disco que esta
ocupo:

DROP DATABASE database_snapshot_name [,...n]

El siguiente ejemplo borra la snapshot de base de datos AdventureWorks_dbsnapshot_1800, y


también borra el archivo AdventureWorks_Data de la carpeta C:\SnapshotData:

DROP DATABASE AdventureWorks_dbsnapshot_1800

Restricciones

Las siguientes restricciones se aplican a las snapshots de base de datos:


! Snapshots de base de datos no pueden ser creadas para bases de datos model, master, o tempdb.
! Snapshots de base de datos son de solo lectura; los usuarios no las pueden modificar.
! Snapshots de base de datos no pueden ser restauradas o hacerse backup.
! Snapshots de base de datos no pueden ser adjuntadas o desadjuntadas.
! Snapshots de base de datos no pueden ser creadas en FAT32 o en particiones raw.
! Catálogos Full-text no pueden ser propagados al snapshot de la base de datos, y catálogos full-text no
pueden ser creados sobre los snapshots de la base de datos.
! La ubicación física de los archivos comprimen una fuente de bases de datos no pueden ser
cambiados si la snapshots de base de datos es creada sobre la fuente de base de datos existente.
! Toda las snapshots de base de datos creadas sobre la base de datos deben ser borradas antes que la
misma base de datos sea borrada.
! Restricciones de Seguridad en objeto snapshot de base de datos no puede ser modificado.

Cómo usar una Snapshot de Base de Datos para Restaurar


Datos
Curso 5 estrellas SQL Server 2005

Introducción

Puede usar una snapshot de base de datos para recuperar datos de un cambio accidental a la base de
datos aplicando los datos de la snapshot de base de datos a la fuente de la base de datos. Sin embargo,
debe tener en cuenta que la snapshot de la base de datos provee un mecanismo de recuperación de
peso pequeño que no debería ser usado como un sustituto para implementar un backup comprensivo y
recuperación estratégica.

Escenarios Aplicables

Una variedad de situaciones puede terminar en la pérdida de datos, desde borrar algo por accidente de
una tabla o modificación de una simple row hasta corrupción o pérdida del archivo de la base de datos.
La naturaleza de la snapshot de la base de datos la hace ideal para recuperar desde una aplicación
hasta un error de un usuario que pueden borrar una row o una actualización por accidente, o borrar una
tabla. Restaurar datos de una snapshot de base de datos es más rápido y fácil que realizar una
operación de restauración desde una base de datos de backup. Sin embargo, el mecanismo copy-on-
write previene la snapshots de la base de datos de recuperar una base de datos sospechosa de
comprimir archivos corruptos de base de datos, esto requiere restaurar los archivos faltantes de la base
de datos desde un backup. También debe notar que solo puede recuperar cambios hechos al punto en
el cual la snapshot fue tomada. Recuperar los cambio subsecuentes requiere restaurar la base de datos
desde un y luego ir hacia delante usando las transacciones mas recientes de log backups. Los
siguientes escenarios son ejemplos de cuando usar una snapshot de base de datos para propósitos de
recuperación.

Importante
Debe recordad que estos tipos de statement de recuperación, solo recuperan los datos que usted
especifica explícitamente, y cuando restaura datos usando estos métodos, cualquier otra modificación
hecha a los datos en el periodo subsecuentes era perdido.

Escenario 1: Recuperar rows

Puede recuperar rows borradas de una tabla copiándolas desde la snapshot correspondiente. Por
ejemplo, un nombre de usuario Fred ha reportado que todas las rows en la tabla
Production.WorkOrderRouting en la base de datos AdventureWorks han desaparecido. Puede
restaurar las rows perdidas de la base de datos AdventureWorks_dbsnapshot_1800 usando la
statements como muestra el siguiente ejemplo:

ALTER TABLE Production.WorkOrderRouting


NOCHECK CONSTRAINT CK_WorkOrderRouting_ActualEndDate
INSERT INTO Production.WorkOrderRouting
SELECT *
FROM
AdventureWorks_dbsnapshot_1800.Production.WorkOrderRouting
ALTER TABLE Production.WorkOrderRouting
CHECK CONSTRAINT CK_WorkOrderRouting_ActualEndDate
Curso 5 estrellas SQL Server 2005

Es de práctica común desafiliar cualquier restricción cuando se copia un número grande de rows
dentro de una tabla, para propósitos de performance. En otros casos, puede ser necesario deshabilitar
restricciones temporalmente para prevenir que los datos sean rechazados cuando son reaplicados.

Escenario 2: Deshacer una Actualización

Puede usar técnicas similares para copiar datos de una snapshot para deshacer cambios hechos a las
rows seleccionadas. Fred ahora ha reportado que por error cambio el nombre del departamento 1 en la
tabla HumanResources.Department, pero no puede recordar que valor tenía antes, así que no pudo
chequearlo otra vez. Puede corregir el error usando el siguiente statement:

UPDATE HumanResources.Department
SET Name = (
SELECT Name
FROM
AdventureWorks_dbsnapshot_1800.HumanResources.Department
WHERE DepartmentID = 1)
WHERE DepartmentID = 1

Escenario 3: Recuperar un Objeto Borrado

Fred ha reportado otro problema con la tabla Production.WorkOrderRouting: también ha


desaparecido. Puede reconstruir una tabla con el siguiente procedimiento.
1. Use Object Explorer en SQL Server Management Studio para script la tabla
Production.WorkOrderRouting en la base de datos AdventureWorks_dbsnapshot
_1800. Genere el script para el Query Editor.
2. Ejecute la script en la base de datos AdventureWorks. Note que dependiendo de las opciones
seleccionadas cuando genera el script, también contendrá definiciones de las restricciones de la tabla y
los triggers adjuntos a la tabla.
3. Use la técnica del escenario 1 para publicar la tabla. Puede usar la misma estrategia para recrear
cualquier objeto que haya sido borrado de la base de datos AdventureWorks, incluyendo vistas,
procesos almacenados, tipos de datos de usuarios definidos, funciones de usuarios definidos, reglas y
defaults.
Curso 5 estrellas SQL Server 2005

Operaciones de Backup y Restauración

Introducción

Las tareas de backup y restauración de una base de datos, son temas fundamentales con los cuales un
administrador debe estar familiarizado para implementar una estrategia de recupero de desastre. Esta
sección describe como realizar las operaciones de backup y restauración usando las nuevas features en
SQL Server 2005.

Objetivos

! Hacer backup de una base de datos.


! Restaurar una base de datos.
! Realizar una restauración online.
! Reducir las fallas de media que impactan el sistema de su base de datos.
! Restaurar la base de datos master.
! Realizar operaciones de backup y restauración.
Curso 5 estrellas SQL Server 2005

Cambios para hacer un Backup de la Base de Datos

Introducción

El SQL Server 2005 introduce cambios a la statement BACKUP. Ya no soporta las opciones
BACKUP LOG WITH NO_LOG y BACKUP LOG WITH TRUNCATE_ONLY, que antes te
permitían remover y truncar una porción inactiva de un log sin tener que hacer una copia de el.

Usar Transact-SQL para Realizar un Backup

El siguiente código muestra la sintaxis básica de las statements BACKUP DATABASE y BACKUP
LOG, sin cambios desde SQL Server 2000:

BACKUP DATABASE { database_name | @database_name_var }


TO < backup_device > [ ,...n ]
[ WITH
...
]

BACKUP LOG { database_name | @database_name_var }


TO < backup_device > [ ,...n ]
[ WITH
...
]

El argumento backup_device puede ser especificado usando o el nombre lógico de un dispositivo


predeterminado o el tipo y nombre físico de un nuevo dispositivo. El siguiente ejemplo muestra como
hacer un backup de la base de datos AdventureWorks en el dispositivo antes creado AWBackup:

BACKUP DATABASE AdventureWorks


TO AWBackup

Nota
Los llamados dispositivos pipe backup no son soportados en SQL Server 2005; solo puede crear un
dispositivo de disco o cinta.
Curso 5 estrellas SQL Server 2005

Usar SQL Server Management Studio para Realizar un Backup

Puede realizar un backups de una base de datos usando el cuadro de dialogo Backup Database en
SQL Server Management Studio.
1. Conéctese a una instancia de SQL Server.
2. En Object Explorer, expanda la instancia relevante, luego expanda System Databases o User
Databases, dependiendo el tipo de base de datos de la quería hacer el backup.
3. Haga botón derecho sobre la base de datos, posiciones sobre Tasks, y luego haga click en Back
Up.
4. Especifique los requerimientos en las paginas General y Options, y luego haga click en OK.

Backups de Datos y Diferenciales

Backups completes de la base de datos y backups diferenciales en SQL Server 2005 contienen una
imagen full de los datos como también suficiente información de logs para asegurar una recuperación
consistente luego del proceso de restauración. Si algunas transacciones están en proceso cuando el
backup es hecho, el backup incluye pasos de log para alcanzar un estado consistente.

Backup Parcial

Backups completos y diferenciales también soportan un nuevo tipo de backup, el backup parcial. Esto
es diseñado para primariamente para permitir restaurar de un modelo simple de base de datos, pero
puede ser usado para recuperacion completa o bulk-logged de modelos de base de datos, también. Un
backup parcial también incluye todos los datos en cualquier grupo de archivos lectura/escrituray en
cualquier grupo de archivos específicamente mencionado. Para una base de datos de solo lectura, esto
es igual que solo para el grupo de archivos principal. Un backup parcial diferencial hace relación a un
backup parcial en el mismo modo que un backup completo diferencial hace referencia a un backup
completo de la base de datos.
Use la opción READ_WRITE_FILEGROUPS de la statement BACKUP para crear un backup
parcial, como muestra el siguiente ejemplo:

BACKUP DATABASE AdventureWorks READ_WRITE_FILEGROUPS


TO AWPartialBackup

Cuando use el backup parcial diferencial, considere los siguientes puntos:


! Backups diferenciales parciales no pueden ser multibase.
! Si un grupo de archivos es cambiado de read-only a read/write, automáticamente será incluido en el
próximo backup parcial o parcial diferencial.
! Si un grupo de archivos es cambiado de read/write a read-only, debe realizar un archivo de backup
por separado porque será salteado automáticamente en el próximo backup parcial diferencial.

Backups Copy-only

El SQL Server 2005 incluye una nueva opción de statement BACKUP que le permite hacer una copia
de la base de datos para un propósito especifico, por ejemplo, testear sin alterar la secuencia normal
de sus log backups diferencial y transaccional.
Use la opción COPY_ONLY para crear datos o log backup que es independiente de los otros backups
de una base de datos específica, como muestra el siguiente ejemplo de código:

BACKUP DATABASE AdventureWorks


Curso 5 estrellas SQL Server 2005

TO AWBackup
WITH COPY_ONLY

Si usa la opción COPY_ONLY en una statement BACKUP LOG, el log no es truncado y el backup
no es incluido en la secuencia de logs para ser aplicada a la base de datos durante el proceso de
restauración.

Cambios en la Restauración de Base de Datos

Introducción

Puede implementar operaciones de restauración offline en SQL Server 2005 usando la statement
RESTORE en casi la misma forma que en las versiones anteriores. Puede usar también el SQL Server
Management Studio para restaurar la base de datos y logs. La statement RESTORE contiene una
nueva opción, RESTRICTED_USER. Esta restringe el acceso a la base de datos recuperada a los
miembros de los roles db_owner, dbcreator, o sysadmin. Esto reemplaza la opción DBO_ONLY
del SQL Server 2000, que solo esta disponible para compatibilidad retrazada. Puede restaurar solo
backups de bases de datos creadas en SQL Server 7.0, SQL Server 2000, y SQL Server 2005.

Nota
No puede restaurar una base de datos que tiene un snapshot basada en ella.

Recuperacion Point-in-time

En versiones anteriores de SQL Server, puede usar la opción STOPAT para restaurar un log en un
punto específico en el tiempo. En SQL Server 2005, esta funcionalidad también ha sido agregada a la
statement RESTORE DATABASE. Por ejemplo, el siguiente código restaura la base de datos
AdventureWorks a su estado a las 2:00 p.m. del 1ro de Marzo del dispositivo de backup AWBackup.

RESTORE DATABASE AdventureWorks


FROM AWBackup
WITH RECOVERY, STOPAT = ’Mar 1, 2004 2:00 PM’

Operaciones de Restauración Parcial

Mientras ejecuta una operación de backup parcial para hacer backup del grupo de archivos principal,
otros grupos de archivos read/write, y otros grupos read-only específicos, también puede ejecutar una
restauración parcial de los mismos ítems. Usualmente, un proceso de restauración es requerido por un
Curso 5 estrellas SQL Server 2005

error en una parte aislada de la base de datos; por ejemplo, una tabla que se borro por accidente. En
este escenario, puede ejecutar una restauración parcial del grupo de archivos primarios y los grupos de
archivos que contienen la tabla especifica a una locacion secundaria, y luego copiar la tabla y sus
contenidos a la locacion original de la cual fueron borradas. Las restauraciones parciales también
pueden ser útiles para crear subsets de datos con servidores no conectados. El siguiente código
muestra como ejecutará una restauración parcial de AWBackup a una nueva base de datos llamada
AWTemp:

RESTORE DATABASE AWTemp


FILE = ’AdventureWorks_data_1’
FROM AWBackup
WITH PARTIAL,
MOVE ’AdventureWorks_data_1’ TO ’AWTemp_data_1.mdf’

Operaciones de Restauración Page-level

Aparte de poder restaurar una base de datos completa, uno o mas grupos de archivos, o uno o mas
archivos, ahora puede restaurar paginas individuales cuando usa los modelos de recuperacion
completa o bulk-logged. Esto puede reducir ampliamente el tiempo requerido para una operación de
restauración, por lo tanto reduce el tiempo que la base de datos esta offline. Restauración Page-level
es también una técnica particular para restaurar páginas dañadas aisladas. Si tiene que restaurar
múltiples paginas en el mismo archivo, debería usar restaurar el archivo. Use la opción PAGE en la
cláusula file_or_filegroup para la statement RESTORE DATABASE para realizar una restauración
page-level:

PAGE = ’file:page [ ,...p]’

Esto requiere que especifique el nombre de un archivo y el offset de una pagina dentro del archivo.
Puede identificar offsets de una página que contienen errores usando información hexadecimal del log
de error del suspect_page_table en msdb. Por ejemplo, el siguiente código restaurara la página
número 832 en el archivo AdventureWorks_data_1 del dispositivo de backup AWBackup:

RESTORE DATABASE AdventureWorks


PAGE = ’AdventureWorks_data_1:832’
FROM AWBackup

Operaciones de Restauración

La edición de SQL Server 2005 Enterprise Edition soporta el concepto de restauración piecemeal, que
le permite restaurar grupos de archivos en stages, trayendo a cada grupo online mientras avanza.
Puede usar este método para reducir en gran medida el tiempo total en el cual la base de datos esta
siendo restaurada, solo restaurando los archivos dañados,
Curso 5 estrellas SQL Server 2005

restáurelos por orden de importancia, y ponga cada grupo de archivos online lo antes posible. El
comportamiento de la restauración piecemeal varía dependiendo del modelo de recuperacion de su
base de datos:
! Modelos de recuperacion completa y bulk-logged.
Restauración piecemeal es valida para cualquier grupo de archivos secundario.
! Modelo de recuperacion simple.
Puedo restaurar solo grupos de archivos secundarios si ellos son de solo lectura cuando el backup fue
ejecutado y han permanecido así desde entonces. Restauración Piecemeal comienza con una
restauración parcial de algunos de los grupos de archivos primarios, y en el caso de un modelo de
recuperacion simple, los grupos de archivos read/write. Una vez que están online, puede restaurar
cualquier otro archivo dañado disponible en la base de datos.

Cómo Realizar una Restauración Online

Introducción

El SQL Server 2005 Enterprise Edition introduce un nuevo concepto de restauración online de
backups debe SQL Server 2005. Por defecto, en esta edición, una base de datos queda online mientras
que se restauran archivos o paginas individuales a una base de datos. Esto puede mejorar el tiempo de
restauración en los modelos completos y bulk-logged . (No soporta modelos de restauración simples.)

Restauración de Archivos Online

Durante la restauración de cualquier archivo o grupo de archivos, el grupo completo esta offline. Por
lo tanto, cuando esta restaurando un archivo en el grupo de archivos primarios, toda la base de datos
debe estar offline. Sin embargo, luego que el primer grupo de archivos es restaurado, la base de datos
es puesta otra vez online, y mientras los grupos de archivos secundarios son restaurados, el grupo de
archivos es puesto automáticamente online.

Restauración de Paginas Online

La restauración online asegura que la restauración de páginas dañadas aisladas tiene poco impacto
sobre el sistema completo de la base de datos. Generalmente, las páginas dañadas serán listadas en el
log de error de la base de datos. Por ejemplo, si trata de acceder a una pagina dañada, un error ocurrirá
y se hará una entrada en el log de error. Puede usar esta información para localizar la página
individual y restaurarla de un backup valido.

Confiabilidad Media

Introducción

Más allá de su estrategia de restauración, sus datos aun pueden estar en peligro por errores que pueden
ocurrir en su backup media. El SQL Server 2005 incluye funcionalidades que lo alertan de errores
Curso 5 estrellas SQL Server 2005

durante los procesos de backup y restauración, permitiéndole restaurar los datos mas allá de los
errores que pueden ocurrir y reduciendo la posibilidad de errores de media impactando sus trabajos.

Uso de checksums Durante el Backup y Restauración

Puede usar la opción CHECKSUM de la statement BACKUP para calcular una checksum en cada
página de datos y verificar esta checksum antes de escribir la información a su backup media. Esto le
ayudara a asegurarse que solo datos validos serán escritos cuando haga el backup de archivos. El
siguiente ejemplo de código muestra como usar la opción CHECKSUM:

BACKUP DATABASE AdventureWorks


TO AWBackup
WITH CHECKSUM

Por defecto, si ocurre un error durante la creación del proceso checksum, el backup falla. Este
comportamiento puede ser evitado usando la opción CONTINUE_AFTER_ERROR escrita abajo.
Los checksums computados son escritos en el backup media. Pueden ser usados durante el proceso de
restauración para una vez mas, verificar los datos cuando son leídos del backup, antes que sea
finalizado a la base de datos restaurada. Use la opción CHECKSUM del statement RESTORE para
instruir al SQL Server a verificar los datos antes de restaurarlos, como muestra el siguiente ejemplo de
código:

RESTORE DATABASE AdventureWorks


FROM AWBackup
WITH CHECKSUM

Puede forzar al SQL Server a log, pero no fallar, cuando encuentra errores de checksum usando la
opción CONTINUE_AFTER_ERROR. La statement RESTOREVERIFYONLY ha sido mejorada
para incluir la opción CHECKSUM y permitirle verificar los datos antes de intentar restaurarlos.

Nota
Debe usar la opción CHECKSUM con cuidado, puede producir efectos adversos a su sistema de base
de datos.

Backup Media Mirroring

El SQL Server 2005 incrementa el potencial de restauración de sus datos a través del uso de un
backup media mirroring. Este método resulta en dos locaciones del mismo tipo de media almacenando
sus datos del backup, lo cual reduce el peligro que la media falle causando perdida de datos. El
siguiente ejemplo de código muestra como usar la opción MIRROR TO en el statement BACKUP:

BACKUP DATABASE AdventureWorks


TO AWBackup
MIRROR TO AWMirror
WITH FORMAT
Curso 5 estrellas SQL Server 2005

Nota
Cuando usa la opción MIRROR TO, también debe incluir la opción WITH FORMAT de la
statement del BACKUP.

Cuando esta haciendo backup de datos, todos los miembros del mirror deben ser accesibles. Sin
embargo, cuando esta restaurando datos, solo un miembro necesita se accesible, haciendo una
restauración posible aunque el otro miembro este dañado.

Continuar Luego de Errores

El statement RESTORE en SQL Server 2005 incluye un nuevo punto que le permite completar una
operación de restauración completa aunque un error aparezca durante el procesos. Usando la opción
CONTINUE_AFTER_ERROR cauda al SQL Server simplemente intentar log el error y continuar
con su trabajo, como muestra el siguiente código:

RESTORE DATABASE AdventureWorks


FROM AWBackup
WITH CONTINUE_AFTER_ERROR

Dependiendo en la naturaleza del error, este intento puede tener éxito, o fallar. Por ejemplo, si una
verificación de checksum falla, es posible que el remanente de los datos sea restaurado y sea valido y
el proceso pueda continuar. Sin embargo, si ocurre un error en una cinta, puede ser imposible que
continuara la operación de restauración, la cual entonces fallara. Si los errores ocurren, la base de
datos es marcada SUSPECT al final del proceso de restauración, permitiéndole chequear
manualmente que errores ocurrieron y que impacto habrán tenido en su base de datos.

Cómo Recuperar la Base de Datos Master

Introducción

Si su base de datos master es dañada, puede necesitar o simplemente restaurar la base de datos o
reconstruirla completamente.

Restaurar la Base de Datos Master


Curso 5 estrellas SQL Server 2005

Su la base de datos master es aun accesible, podrá iniciar una instancia de SQL Server. En este
escenario, debe iniciar SQL Server en modo singleuser y luego restaurar su copia de la base de datos
master desde su más reciente backup completo de la base de datos en la manera habitual, como
describe en los siguientes pasos.

1. Inicie SQL Server en modo single-usere. En la línea de comando, navegue a la carpeta de


instalación de SQL Server y tipee el siguiente código:

sqlservr.exe -c .m

2. Ejecute una operación de restauración de un backup de una base de datos completa:

RESTORE DATABASE master


FROM masterbackup

Si hizo algún cambio a la base de datos master desde que fue hecho el backup, necesitara rehacer
manualmente esos cambios una vez que la base de datos esta restaurada y online. Por esta razón,
cuando realiza un cambio a master (por ejemplo, cambiar una configuración server-wide, o agregar o
remover bases de datos), es recomendado que ejecute un backup completo de la base de datos. Una
vez que el proceso de restauración es completado, el SQL Server es parado automáticamente. En este
punto, puede empezar SQL Server en modo single-user para hacer los cambios manuales antes de
ponerla online, o puede iniciar SQL Server para uso inmediato de clientes

Reconstruir la Base de Datos Master

Si la base de datos master es dañada severamente, puede ser que no pueda iniciar una instancia de
SQL Server. En esta situación, debería reconstruir una versión nueva entera de su base de datos
master.
Para reconstruir una base de datos master, debe correr el programa del setup de SQL Server con las
siguientes opciones:
! /qn cambia a suprimir la interfase de usuario.
! REINSTALLMODE = AMUS propiedad para reconstruir un sistema de base de datos.
! REINSTALL = ALL propiedad de setear un servidor con las features instaladas previamente. Esta
debe ser usada cuando se especifica la propiedadREINSTALLMODE.

Una vez que la reconstrucción esta completa, puede restaurar su versión original del servidor si tiene
un backup disponible siguiendo los pasos descriptos arriba. Si no tiene un backup disponible,
necesitara recrear y reconfigurar su sistema. Reconstruir el sistema de base de datos incluye
reconstruir las bases de datos msdb y model, asi que debe asegurarse que tiene copias de backup de
sus versiones para restaurar luego de reconstruir.
Curso 5 estrellas SQL Server 2005

Modulo 8

Disponibilidad de Datos y Replicación en SQL Server 2005


○ Introducción a la Disponibilidad de Datos
○ Failover Clustering
○ Database Mirroring
○ Mejoras en Replicación

Introducción a Disponibilidad de Datos

Introducción

Idealmente, un sistema de base de datos debería estar disponible las 24 horas del día, cada día. En
realidad, esto no es siempre posible, hay técnicas que puede usar para incrementar la disponibilidad de
Curso 5 estrellas SQL Server 2005

sus aplicaciones. El SQL Server 2005 provee tres tecnologías que pueden ayudarlo a crear sistemas de
base de datos altamente disponibles: clustering, log shipping, y database mirroring.

Clustering

Clustering provee soporte de servidor completo y alta disponibilidad en caso de tener una falla de
hardware o mantenimiento agendado. En caso de falla, el sistema operativo y SQL Server trabajan
juntos para proveer un sistema automatizado para fallas. En el caso de agendar que la computadora no
funcione, puede configurar un nodo para que falle sobre otro para asegurarse que las aplicaciones aun
están disponibles para los usuarios. Ha sido posible tomar ventaja del clustering de Microsoft
Windows® en las ediciones previas de SQL Server, pero SQL Server 2005 Enterprise Edition mejora y
extiende estas capacidades:

!El SQL Server 2005 soporta hasta ocho nodos cuando esta corriendo en Microsoft Windows Server.
2003 Datacenter Edition, incrementando la capacidad de failover.

!El SQL Server 2005 también extiende la funcionalidad de clustering para permitirle ver el clustering
en conjunción con Analysis Services, Notification Services, y SQL Server Replication.

Log shipping

Log shipping provee un calido standby de sus datos que puede ser traído online en caso de falla del
sistema. Una base de datos completa es restaurada a un servidor secundario, y luego los logs de
transacción de la base de datos primaria son aplicados constantemente a la base de datos secundaria.
Este es un costo relativamente bajo a la solución de la disponibilidad de datos.

Log shipping esta disponible solo para usuarios de bases de datos, no sistemas de bases de datos. Esto
significa que debe tener un régimen estricto de backup las bases de datos master y msdb en el
servidor primario y restaurarlos en el secundario. Sin este régimen, cualquier metadato cambiado será
perdido en la falla del sistema, resultando potencialmente en logins, trabajos y alertas perdidos.

Database mirroring

Database mirroring es una nueva técnica disponible en SQL Server 2005 Enterprise Edition que
provee una versión mejorada de log shipping para un failover mas rápido. En lugar de shipping
transaction logs e una constante, intervalos configurados, cada transacción es shipped mientras que es
aplicada al servidor primario. No puede configurar un mirror set para automáticamente fail over en el
caso en que el servidor primario falle, y puede programar aplicaciones de cliente para
automáticamente reconectarse con el nuevo servidor primario.

Como log shipping, el mirroring de la base de datos esta disponible solo a usuarios de base de datos, y
requiere que asegure manualmente la disponibilidad y corrección de su sistema de base de datos.

Seleccione una Solución de Alta Disponibilidad

Es importante entender que ninguna de las soluciones de alta disponibilidad en SQL Server 2005 es
una opción aislada. Puede combinar dos o más técnicas dentro del mismo sistema para cubrir todas las
eventualidades.

La siguiente tabla compara y contrasta tres de las tecnologías de alta disponibilidad en SQL Server
2005.
Curso 5 estrellas SQL Server 2005

Atributo Disponible Clustering Log shipping Database


mirroring

Detección de Falla Si No Si

Failover Automático Si No Si

Perceived downtime 30 segundos + N/A Menos de tres segundos


recupero

Potencial de datos Si una copia de datos Si la ultima Si en algunas


perdidos transacción log configuraciones

Masking of storage Sin disco compartido Si Si


failure

Requerimientos Almacenamiento y No No
especiales de hardware servidores certificados

Distancia limitada Yes.about 100 No No


miles

Rango Base de datos de sistema Base de datos de usuario Base de datos de Usuario
y usuario

Puede usar replicación en combinación con soluciones de alta disponibilidad para dar mayor
protección de datos de su sistema.

Introducción a Mirroring de Base de Datos

Introducción
Curso 5 estrellas SQL Server 2005

Mirroring de base de datos puede proveer una solución failover casi instantánea para las bases de
datos SQL Server 2005. En esta edición, mirroring de base de datos le permite mantener una copia
actualizada de su base de datos en un servidor aparte para eventos de failover durante una falla del
servidor. Esta sección le enseña el concepto de mirroring una base de datos.

Objetivos de la sección

Luego de completar esta sección, usted podrá:


! Definir mirroring de base de datos.
! Identificar los roles realizados por los servidores en escenarios de mirroring de base de datos.
! Describir como funciona una sesión de mirroring.
! Describir como las diferentes configuraciones se comportar en las diferentes fallas del servidor.
! Describir los conceptos de mirroring de una base de datos.

Qué es Mirroring de Base de Datos?

Introducción

Mirroring de base de datos es una solución de software para incrementar la disponibilidad de la base
de dato. Mirroring de base de datos en SQL Server 2005 mejora el nivel de disponibilidad que tenían
las versiones anteriores de SQL Server y provee una alternativa fácil al clustering failover.

Definición
Curso 5 estrellas SQL Server 2005

Mirroring de base de datos funciones manteniendo un servidor en standby que tiene un copia de la
base de datos. Si el servidor de producción falla, las aplicaciones pueden ser redireccionadas al
servidor en standby. El failover puede ser la mas instantánea, típicamente necesita de menos de tres
segundos si es realizada automáticamente.

La base de datos sobre la cual se hace el mirror es usualmente referida como la base de datos
principal; el mirror es llamado la base de datos mirror. (Debe entender que estos términos son
puramente relativo, ya que es posible para las bases de datos cambiar los roles como resultados de
failover.) Los servidores que tienen estas bases de datos se los llama partner servers.

Redirección Transparente para el Cliente

Su las aplicaciones de su cliente usan el SQL Native Client Library (SNAC) provisto con SQL Server
2005, pueden tomar ventaja de la redirección transparente para el cliente. SNAC es conciente que el
servidor al que esta conectado es el mirror y cacheara el nombre del servidor mirror. En el caso de
falla del servidor principal, la sesión del cliente será perdida. El cliente intentara reconectarse al
servidor principal, pero si falla, automáticamente redireccionara la conexión al servidor mirror.

Estados de las Bases de Datos

Hacer un mirror de una base de datos envuelve algunos pasos, durante los cuales la base de datos pasa
por algunos estados:

" Estado de sincronización. Para permitir hacer el mirror, la base de datos mirror debe ser creada, y
todos los cambios realizados a la base de datos principal también deben ser aplicados a la base de
datos mirror. Mientras que esto sucede, la base de datos principal y la mirror están en estado de
sincronización.

" Estado de sincronización. Una vez que la base de datos mirror se actualizo con la base de datos
principal, ambas están en estado de sincronización. Todos los cambios hechos a la base de datos
principal serán automáticamente hechos en la base de datos mirror para asegurarse que permanecen
sincronizadas.

" Estado desconectado. Si un servidor pierde conexión con su servidor/es partner como un falla de la
red, la base de datos pasa a estado desconectado.

" Estado Suspnedido. El mirror puede ser detenido temporalmente, usualmente como resultado de
acciones hechas por administrador de la base de datos. Una vez que la base de datos no esta siendo
espejada, entra en estado suspendido.

Los pasos para configurar un mirror y la transición que realiza cada base de datos son descriptas en
mas detalle en esta lección.

Modos de Operación

Los mirror de las bases de datos pueden operar en dos modos, que determinan el grado de exposición
a la perdida de datos y la naturaleza del failover que pueda realizarse:

" Modo sincronizado. En modo sincronizado, los registros de transaction log son transmitidos de la
base de datos principal a la base de datos mirror, y aplicados a la base de datos mirror antes de ser
hechos en la base de datos principal. Este mecanismo garantiza que no habrá transacciones perdidas, a
Curso 5 estrellas SQL Server 2005

expensas del tiempo adicional que requiere completar una transacción. Este modo soporta failover
manual y automático.
" Modo desincronizado. En modo desincronizado, las transacciones son hechas primero en el servidor
principal antes de enviar registros log a la base de datos mirror. La base de datos mirror esta en estado
de desincronizacion perpetuo. Las aplicaciones no son demoradas mientras la comunicación con el
servidor mirror se produce. Esto incrementa el trabajo al peligro de perder la sincronizacion con la
base de datos mirror si la comunicaron falla. El modo desincronizado no soporta failover, aunque un
administrador de base de datos puede realizar pasos para forzar el uso de una base de datos mirror en
caso que la base de datos principal este no disponible. Sin embargo, la base de datos mirror puede no
haber sido actualizada con los mas recientes cambios.

El modo desincronizado de mirror es preferible a log shipping porque el intervalo de sincronizacion


ente bases de datos esta basada en transacciones en vez de logs de archivos enteros. Adicionalmente,
hacer mirror requiere menos administración que log shipping.

Nota
En SQL Server 2005 Beta 3, ambas bases de datos envueltas en el mirror deben operar en modo de
recuperacion completa.
Curso 5 estrellas SQL Server 2005

Rol de los Servidores en el Mirroring de Base de Datos

Introducción

El mirror de la base de datos envuelve por lo menos dos partner servers que tienen la base de datos
principal y la mirror. Adicionalmente, otro servidor testigo puede ser usado para monitorear el mirror,
proteger la base de datos mirror, e implementar failover automático.

Servidor de Base de Datos Principal

El servidor servidor de base de datos principal tiene la base de datos principal. Este es el servidor al
cual los usuarios y aplicaciones se conectan normalmente para realizar sus tareas.

Servidor de la Base de Datos Mirror

El servidor de la base de datos mirror tiene la base de datos mirror. Los usuarios y aplicaciones no se
conectan a este usualmente a menos que ocurra un failover y este servidor es hecho el servidor de base
de datos principal. En este caso, luego que la comunicaron ha sido establecida con el servidor
principal, el servidor principal original puede tomar el rol de servidor mirror.

Los servidores de base de datos principal y mirror deben poder comunicarse entre ellos usando una
conexión confiable. Idealmente, ambos servidores deben pertenecer al mismo dominio.

Servidor Testigo
Curso 5 estrellas SQL Server 2005

Un Servidor Testigo monitorea los servidores de base de datos principal y mirror y verifica que ambos
servidores estén disponibles. Como esto no es un trabajo intensivo, una computadora corriendo SQL
Server puede actuar como servidor testigo para cualquier set de mirrors.

Si el servidor de la base de datos principal o mirror fallan, el servidor testigo puede trabajar con el
servidor que sobreviva para reconectarse o reaccionar apropiadamente. Las acciones que se realizan,
que dependen de la configuración en curso de set de mirrors, son descriptas mas tarde en esta sección.

Sesiones de Mirror

Introducción

El mirror de la base de datos se realiza en el contexto de una sesion mirror. Una secion mirror
mantiene la infotmacion acerca del estado de las bases de datos, las mirror partners y el servidor
testigo.

Iniciar una sesión mirror

Cuando un administrador de base de datos inicia un una sesión mirror, el servidor de la base de datos
mirror identifica los registros log de las transacciones mas recientes que fueron aplicadas a la base de
datos mirror, y luego requiere cualquier registro log de transacciones subsiguiente del servidor
principal. Esta es la fase de sincronización de la sesión mirror.

Durante la sesión

Luego que la base de datos mirror esta sincronizada con la base de datos principal, el servidor de la
base de datos principal transmitirá todos los registros log de transacciones para la base de datos
principal a la base de datos mirror. Los registros log son transmitidos como cambios son hechos,
efectiva y continuamente rodando la base de datos mirror hacia la base de datos principal. El modo de
operación de la sesión mirror (sincronizada o desincronizada) determina si los registros de log de
transacciones serán aplicados a la base de datos mirror antes o después que las transacciones se
completen en la base de datos principal.

Una sesión mirror mantiene la información acerca del estado de cualquiera de los servidores testigo,
asegurándose que el servidor testigo esta visible y puede monitorear a los partner servers.

Terminar una Sesión Mirror

Una sesión puede ser terminada por una variedad de causas, las mas comunes son:

! Falla en la comunicación de los servidores


Si el servidor principal se vuelve inaccesible, el servidor mirror puede ser hecho el servidor principal.
Esto puede ocurrir automáticamente, dependiendo del modo de operación en la sesión mirror y la
presencia de un servidor testigo.

! Intervención manual del administrador de la base de datos.


Curso 5 estrellas SQL Server 2005

El administrador de la base de datos puede terminar manualmente el mirroring usando comandos


Transact-SQL ALTER DATABASE. una sesión puede ser terminada completamente de esta manera,
o un mirroring puede ser simplemente suspendido, para reanudarse mas tarde. (Las bases de datos
pararan a la fase de sincronización otra vez hasta que la sesión continué.)

Nota
Luego que una sesión mirror ha comenzado, los usuarios no podrán conectarse a la base de datos
mirror. Este es un mecanismo de seguridad que previene a la base de datos de cambios accidentales.
La base de datos mirror permitirá el acceso solo luego de un failover (cuando toma el rol de base de
datos principal), o si el administrador de la base de datos lo permite.

Los comandos ALTER DATABASE usados para controlar una sesión mirror son descriptos mas
detalladamente en esta sección.

Configuraciones de Base de Datos Mirroring

Introducción

Hay varias maneras de configurar un set de mirrors. El comportamiento de los sets depende de un
numero de factores, incluyendo la presencia de un servidor testigo y el modo de operación
(sincronizado o desincronizado).

Para establecer cualquier tipo de sesión mirror, primero debe restaurar la base de datos desde el
servidor principal dentro del servidor mirror, y luego aplicar los logs de transacción al servidor mirror.
Luego puede establecer la sesión usando las statement ALTER DATABASE con la cláusula SET
PARTNER en cada servidor. tiene la opción de crear un servidor testigo usando la stament ALTER
DATABASE con la cláusula SET WITNESS. Una vez que la sesión es iniciada, las transacciones
que ocurran en el servidor principal serán mirrored en el servidor mirror.

Diferentes configuraciones tendrán diferentes comportamientos ambas durante la sesión y si o el


servidor principal o el mirror fallan, como se describe en los siguientes escenarios.

Escenario: Mirroring Sincronizado con Servidor Testigo

Mirror sincronizado con un servidor testigo provee la mas alta disponibilidad de mirror de base de
datos porque soporta failover automático sin perdida de datos. Sin embargo, como es requisito que las
transacciones sean entradas en el log en el servidor mirror antes de serlo en el servidor principal, la
performance puede verse afectada.

En el modo de operación sincronizada, las transacciones no son comprometidas en el servidor


principal hasta que hayan sido entradas en el log de transacción en el servidor mirror y un mensaje de
éxito ha sido recibido. el comportamiento resultante cuando un servidor se vuelve no disponible,
depende en cual servidor ha fallado, como se describe a continuación:

! Servidor Principal. Si el servidor principal se vuelve no disponible por cualquier razón, el servidor
testigo instruirá al servidor mirror a tomar el rol de servidor principal. El servidor mirror traerá la base
de datos mirror online y a los usuarios y aplicaciones que son servidas. A este punto, la sesión mirror
Curso 5 estrellas SQL Server 2005

es suspendida porque no hay mirror disponible para el nuevo servidor principal. Cuando el servidor
principal original es recuperado, tomara el rol de servidor mirror del nuevo servidor principal. Si es
Nazario, puede iniciar un failover manual para revertir estos roles a la configuración inicial.

! Servidor Mirror. Si el servidor mirror se vuelve no disponible, el servidor principal seguirá


operando, pero en un estado suspendido. El Mirroring puede ser reestablecido restaurando el servidor
mirror.

Escenario: Mirroring Desincronizado con un Servidor Testigo

Mirroring desincronizado con un servidor testigo provee una alta disponibilidad con buena
performance porque las transacciones pueden ser comprometidas en el servidor principal
inmediatamente. Esta configuración es particularmente útil cuando hay una larga distancia o tardanza
entre los servidores principal y mirror.

En el modo de operación desincronizada, las transacciones son comprometidas en el servidor principal


y enviadas al log de transacciones del servidor mirror. Esto puede incrementar el trabajo porque el
compromiso en el servidor principal no esta esperando comunicación del servidor mirror. El
comportamiento cuando un servidor en un set de mirror desincronizado se vuelve no disponible es
descrito a continuación:
! Servidor Principal. Si el servidor principal no esta disponible, el servidor testigo no puede iniciar
failover automático y la base de datos se vuelve no disponible. Puede manualmente forzar el servicio
en el servidor mirror para hacerlo asumir el rol de servidor principal de base de datos y servir su copia
de la base de datos a los usuarios y aplicaciones. Sin embargo, esto puede resultar en la perdida de
transacciones que fueron comprometidas en el servidor principal antes que falle pero aun no fueron
cometidas en el servidor mirror. Cuando el servidor principal original es restaurado, el servidor testigo
lo instruirá a volverse el servidor mirror para la base de datos.
! Servidor Mirror. Si el servidor mirror se vuelve no disponible, el servidor principal continuara
operando, pero en un estado suspendido. El mirroring puede ser reestablecido recuperando el servidor
mirror y resumiendo la sesión.

Escenario: Mirroring Sincronizada sin un Servidor Testigo

El mirroring sincronizado sin un servidor testigo le permite garantizar que los datos en ambos
servidores son siempre concurrentes. Esta configuración es útil cuando necesita garantizar la
integridad de los datos y puede tolerar que el servidor no este disponible e issues de performance
potenciales.

La ausencia de un servidor testigo impacta los efectos de la falla de un servidor mirror en el modo
sincronizado. Failover automático no puede ocurrir porque no hay suficientes servidores para formar
una decisión quórum de cual servidor debe tomar el rol de servidor principal y cual el de servidor
mirror. El comportamiento resultante cuando un servidor no esta disponible y no hay servidor testigo
es descrito a continuación:
!Servidor Principal. Si el servidor principal se vuelve no disponible, la base de datos también se
vuelve no disponible. Forzar manualmente al servidor mirror a servir y resumir la sesión mirror una
vez que el servidor principal esta otra vez online.
!Servidor Mirror. Si el servidor mirror se vuelve no disponible, el servidor principal pondrá la base de
datos offline. Esta acción es para maximizar la protección de la base de datos y asegurar la integridad
de sus contenidos. Una vez que el servidor mirror es reiniciado, el servidor principal se vuelve
disponible automáticamente otra vez.
Curso 5 estrellas SQL Server 2005

Configurar Mirroring de Base de Datos

Introducción

Crear una sesión mirror envuelve configurar un Server mirror, estableciendo una sesión, y ,
opcionalmente, establecer un servidor testigo. Otras tareas de administración incluyen inicializar
failovers manualmente para propósitos de mantenimiento y terminar sesiones. Esta sección le mostrara
como configurar y usar mirroring de una base de datos.

Objetivos de la sección

Luego de completar esta sección, usted podrá:


! Configurar un servidor mirror.
! Configurar mirroring endpoints.
! Establecer una sesión mirror.
! Establecer un servidor testigo.
! Administrar sesiones mirror.
! Configurar mirroring de base de datos.
Curso 5 estrellas SQL Server 2005

Como Configurar un Servidor Mirror

Introducción

Antes de configurar un mirroring de base de datos y establecer una sesión mirror debe configurar el
servidor mirror y la base de datos.

Servidor Mirror

El servidor que tiene la base de datos, debe ser accesible y confiable por el servidor principal de base
de datos. Idealmente, el servidor principal y el servidor mirror deben pertenecer al mismo dominio.

Adicionalmente, si el servidor mirror es tentado a proveer servicio en un failover, esa computadora


debe tener suficiente memoria y poder de proceso para actuar como un sustituto del servidor principal
de base de datos. Debería poder soportar usuarios y aplicaciones sin diferencia notable en la calidad
del servicio.

Nota
El servidor mirror puede ser una instancia en la misma computadora que le servidor principal de base
de datos. Sin embargo esto no es recomendable, porque impactara la performance y la recuperabilidad
de la base de datos en caso de una falla seria de hardware. Para que ocurra un failover automatico
confiable, la base de datos mirror y la base de datos principal debem estar en computadoras diferentes.

Bases de Datos Mirror

Debe crear una base de datos mirror manualmente. Por simplicidad, la estructura de archivos de la
base de datos mirror debe coincidir con la base de datos principal. Ambas bases de datos deben
implementar el modelo de recuperación completa. Luego que la base de datos mirror ha sido creada,
debe aplicar el backup mas reciente de la base de datos completa de la base de datos principal a la
base de datos mirror usando el comando RESTORE DATABASE con la cláusula WITH
NORECOVERY.

Nota
Es importante que use la opción WITH NORECOVERY, porque la base de datos mirror debe
permanecer en el estado de restauración para que los registros de transacción log sean aplicados
durante el mirroring.

Cómo Configurar Mirroring Endpoints


Curso 5 estrellas SQL Server 2005

Introducción

Antes de establecer una sesión mirror, debe configurar el mecanismo de configuración por el cual el
mirroring ocurrirá. Esto envuelve asegurarse que los endpoints apropiados son creados en cada
instancia de servidor que practicaran en las operaciones mirroring. Un endpoint simplemente controla
el puerto Transmission Control Protocol (TCP) en el cual una instancia de servidor escucha los
mensajes para una base de datos mirroring. Un endpoint también define el rol que ese endpoint debe
realizar.

Una instancia de servidor requiere solo un endpoint en el cual escuchar, sin importar en cuantas
sesiones de mirroring participa. Sin embargo, cada instancia requiere un único puerto en el cual
escuchar, por lo tanto, si su servidor tiene instancias múltiples de SQL Server participando en una
sesión mirror, cada instancia requiere su propio endpoint, configurado con un único puerto TCP.

Crear un Partner endpoint en el Servidor Mirror

Un servidor mirror requiere un partner endpoint para que pueda comunicarse con los servidores
principales para actividades de mirroring. El siguiente código crea partners endpoint llamados
mirroring_ep y especifica que debe volverse activo inmediatamente seteando el parámetro STATE a
STARTED. También especifica que el puerto TCP 5022 debe ser usado para escuchar las operaciones
de mirroring . El puerto 5022 es el puerto TCP por defecto para operaciones de mirroring de SQL
Server 2005. el ejemplo también muestra como setear el rol del endpoint a PARTNER.

--Endpoint for the mirror server


CREATE ENDPOINT mirroring_ep
STATE=STARTED
AS TCP(LISTENER_PORT=5022)
FOR DATABASE_MIRRORING
(ROLE=PARTNER)

Crear un Partner endpoint en el Servidor Principal

Si su escenario mirroring incluye un servidor testigo, también necesitara crear un endpoint en la


instancia de SQL Server que proveerá servicio testigo. La sintaxis para crear un endpoint testigo es
similar a la usada para crear partner endpoints, con la exclusión que necesita especificar el rol
WITNESS. El siguiente código crea un endpoint para un servidor testigo:

--Endpoint for the witness server


CREATE ENDPOINT mirroring_ep
STATE=STARTED
AS TCP(LISTENER_PORT=5022)
FOR DATABASE_MIRRORING
(ROLE=WITNESS)

Como antes, si otra instancia de SQL Server en la misma computadora ya esta usando el endpoints
para sesiones mirroring, deberá elegir un puerto único para la instancia de SQL Server que esta
actuando como testigo.
Curso 5 estrellas SQL Server 2005

Cómo Establecer una Sesion Mirror

Introducción

Luego de haber preparado el servidor y base de datos mirror y crear el endpoint apropiado, debe
iniciar una sesión mirror estableciendo el servidor de base de datos principal y mirror como partners.

Los siguientes ejemplos están basados asumiendo que quiere hacer un mirror de la base de datos
AdventureWorks en el servidor London al servidor Manchester. El ejemplo también asume que el
puerto TCP por defecto 5022 es usado por el mirroring endpoints en cada servidor.

Crear un mirroring en una Relación de Partners

Corra el comando ALTER DATABASE con la cláusula SET PARTNER para crear una relación de
partners entre los servidores:

ALTER DATABASE database_name


SET PARTNER = 'server_network_address'

Corra el comando ALTER DATABASE en el servidor mirror primero, especificando la dirección


endpoint del servidor principal como el parámetro server_network_address. Esto pondrá a la base de
datos mirror en un estado listo para iniciar la sincronización cuando sea contactado por el servidor
principal. Por ejemplo, para configurar un mirror para la base de datos AdventureWorks en el servidor
London, usando el siguiente statement:

ALTER DATABASE AdventureWorks


SET PARTNER = 'TCP://London:5022'

Cuando la base de datos mirror esta lista para comenzar la sincronización, corra el comando ALTER
DATABASE en el servidor principal, especificando el servidor mirror como el parámetro
server_network_address. Para especificar que el servidor Manchester esta configurado para actuar
como el mirror del servidor London, corra el siguiente comando en el servidor London:

ALTER DATABASE AdventureWorks


SET PARTNER = 'TCP://Manchester:5022'

La sincronización y la sesión mirror comenzaran; ambas bases de datos pasar al estado de


sincronización antes de entrar al estado sincronizado.

Cambiar el Modo de Operación


Curso 5 estrellas SQL Server 2005

Por defecto, una sesión de mirror opera en modo sincronizado. puede cambiar el modo de operación
de una sesión mirror usando el comando ALTER DATABASE con la cláusula SET PARTNER
SAFETY en cualquier servidor partner:

ALTER DATABASE database_name


SET PARTNER SAFETY <safety_mode>

El parámetro safety_mode puede estar en OFF (para modo desincronizado), o FULL (para modo
sincronizado). Por ejemplo, especificar el modo sincronizado para la sesión mirror configurada antes,
ejecute el siguiente comando en cualquier servidor, el London o el Manchester:

ALTER DATABASE AdventureWorks


SET PARTNER SAFETY FULL

Ver Información de Mirrors en Relacion de Partners

Puede consultar la vista del catalogo sys.databases para examinar la relación de partners mirror entre
bases de datos. La siguiente tabla describe las columnas conteniendo información de mirroring útil.

Columna Descripción

mirroring_state_desc Una descripción textual del estado de la base de datos.


Esta columna tendrá alguno de los siguientes valores:
DISCONNECTED
SYNCHRONIZED
SYNCHRONIZING
SUSPENDED
PENDING_FAILOVER

mirroring_partner_name La dirección de red del mirroring partner.

mirroring_witness_name La dirección de red del servidor testigo, o nada si no


hay testigo presente.

mirroring_witness_state_desc Una descripción textual del estado del servidor testigo.


Esta columna tendrá algunos de los siguientes valores:
UNKNOWN
CONNECTED
DISCONNECTED

mirroring_role_desc Una descripción del rol de la base de datos. Esta


columna tendrá los siguientes valores:
PRINCIPAL
MIRROR

mirroring_safety_level_desc Una descripción del modo de operación de la base de


datos. Esta columna tendrá los siguientes valores:
UNKNOWN
OFF (desincronizado)
FULL (sincronizado)
Curso 5 estrellas SQL Server 2005

mirroring_safety_sequence Actualiza el numero de secuencia por cambios de


transacción a nivel de seguridad.

mirroring_failover_lsn EL numero de secuencia de log en el ultimo failover.

Nota
Si una base de datos no participa en una sesión mirror, todas las columnas mirror en sys.databases
para esa base de datos, contendrán valores null.

También puede usar los contadores de performance del set mirror en el objeto de base de datos del
servidor para monitorear la actividad dentro de su set mirror.

Cómo Establecer un Servidor Testigo

Introducción

Si quiere implementar el failover automático, debe establecer un servidor testigo en su set mirror. El
servidor testigo debe estar en una computadora diferente del servidor principal y el mirror, Sin
embargo, un servidor puede actuar como testigo mirror para varias relaciones de partners.

Crear un Testigo

Use el comando ALTER DATABASE con la cláusula SET WITNESS en el servidor principal para
crear un servidor testigo:

ALTER DATABASE database_name


SET WITNESS = 'server_network_address'

Especifique la dirección del servidor testigo y el punto endpoint para actuar como el testigo para el
parametro server_network_address Por ejemplo, para crear un testigo en un servidor llamado
Birmingham para la sesión de mirror entre los servidores London y Manchester discutidos antes, corra
el siguiente comando en el servidor London:

ALTER DATABASE AdventureWorks


SET WITNESS = 'TCP://Birmingham:5022'

Nota
Failover automático correrá si la sesión mirror es establecida usando el modo de operación
sincronizado, un servidor testigo ha sido creado, y las bases de datos principales y mirror están
corriendo en computadoras separadas.
Curso 5 estrellas SQL Server 2005

Remover un Testigo

Puede deshabilitar un testigo de una sesión mirror usando el siguiente comando en cualquiera de los
servidores partner:

ALTER DATABASE database_name


SET WITNESS OFF

Con el servidor testigo deshabilitado, la sesión mirror continuara, pero el failover automático no será
posible y el failover deberá ser realizado manualmente.

Nota
El failover manual solo es posible si la sesión mirror es usada en el modo de operación sincronizado.

Ver Información del Servidor Testigo

La vista de catalogo sys.database_mirroring_witnesses contiene información acerca del servidor


testigo. Las columnas de interés de esta vista están resumidas en la siguiente tabla.

Columna Descripción

database_name La dirección de red de la base de datos sobre la cual se


esta haciendo el mirror.

principal_server_name La dirección de red del servidor que tiene la base de


datos principal.

mirror_server_name La dirección de red del servidor que tiene la base de


datos mirror.

safety_level_desc Una descripción textual del modo de operación en


curso. Esta columna tendrá los siguiente valores:
UNKNOWN
OFF (desincronizado)
FULL (sincronizado)

Cómo Administrar Sesiones Mirror


Curso 5 estrellas SQL Server 2005

Introducción

En presencia de un servidor testigo, el failover ocurrirá automáticamente si el servidor principal falla.


Sin embargo, si no hay servidor testigo disponible, debe hacer un failover manual. Si la base de datos
principal no esta disponible y las bases de datos no están sincronizadas, el failover no puede ocurrir y
debe forzar el servicio a hacer el mirror de la base de datos.

También puede suspender y resumir una sesión mirror para aliviar temporalmente issues de una
performance y terminar sesiones permanentemente.

Realizar un Failover Manual

Puede realizar un failover manual para hacer actualizaciones de hardware u otras operaciones de
mantenimiento en el servidor principal. Failing over asegura que la base de datos este disponible
cuando el servidor principal esta offline.

Si nenecita poner el servidor principal offline, ejecute el comando ALTER DATABASE con la
cláusula SET PARTNER FAILOVER en el servidor principal para iniciar un failover manual:

ALTER DATABASE database_name


SET PARTNER FAILOVER

El servidor mirror completara cualquier recuperación y se pondrá en online. La base de datos mirror y
la principal intercambiaran los roles. Puede llevar el servidor principal original (ahora el mirror)
offline y realizar cualquier mantenimiento requerido. Cuando ponga el servidor otra vez online, puede
poner las bases de datos en sus roles originales y repetir este proceso en el nuevo servidor principal.

Forzar el Servicio

El failover es solo posible cuando la sesión mirror usa el modo de operación sincronizado. Para
sesiones que corren desincronizadas, debe forzar el servicio en el servidor mirror para ponerlo online.
Sin embargo, hay peligro que no todos los registros de transacciones log se hayan propagado en la
base de datos mirror; algunos cambios recientes pueden ser perdidos.

Para forzar el servicio en el servidor mirror, use el comando ALTER DATABASE con la cláusula
SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS en el servidor mirror:

ALTER DATABASE database_name


SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS

La mirror de la base de datos será recuperada tan pronto como sea posible y será puesta online. la base
de datos mirror entrara en estado suspendido. cuando el servidor principal se haya recuperado,
también será marcado como suspendido.

Suspender y Resumir Sesiones Mirror


Curso 5 estrellas SQL Server 2005

Puede suspender temporalmente las sesiones mirror y luego resumirlas y sincronizar las bases de
datos. Por ejemplo, si se forma un bottleneck, debe querer permitir a todos las transacciones
simplemente completarse en el servidor principal y luego aplicarlos a la base de datos mirror.

Suspender una sesión causa que todas las logs de transacción en el servidor principal crezcan mientras
que cada transacción es logged y almacenada. Hasta que la sesión mirror es resumida o terminada, el
log de transacción del servidor principal no puede ser truncado porque la transacción aun tiene que ser
aplicada al servidor mirror.

Use el comando ALTER DATABASE con la cláusula SET PARTNER SUSPEND en cualquier
servidor para suspender la sesión:

ALTER DATABASE database_name


SET PARTNER SUSPEND

Para resumir la sesión, use el comando ALTER DATABASE y con la cláusula SET PARTNER
RESUME:

ALTER DATABASE database_name


SET PARTNER RESUME

Terminar la Sesión Mirror

Puede terminar manualmente la sesión mirror y terminar la relación entre los servidores. Terminar la
sesión borra toda la información acerca de la sesión desde todos los servidores y deja ambos
servidores el principal y el mirror con una copia independiente de la base de datos. La base de datos
mirror permanecerá en un estado de restauración hasta que sea recuperada o borrada manualmente.

Use el comando ALTER DATABASE con la cláusula SET PARTNER OFF en cualquier servidor
para terminar la sesión:

ALTER DATABASE database_name


SET PARTNER OFF
Curso 5 estrellas SQL Server 2005

Modulo 9

Replicación en SQL Server 2005


○ Introducción a la Replicación de Datos
○ Mejoras en Replicación

Introducción

• Introducción de mejoras en la replicación


• Nuevos tipos de replicación
• Configurando replicación

Introducción

La replicación de Microsoft® SQL Server es comúnmente utilizada para distribuir datos


a través de la infraestructura para acercar los datos a los usuarios. En este modulo usted
aprenderá acerca de la nueva funcionalidad y mejoras en replicación en SQL Server
2005.

Los administradores de base de datos que tengan implementados esquemas de replicación


con versiones previas de SQL Server podrán aprender acerca de las mejoras para
configurar y administrar la replicación más fácilmente. Estas mejoras introducen también
capacidades nuevas para distribuir datos.

Introducción a las mejoras de replicación

• Mejoras de la interface de usuario


• Administración de replicación
• Performance y escalabilidad
• Monitoreo de replicación
Curso 5 estrellas SQL Server 2005

• Otras mejoras

Se han realizado algunos cambios en la funcionalidad y las características de replicación


en SQL Server 2005. Los asistentes de configuración hacen mas simple la utilización, y
la performance y escalabilidad han sido mejoradas. En esta sección, usted aprenderá
acerca de las mejoras y nuevas características.

Mejoras de interface de usuario

Introducción

Los elementos de interface de usuario en SQL Server para configuración,


administración, y monitoreo han sido rediseñados en SQL Server 2005.

Mejoras en los asistentes

Los asistentes que se utilizan para controlar la replicación en SQL Server 2005 incluyen
las siguientes mejoras:

• 40% menos paginas (en promedio)


• Paginas simplificadas
• Mejoras en valores por defecto y auto-detección

Como con otros asistentes en SQL Server 2005, puede usar los asistentes de replicación
para implementar o simplificar la generación de scripts de su implementación para
ejecutarlos mas adelante en otra instancia de SQL Server.

Nuevo asistente para actualización de suscripciones

En versiones previas de SQL Server, existen dos asistentes para configuración


de nuevas suscripciones: El “Push Subscription Wizard” y “Pull Subscription
Wizard”.
En SQL Server 2005, estos asistentes se combinan en una sola herramienta
llamada “New Subscription Wizard”. Adicionalmente, si quiere generar las dos
suscripciones push y pull, debe correr dos veces el asistente.
El nuevo asistente de suscripciones incluye la habilidad de crear
simultáneamente múltiples suscripciones con propiedades diferentes de
publicación. Esto puede disminuir considerablemente el esfuerzo de
Curso 5 estrellas SQL Server 2005

configuración de replicación para instalaciones pequeñas porque usted genera


las suscripciones corriendo una sola vez el asistente.
Para instalaciones grandes, usted puede continuar generando los scripts con
menor esfuerzo administrativo.

Administración de la replicación

• Inicialización de subscriber
Backup y restore
Copiando una base de datos
Snapshots dinámicos
• Resumiendo trasferencias snapshot
• Replicando DDL statements
• Habilitando anonymous subscriptions para todas las
publicaciones

Introducción

SQL Server 2005 incluye algunas características nuevas y otras actualizadas


que le ayudan a administrar la replicación. En esta sección se detallan las
características nuevas y actualizadas en SQL Server 2005.

Inicialización de subscriber

En versiones previas de SQL Server, se inicializa la base de datos del subscriber usando
una replicación snapshot. Cuando usted trabaja con bases de datos grandes, esto consume
demasiado tiempo. SQL Server 2005 introduce nuevas características para inicializar a
los subscribers en menor tiempo:
• Backup y restore
Se pueden utilizar procedimientos de backup y restore para inicializar la base de datos en
el subscriber para replicación.
• Copia de base de datos
Se puede también inicializar la base de datos del subscriber usando métodos Standard de
copia de base de datos, como attach DB en el suscriber o usar un DTS package. Cuando
use alguno de estos métodos, usted debe asegurarse que los datos y schema correctos
estén presentes en el distribution agent para copiar la metadata y system procedures al
subscriber.
• Snapshots dinámicos
Usted puede usar snapshots dinámicos como snapshots iniciales para filtrar merge
Curso 5 estrellas SQL Server 2005

replication subscriber.

La principal ventaja de estos métodos es que la base de datos de suscripción


inmediatamente está disponible cuando usted crea la suscripción, eliminando el tiempo de
espera para el proceso de inicialización.

Resumiendo transferencias snapshot

Si la entrega de un snapshot es interrumpida, el snapshot agent


automáticamente reinicia la entrega y envía los archivos que están incompletos.
Esto puede reducir la ocurrencia de problemas cuando inicializa cualquier tipo de
replicación sobre vínculos no confiables.

Replicando DDL statements

En SQL Server 2000, usted puede agregar o eliminar columnas en una tabla
publicada usando stored procedures especiales sin necesidad de detener la
replicación. Estos tipos de cambios son replicados una vez que los cambios en
los datos están hechos durante el próximo periodo de replicación.
En SQL Server 2005, los cambios al schema usando los siguientes data
definition language (DDL) statements son replicados automáticamente:
• ALTER TABLE
• ALTER VIEW
• ALTER PROCEDURE
• ALTER FUNCTION
• ALTER TRIGGER
Usted puede deshabilitar esta funcionalidad en SQL Server Management Studio
configurando la propiedad Replicate Schema Changes en las Subscription Options de
la publicación a False. Cuando desarrolle scripts, usted puede llamar al stored procedure
sp_changepublication usando la parámetro replicate_ddl habilitado y deshabilitado de
replicación de DDL statements.

Habilitando anonymous subscriptions para todas las publicaciones

En SQL Server 2000, las anonymous pull subscriptions pueden ser creadas para evitar
preconfigurar subscribers en el publisher. Esta funcionalidad ayuda a simplificar la
administración de publicaciones con múltiples subscribers. En SQL Server 2005, todas
las suscripciones pueden ser creadas sin predefinir en el publisher. Esto puede reducir las
tareas asociadas a la administración con la creación de suscripciones para publicaciones
populares.

Performance y escalabilidad
Curso 5 estrellas SQL Server 2005

Introducción

Cuando fue desarrollada la replicación en SQL Server 2000, el objetivo fue la


habilidad de dar servicio a cientos de subscribers. El uso de la replicación se ha
incrementado hacia SQL Server 2005 para poder dar servicio a cientos de
suscriptores de una publicación. Como resultado, un número de características
nuevas y mejoras se agregaron a la replicación de SQL Server para mejorar la
performance y la escalabilidad del producto.

Particiones Precomputadas

Cuando usa dynamic filtering en una replicación merge, los cambios en una row
pueden solo ser necesarios como una replicación de un subset de subscribers.
En versiones previas de SQL Server, las rows a ser replicadas a cada subscriber
son evaluadas cuando se ejecuta una sincronización con dicho subscriber. Para
publicaciones grandes o con cambios de datos regulares, esto puede ocasionar
un cuello de botella de performance en el proceso de sincronización.
SQL Server 2005 introduce el concepto de “precomputed partitions” que evalúa
si los miembros de una partición han generado cambios en los datos; entonces,
el proceso de transferencia de datos se inicia inmediatamente.

Updates de unique keys

En SQL Server 2000, los updates de campos unique key son replicados como
DELETE statement seguidos por un INSERT statement. En SQL Server 2005,
Estos cambios son replicados como UPDATE statements, dando como resultado
una mejora en la performance de datos que cambian regularmente.

Transactional parallelism

Cuando se trabaja con replicación transactional, usted puede buscar la


frecuencia de transferencia de transacciones desde el Publisher al distributor
usando el log agent si es aceptable; sin embargo, la frecuencia puede ser pobre
desde el distributor a los subscribers.
SQL Server 2000 lo ayuda a prevenir este issue habilitando por defecto la opción
de Independent Agent de la publicación para habilitar a un distribution agent a
ser utilizado por publicación o por subscriber.
En SQL Server 2005, esta opción esta habilitada por defecto para asegurar la
disponibilidad de la mejor performance.

Descarga y upload de artículos

En algunos escenarios de replicación merge, los cambios son hechos


únicamente en el Publisher y subscribers que usan un subset de datos. Sin
Curso 5 estrellas SQL Server 2005

embargo, esto no es un requerimiento para merge de datos, y la metadata que


no cambia necesita ser transmitida sobre el cable.
Si la publicación cumple con estos requerimientos y es marcada como
download-only article, la performance de la red mejora notablemente.

Reducción de contención

Usted puede usar algunas de las nuevas características en SQL Server 2005
para reducir la contención en los subscribers creados con el propósito de
reporting. Si una publicación con gran numero de subscribers require up-to-the-
minute data, usted puede usar snapshot isolation level para reducir la
contención.

Replication Monitor
Introducción

SQL Server 2005 incluye una nueva herramienta de Replication Monitor que
permite el monitoreo de la replicación en un server. Esta herramienta es
independiente de SQL Server Management Studio y permite delegar las tareas
de monitoreo a usuarios no administradores. (Puede ser ejecutada desde el SQL
Server Management Studio.)
Porque es una aplicación separada, el Replication Monitor puede trabajar en
modo pasivo sin afectar el trabajo del server.

Otras mejoras

Introducción

SQL Server 2005 incluye también otra mejoras a la funcionalidad de la


replicación que le ayudan a administrar sistema de replicación.

Mejoras en concurrencia de replicación Merge

Usted puede buscar issues de concurrencia que ocurren cuando una replicación
merge falla en el proceso. Si la publicación incluye rows en diferentes tablas que
fueron actualizadas, todas las tablas fueron actualizadas ó ninguna fue
actualizada. SQL Server 2005 introduce el concepto de logical records, que
permite definir relaciones entre merge de tablas y artículos. Esto garantiza que
las rows sean entregadas juntas, asegurando que no ocurran issues de
concurrencia.

Replicación de más tipos de objetos


Curso 5 estrellas SQL Server 2005

SQL Server 2005 habilita la replicación de mas tipos de objetos que en


versiones anteriores. Por ejemplo, puede replicar .NET user defined types
(UDTs) y .NET assemblies.
Nuevos tipos de replicación

• Replicación heterogénea
• Replicación transaccional Peer-to-Peer
• Replicación HTTP

Introducción

SQL Server 2005 incluye tres nuevos tipos de replicación: publicación de datos
desde una base de datos Oracle, replicación peer-level, y sincronización Web.
En esta sección, usted aprenderá acerca de estos nuevos tipos de replicación y
le pueden ayudar en la mejora de funcionalidad y escalabilidad.

Replicación heterogénea

Introducción

En SQL Server 2000, usted puede publicar datos a subscribers heterogéneos,


como Oracle y DB2, usando drivers ODBC relevantes y OLE DB provider.
Sin embargo, la única forma de suscribir a datos de esos orígenes de datos es
construir aplicaciones a medida o de terceras partes.
SQL Server 2005 introduce la funcionalidad necesaria para utilizar datos de
Oracle versión 8 y posteriores como orígenes de datos en funcionalidad
publishers dentro de la topología de replicación. Usted puede configurar
replicación transaccional y snapshot desde SQL Server sin requerir software
adicional y con mínimos conocimientos de Oracle.

Replicación Snapshot desde un Publisher Oracle

La replicación Snapshot entre cualquier base de datos simple requiere que el


publisher genere un set de datos transferirlos al subscriber.
Cuando se usa Oracle como publisher, SQL Server se conecta a la base de
datos Oracle y trae los datos, sin necesidad de generar cambios u insertar
información en la base de datos Oracle.

Replicación Transaccional desde un Publisher Oracle


Curso 5 estrellas SQL Server 2005

La replicación transaccional requiere el seguimiento de cada transacción


realizada en el publisher para replicar esos cambios a los subscribers.
Cuando usted configura un publisher Oracle desde SQL Server, se agregan
triggers a las tablas replicadas y se crean tablas de seguimiento en Oracle para
cada tabla replicada. Todos estos agregados se crean en un custom schema
para que sea más fácil removerlo en caso que sea necesario.
Cuando un cambio se genera en la tabla publicada, el trigger apropiado es
disparado en la base de datos Oracle y los cambios son agregados en la tabla
de seguimiento. El Log Reader Agent en el SQL Server distributor mueve los
desde la tabla de seguimiento al la tabla del SQL Server en el distributor. El
Distribution Agent después transfiere esos cambios a los subscribers en forma
normal.

Replicación transaccional Peer-to-Peer

Introducción

SQL Server 2005 introduce el concepto de replicación peer-to-peer para


incrementar la capacidades de server scale-out de los sistemas SQL Server. En
replicación peer-to-peer, todos los nodos dentro del sistema son peers (iguales),
y pueden recibir y hacer cambios a los datos. La deferencia con la clásica
replicación transaccional es que no existe un sistema de jerarquía entre los
nodos, es decir todos tiene la misma participación sobre los cambios de los
Curso 5 estrellas SQL Server 2005

datos, sin embargo el esquema utilizado sigue siendo el de replicación


transaccional.

Replicación HTTP

Introducción

En versiones previas de SQL Server, usted puede habilitar a usuarios para


replicar con los servidores usando Internet por medio de Virtual Private Networks
(VPNs), Microsoft ISA Server 2000, o FTP. Cada uno de estos métodos tiene
una carga administrativa considerable, incluyendo la necesidad de dar seguridad
en el punto de acceso a Internet. Es por esto que, SQL Server 2005 introduce
Web synchronization para replicacion merge, esta característica provee a usted
la habilidad de replicar directamente sobre una conexión HTTP o HTTPS. Esta
es una solución ideal para usuarios móviles que necesitan replicar cambios a
través de un firewall.

Como trabaja la replicación HTTP

La replicación HTTP utiliza Internet Information Services (IIS) para transferir


datos entre el publisher y el subscriber. Los Subscribers se conectan a una URL
en su web Server usando parámetros de autentificación configurados en los
mensajes de suscripción. Los mensajes de actualización son enviados en
formato XML y pueden ser encriptados usando Secure Sockets Layer (SSL).
Porque la replicación HTTP utilice tecnología de merge, las actualizaciones
pueden ser generadas tanto en el publisher como en el suscriber.
Curso 5 estrellas SQL Server 2005

Configurando replicación

Como configurar Replicación usando SQL Server


Management Studio
Introducción

Usted puede utilizar SQL Server Management Studio para configurar y


administrar replicación en SQL Server 2005. La interface de usuario contiene
nuevos asistentes para la configuración de la replicación y nuevas opciones en
los cuadros de dialogo de Properties.

Creando una publicación

Utilice el siguiente procedimiento para crear una publicación usando el asistente


de New Publication en SQL Server Management Studio:

1. Conecte el publisher en Object Explorer, expanda el nodo server y el nodo


Replication.
2. Haga botón derecho en Publications, y luego clic en New Publication.
3. Utilice el asistente New Publication para configurar lo siguiente:
a. Base de datos de Publicación.
b. Tipo de publicación. Elija desde:
• Snapshot publication
• Transactional publication
• Transactional publication with updateable subscriptions
hierarchical or peer-to-peer topology)
• Merge publication
c. Cuentas de seguridad de Replication agent.
d. Artículos a publicar.
e. Filtros a Artículos.
f. Snapshot agent schedule.

Creando una suscripción

Utilice el siguiente procedimiento para crear una suscripción usando el asistente


New Subscription en SQL Server Management Studio:
Curso 5 estrellas SQL Server 2005

1. Conecte el suscriber en Object Explorer, expanda el nodo server y el nodo


Replication.
2. Haga botón derecho en Subscriptions, y luego click en New Subscriptions.
3. Utilice el asistente New Subscription para configurar lo siguiente:
a. Publisher y publicación.
b. Tipo de suscripción. Elegir entre:
• Push subscription
• Pull subscription
c. Base de datos del Subscriber y suscripción.
d. Cuentas de seguridad de Replication agent.
e. Synchronization agent schedule.
f. Horario de inicialización.

Sincronizando una suscripcion

Utilice el siguiente procedimiento para una sincronización de una suscripción pull


o push desde el subscriber usando SQL Server Management Studio:

1. Conecte el subscriber en Object Explorer y expanda el nodo server,


El nodo Replication, y el nodo Subscriptions.
2. Haga botón derecho en la suscripción que desea sincronizar, y haga click
En Synchronize and Monitor.
3. En el cuadro de dialogo Synchronize and Monitor, haga clic en Start.

También podría gustarte