Está en la página 1de 204

Curso de SQL Server 2005

Microsoft SQL Server es un sistema de gestin de bases de datos relacionales (SGBD) basado en el lenguaje Transact-SQL, y especficamente en Sybase IQ, capaz de poner a disposicin de muchos usuarios grandes cantidades de datos de manera simultnea[cita requerida], as como de tener unas ventajas que ms abajo se describen.

Microsoft SQL Server constituye la alternativa de Microsoft a otros potentes sistemas gestores de bases de datos como son Oracle, Sybase ASE, PostgreSQL, Interbase, Firebird o MySQL. Caractersticas de Microsoft SQL Server [editar] * Soporte de transacciones. * Escalabilidad, estabilidad y seguridad. * Soporta procedimientos almacenados. * Incluye tambin un potente entorno grfico de administracin, que permite el uso de comandos DDL y DML grficamente. * Permite trabajar en modo cliente-servidor, donde la informacin y datos se alojan en el servidor y las terminales o clientes de la red slo acceden a la informacin. * Adems permite administrar informacin de otros servidores de datos. Este sistema incluye una versin reducida, llamada MSDE con el mismo motor de base de datos pero orientado a proyectos ms pequeos, que en sus versines 2005 y 2008 pasa a ser el SQL Express Edition, que se distribuye en forma gratuita. Es comn desarrollar completos proyectos complementando Microsoft SQL Server y Microsoft Access a travs de los llamados ADP (Access Data Project). De esta forma se completa la base de datos (Microsoft SQL Server), con el entorno de desarrollo (VBA Access), a travs de la implementacin de aplicaciones de dos capas mediante el uso de formularios Windows. En el manejo de SQL mediante lneas de comando se utiliza el SQLCMD Para el desarrollo de aplicaciones ms complejas (tres o ms capas), Microsoft SQL Server incluye interfaces de acceso para varias plataformas de desarrollo, entre ellas .NET, pero el servidor slo est disponible para Sistemas Operativos Windows. Temas a Tratar en el Tutorial Modulo 1: Introduccin a SQL Server 2005 Modulo 2: Instalacin de SQL Server 2005 Modulo 3: Herramientas Administrativas de SQL Server 2005 Modulo 4: Monitoreo de SQL Server 2005 Modulo 5: Mantenimiento de Bases de Datos e Indices Modulo 6: Seguridad Modulo 7: Recuperacin de Desastres Modulo 8: Disponibilidad de Datos y Replicacin en SQL Server 2005 Modulo 9: Replicacin en SQL Server 2005

Modulo 1 Introduccin a la arquitectura de SQL Server 2005 Descripcin de SQL Server 2005 Mejoras para Administradores

Introduccin a SQL Server 2005


Introduccin Este modulo contiene una descripcin de varios componentes de SQL Server 2005. Se incluyen puntos sobre cada componente; si el componente del producto exista en versiones anteriores de SQL Server, se concentra la informacin 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 replicacin. Describir las mejoras en full-text search.

Que es SQL Server 2005?

Introduccin SQL Server 2005 es ms que un sistema de administracin de base de datos. Incluye componentes mltiples y servicios los cuales la hacen una plataforma comprensiva para programas de la empresa.

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

SQL Server Integration Services (SSIS) Notification Services Reporting Services Service Broker .NET common language runtime(CLR) Native HTTP Support Replicacin

Un motor para importar y exportar datos soluciones y transformaciones de datos mientras que se transfieren. Un framework para las soluciones en las cuales se envan a los suscriptores las notificaciones cuando ocurren los acontecimientos especficos. Las notificaciones se pueden generar eficientemente y enviar a dispositivo mltiples de diferentes tipos. Se utiliza para extraer datos desde SQL Server y generar reportes. Un mecanismo confiable de queuing, y comunicacin transaccional basada en mensajes entre los servicios de software. Incluido adentro de SQL Server, permitiendo poner soluciones de base de datos en ejecucin usando el cdigo manejado escrito en .NET language por ejemplo Microsoft Visual C# .NET o Microsoft Visual Basic .NET. Permite a programas de cliente conectarse con HTTP endpoints dentro de SQL Server sin requerir Internet Information Services (IIS). Un sistema de tecnologas 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. Permite la indexacin rpida y flexible basada en keyword queries de texto sobre datos almacenados en un base de datos en SQL Server.

Full-text search

El motor de base de datos


Introduccin El motor de base de datos es el componente principal de SQL Server. Proporciona almacenaje de datos, recuperacin, y servicios de modificacin que pueden escalar desde soluciones personales hasta el nivel empresa. Mejoras del motor de base de datos SQL Server 2005 incluye un nmero de mejoras significativas al motor de base de datos, segn lo descrito en la tabla siguiente.

Caracterstica / Mejora Partitioning

Descripcin Las tablas y los ndices se pueden repartir a travs de grupos mltiples de archivo. Esto puede mejorar el funcionamiento y la capacidad de mantenimiento.

DDL triggers y event notifications New data types Multiple Active Result Sets (MARS) Transact-SQL

DDL triggers pueden ser utilizados para ejecutar stored procedures cuando DDL statements (por ejemplo CREATE) se ejecutan. Event notifications pueden ser utilizados para disparar eventos para el servicio Service Broker cuando se modifica la base de datos. Un nmero de nuevos tipos de datos se han incluido en esta version, por ejemplo xml y un max modificante para nvarchar, varchar, y varbinary types. MARS permite que los clientes tengan ms de una peticin por conexin. Transact-SQL ahora incluye palabras claves estructuradas de direccin de excepcin (por ejemplo, TRY y CATCH), soporte para expresiones comunes de tabla, y nuevas funciones de graduacin y operadores relacionales. Los DDL statements se han mejorado. Una nueva arquitectura de seguridad proporciona la proteccin mejorada de base de datos a travs de principales, y permisos. El soporte para XML ha sido mejorado notablemente.

Seguridad

XML

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. La funcionalidad de replicacion ha sido mejorada para hacer mas sencilla la configuracion y proveer soporte de replicacin transnacional para peer-to-peer, replicacion over HTTP, y considerables mejoras para replicacin heterogenea. Las tareas de mantenimiento fueron mejoradas, con online restore y online index operations.

Replicacion

Mantenimiento de base de datos

Analysis Services
Introduccin 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.

Mejoras en Analysis Services

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

Caracterstica / Mejora Interfaz de usuario Analysis Services engine

Descripcin Las soluciones Analysis Services son ms fciles de crear con el nuevo Business Intelligence Development Studio. Usted puede ahora instalar mltiples instancias de Analysis Services en una sola computadora. Los cubos se pueden ahora basar en las tablas mltiples de hecho. Caractersticas por ejemplo en Key Performance Indicators (KPI) y Business Intelligence las mejoras proporcionan la major manera de mejorar la toma de decisin, y el soporte para los procedimientos almacenados ampla la funcionalidad de los cubos.

Cubos

SQL Server Integration Services

Introduccin SQL Server Integration Services (antes Data Transformation Services) proporciona una solucin comprensiva para la transferencia y transformacin 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.
Caracterstica /Mejora SSIS arquitectura Descripcin 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 transformacin de los datos: el SSIS Run-time engine y el SSIS Data-Flow engine.

SSIS Designer Transformaciones

El SSIS Designer es parte del Business Intelligence Development Studio, permitiendo convertir los proyectos SSIS mientras que est desconectado del servidor. Usted puede tambin convertir soluciones SSIS usando SQL Server Management Studio. 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

Notification Services

Introduccin

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 nmero de mejoras sobre Notification Services 2.0.

Caracteristicas de Notification Services

Las caractersticas principales de Notification Services en SQL Server 2005 se describen en la tabla siguiente.
Caracterstica Subscription Management Objects Event APIs Descripcin Una API para construir la administracion de susscripcion de aplicaciones a travs de la qu usuarios pueden suscribir a eventos. Cuatro maneras para que origenes de eventos incorporen la informacin del evento en el sistema.

Reporting Services

Introduccin

Reporting Services permite la creacin de informes de datos de SQL Server. Los informes pueden ser diseados usando Visual Studio .NETbased 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 caractersticas principales de Reporting Services se describen en la tabla siguiente.
Caracterstica Report authoring Report management Report execution Descripcin Usted puede utilizar Report Designer en Business Intelligence Development Studio para crear un informe. Reporting Services incluye la herramienta Report Manager, la cul puede utilizar para administrar la seguridad del informe, generacin y distribucin de informe segun agenda, y administrar la historia del informe. 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. 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. Tambin los reportes pueden ser enviados a los usuarios va e-mail a travs de una suscripcin.

Report access

Service Broker

Introduccin

Service Broker habilita la creacin de colas para comunicacin 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 Descripcin Service Broker asegura que los mensajes sean recibidos en el orden correcto y sean enviados solo una vez. Utiliza un nico identificador para rastrear mensajes que pertenecen a la misma conversacin, haciendo mas fcil implementar operaciones distribuidas, desincronizadas y de largo proceso. Service Broker usa colas para enviar mensajes desincronizados; los mensajes pueden ser enviados a un servicio incluso cuando este no esta disponible. El conjunto que desincroniza la comunicacin message-based hace posible para los sistemas distribuir sus procesos de trabajo mas continuamente. Cuando hay en cola muchos mensajes relacionados a la misma tarea, Service Broker asegura que los mensajes sean procesados como una unidad bloqueando todos los mensajes relacionados cuando el primero de la cola es ledo. Service Broker puede activar automticamente una instancia de un servicio de 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 nmero mximo configurado, y desactivarlos cuando el trabajo disminuye. Service Broker esta totalmente integrado con el motor de la base de datos de SQL Server, dando soporte para procesamiento de mensaje transaccional y simplificando la administracin. Por ejemplo, las colas de Service Broker estn 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.

Coordinacin y orden de Mensajes Disponibilidad desincronizada Flexibilidad de Trabajo

Mensajes de Bloqueo Relacionados

Programa de activacion automatica de Servicio

Integracin de Base de Datos

El Lenguaje comn de Los Tiempos de Ejecucin

Introduccin El Lenguaje Comn de Tiempos de Ejecucin de .NET (CLR) provee un ambiente de administracin para cdigo escrito en lenguaje .NET como Visual C# o Visual Basic .NET. Integracin 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 cdigos escritos en un lenguaje de programacin .NET. La habilidad de desarrollar objetos de base de datos en cdigo .NET provee varias ventajas, incluyendo un modelo de administracin de seguridad, funcionalidad que no esta disponible o es difcil de implementar en Transact-SQL, y es una mayor eleccin para desarrollar lenguaje. Se pueden desarrollar las siguientes clases de objetos de base de datos en cdigo administrado: ! Procesos Almacenados ! Tipos de datos User-defined ! Funciones User-defined ! Triggers ! Agregar funciones User-defined

Definir objetos de base de datos con cdigo 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 cdigo. 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 cdigo 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


Introduccin 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 fcil 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 autenticacin para el endpoint. Se puede autenticar un cliente usando mtodos de autenticacin bsicos, integrados o resumidos. La autenticacin annima 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 ms mtodos Web que los usuarios puedan llamar a travs del endpoint. Mtodos Web pueden ser procesos almacenados o funciones user-defined. Luego que un endpoint HTTP ha sido creado, puedes dar, revocar o negar permisos de conexin para controlar el acceso al endpoint.

Replicacin
Introduccin La replicacin 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 Replicacin La siguiente tabla describe un numero de perfeccionamientos significativos para la replicacin en SQL Server 2005.
Perfeccionamiento Seguridad Administracin Disponibilidad Programabilidad Descripcin El modelo de replicacin de seguridad ha sido actualizado para permitir mas control sobre las cuentas bajo las cuales corre la replicacin. La interface de replicacin de usuario ha sido mejorada e incluye un nuevo Replication Monitor. Cambios en las schema pueden ser realizados a tablas publicadas. Un nuevo modelo de administracin de programacin, Replication Management Objects (RMO), te permite incluir lgicas de trabajo dentro de los procesos de sincronizacin. La Replicacin Transaccional ahora puede ser iniciada desde un backup Los datos pueden ser publicados desde una base de datos Oracle a una base de datos SQL Server usando replicacin transaccional o instantnea. Los datos pueden ser replicados entre mltiples peer servers. Datos a todos los servidores pueden ser actualizados y todos los servidores reciben los cambios hechos a los otros servidores. Para simplificar las replicaciones a travs de un firewall o para mobile users, ha sido introducida la replicacin 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.

Replicacin Transaccional Replicacin Heterognea

Replicacin Peer-to-peer

Replicacin HTTP

Bsqueda de Full-Text

Introduccin Bsqueda Full-Text permite indexar rpida y flexiblemente consultas keyword-based de datos. Perfeccionamientos de Bsqueda Full-text SQL Server 2005 incluye un numero significativo de perfeccionamientos para Bsqueda de full-text, descrito en la siguiente tabla.
Perfeccionamiento Servidores enlazados Columnas Mltiples Descripcin Puedes ejecutar consultas full-text contra servidores enlazados. 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. Podes ejecutar consultas full-text usando un idioma diferente del idioma por defecto. Los catlogos Full-text ahora pueden ser backapeados y restaurados con o sin los datos de la base de datos. Los catlogos Full-text estn incluidos en las operaciones de attach y detach. Full-text indexes pueden ser creados en datos XML. Performance de index populares son mejoradas.

Especificar LocaleID Backup y Restauracin Attach y Detach Datos XML Performance

Perfeccionamientos del Sistema para Administradores

Perfeccionamiento del Sistema

Introduccin 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 Dinmica de CPU Memoria Dinmica AWE Soporte AWE permite 32-bit aplicaciones para direccionar memoria fsica mas all de los lmites de su memoria virtual configurada. La edicin Windows Server 2003 puede soportar el mximo de cantidades mostrados en la siguiente tabla:
Edicin Windows Server 2003 Standard Enterprise Datacenter Mximo de Memoria fsica 4 GB 32 GB 64 GB

Se puede configurar SQL Server 2005 para usar AWE, usando la opcin de configuracin awe enabled. Despus podes setear las opciones min server memory y max server memory para que el SQL Server use memoria AWE dinmicamente segn lo requerido. El siguiente ejemplo, muestra como usar la memoria AWE:
************************************************** 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 tambin 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 fsica sin reiniciar el servicio SQL Server. El SQL Server usara la memoria fsica adicional si es requerido. Para aprovechar las memorias hot-add, el SQL Server debe estar corriendo en Windows Server 2003 Enterprise o la edicin Datacenter con la opcin configurada awe habilitada. Afinidad Dinmica de CPU En SQL Server 2005, puedes reconfigurar la opcin affinity mask sin tener que reiniciar el servicio. El SQL Server automticamente 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 tamao row mayor. Estas mejoras hacen el almacenamiento de datos ms 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 xml varchar, nvarchar, and varbinary Descripcin El tipo de datos xml es usado para almacenar datos XML directamente en la base de datos. Los valores para los datos xml pueden ser opcionalmente asociados con una XML schema. El maximo de Keyword que pude ser usado para extender el lardo de alguno de estos tipos de datos es hasta 2^31 bytes (aproximadamente 2 GB).

Mayor tamao de Row En las ediciones previas de SQL Server, el mximo de un row table era 8 KB. Mientras que este es aun el mximo fsico 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 combinacin de todas las columnas es mayor a 8 KB, SQL Server va automticamente 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 travs de un numero de Grupos de Archivos fsicos, mejorando la performance y haciendo mas fcil administrar los procesos archivados range-based.

Esparcimiento de Table data a travs de Grupos de Archivos

Puedes particionar una tabla horizontalmente as los rows son expandidos a travs de mltiples Grupos de Archivos. Implemente esta particin 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 mltiples particiones en paralelo, reduciendo el tiempo requerido del proceso. ! Administracin mas fcil de grandes tablas. Una tabla particionada hace la administracin mas fcil de data subsets, las cuales se pueden agrupar lgicamente por un rango de datos. por ejemplo: Un requerimiento comn 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 particin. Un beneficio de particionar es que se pueden mover datos entre las tablas particionadas muy rpido con relacin a tener que hacer un INSERT INTO SELECT FROM statement. Esto es porque los datos no estn siendo movidos fsicamente; solo la metadata concerniente al lugar de almacenamiento es movido.

Snapshot Isolation Level

El SQL Server 2005 incluye una nueva transaccin 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 estn accediendo al mismo dato. Similarmente, los escritores no bloquean a los lectores. La operacin de escritura en el snapshot isolation level esta basada en un mecanismo de bloqueo con detector de conflicto aumamatico. El mecanismo de deteccin 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 ejecucin del UPDATE statement y recuperados por la operacin SELECT a travs de las consultas del snapshot. Las consultas Snapshot son consultas que corren bajo el snapshot isolation que lee los datos de snapshot.

Administracin 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, segn 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 diseado para ser un sistema confiable, escalable y seguro para SQL Server. La informacin en la siguiente tabla describe como SQLiMail implementa estos atributos:
Feature No Extended MAPI requirement Process isolation Failover accounts Envo Desincronizado Perfil de Seguridad Descripcin SQLiMail usa SMTP, no Extended MAPI. El componente que enva e-mails corre en un proceso separado para minimizar el impacto en el SQL Server. Puedes especificar mas de un servidor SMTP por perfil, as si el servidor SMTP no esta disponible, los mails aun pueden ser enviados. SQLiMail usa Service Broker para enviar mensajes para evitar el bloqueo de un proceso almacenado. SQL Server ayuda a asegurar la seguridad dndote la posibilidad de especificar que usuarios en una base de datos pueden acceder al perfil de SQLiMail. SQLiMail almacena la informacin de perfiles dentro del SQL Server. No es necesario administrar el perfil en una aplicacin externa.

Configuracin Integrada

Instalar y configurar SQLiMail

Puedes usar el SQLiMail Configuracin 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 informacin, incluyendo la base de datos a instalar y la informacin 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='administrator@adventure-works.com', @subject='Test', @body=@QueryResult ************************************************************************

Modulo 2 Instalacin de SQL Server 2005 Instalacin y Performing de SQL Server 2005 Mantenimiento de la Instalacin de SQL Server 2005 Coexistencia con SQL Server 2000 y SQL 7.0 Migracion desde SQL Server 2000

Prepararse para instalar SQL Server 2005

Introduccin Esta seccin 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 instalacin exitosa. Objetivos Elegir la edicin 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 instalacin SQL Server 2005.

Ediciones SQL Server 2005

Introduccin 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 estn descriptas en el siguiente cuadro:

Edicion SQL Server 2005


Enterprise Edition (Disponible en versiones 32-bit y 64-bit)

Descripcin
Una versin comprensiva de SQL Server diseada para altos niveles de performance. Use esta edicin para grandes escalas, niveles empresarios, aplicaciones criticas. La Enterprise Edition contiene todos las ventajas de la edicin Standard, como as tambin 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 64-bit versions)

Diseado para aplicaciones de trabajo de grupo y departamentales. Use esta edicin si no necesita los niveles de performance y disponibilidad ofrecidos por la Enterprise Edition. Una versin de SQL Server 2005 para clientes que no estn conectados o aplicaciones que corren solas. Una edicin compacta que provee administracin de datos para equipos inteligentes. Esta edicin 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. Incluye todas las funcionalidades de la Enterprise Edition, pero esta licenciado para ser usado como un sistema de testeo y desarrollo, no como un servidor de produccin. Use esta edicin para desarrollar y testear soluciones para base de datos.

Express Edition (Disponible en 32-bit) Mobile Edition

Developer Edition (Available in 32-bit and 64-bit versions)

Adicionalmente, una evaluacin de 120 das de ambas versiones de SQL Server 2005 Enterprise Edition esta disponible.

Requerimientos del Hardware

Requerimientos del Procesador Cuando se planea la instalacin de un SQL Server 2005 se debe asegurar que la computadora en la cual se lo quiere instalar, debe tener el mnimo 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 ms. Requerimientos de la Memoria Una instalacion de SQL Server 2005 Enterprise Edition o SQL Server 2005 Developer Edition debe tener un mnimo 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 mnimo 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 Rgido 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 tpica 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 tpica. 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 administracin de SQL Server estan optimizadas para una resolucion de 1024 x 786) Mouse Adaptador para Redes CD / DVD drive (para instalacin desde el CD)

Requerimientos de Software

Introduccin
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 ms Windows XP Professional Edition con Service Pack 1 o ms Windows XP Media Center con Service Pack 1 o ms Windows XP Embedded Edition Windows 2000 Professional con Service Pack 4 o ms Windows 2000 Server con Service Pack 4 o ms Windows 2000 Advanced Server con Service Pack 4 o ms Windows 2000 Datacenter Server con Service Pack 4 o ms 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 tambin 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

Introduccin El proceso de instalacion de SQL Server 2005 consiste de dos fases principales: actualizacin 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. Actualizacin de Componentes Durante la fase de actualizacin 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 actualizacin de componentes, los mismos no sern removidos.

SQL Setup MSI

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

El System Consistency Checker

Introduccin 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 estn divididos en 5 categoras: configuracin del sistema,

disponibilidad del sistema, configuracin de seguridad, configuracin de la versin, y configuracin remota y de cluster. Entender que chquea el SCC durante la instalacin te ayudara a preparar tu computadora para la instalacion. Chequeos de Configuracin del Sistema
La siguiente tabla muestra los chequeos de configuracin del sistema que realiza el SCC.

tem a Chequear Requerimientos Mnimos para el Sistema Operativo Nivel Requerido del Operating System Service Pack Compatibilidad de SQL con el Sistema Operativo Configuracin 32-bit o 64-bit Windows Management Interface (Requerimientos de WMI_ Service) Requerimientos mnimos de Hardware.

Descripcin Asegrese que el Sistema Operativo (OS) tiene soporte. Asegrese que el service pack requerido es aplicado al sistema operativo. Asegrese que el Sistema Operativo tiene soporte para el SQL Server que esta instalando. Asegrese que el usuario esta intentando instalar la edicin 32-bit en una plataforma 32-bit, o la edicin 64-bit en una plataforma 64-bit. Chequee que el WMI esta instalado.

Remedio para la Falla Referir al usuario a los requisitos del OS. Referir al usuario al Windows Update Components para el service pack requerido. Referir al usuario a la edicin matriz de OS/SQL Server. Informe al usuario de la imcopatibilidad y luego salga del Setup. Informe al usuario que el WMI debe ser instalado y luego salga del Setup Refiera al usuario a los requerimientos mnimos para instalacion.

Asegrese el hardware sea el mnimo requerido.

Chequeos de Disponibilidad del Sistema


El siguiente cuadro muestra los chequeos de disponibilidad del sistema que el SCC realiza.
tem a Chequear Descripcin Remedio para la Falla

Exclusive Mutex Object

Asegrese que no haya otras instancias corriendo o debe salir del Setup Asegrese que ninguno de los archivos requeridos por el Setup estn bloqueados por otros servicios o procesos.

Informe al usuario que debe completar el proceso y reiniciar el Setup. Liste los servicios, procesos, o aplicaciones que deben ser detenidas. Los usuarios tambin pueden ser requeridos para reiniciar la computadora antes de correr el.

Requerimiento Pendiente de Rebooteo

Requerimiento de Performance Monitor Counter

Verifique la incrementacion apropiada para la instalacion de SQL Server performance monitor counters.

Indique al usuario que actualice la registry key necesaria.

Disponibilidad de Features

Determine que features pueden ser instaladas en la configuracin del corriente sistema. Chequee que el drive este formateado, que no este en, read-only, o que no este comprimido.

Muestra las features que no estn disponibles y sus dependencias en reporte de SCC. Informe al usuario del problema y salga del Setup.

Requerimiento por defecto de los permisos en el Path de instalacion

Chequeos de la Configuracin Seguridad El siguiente cuadro muestra los chequeos de configuracin de seguridad que el SCC realiza.
tem a Chequear Privilegios del Administrador del Sistema Descripcin Asegrese que el setup de usuario tiene privilegios de administrador del sistema. Remedio para la Falla Informe al usuario que debe loggearse como Administrador del Sistema.

Chequeos de Configuracin de versin La siguiente tabla muestra los chequeos de Configuracin de versin que SCC realiza.

tem a Chequear Requerimiento de Internet Explorer

Descripcin Asegrese que el Internet Explorer 6.0 Service Pack 1 esta instalado.

Remedio para la Falla Refiera al usuario al Windows Update Component para instalar El navegador requerido.

versin de SQL Server

Chequee las versiones instaladas de SQL Server para tener las condiciones necesarias cuando actualiza. Asegrese que el MSXML esta instalado.

Refiera el usuario a los archivos de instalacion del service pack Refiera al usuario al Windows Update Component para instalar MSXML.

Requisitos MSXML

Chequeador de Configuracin Remota y de Cluster. El siguiente cuadro muestra los chequeos de configuracin remota y de Cluster que el SCC realiza.
tem a Chequear Habilita el Default Administrative Share Directory Descripcin Asegrese que el administrative share (admin$) esta habilitado en la computadora remota o en el cluster node. Remedio para la Falla Preguntar al usuario y ofrecer habilitar el share.

El SCC Report Luego de completar estos chequeos, el SCC genera un reporte que puede ser visto o guardado. Este reporte incluye informacin y soluciones recomendadas en cualquiera de los tems que pueden no permitir la instalacion. tambin incluye advertencias y recomendaciones en tems que permitirn la instalacion pero que pueden causar problemas, como configuraciones de seguridad.

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 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 mnimos 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 informacin de registro. 10. Seleccione las features que quiere instalar. Puede seleccionar grupos predefinidos o usar la opcin 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 informacin de configuracin del cluster. 13. Ingrese la informacin de la cuenta para el servicio de SQL Server 2005. 14. Seleccione el modo de autentificacin. 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 informacin de configuracin 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. Conctese al SQL Server usando sqlcmd.exe o SQL Server Management Studio.

Realice una instalacion desatendida

Introduccion

Puedes realizar una instalacion desatendida de SQL Server 2005 creando un archivo .ini que contenta la informacin de setup requerido y ejecute setup.exe en una linea de comando. Entender como realizar una instalacion desatendida te ayudara a realizar instalaciones mltiples e idnticas de SQL Server en una empresa o delegar la instalacion a otro tcnico.

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 seccin simple [Options] que contiene parmetros, cada uno relacionado a una feature diferente o seting de configuracin.

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 dilogos) o el /qb switch para especificar que solo sean mostrados los cuadros de progreso.

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 mltiples computadoras en distintos lugares, o cuando no es necesario acceder fsicamente 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. El archivo .ini debe contener los parmetros explicados en el siguiente cuadro:
Parmetro TARGETCOMPUTER ADMINACCOUNT ADMINPASSWORD Descripcin El nombre de la maquina en red en la cual SQL Server va a ser instalado. La cuenta con privilegios de administrador para ser usada para loggearse en la computadora remota. 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

Introduccin 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:
Consideracin Configuracin del Sistema Operativo Descripcin Asegrese que el clustering esta instalado y configurado apropiadamente en el sistema Windows que planea usar para SQL Server. Asegrese 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. Asegrese que los componentes de SQL Server que planea usar estn soportados en un cluster. Lea la documentacin del Setup de SQL Server 2005 para informacin acerca de los componentes soportados en un closter. Asegrese 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.

Soporte de SQL Server component clustering

Dependencias de Clustering

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 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.

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.

Agregar o Remover componentes de 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.

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.

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

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 despus 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 60 65 70 80 90 SQL Server version SQL Server 6.0 SQL Server 6.5 SQL Server 7.0 SQL Server 2000 SQL Server 2005

Opciones de collation

Durante el setup, generalmente usted selecciona el default Windows collation. Podes cambiar esta configuracin 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.

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

Introduccin El SQL Server 2005 provee herramientas graficas que permiten al administrador realizar tareas diarias mas rpida y fcilmente. El SQL Server Management Studio es la herramienta grfica ms frecuentemente usada. Esta leccin describe como puede realizar tareas de administracin usando SQL Server Management Studio.

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 solucin de SQL Server Management Studio. Usar SQL Server Management Studio para administrar bases de datos.

Qu es SQL Server Management?

Introduccin La mayor parte de las tareas de administracin 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. Definicin 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 El SQL Server Management Studio provee las siguientes features para administradores:
!

Administracin 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. Tambin 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 conexin activa a la base de datos cuando escribe scripts o consultas. Locacin 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.

Cmo registrar un Servidor?

Introduccin Registrar un servidor le permitir almacenar la informacin de una conexin para conexiones futuras. Antes de registrar un servidor debe saber: El nombre del instanacia del SQL Server que quiere registrar. El mtodo de autenticacin usado para acceder al instanacia del SQL Server siendo Microsoft Windows Authentication o SQL Server Authentication. ! Un nombre de usuario y clave vlidos si intenta conectarse a una instancia de SQL Server usando SQL Server Authentication.
! !

Registrar un SQL Server Use el siguiente procedimiento para registrar un servidor: 1. Haga clic con el botn derecho sobre Microsoft SQL Servers en el Registered Servers window, posicinese sobre New, y luego haga clic en Server Registration. 2. En el cuadro de dilogo 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 autenticacin 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 descripcin 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 vlidos. 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 autenticacin, y nombre de usuario y contrasea (si corresponde) y pruebe otra vez. 4. Verifique el nuevo servidor aparece en la ventana Registered Servers.

Qu es el Object Explorer?

Introduccin Puede administrar objetos en la base de datos de SQL Server usando el Object Explorer. Object Explorer presenta los objetos en una manera jerrquica, usando una vista tipo rbol agrupado por tipos de objetos. Definicin 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 replicacin. ! Crear paquetes de Data Transformation Services (DTS). ! Ver archivos logs de SQL Server. ! 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 aplicacin. Puede navegar los contenidos de una base de datos individual usando la misma vista que el Enterprise Manager provea 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 Notificacin. Puede usar la carpeta de Notification Services para crear y administrar instancias de SQL Server Notification Services. ! Replicacin. La carpeta de Replicacin le permite crear replicaciones pblicas y suscripciones, y configurar servidores de distribucin. ! Administracin. La carpeta de Administracin 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 tambin 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 bsquedas 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 operacin: ! Connect. Este botn muestra el cuadro de Connect to Server que le permite conectarse a una instancia de SQL Server. ! Disconnect. Este botn cierra la conexin al servidor seleccionado. ! Stop. El control de vista tipo rbol expande carpetas dinmicamente mientras son seleccionadas; una carpeta que contiene un gran nmero de objetos puede tomar un tiempo en ser mostrada. Puede presionar este botn para que el Object Explorer detenga una operacin que esta tomando mucho tiempo. ! Refresh. Este botn refresca la informacin mostrada en Object Explorer, reemplazndola con la informacin ms recientemente disponible. ! Filter. Este botn permite seleccionar objetos filtrados que el Object Explorer muestra, por ejemplo, mostrar solo tablas dentro de un schema especfico. ! Schema. Este botn te permite agrupar objetos, como tablas, por su shema pre-fijo o por tipo de objeto.

Cmo ejecutar consultas Transact-SQL?

Introduccin 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 informacin de plan de ejecucin 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. 4. En el men Query, haga clic en Execute.

Nota La primera vez que corra una consulta. ser llevado a conectarse a SQL Server. Tambin ser llevado a conectarse si su conexin 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?

Introduccin Es til para agrupar juntas consultas e informacin de conexin y almacenarlas para poder acceder a ellas y ejecutarlas fcilmente mas tarde.

Definicin Una SQL Server Management Studio solution es una coleccin de uno o ms 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 organizacin conveniente de consultas relacionadas e informacin de conexin. Puede ubicar proyectos bajo un cdigo 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. 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.

Cmo crear un SQL Server Management Studio Solution?

Introduccin 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, prese 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 solucin 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 ubicacin para el nuevo proyecto. Haga clic en OK. Vea la ventana Solution Explorer. Una nueva solucin con proyecto ha sido creada. 3. En Solution Explorer, haga click con el botn 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 autenticacin 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 botn 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. 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 opcin Add to Solution cuando cree el nuevo proyecto.

Puede crear soluciones que incluyan proyectos mltiples, haciendo ms fcil agregar proyectos relacionados que hayan sido desarrollados de manera independiente uno del otro. 9. Cierre SQL Server Management Studio.

Qu es SQL Computer Manager?

Introduccin SQL Computer Manager es una Microsoft Management Console (MMC) snap-in. Provee los medios para controlar los servicios de SQL Server 2005, como tambin 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, permitindole 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. ! 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.

Cmo Controlar Servicios?

Introduccin 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 botn 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.

Cmo ver y Cambiar Propiedades de un Servicio?

Introduccin El SQL Server 2005 services tiene una serie de propiedades que se pueden ver y cambiar segn lo necesario. Las propiedades de los servicios estn 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 versin de SQL Server, el path de instalacin, y el idioma usado. Algunas de estas propiedades no pueden ser modificadas. 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 botn derecho sobre el servicio o haga click en el men Action, y luego haga click en Properties. 3. En la pgina de propiedades para el servicio: Haga Click sobre el Service tab para ver las propiedades bsicas 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 Conexin de Red?

Introduccin 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. tambin puede especificar informacin para cada protocolo. Protocolos diferentes contienen diferentes parmetros de direccin. 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 Parmetros de una Direccin de un Protocolo de Servidor Siga el siguiente procedimiento para cambiar los parmetros de una direccin 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 informacin acerca de seteos de protocolos especficos, vea .Net-Libraries y Network Protocols en SQL Server 2005 Books Online.

Nota Debe reiniciar una instancia luego de reconfigurar los parmetros de su protocolo de red, o habilitar o deshabilitar protocolos.

Como Administrar Client Network Connectivity?

Introduccin 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 parmetros adicionales que no son aplicables a servidores, incluyendo seteos de conexin 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 Parmetros de un Protocolo de un Cliente Siga el siguiente procedimiento para cambiar los parmetros 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

Introduccin Esta leccin describe como usar la utilidad sqlcmd para ejecutar consultas Transact-SQL desde la lnea de comandos. Objetivos de la leccin Luego de completar esta leccin 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 lnea de comando.

Qu es la Utilidad sqlcmd?

Introduccin 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 ejecucin unattended normalmente no operan en un entorno grafico. El SQL Server 2005 incluye una utilidad llamada sqlcmd para facilitar este requerimiento.

Definicin La utilidad sqlcmd le permite ejecutar statements y scripts Transact-SQL desde la lnea 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 dinmicamente consultar informacin del servidor y enviar informacin de error al entorno que esta llamando. tambin provee una Dedicated Administrator Connection (DAC) que le permite al administrador de una base de datos conectarse al servidor y resolver problemas. Comandos de sqlcmd

La utilidad sqlcmd soporta los siguientes comandos junto con statements TransactSQL.
Comando GO [count] RESET ED Descripcin Ejecuta el comando batch la cantidad de veces especificada (por defecto es una). Limpia el statement cache. Invoca al editor de texto sobre el mas reciente batch. El entorno variable SQLCMDEDITOR especifica el editor a usar (edit.com por defecto). Ejecuta el comando de sistema operativos especificado y vuelve a la utilidad sqlcmd. Sale de la utilidad sqlcmd. Sale de la utilidad sqlcmd pero pasa el primer valor devuelto por la statement especificada al entorno que llama como el cdigo de salida.

!! cmd QUIT EXIT (statement)

Todos los siguientes comandos requieren como prefijo : :r filename Lee el contenido del archivo especificado dentro del statement buffer. :ServerList :List :Listvar :Error filename | STDOUT | STDERR Lista todas las computadoras corriendo SQL Server en la red. Muestra los contenidos del statement cache. Muestra las variables scripting y valores que son actualmente seteadas Redirecciona todas las salidas de error al archivo especificado, la salida stream standard, o la salida stream standar de error. Redirecciona todos los resutados de una consulta al archivo especificado, la salida stream standard, o la salida stream standard de error. Redirecciona toda la informacin de performance de rastreo al archivo especificado, la salida stream standard, o la salida stream standard de error. Conecta al servidor e instancia especificada usando un nombre de usuario y clave. Se desconecta i el servidor no responde en una determinada cantidad de segundos. Valores por defecto para los parmetros de concesin pueden ser especificados en los entornos variables SQLCMDLOGINTIMEOUT, SQLCMDSERVER, SQLCMDUSER, y SQLCMDPASSWORD. Especifica una accin a ser realizada cuando ocurre un error durante la ejecucin del comando. La opcin exit sale de la utilidad sqlcmd con un error. La opcin ignore mostrara un mensaje de error pero el script continuara. Crea o setea una variable scripting con el valor especificado. Lista los comandos de sqlcmd con una pequea explicacin de cada uno.

:Out filename | STDOUT | STDERR

:Perftrace filename | STDOUT | STDERR :Connect server[\instance] [timeout] [user_name[password]]

:On Error [exit | ignore]

:SetVar variable value :Help

sqlcmd Command-Line Switches

Introduccin La utilidad sqlcmd se invoca desde la lnea de comando. La utilidad sqlcmd puede realizar una cantidad de switches de lnea de comando. Algunos de estos switches son similares a los usados por osql. Switches El siguiente cuadro describe los switches de lnea 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 -? -L[c] Description Muestra el resumen de sintaxis de las opciones de sqlcmd. Lista los servidores disponibles en la red. Si la opcin c es especificada, la lista es mostrada sin un heading. Este switch no puede ser usado en conjuncin con otros switches. 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. Conecta usando Windows Authentication. (Esto es por defecto si los switches -U y -P son omitidos.)

-U login_id [-P password]

-E

-S server_name[\instance_name]

Especifica el servidor e instanacia a la cual conectarse . Esta informacin tambin puede ser especificada en el variable de entorno SQLCMDSERVER. El nombre de la estacin 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 informacin tambin puede ser especificada en la variable de entorno SQLCMDWORKSTATION. La base de datos a la cual conectarse. Esta informacin puede ser especificada en la variable de entorno SQLCMDDBNAME. La cantidad de segundos para conectarse al proveedor OLE DB antes que se pierda la conexin. Por defecto son ocho segundos. Esta informacin puede tambin ser especificada en la variable de entorno SQLCMDLOGINTIMEOUT. La cantidad de segundos antes que un comando o SQL statement se corten. Por defecto, los comandos no se cortan. Esta informacin puede ser tambin especificada en la variable de entorno SQLCMDSTATTIMEOUT. El numero de rows que sern 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 informacin tambien puede ser especificada en la variable de entorno SQLCMDHEADERS. El carcter usado para separar columnas. Por defecto, la utilidad sqlcmd usa un espacio en blanco. Este valor tambin puede ser especificado en la variable de entorno SQLCMDCOLSEP. El ancho de la salida de pantalla. El valor por defecto es. Este valor tambin puede ser especificado en la variable de entorno SQLCMDCOLWIDTH. Requiere que las comunicaciones con SQL Server usen el tamao de paquete especificado. Esta informacin tambin puede ser especificada en la variable de entorno SQLCMDPACKETSIZE. Echo input. Habiltala opcin de conexin QUOTED_IDENTIFIER. El batch terminator a usar. Por defecto, es la palabra

-H wksta_name

-d db_name

-l time_out

-t time_out

-h headers

-s col_separator

-w column_width

-a packet_size

-e -I -c cmd_end

GO en una lnea sola. No use una palabra reservada de Transact-SQL. -q "query" -Q "query" Ejecute las consultas especificadas pero permanece conectado cuando la consulta termina. Ejecuta la consulta especificada, desconecta y luego sale de la utilidad sqlcmd. No incluya el terminador GO en la consulta. Muestra el nmero de mensaje, estado, y nivel de error solo para mensajes del nivel especificado o ms altos. Esta informacin puede ser especificada en la variable de entorno SQLCMDERRORLEVEL. 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). Lee la entrada desde la lista o archivos especificados en vez del teclado. Redirecciona la salida al archivo especificado en lugar de la pantalla. Imprime la informacin de performance para cada set de resultados. Si el parmetro 1 es especificado, la informacin de performance ser mostrada como una serie de valores de datos raw separados por :. Si ocurre un error, sale de la utilidad sqlcmd y devuelve un valorDOS ERRORLEVEL. Almacena el archivo de salida en formato Unicode. Usa los seteos regionales cuando convierte datos de moneda e informacin de dato y tiempo en formato de caracteres. Crea variables scripting con los valores y nombres especificados. Usa un DAC. Deshabilita comandos que pueden comprometer la seguridad del sistema (comandos ED y !! ), muestran una advertencia pero luego continan. Si es usado -X1, muestra un mensaje de error y luego sale de la utilidad sqlcmd si uno de estos comandos es intentado. Especifica el nivel de severidad mas bajo que ser reportado por la utilidad sqlcmd.

-m error_level

-r [0 | 1]

-i input_file[,file2.] -o output_file -p[1]

-b -u -R

-v var="value"[var="value".] -A -X[1]

-V severitylevel

Cmo usar la utilidad sqlcmd Interactivamente

Introduccin 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 mltiples comandos y esparcirlos por mltiples lneas. 4. Tipee GO para ejecutar el comando batch. 5. Tipee QUIT para cerrar la utilidad sqlcmd.

Como ejecutar Scripts Usando la utilidad sqlcmd

Introduccin As como tambin 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 lnea 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 Asegrese 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 parmetro en una lnea de comando de la utilidad sqlcmd, es mejor usar las variables del entorno, porque despus puede evitar la necesidad de hard-code estos valores en scripts batch. 3. Desde la lnea 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

esperados.

Cmo Usar las Variables de la Utilidad sqlcmd

Introduccin 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. tambin puede pasar variables dentro de scripts sqlcmd desde el entorno, o usar el switch -v desde la lnea de comando. Uso de Variables Siga el siguiente procedimiento para ejecutar un script usando variables: 1. Crear un script sqlcmd. Valores de referencia que sern 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.

Cmo Usar una Dedicated Administrator Connection

Introduccin En las ediciones previas de SQL Server, conectarse a un servidor que no responda 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

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 todava esta activa, ser rechazada. Una vez que haya accedido al servidor que no responde, puede ejecutar comandos para diagnosticar el problema, terminar conexiones problemticas, 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 problemticas, o apague el servidor de manera correcta:
1> SHUTDOWN WITH NOWAIT 2> GO Server shut down by request

Tip Una conexin de usuario que no responde es usualmente causada por un proceso que esta esperando por un lock, que es producido por una transaccin larga. Puede usar el proceso almacenado sp_lock para encontrar conexiones que tienen locks exclusivas sobre los recursos, y que estn bloqueando requerimientos de conexin. usted puede terminar estas conexiones que bloquean usando el comando KILL, si no terminan en tiempo.

Uso de SQL Management Objects


Introduccin Esta leccin describe el SQL Management Objects (SMO). Objetivos de la Leccin Luego de completar esta leccin, usted podr: ! Describir SMO. ! Comparar SMO a SQL Server Distributed Management Objects (SQLDMO).

! ! ! !

Crear aplicaciones SMO. Usar SMO para recuperar informacin del servidor. Usar SMO para hacer backups de bases de datos. Usar SMO para script tareas comunes de administracin.

Qu son los SQL Management Objects?

Introduccin Es til automatizar las tareas de administracin que un administrador necesita realizar, especialmente porque reduce la posibilidad de errores e inconsistencias. Esto es particularmente verdad cuando una empresa contiene mltiples servidores SQL Server e instancias. SQL Server 2005 provee el SQL Management Objects (SMO) API para este propsito. Definicin SMO provee la habilidad de crear programas y scripts de administracin. Es un set de objetos de programacin 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 jerarqua 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 configuracin, crear nuevas bases de datos, administrar trabajos de SQL Server Agent, y schedulear backups.

SMO Comparado con SQL Server Distributed Management Objects

Introduccin 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 diseado 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 travs de la red. Usar SMO, un desarrollador puede prcticamente 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 ms administrator-centric a travs 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 travs de la clase Scripter. Por ejemplo, puede usar esta clase para automticamente script una dependencia completa basada en rbol en un objeto simple.

Cmo crear Aplicaciones SMO

Introduccin Puede usar Visual Studio 2005 para desarrollar aplicaciones SMO. Pueden ser diseadas como aplicaciones Windows Forms, aplicaciones ASP.NET Web, o aplicaciones de consolas, dependiendo en sus requerimientos especficos. Por ejemplo, si necesita administrar bases de datos desde muchas locaciones dentro de su compaa, una aplicacin ASP.NET corriendo en la intranet de la corporacin quita la necesidad de instalar en computadoras clientes. Crear una Aplicacin .NET SMO Siga el siguiente procedimiento para crear una aplicacin de .NET SMO. 1. Abra Visual Studio 2005. 2. Cree un nuevo proyecto usando el lenguaje que elija y el tipo de aplicacin 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 aplicacin, 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 conctese al servidor. Por defecto, el Windows Authentication es usado para conectarse cuando desarrolla aplicaciones SMO. 6. Codifique su aplicacin.

Cmo Usar SMO para Recuperar Informacin del Servidor

Introduccin Puede usar SMO para recuperar informacin acerca de la computadora que corre SQL Server. Por ejemplo, puede consultar la edicin, lenguaje, y versin de un servidor.

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

Propiedad Edition IsClustered IsSingleUser Languaje NetName OSVersion Parent PhysicalMemory Platform Processors Product ProductLevel VersionString

Descripcin Obtiene la edicin de la computadora corriendo SQL Server. Obtiene un valor Boolean que indica si el servidor es parte de un cluster. Obtiene un valor Boolean que indica si el servidor esta seteado como solo lectura. Obtiene el lenguaje por defecto de la computadora corriendo SQL Server. Obtiene el nombre NetBIOS del servidor. Obtiene la versin del sistema operativo de la computadora. Obtiene el objeto Server que es padre de este objeto Information. Obtiene el total de la RAM (en MB) de la computadora. Obtiene la plataforma hardware de la computadora. Obtiene el nmero de procesadores instalados en la computadora. Obtiene el titulo del producto para la computadora corriendo SQL Server. Obtiene el nivel del producto para la computadora corriendo SQL Server. Obtiene la versin de la computadora corriendo SQL Server.

Cmo Usar SMO para hacer Backup de una Base de Datos

Introduccin 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 informacin en el siguiente cuadro describe las propiedades claves del objeto Backup.
Property Action BackupSetDescription BackupSetName BlockSize Checksum Description El tipo de backup a realizarse Descripcin textual para un set de backup set Nombre para identificar un set de backup Bloquea el tamao de la unidad a ser usada cuando el formateo es parte de un backup. Propiedad Boolean que determina si el valor de una checksum es calculado durante el backup o la operacin de restauracin. La base de datos en la cual las operaciones de backup o restauracin corren. Grupos de archivos de SQL Server destinados a la operacin de backup Archivos del sistema operativo destinados a la operacin de backup. Dispositivos especificados para la operacin de backup Tipo de dispositivo de un dispositivo asociado a la operacin de backup. Fecha y tiempo en que el set de backup vence y los datos ya no son considerados relevantes. Propiedades Bolean que determinan si una cinta es formateada como primer paso en una operacin de backup.

Database DatabaseFileGroups DatabaseFiles Devices DeviceType ExpirationDate FormatMedia

Incremental Initialize

Propiedades Boolean que determinan si realizar un backup de incremento. Propiedades Bolean que determinan si los dispositivos asociados con una operacin de backup son partes inicializadas de una operacin de backup. Nombre del mtodo usado para truncar el log de la base de datos como parte de la operacin de backup. Descripcin textual de la media que contiene la informacin del set de backup Nombre especificado para identificar un set de media. Propiedad Boolean que determina si un SQL Server mantendr la cinta abierta luego de una operacin de backup Propiedades Bolean que determinan si una operacin de backup reiniciara si es interrumpida. Cantidad de das que deben transcurrir antes que un set de backup sea sobre-escrito. Operacin lgica del backup que determina sin la media cargada es correcta. Propiedad Boolean que determina si una cinta de media es rebobinada y no cargada luego que se completa la operacin de backup.

LogTruncation MediaDescription MediaName NoRewind

Restart RetainDays SkipTapeHeader UnloadTapeAfter

Hacer Backup de una Base de Datos Siga el siguiente procedimiento para escribir un cdigo SMO para hacer backup de una base de datos: 1. Conctese 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 mtodo Devices.Add del objeto del Backup, pasando el path al dispositivo. Llame al mtodo SqlBackup del objeto Backup, pasando el objeto Server.

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


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

Describir las mejoras de SQL Profiler en SQL Server 2005. Guardar informacin SQL Profiler trace como XML. Usar SQL Profiler para monitorear SQL Server 2005.

Mejoras de SQL Profiler en SQL Server 2005

Introduccin El SQL Profiler en SQL Server 2005 provee informacin 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 estn resumidos a continuacin: ! 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: Representacin 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 tambin 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.

Cmo Guardar un Rastro como XML

Introduccin El XML es un formato de datos porttil, entendido por cada vez mas herramientas. Guardando informacin 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 aplicacin customizada para realizar su anlisis.

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 locacin, y luego haga clic en Save.

Uso de DDL Triggers

Introduccin 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.

Objetivos
! ! ! !

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

Qu son DDL Triggers?

Introduccin Es til poder monitorear operacin de definicin 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 definicin de lenguaje, no sabr que la tarea esta siendo observada. Definicin Un DDL trigger dispara cuando un usuario ejecuta una statement de definicin de lenguaje, como CREATE TABLE, DROP TRIGGER, o UPDATE STATISTICS.

Ejemplo El DDL triggers puede ser til para registrar acciones de administracin al sistema. Por ejemplo, puede crear un trigger en el statement UPDATE STATISTICS para registrar detalles acerca de la tabla en la cual las estadsticas fueron actualizadas, el usuario que las actualiz, y la hora y fecha que la actualizacin fue hecha.

Alcance DDL trigger Al contrario de los triggers ordinarios que estn 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 dems. 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 estn 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 informacin de cuales DDL triggers operan en alcance de base de datos y servidor, vea la seccin Event Groups for Use with DDL Triggers en SQL Server 2005 Books Online. Procesos DDL trigger Los DDL triggers se disparan para completar la accin 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 transaccin en curso y deshacer cualquier trabajo que ha sido realizado, incluyendo las operaciones DDL que hicieron disparar el trigger. Un sola operacin DDL puede disparar mltiples DDL triggers. El orden en el cual los triggers disparan no es documentado; no se debera confiar de los DDL triggers para ejecutar alguna secuencia en especial.

Cmo Crear DDL Triggers

Introduccin 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 operacin DDL en una base de datos.

Indique el alcance de una base de datos usando o la clusula ON DATABASE ON ALL SERVER en la definicin del trigger. El cuerpo de una DDL trigger puede contener statements Transact-SQL o pueden referirse aun mtodo en un ensamble .NET.

La Funcin 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 estn siendo cambiados. El DDL triggers no crea estas tablas. En su lugar, puede usar la funcin eventdata para obtener informacin acerca del evento disparando el trigger. La funcin 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 informacin 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 descripcin detallada del documento devuelto por la funcin eventdata, vea la referencia Transact-SQL Reference en SQL Server 2005 Books Online.

Extraer Informacin de Eventos Use el mtodo de query del documento devuelto por al funcion eventdata para extraer informacin 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:

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), !@data.query('data(//PostTime)')) SET @database = CONVERT(NVARCHAR(100), !@data.query('data(//DatabaseName)')) SET @targetobject = CONVERT(NVARCHAR(100), !@data.query('data(//TargetObjectName)')) PRINT @posttime PRINT @database PRINT @targetobject

Cmo Administrar DDL Triggers

Introduccin El SQL Server 2005 ha extendido la sintaxis de los comandos usados para administrar triggers con extenciones especficamente para DDL triggers.

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 cdigo:
SELECT name FROM sys.triggers

Puede obtener informacin de un trigger consultando la vista del catalogo sys.sql_modules, como muestra el siguiente cdigo:
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 definicin 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 clusula ON DATABASE o ON ALL SERVER como sea apropiado para el trigger. Si omite esta clusula, el SQL Server 2005 asumir que se esta refiriendo al trigger Standard y reportara un error porque no lo encontrara.

Usar Event Notifications


Introduccin Eventos de Notificacin 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?

Introduccin 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 cdigo 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 informacin acerca de eventos a procesos externos usualmente otras instancias de SQL Server 2005. Definicin Un evento de notificacin reaccione a uno o mas eventos en la base de datos y envia un mensaje al Service Broker service diseado 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 aplicacin construida

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 informacin de mensajes persistentes hasta que el servicio esta listo para aceptarlos. El servicio tambin puede usar una cola para retener requerimientos hasta que pueda procesarlos. Para simplificar el proceso de creacin de notificacin de eventos, SQL Server 2005 incluye un tipo de mensaje y contacto diseado para notificacin de eventos. Los nicos objetos de Service Broker objects que tiene que crear son colas, un servicio y una ruta.

Cmo crear Event Notifications

Introduccin Use el statement CREATE EVENT NOTIFICATION para crear un nuevo objeto de notificacin de eventos.

Ejemplo La siguiente notificacin de eventos enviara informacin 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 notificacin 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 notificacin de eventos, ocurrira cuando la statement DELETE es ejecutada sobre la tabla Products en la base de datos en curso:

CREATE EVENT NOTIFICATION DeleteProducts ON TABLE Production.Products FOR DELETE TO SERVICE [DeleteLogger]

Especificar Tipos de Eventos Los eventos capturados por una notificacin de eventos, pueden ser muy especficos, como muestra el ejemplo anterior, o pueden ser mas genricos. Por ejemplo, para capturar todos los eventos DDL en una base de datos, use FOR DDL_DATABASE_LEVEL_EVENTS. Tambin puede capturar todos los eventos DML sobre un objeto especificando FOR DML_EVENTS. Tambin se puede capturar un rastreo de evento. Por ejemplo, la siguiente notificacin 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.

Cmo Procesar Notificaciones de Eventos

Introduccin

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 notificacin de eventos. Usted debe especificar que proceso almacenado debera ser ejecutado cuando creas una cola. El siguiente cdigo 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 informacin 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 estn asignados como un message_type_name que describe el tipo de mensaje. Puede usar esto para identificar si el mensaje es una notificacin de eventos o un mensaje de error de notificacin de eventos. Los mensajes tambin contienen una columna message_body que de hecho contiene la informacin 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 notificacin de eventos disparando al comando ALTER TABLE. <EVENT_INSTANCE>

<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 mtodo query de la documentacin para recuperar una informacin 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

Cmo Administrar una Notificacin de Eventos

Introduccin 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 Notificacin de Eventos Use el comando DROP EVENT NOTIFICATION para borrar pernamentemente una notificacin de eventos de una base de datos:
DROP EVENT NOTIFICATION UpdateStats ON SERVER

Para mas informacin del comando DROP EVENT NOTIFICATION, vea el Transact-SQL Reference en SQL Server 2005 Books Online. Nota Las notificaciones de eventos estn en la funcionalidad SQL Server 2005 Service Broker. Para usar una notificacin de eventos, debe habilitar el Service Broker habilitando el setting ENABLE_BROKER de la base de datos en la cual reside su cdigo de notificador de eventos.

Uso de Vistas de Metadatos

Introduccin El SQL Server 2005 provee dos formas de consultas de metadatos: vistas de catlogos para metadatos estticos y vistas de administracin dinmica para metadatos dinmicos. Estos dos tipos de vistas deberan ser usados en preferencia a consultar tablas de sistema porque muestran datos directamente del SQL Server y algunos contienen mas informacin que su correspondiente tabla de sistema. Objetivos
! ! !

Consultar metadatos estticos. Consultar metadatos dinmicos. Consultar metadatos de SQL Server.

Consultar Metadatos Estticos

Introduccin Puede usar las vistas de catalogo de SQL Server 2005 para consultar metadatos estticos. Estos proveen informacin 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 catlogos listan informacin server-wide, pero la mayora son database-specific. Las vistas de catlogos estn listadas en la carpeta <Database name>\Views\System Views en Object Explorer en SQL Server Management Studio. Sin embargo, no estn aun implementadas como vistas tradicionales bajo las tablas, si no como metadato del sistema consultado directamente. Estn definidas en el espacio de nombre sys.

Categoras de Vistas de Catlogos

Las vistas de catlogos estn categorizadas de acuerdo a su funcionalidad. La informacin en la siguiente tabla lista las categoras llave y algunos de las vistas de catlogos mas usada dentro de cada categora.
Categora CLR Assembly Databases and files Vista de Catalogo sys.assemblies sys.databases sys.database_files Linked servers sys.linked_logins sys.remote_logins sys.servers Object sys.columns Descripcin Devuelve una row para cada ensamble en al base de datos. Devuelve una row para cada base de datos en el servidor. Devuelve una row para cada archivo en la base de datos. Devuelve una row para cada linked server login mapping Devuelve una row para cada remote server login mapping Devuelve una row para cada servidor remoto o conectado. Devuelve una row para objeto que contiene columnas (por ejemplo, una tabla o una vista) Devuelve una row para cada evento que disparan una notificacin o un trigger. Devuelve una row para cada index o heap de un objeto tabular. Devuelve una row para cada tabla en la base de datos. Devuelve una row para cada vista en la base de datos. Devuelve una row para cada schema definido en la base de datos. Devuelve una row para cada permiso definido en la base de datos. Devuelve una row para cada principio de seguridad en la base de datos.

sys.events

sys.indexes sys.tables sys.views Schemas sys.schemas

Security

sys.database_permissions

sys.database_principals

sys.database_role_members

Devuelve una row para cada miembro de cada rol de base de

datos. Server-wide configuration sys.configurations Devuelve una row para cada opcion de configuracin en el sistema.

Consultas a Vistas de Catlogos 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 cdigo devuelve una lista de tablas dentro de la base de datos AdventureWorks:
USE AdventureWorks SELECT * FROM sys.tables

Nota Vistas de catalogos no proveen replicacin, SQL Agent, o informacin de backup.

Consulta de Metadatos Dinmicos

Introduccin Puede usar vistas de administracin dinmica y funciones de administracin dinmicas para consultar metadatos dinmicos en SQL Server 2005. Proveen informacin del estado actual del SQL Server, tal como locks currently held dentro de una base de datos. Funciones de administracin dinmica son un caso especial de vista de administracin dinmica en la cual la consulta requiere parmetros 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 informacin.

Vistas de Administracin Dinmica Las vistas dinamicas de Administracin 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 informacin en la siguiente tabla, lista algunas de las vistas de administracin dinmica mas comnmente usada.
Vista de Administracin Dinamica sys.dm_db_partition_stats sys.dm_exec_sessions sys.dm_io_pending_io_requests sys.dm_os_memory_pools sys.dm_os_threads sys.dm_broker_queue_monitors sys.dm_tran_locks Descripcin Devuelve informacin en una pagina y row para cada particin en la base de datos. Devuelve informacin acerca de todas los servicios conectados al servidor. Devuelve informacin acerca de requerimientos pendientes de entrada y salida. Devuelve informacin acerca de cada objeto cache en el sistema. Devuelve informacin acerca de los threads en el sistema. Devuelve informacin acerca de cada cola monitoreada en el sistema. Devuelve informacin acerca de cada lock o request de lock en el sistema

Consultar Vistas de Administracin Dinmicas

Puede consultar vistas de administracin dinmica usando un statement standard SELECT. Por ejemplo, El siguiente cdigo devuelve una lista de las colas monitoreadas en SQL Server:
SELECT * FROM sys.dm_tran_locks

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

Administracin de Indices
Introduccin Una index es una estructura vital en una base de datos que provee acceso rpido a los datos. Sin embargo, los indexes se pueden deteriorar con el tiempo y requerir reorganizacin 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 tambin saber como administrar la fragmentacin que pude resultar cuando las indexes son usadas. La administracin Index ha sido altamente mejorada en SQL Server 2005 a travs de las nuevas funcionalidades statements y de definicin de lenguaje (DDL) de index. Objetivos
! ! ! ! ! !

Describir las nuevas features index en SQL Server 2005. Crear indices. Alterar indices. Borrar indices. Detectar fragmentacin de indices y reorganizar o reconstruir un indice apropiadamente. Mantener indices en una base de datos SQL Server 2005.

Nuevas Features de indices en SQL Server 2005

Introduccin El SQL Server 2005 provee indexes clustered y nonclustered, como lo hace SQL Server 2000. El SQL Server 2005 tambin 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 tambin 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 versin anterior de SQL Server.

Operaciones Index Online El SQL Server 2005 provee la habilidad de administrar indexes mientras que estn 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 operacin 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 operacin index era completada. Operaciones Index Online requieren espacio en disco adicional para soportar operacin online. Debe especificar cuando una index debera permitir operaciones online como parte de los comandos CREATE INDEX, ALTER INDEX, y DROP INDEX. Para mas informacin 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 automticamente en SQL Server 2005, y las operaciones pueden usar cualquier numero de procesadores hasta llegar al especificado en la opcin de configuracin de servidor de max degree of parallelism. Sin embargo, crear, reconstruir y borrar indices puede ser una tarea que use muchos recursos. Permitir una operacin index monopolizar procesadores puede daar otros trabajos que se estn 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 parmetro MAXDOP, la configuracin en max degree of parallelism especifica el numero mximo de procesadores que una operacin utilizara. Sin embargo, el motor de la base de datos puede decidir usar menos procesadores si el servidor esta bajo mucha presin y asignar todos los procesadores a la operacin index hara sufrir mucho la performance de las tareas concurrentes.

Opciones Locking El SQL Server 2005 introduce dos nuevas opciones locking cuando se usan indicess: ! ALLOW_PAGE_LOCKS Cuando esta habilitado, esta opcin 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 opcin provee acceso al the index using table and row-level locks. Cuando deshabilitado, row-level locks no son usados. Ambas opciones pueden ser habilitadas simultneamente. 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 tamao 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 tamao, que es igual al mximo de tamao de row. Indices Particionados Indices Particionados son otra nueva feature administracin de index de SQL Server 2005. Una Index Particionada es una index que se expande a travs de grupos de archivos comprimiendo la base de datos fsica. Indexes Particionadas son comnmente creadas sobre tablas particionads. Particionar puede mejorar la performance distribuyendo datos a travs de mltiples archivos, reduciendo los contenidos, y aumentando la posibilidad de realizar operaciones IO en paralelo. Para ms informacin, 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 nmero de features y limitaciones. Para mas informacin acerca de indexes XML, vea Indexes on xml Type Columns en SQL Server 2005 Books Online.

Cmo crear un Index

Introduccin 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 cdigo 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 opcin ONLINE=ON en la clusula WITH del statement CREATE INDEX para permitir otras operaciones DML ejecutarse concurrentemente. El siguiente

ejemplo muestra como usar la opcin 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 configuracin del parmetro con el valor de max degree of parallelism para determinar el numero mximo de CPUs que puede usar cuando crea una index. Como esta operacin puede dejar recursos insuficientes para otras operaciones concurrente, usted puede limitar los recursos de la CUP usados especificando la opcin MAXDOP, segn muestra el siguiente ejemplo:
CREATE INDEX IX_Employee_ManagerID ON HumanResources.Employee (ManagerID) WITH (ONLINE=ON, MAXDOP = 3)

La opcin MAXDOP no acepta la opcin de configuracin max degree of parallelism. Especificando MAXDOP = 0 hace que la operacin use todas las CPUs disponibles, dependiendo en la cantidad de trabajo del motor de la base de datos.

Nota Como con la opcin ONLINE, la opcin MAXDOP solo afecta al statement que esta siendo usado para crear, alterar, o borrar el index. El optimizador de consulta usa la opcin de configuracin 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 clusula WITH, como se muestra en el siguiente ejemplo:
CREATE INDEX IX_Employee_ManagerID ON HumanResources.Employee (ManagerID) WITH (ALLOW_ROW_LOCKS = ON)

Agregar Columnas Incluidas Puede especificar que el index debera 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 incurrirn 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 particin scheme como parte del statement CREATE INDEX. El siguiente ejemplo usa la particin scheme llamada CustomerScheme para distribuir los datos para el index a travs 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 particin 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}

| MAXDOP = number_of_processors }

El siguiente cdigo muestra un ejemplo de cmo 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 opcin ONLINE o cuando una index XML esta siendo creada.

Cmo Alterar una Index

Introduccin Use el statement ALTER INDEX para reconstruir, reorganizar o deshabilitar una index, o para modificar opciones que usa una index. Estas features estn tambin disponibles a travs 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} }

La siguiente tabla describe las palabras claves para cada tarea que puede realizar usando la statement ALTER INDEX:
Palabra Clave REBUILD Descripcin 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. Reordena las paginas leaf de una index para que coincida el orden lgico de los datos en la tabla. Deshabilita temporalmente un index, aun un index clustered para prevenir su uso. Modifica opciones de cmo una index es mantenida y accedida.

REORGANIZE DISABLE SET

No puede usar la opcin de comando ALTER INDEX para reparticionar una index, o para agregar o borrar columnas. Debe usar el comando CREATE INDEX con la opcin 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 clusula 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 clusula REBUILD con la opcin FILLFACTOR:
ALTER INDEX IX_Employee_ManagerID ON HumanResources.Employee REBUILD WITH (FILLFACTOR = 80)

Si reconstruye una index larga (una index con ms 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 automticamente 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 operacin simple.

La clusula REBUILD permite realizar modificaciones online especificando la opcin ONLINE = ON e indicando el grado de paralelismo con la opcin 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 vacan como resultado de compactar datos. Es mas, reorganizar una index no requiere ningn espacio adicional en tempdb, porque todas las reorganizaciones sin in situ.

La nica opcin que puede especificar con la clusula 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 tambin compactadas. El siguiente ejemplo muestra como usar la clusula REORGANIZE con la opcin 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 estn siendo actualizados. No puede especificar la opcin MAXDOP, e ignorar la opcin de configuracin max degree of parallelism. Deshabilitando una Index El siguiente ejemplo muestra como usar la clusula DISABLE:
ALTER INDEX IX_Employee_ManagerID ON HumanResources.Employee DISABLE

El optimizador de consultas no considera una index deshabilitada cuando evala posibles planes de ejecucin para una statement de SQL. Las consultas que hacen referencia a una index deshabilitada en un aviso de optimizacin, no se realizaran. Cualquier restriccin y primary o foreign keys asociados con una index deshabilitada tambin ser deshabilitada.

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 sern 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 clusula SET. El siguiente ejemplo muestra la opcin ALLOW_PAGE_LOCKS:
ALTER INDEX IX_Employee_ManagerID ON HumanResources.Employee SET (ALLOW_PAGE_LOCKS = ON)

Cmo borrar un Indice


Introduccin Use el statement DROP INDEX para borrar un index de una tabla. Este statement aplica para todas las formas de indexes, incluyendo indexes XML. Tambin puede borrar una index usando la opcin Delete en men acceso directo en SQL Server Management Studio Object Explorer. Uso de DROP INDEX El siguiente cdigo 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 }

Las opciones DROP INDEX son disponibles solo cuando esta borrando una index clustered. La opcin MOVETO permite especificar donde ubicar los datos luego que una index haya sido borrada. Para mas informacin acerca del la statement DROP INDEX, vea the TransactSQL 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 clusula ON en vez de la que usa la notacin . 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 debera 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 operacin 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 opcin 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 opcin MOVE TO. Los datos sern reconstituidos como una tabla en el lugar especificado. Puede especificar el destino usando una particin scheme o un grupo de archivos. El siguiente ejemplo mueve los datos a una particin scheme definida por el NewCustomerScheme:
DROP INDEX IX_Cluster ON Sales.Customer WITH (MOVE TO NewCustomerScheme)

Cmo Administrar Fragmentacin

Introduccin 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 automticamente 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 fsicamente en los archivos de la base de datos. Estas modificaciones puede desalinear las indexes con sus datos correspondientes, haciendo decaer la performance. Este fenmeno es conocido como fragmentacin. Eventualmente, necesitara reorganizar o reconstruir sus indexes para ganar beneficio de ellas. Reorganizar versus Reconstruir Dependiendo en el grado de fragmentacin 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 informacin en los nodes internos de acuerdo al setting fill factor que afecta a la index. El resultado es una index que es mas pequea, tanto como el espacio vaci causado por borrar una row y las actualizaciones habrn sido borradas, mientras que los leaf nodes estarn en el mismo orden que la tabla. Reorganizar una index tambin 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. Tambin 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 Fragmentacin Reconstruir o reorganizar una index puede ser una tarea muy cara que utilice muchos recursos. Reconstruir es significantemente ms 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 funcin sys.dm_db_index_physical_stats para asignar el grado de fragmentacin de una index. Nota Debe correr la funcin sys.dm_db_index_physical_stats en vez de la statement DBCC SHOWCONTIG usada con versiones anteriores de SQL Server.

El siguiente ejemplo muestra como usar la funcin 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 parmetros para funcin sys.dm_db_index_physical_stats, en orden, son: @TableName. La tabla de la cual juntar la informacin. 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 informacin acerca de todas las tablas y vistas en la base de datos en curso.
!

@IndexName. La index acerca de la cual juntar informacin. Este puede ser el nombre de una index especifica, DEFAULT, NULL o '*'. Los valores DEFAULT y NULL ambos devuelven informacin solo acerca de la tabla base (o indexes clustered , so la tabla tiene una). El valor '*' devuelve informacin acerca de todas las indexes en la tabla.
!

@PartitionId. El numero de ID de la particin de la index. Los valores DEFAULT, NULL, o 0 devuelven informacin de todas las particiones.
!

@Mode. El nivel de scan a usar para obtener la informacin requerida. Los valores soportados son LIMITED, que solo leen paginas parent-level pero es muy rpido, SAMPLED, que lee solo paginas parent-level y sample leaf pages, y DETAILED, que lee pginas parent-level y todas las leaf pages.
!

Para mas informacin acerca de la funcin sys.dm_db_index_physical_stats, vea la Transact-SQL Reference en SQL Server 2005 Books Online. Tambin puede ver informacin de fragmentacin de index en la pagina Fragmentation del cuadro de dialogo Index Properties. Reorganizar una Index Use el comando ALTER INDEX con la clusula REORGANIZE para reorganizar una index. Nota Debe utilizar la clusula 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 clusula DROP_EXISTING. Esta clusula

Esta clusula tambin 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 clusula REBUILD. (Use este comando preferentemente al statement al DBCC REINDEX.) Use el comando ALTER INDEX si no necesita reconstruir mltiples indexes, o si quiere evitar cualquier reconstruccin innecesaria de indexes nonclustered mientras que reconstruye una indexes clustered.
!

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

Uso del Tuning Advisor de la Base de Datos


Introduccin 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 cmo 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 deberan 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 diseo de la base de datos.

! ! ! !

Qu es el Tuning Advisor de la Base de Datos?

Introduccin 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 anlisis 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 aplicacin, sin necesitar conocimiento profundo de los mecanismos de optimizacin de consultas de SQL Server.

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 debera estar analizando una carga de trabajo. Generalmente, cuanto ms tiempo empleado, ms alta la calidad de las recomendaciones que producir
!

Cross-database tuning. Puede poner a punto una carga de trabajo que ocupa mltiples 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 anlisis usando cualquier aplicacin 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 comnmente realizados por usuarios realizando sus trabajos normales. ! Un rastro de archivo capturado por el SQL Profiler mientras monitorea SQL Server 2005. ! Una tabla conteniendo informacin rastreada capturada, tambin 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 tambin limitar el rango a las tablas seleccionadas. Resultados de DTA Un anlisis 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. tambin puede guardar los reportes como.

Como Usar el Tuning Advisor de la Base de Datos


Cree una Nueva Sesin Cada vez que corre el DTA para realizar un anlisis, crea una nueva sesin. Una sesin contiene informacin acerca de los recursos de carga de trabajo, las opciones tuning usadas, y los resultados del anlisis. Las sesiones aparecen en la ventana Sesin Monitor del DTA. Puede retener los detalles de sesiones anteriores o borrarlas. Para crear una nueva sesin, posicinese sobre el men File y haga click en New Session. Luego puede darle un nombre a la sesin. Especificar la Carga de Trabajo Puede indicar de donde el DTA debera obtener la informacin de la carga de trabajo, y la base de datos a analizar, usando el tab Workload del DTA. La opcin 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 sern ejecutados contra la base de datos seleccionada, y recomendaciones sern generadas para optimizar la carga de trabajo. La opcin Table en el tab Workload le permite usar un rastro como la fuente de carga de trabajo. La tabla debe contener informacin de rastreo generado por el SQL Profiler y ser guardada usando la opcin Save As/Trace Table. Setear Opciones Tuning Antes de comenzar anlisis DTA de una carga de trabajo, debe especificar las opciones de tuning a utilizar. Esto afectara la manera en que el DTA realiza su anlisis y las recomendaciones que genera. El tab Tuning Options permite especificar: Si el anlisis debe correr hasta completarse, si debe terminar a un tiempo determinado ( por defecto, a una hora de la hora en curso). Que diseo de estructura fsica (PDSs) a usarse en la base de datos. Puede evaluar estructuras existentes y generar recomendaciones para que estructuras retener y cuales desechar. Tambin puede especificar si el DTA debe asegurar cuales nuevas vistas de indexes e indexed (en varias combinaciones) deben ser creadas, como as tambin 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.
! !

Un cuadro de dialogo Advanced Tuning Options esta tambin disponible. En este cuadro, usted especifica si los scripts que son generados deben realizar operaciones online u offline. Realizar un Anlisis Se realiza un anlisis haciendo click en botn Start Analysis en la toolbar del DTA. Una pantalla de progreso aparecer, mostrando los pasos del anlisis a medida que van realizndose. Cualquier error o advertencias sern mostrados en esta pantalla de progreso. La informacin acerca del progreso de la operacin puede ser guardada en el Tuning log. Examinar los Resultados Cuando el anlisis esta completo, dos nuevas tabs aparecern 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 recomendacin. 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 nmero de reportes predefinidos resumiendo el anlisis 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 usaran 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
!

trabajo. Index detail report (en curso) Este reporte lista alas indexes en curso y sus detalles.
!

View-Table relations report Este reporte muestra informacin acerca de las tablas de referencia por las vistas usadas en la carga de trabajo.
!

Workload analysis report Este reporte resume los resultados del anlisis, agrupado por tipo de statement (SELECT, INSERT, UPDATE, DELETE), y muestra cuantos statements habrn mejorado la performance, cuantos no tendrn cambios en performance, y cuantos habrn 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 nmero de veces que cada una fue usada.
!

El tab Reports tambin incluye una seccin Tuning Summary, la cual muestra todas las estadsticas 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.

Cmo ver los Resultados XML


Introduccin El DTA permite exportar sus recomendaciones y reportes como archivos XML. Esto permite usar otras herramientas que pueden separar XML para analizar ms 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 aplicacin customizada basada en XML para procesar los resultados.

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 botn 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.

Modulo 6 Seguridad Overview de Seguridad de SQL Server 2005 Administracin de Seguridad de SQL Server 2005 Administracin de Permisos Administracin de Certificados

Revisin Seguridad SQL Server 2005

Introduccin Esta seccion describe la arquitectura de SQL Server 2005, incluyendo las mejoras que que se han hecho en esta versin. El SQL Server 2005 introduce un numero de cambios a la manera en la cual la aplicacin de la base de datos es segura. Esta leccin lo ayudara a preparar para disear y administrar seguridad de soluciones SQL Server 2005. Objetivos Luego de completar esta leccin, usted podr: ! Describir las mejoras de seguridad de SQL Server 2005. ! Describir principales. ! Describir permisos. ! Describir la arquitectura de seguridad de SQL Server 2005.

Mejoras en la Seguridad de SQL Server 2005

Introduccin El SQL Server 2005 implementa mejoras en la arquitectura de seguridad que usa un sistema de jerarquas 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. Polticas de Claves para SQL Server Logins Puede proveer accesos al sistema SQL Server 2005 a travs de Microsoft Windows logins o SQL Server logins, de la misma manera usada en las versiones anteriores de SQL Server. En esta versin de SQL Server, tambin puede aplicar polticas de seguridad Para SQL Server logins. Estas polticas actan similarmente a como Windows permite restricciones de claves para Windows logins. Rangos Jerrquicos de Seguridad El SQL Server 2005 provee un modelo consistente para asegurar objetos en diferente Rangos usando un arreglo jerrquico de principios, seguridad, y permisos. Este nuevo acercamiento ayuda a hacer la seguridad mas administrable que en las ediciones anteriores.

Separacin 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 separacin del propietario del espacio de nombres del objeto provee una administracin de la framework ms flexible. Visibilidad Limitada de los Metadatos La introduccin de la vista de catlogos 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. Ejecucin de Contexto Declarativo La ejecucin de contexto de mdulos programables (como procesos almacenados o funciones) ahora puede ser seteado explcitamente 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?

Introduccin La documentacin 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. Definicin Un principal es cualquier identidad autenticada que puede tener permisos de acceso a un objeto en un sistema de base de dato. La documentacin 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 Windows Principales Cuenta de usuario local Windows Cuenta de usuario de dominio Windows Grupo Windows SQL Server login SQL Server role Usuario de base de datos Rol de base de datos Grupo de base de datos Rol de la aplicacin

SQL Server Base de datos

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.

Qu son Securables?

Introduccin Los objetos en el sistema de autorizacin 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. Definicin Los Securables son recursos a los cuales el sistema de autorizacin de SQL Server controla el acceso. Los securables estn arreglados en jerarquas seteadas llamadas scopes, que tambin 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 ! Notificacin de evento ! Bases de datos

Rango Base de Datos Asegurables contenidos en el rango de base de datos incluyen: ! Usuarios ! Roles ! Aplicacin de roles ! Ensambles ! Tipos de mensajes ! Contratos de Servicio ! Servicios ! Catlogos Full-text ! Eventos DDL ! Schemas Rango de Schema Asegurables contenidos en el rango schema incluyen: ! Tablas ! Vistas ! Funciones ! Procedimientos ! Colas ! Tipos ! Reglas ! Defaults ! Sinnimos ! Agregados

Qu son los Permisos?

Introduccin 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. Definicin 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.

Ejemplos de Permisos Los permisos especficos asociados con asegurables individuales varan 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 Server Permiso CONNECT_SQL CREATE LOGIN ALTER ANY LOGIN CONTROL SERVER Login ALTER IMPERSONATE Base de Datos CREATE TABLE ALTER ANY USER CONTROL Usuario Schema ALTER SELECT ALTER TAKE OWNERSHIP Tabla SELECT ALTER CONTROL Descripcin Conecta al servidor. Crea un login. Altera cualquier login en el rango del servidor. Control completo de administracin del sistema. Altera el login. Impersonar el login. Crea una tabla en la base de datos. Altera cualquier usuario en la base de datos. Control completo de la base de datos. Altera el usuario especificado. Selecciona rows para cualquier objeto en el schema. Altera cualquier objeto en el schema. Toma propiedad del schema. Selecciona rows de la tabla. Altera la tabla. Control total de la tabla.

Permisos Hereditarios

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, automticamente 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.

Administracin de Seguridad de SQL Server 2005


Introduccin Esta seccin le ensea 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 ejecucin de contexto. Administrar asegurables y principales.

Como Administrar Logins

Introduccin 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 autenticacin de Windows. Cuando el servidor es configurado para autenticacin Windows, aun puede crear logins para SQL Server, pero no podrn 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. Conctese con el servidor en el cual quiera crear el login. 2. Expanda los nodos del servidor y Security. 3. Haga click con el botn 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 botn Execute on Server, o genere un script para ser ejecutado mas tarde. Uso de CREATE LOGIN Tambin 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 sern removidos en una edicin futura.

El siguiente cdigo 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

| 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 opcin especificada que puede usar dentro del statement CREATE LOGIN dependiendo en si esta creando un login para Windows o para SQL Server. Las clusulas 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.

Polticas de Claves para Loguearse a SQL Server Las cuentas de usuarios de Windows estn sujetas a polticas reforzadas por Windows. El SQL Server 2005 provee polticas de restriccin similares para logins de SQL Server, usando las opciones mostradas en la siguiente tabla en el statement CREATE LOGIN.
Opcin HASHED Descripcin Especifica que la clave no es valida. Si esto no es especificado, la cadena ser invlida antes de almacenarse. Muestra un login para cambiar la clave la primera vez que se conecta. Si esta opcin es especificada, los CHECK_EXPIRATION y CHECK_POLICY deben estar en ON. Cuando puesto en ON (por defecto) esta opcin especifica que la poltica de vencimiento de clave de Microsoft Windows Server 2003 debe ser aplicada al login de SQL Server. En servidores Windows 2000, esta opcin no tiene efecto. Si esta opcin esta en ON, la opcin CHECK_POLICY tambin debe estar en ON o la statement fallara. Cuando puesto en ON (por defecto), esta poltica refuerza la complejidad de poltica de clave definida para Windows Server 2003 computadora corriendo SQL Server. En servidores Windows 2000, esta opcin refuerza una poltica de seguridad de SQL Server especfica basada en las complejidades de clave de

MUST_CHANGE

CHECK_EXPIRATION

CHECK_POLICY

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 comn 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 botn 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 sern removidas en versiones futuras.

Cmo Administrar Usuarios


Introduccin 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

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 mayora 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 membresa 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. Conctese 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 botn 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 tambin 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 sern 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 creacin de usuarios para certificados de la base de datos ser discutida mas tarde en este modulo.

Los parmetros clave para el statement CREATE USER son descriptos en la siguiente tabla:
Parmetro user_name login_name Descripcin El nombre del nuevo usuario. El nombre del login para ser mapeado a este usuario. Si este parmetro es omitido: SQL Server trata de encontrar un login con el nombre especificado en el parmetro 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. El nombre por defecto del schema usado para este usuario para resolucin de objeto de nombre. Los schemas y resolucin de nombre son discutidos mas tarde en este modulo.

schema_name

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 borrndolo 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 sern removidos.

Que son las Schemas?

Introduccin 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. Definicin 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 dueo 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 administracin mas simples, porque los permisos pueden ser otorgados al rango de schema tal como en los objetos individuales. ! Administracin 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 funcin ha sido enormemente expandida en 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.

Cmo Administrar Schemas


Introduccin 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. Conctese 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 botn 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 >

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

Los parmetros en la sintaxis CREATE SCHEMA son descriptos en el siguiente cuadro.


Parmetro schema_name owner_name Descripcin El nombre del schema. El usuario que ser asignado como dueo del schema. Si este parmetro es omitido, el usuario ejecutando la statement ser asignado como dueo de la misma. El statement CREATE TABLE es usado para crear una tabla en el schema. El statement CREATE VIEW es usado para crear una vista en un schema. El statement GRANT es usado para asignar permisos en u objeto en una en el schema a un principal en la base de datos. El statement REVOKE es usado para revocar los permisos en cualquier asegurable excepto en un nuevo schema. Un statement DENY es usado para revocar permisos en cualquier asegurable excepto en los nuevos schema.

table_definition view_definition grant_statement

revoke_statement

deny_statement

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 mltiples 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 razn principal para hacer esto es para cambiar los titulares de la schema, como muestra el siguiente ejemplo:

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.

Cmo Setear un Schema para un Usuario

Introduccin Cuando una base de datos contiene schemas mltiples, la resolucin 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 Resolucin 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.

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 clusula 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

Cmo Controlar la Ejecucin de Contexto

Introduccin Puede usar la clusula EXECUTE AS en un proceso almacenado o la funcin para setear la identidad usada en esta ejecucin de contexto. Entender como usar la clusula 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 clusula EXECUTE AS con cualquier statement CREATE PROCEDURE y cualquier statement CREATE FUNCTION excepto declaraciones de funcin table-valued dentro de lneas. La sintaxis para la clusula EXECUTE AS es la siguiente:
EXECUTE AS { CALLER | SELF | OWNER | user_name }

Las opciones incluidas en la sintaxis de la clusula EXECUTE AS son descriptas en la siguiente tabla.
Opcin CALLER SELF OWNER user_name Descripcin Ejecute usando la identidad del usuario que llama. Este es el seting por defecto. Ejecute usando la identidad del usuario que creo el proceso almacenado o la funcin. Ejecute usando la identidad del propietario de la funcin. Ejecute usando la identidad del usuario especfico. 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 especfica que in proceso almacenado es ejecutado usando la identificacin del usuario que lo creo:
CREATE PROCEDURE GetOrders WITH EXECUTE AS SELF AS SELECT * FROM sales.orders

Administracin de Permisos
Introduccin Para acceder a objetos y datos dentro de SQL Server, los principales deben ser concedidos con permisos. En esta seccin, 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

Introduccin 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 travs de una membresa 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 accin en particular si:

Los permisos pueden ser concedidos explcitamente al principal o a un grupo del cual el principal es miembro. ! Los permisos que no han sido negados explcitamente 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 explcitamente concedido con el permiso en SELECT en una tabla en particular pero es miembro de un rol que ha sido explcitamente 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 travs de un permiso concedido a un nivel mas alto en la jerarqua del rango de asegurables. Por ejemplo, un principal que ha sido concedido con un permiso SELECT en un schema automticamente hereda permisos SELECT en todos los objetos en la schema.

Como Administrar Permisos de Servidor

Introduccin 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. Conctese al servidor en el cual quiera aplicar los permisos. 2. Expanda los nodos del servidor, Security, y Logins. 3. Haga click con el botn derecho sobre el login al cual quiera conceder permisos, y luego haga click en Properties. 4. En la pgina 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 seccin Permissions for <servername>, conceda los permisos requeridos.

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 clusulas y parmetros de nivel de servidor de la statement GRANT son descriptas a continuacin en la siguiente tabla.
Clusula / Parmetro server_permission Descripcin El permiso a nivel de servidor que se concede. Para una lista completa de permisos a nivel de servidor, vea SQL Server Books Online. Un login para quienes los permisos son concedidos. Una opcin que permite al concedido conceder el mismo permiso a otros. La especificacin 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 membresa de un rol o grupo que si lo tiene.

login WITH GRANT OPTION AS group | role

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

Introduccin 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 clusulas y parmetros del statement GRANT para los asegurables en el rango del servidor son descriptos en la siguiente tabla.
Clusula / Parmetro securable_permission securable_type securable_name login WITH GRANT OPTION AS group | role Descripcin El permiso especifico asegurable que es concedido. El tipo de asegurable del rango de servidor al cual los permisos son aplicables. El nombre del asegurable del rango del servidor. Un login al cual los permisos son concedidos. Una opcin que permite al que concede, conceder los mismos permisos a otros. Una especificacin 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 membresa 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]

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

Introduccin 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. Conctese con el servidor al cual quiere aplicar los permisos. 2. Expanda los nodos del servidor y Databases. 3. Haga click con el botn derecho en database, y luego en Properties. 4. En la pagina de permisos, en la seccin 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 clusulas y parmetros del nivel de base de datos de la statement GRANT son descriptos en la siguiente tabla.
Clusula / Parmetro database_permission security_account WITH GRANT OPTION Descripcin Los permisos especficos de la base de datos que son concedidos. Un principal de nivel de base de datos a quien los permisos son concedidos. Una opcin que permite al que concede, conceder los

mismos permisos a otros. AS group | role Una especificacin 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 membresa 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.

Cmo Administrar Permisos Asegurables en el Rango de Base de Datos

Introduccin 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

Puede conceder permisos a alguien en los asegurables de la base de datos usando Object Explorer en SQL Server Management Studio. 1. Conctese 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 especfico, y luego haga click en Properties. 4. En la pgina de permisos, en la seccin 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 clusula y parmetros de los asegurables de rango de base de datos del statement GRANT son descriptos en la siguiente tabla.
Clusula / Parmetro securable_permission securable_type securable_name security_account WITH GRANT OPTION AS group | role Descripcin Los permisos de asegurables especficos que son concedidos. El tipo de asegurable de rango de base de datos al cual aplica los permisos. El nombre de los asegurables de rango de base de datos. Un principal a nivel de base de datos a quien se le conceden los permisos. Una opcin que permite al concedido, conceder los mismos permisos a otros. Una especificacin 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 membresa de rol o de grupo que si la tiene.

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.

Cmo Administrar Permisos de Asegurables SchemaScope


Introduccin 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. Conctese 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 botn derecho sobre el objeto especfico, y luego haga click en Properties.

4. En la pgina de los permisos, en la seccin 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 clusulas y parmetros de la statement GRANT para un tipo son descriptas en la siguiente tabla.
Clusula / Parmetro type_permission type_name security_account WITH GRANT OPTION AS group | role Descripcin El tipo especifico de permiso que es concedido. El nombre del tipo en el cual el permiso es aplicado. Un principal a nivel de base de datos a quien el permiso le es concedido. Una opcin que habilita a quien le fueron concedidos los permisos, condecer los mismos a otros. Una especificacin 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 membresa de rol o de grupo que si los tiene.

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 clusulas y parmetros del asegurable schema-scope de la statement GRANT son descriptos en la siguiente tabla:
Clusula / Parmetro object_permission column table view table_valued_function Stored_procedure extended_procedure scalar_function aggregate_function service_queue synonym security_accoun WITH GRANT OPTION Descripcin El objeto especifico al cual el permiso es concedido. El nombre de una columna a la cual se le aplica el permiso. El nombre de una tabla a la cual se le aplica el permiso. El nombre de una vista a la cual se le aplica el permiso. El nombre de una funcin table-valued a la cual se le aplica el permiso. El nombre de un proceso almacenado al cual se le aplica el permiso. El nombre de un proceso almacenado extendido al cual se le aplica el permiso. El nombre de una scalar function a la cual se le aplica el permiso. El nombre de una funcin agregada a la cual se le aplica el permiso. El nombre de una cola de servicio a la cual se le aplica el permiso. El nombre de un sinnimo al cual se le aplica el permiso. El nombre de un principal a nivel de base de datos al cual se le aplica el permiso. 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 membresa 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

Administracin de Certificados
Introduccin 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?

Introduccin Los certificados digitales pueden ser usados para autenticar y/o encriptar mensajes entre dos partes. Ellos contienen informacin que puede verificar al que enva un mensaje o pueden ser usados para encriptar o desencriptar algoritmos. Definicin 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 Certificacin Comercial. Certificacin Comercial son usadas por autoridades confiables, llamadas autoridades de certificacin(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 locucin segura; si esta comprometida, su certificado es efectivamente intil. Debe usar este tipo de certificado si necesita ser confiado por una tercera parte que quizs 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 certificacin para aplicacin internas donde la confianza del usuario no es un tema. Por ejemplo, para una aplicacin de intranet disponible para empleados y partners. Los certificados contienen la misma informacin 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 organizacin. Autenticacin Los mensajes firmados con su llave privada lo identifican como el que envi el mensaje. Una tercera parte puede usar su llave pblica para asegurarse que el mensaje ha sido firmado por una persona u organizacin nombrada en el certificado y no por alguien hacindose pasar por usted. Encriptacin Los certificados tambin pueden ser usados para encriptar y desencriptar informacin. Si un mensaje es encriptado usando una llave pblica, 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 pblica. Este mecanismo puede ser usado para asegurarse que solo los servicios a los cuales usted hace disponible su llave pblica puede desencriptar los mensajes que usted enva. por ejemplo, si manda informacin por una red pblica como Internet, esa informacin puede ser desencriptada solo por la organizacin que tiene una copia de su llave pblica. Si ellos luego quieren enviarle informacin segura, pueden ecriptarlo usando su llave pblica, y usted, el que tiene la llave privada puede desencriptarla.

Cmo usa SQL Server los Certificados?


Introduccin El SQL Server usa certificados como un mecanismo de autenticacin y encriptamiento entre instancias remotas del Service Broker, y para proveer una conexin segura de comunicacin para sincronizacion Web para juntar replicacin. El SQL Server como un Servidor de Certificacin Puede usar SQL Server para dar certificados a usuarios dentro del servidor para propsitos de autenticacin y encriptacin. El SQL Server 2005 incluye nuevas statements Transact-SQL para la creacin y administracin 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, comunicacin autenticada entre dos servicios en una conversacin. El HTTP endpoint al cual los mensajes son enviados en el servidor remoto puede ser configurado para requerir autenticacin, y si el usuario dbo en la base de datos master tiene asociado un certificado digital, es usada la autenticacin basada en certificado.

El Service Broker tambin puede usar dialogo de seguridad completo, que usa certificados digitales para encriptar mensajes entre usuarios remotos. Autenticacin de Cdigo 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 funcin. Esta es una forma comn de garantizar la autenticidad de un modulo de cdigo. Encriptacin de Datos Puede usar certificados para encriptar o desencriptar datos. Sin embargo, debe tener en cuenta que la criptografa basada en certificados incurre en una mayor performance por encima de la criptografa con una llave simtrica.

Cmo Administrar Certificados

Introduccin

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 }

Las clusulas y parmetros de la statement CREATE CERTIFICATE son descriptas en la siguiente tabla.
Clusula / Parmetro certificate_name user_name FILE EXECUTABLE_FILE ASSEMBLY FILE Descripcin El nombre con el cual el certificado ser conocido en la base de datos. El nombre del usuario que ser el dueo del certificado. Especifica el path al certificado como local o UNC path. Especifica el nombre del path y archivo que fue firmado con el certificado. Especifica una asamblea firmada, que ha sido cargada, de la cual el certificado ser cargado. Especifica el path completo incluyendo el nombre del

archivo a la llave privada, como local o UNC path DECRYPTION_PASSWORD ENCRYPTION_PASSWORD START_DATE EXPIRY_DATE SUBJECT ENCRYPTION_PASSWORD ACTIVE_FOR_BEGIN_DIALOG Clave necesitada para desencriptar una llave que es recuperada de un archivo. Clave usada para desencriptar una llave privada. La fecha en la cual el certificado se vuelve valido. Por defecto el da en curso. La fecha de vencimiento del certificado. Por defecto un ao desde la START_DATE. El sujeto del certificado definido en el standard X.509. Clave usada para encriptar la llave privada del certificado. Hace valido al certificado al iniciador de una conversacin 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 = CertificateForAdventureWorksServiceBrokerApp , ENCRYPTION_PASSWORD = P@ssw0rd ACTIVE FOR BEGIN_DIALOG = ON

Puede usar la statement ALTER CERTIFICATE para agregar una llave pblica a un certificado o para alterar el dueo 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

Modulo 7 Recuperacin de Desastres Recupero de Desastres en SQL Server 2005 Uso de Snapshots de la Base de Datos Backup y Recuperacin

Recupero de Desastre en SQL Server 2005

Introduccin El recupero de Desastres un proceso de restauracin 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 catastrfico de la infraestructura y el hardware donde se aloja la base de datos, quizs como resultado de un terremoto, incendio o acto de terrorismo. Mejoras de Desastre- Recupero El SQL Server 2005 continua soportando clustering, backup y restauracin, y log shipping como mecanismo de desastre-recupero. Tambin suma un nmero 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 consultaran 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 rpida y fcilmente. Para una descripcin 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 daadas 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 daada. Para un descripcin mas detallada de cmo realizar una restauracin 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 funcin 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 algn dispositivo en el mirror set no esta disponible o no se encuentra. Sin embargo, las operaciones de restauracin solo requieren de un solo dispositivo en cada mirror set para tener xito. Para una descripcin mas detallada de backup media mirroring, vea .Backup and Restore Operations mas tarde en este modulo.
!

Verificacin Improvisada. Los backup y operaciones de restauracin 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 informacin checksum cuando examina un set de backup.
!

Uso de Snapshots de Base de Datos

Introduccin 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 seccin describe los snapshots de la base de datos y discute su uso como un herramienta para asistir en un recupero de desastre.

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 restauracin de datos luego de un desastre. Usar snapshots de base de datos.

Qu son Snapshots de Base de Datos?

Introduccin 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. Definicin 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 tecnologa 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 fsico en el disco solo cuando es requerido. Cuando una pgina en la fuente de la base de datos es actualizada por primera vez, la imagen original de esa pgina es copiada a la snapshot de la base de datos. (Actualizaciones subsiguientes de la misma pgina no incurren en copias adicionales sobre la misma.) Si una pgina 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 pgina 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 pgina correspondiente en la fuente de la base de datos. Esta redireccin es transparente para el usuario.

Cmo Administrar Snapshots de Base de Datos

Crear un Snapshot Crea una snapshot de base de datos usando el comando CREATE DATABASE con la clusula AS SNAPSHOT, como muestra el siguiente ejemplo:
CREATE DATABASE database_snapshot_name ON <filespec>[,...n] AS SNAPSHOT OF source_database_name

El siguiente cdigo 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 clusula ON debe incluir un archivo para cada fila de datos usado en la fuente de la base de datos, Aunque no debera especificar los parmetros SIZE, MAXSIZE, o FILEGROWTH.

Nota La clusula 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 mltiples snapshots. Por lo tanto es recomendado que usted adopte una conversin 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 rpidamente, as que es recomendado que si agenda la creacin de snapshot, tambin agende trabajos de borrado de las versiones anteriores de la snapshot. Tip Puede descubrir la fuente de la base de datos para una consulta de la snapshot de base de datos consultando la vista de catlogos 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 tambin 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. ! Catlogos Full-text no pueden ser propagados al snapshot de la base de datos, y catlogos full-text no pueden ser creados sobre los snapshots de la base de datos. ! La ubicacin fsica 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.

Cmo usar una Snapshot de Base de Datos para Restaurar Datos

Introduccin

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 recuperacin de peso pequeo que no debera ser usado como un sustituto para implementar un backup comprensivo y recuperacin estratgica. Escenarios Aplicables Una variedad de situaciones puede terminar en la prdida de datos, desde borrar algo por accidente de una tabla o modificacin de una simple row hasta corrupcin o prdida del archivo de la base de datos. La naturaleza de la snapshot de la base de datos la hace ideal para recuperar desde una aplicacin hasta un error de un usuario que pueden borrar una row o una actualizacin por accidente, o borrar una tabla. Restaurar datos de una snapshot de base de datos es ms rpido y fcil que realizar una operacin de restauracin desde una base de datos de backup. Sin embargo, el mecanismo copy-onwrite 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. Tambin 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 propsitos de recuperacin. Importante Debe recordad que estos tipos de statement de recuperacin, solo recuperan los datos que usted especifica explcitamente, y cuando restaura datos usando estos mtodos, cualquier otra modificacin hecha a los datos en el periodo subsecuentes era perdido.

Escenario 1: Recuperar rows Puede recuperar rows borradas de una tabla copindolas 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

Es de prctica comn desafiliar cualquier restriccin cuando se copia un nmero grande de rows dentro de una tabla, para propsitos 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 Actualizacin Puede usar tcnicas 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 tena 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: tambin 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, tambin contendr definiciones de las restricciones de la tabla y los triggers adjuntos a la tabla. 3. Use la tcnica 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.

Operaciones de Backup y Restauracin


Introduccin Las tareas de backup y restauracin 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 seccin describe como realizar las operaciones de backup y restauracin usando las nuevas features en SQL Server 2005. Objetivos
! ! ! ! ! !

Hacer backup de una base de datos. Restaurar una base de datos. Realizar una restauracin 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 restauracin.

Cambios para hacer un Backup de la Base de Datos

Introduccin 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 permitan remover y truncar una porcin inactiva de un log sin tener que hacer una copia de el. Usar Transact-SQL para Realizar un Backup El siguiente cdigo muestra la sintaxis bsica 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 lgico de un dispositivo predeterminado o el tipo y nombre fsico 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.

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. Conctese 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 quera hacer el backup. 3. Haga botn 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 tambin suficiente informacin de logs para asegurar una recuperacin consistente luego del proceso de restauracin. Si algunas transacciones estn en proceso cuando el backup es hecho, el backup incluye pasos de log para alcanzar un estado consistente. Backup Parcial Backups completos y diferenciales tambin soportan un nuevo tipo de backup, el backup parcial. Esto es diseado 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, tambin. Un backup parcial tambin incluye todos los datos en cualquier grupo de archivos lectura/escrituray en cualquier grupo de archivos especficamente 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 relacin 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 opcin 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, automticamente ser incluido en el prximo 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 automticamente en el prximo backup parcial diferencial. Backups Copy-only El SQL Server 2005 incluye una nueva opcin de statement BACKUP que le permite hacer una copia de la base de datos para un propsito especifico, por ejemplo, testear sin alterar la secuencia normal de sus log backups diferencial y transaccional. Use la opcin COPY_ONLY para crear datos o log backup que es independiente de los otros backups de una base de datos especfica, como muestra el siguiente ejemplo de cdigo:
BACKUP DATABASE AdventureWorks TO AWBackup WITH COPY_ONLY

Si usa la opcin 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 restauracin.

Cambios en la Restauracin de Base de Datos

Introduccin Puede implementar operaciones de restauracin offline en SQL Server 2005 usando la statement RESTORE en casi la misma forma que en las versiones anteriores. Puede usar tambin el SQL Server Management Studio para restaurar la base de datos y logs. La statement RESTORE contiene una nueva opcin, 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 opcin 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 opcin STOPAT para restaurar un log en un punto especfico en el tiempo. En SQL Server 2005, esta funcionalidad tambin ha sido agregada a la statement RESTORE DATABASE. Por ejemplo, el siguiente cdigo 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 Restauracin Parcial Mientras ejecuta una operacin de backup parcial para hacer backup del grupo de archivos principal, otros grupos de archivos read/write, y otros grupos read-only especficos, tambin puede ejecutar una restauracin parcial de los mismos tems. Usualmente, un proceso de restauracin es requerido por un 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 restauracin 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 tambin pueden ser tiles para crear subsets de datos con servidores no conectados. El siguiente cdigo muestra como ejecutar una restauracin 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 Restauracin 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 operacin de restauracin, por lo tanto reduce el tiempo que la base de datos esta offline. Restauracin Page-level es tambin una tcnica particular para restaurar pginas daadas aisladas. Si tiene que restaurar mltiples paginas en el mismo archivo, debera usar restaurar el archivo. Use la opcin PAGE en la clusula file_or_filegroup para la statement RESTORE DATABASE para realizar una restauracin 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 pgina que contienen errores usando informacin hexadecimal del log de error del suspect_page_table en msdb. Por ejemplo, el siguiente cdigo restaurara la pgina nmero 832 en el archivo AdventureWorks_data_1 del dispositivo de backup AWBackup:
RESTORE DATABASE AdventureWorks PAGE = AdventureWorks_data_1:832 FROM AWBackup

Operaciones de Restauracin La edicin de SQL Server 2005 Enterprise Edition soporta el concepto de restauracin piecemeal, que le permite restaurar grupos de archivos en stages, trayendo a cada grupo online mientras avanza. Puede usar este mtodo para reducir en gran medida el tiempo total en el cual la base de datos esta siendo restaurada, solo restaurando los archivos daados, resturelos por orden de importancia, y ponga cada grupo de archivos online lo antes posible. El comportamiento de la restauracin piecemeal vara dependiendo del modelo de recuperacion de su base de datos: ! Modelos de recuperacion completa y bulk-logged.

Restauracin 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. Restauracin Piecemeal comienza con una restauracin 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 estn online, puede restaurar cualquier otro archivo daado disponible en la base de datos.

Cmo Realizar una Restauracin Online

Introduccin El SQL Server 2005 Enterprise Edition introduce un nuevo concepto de restauracin online de backups debe SQL Server 2005. Por defecto, en esta edicin, 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 restauracin en los modelos completos y bulk-logged . (No soporta modelos de restauracin simples.) Restauracin de Archivos Online Durante la restauracin 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 automticamente online. Restauracin de Paginas Online La restauracin online asegura que la restauracin de pginas daadas aisladas tiene poco impacto sobre el sistema completo de la base de datos. Generalmente, las pginas daadas sern listadas en el log de error de la base de datos. Por ejemplo, si trata de acceder a una pagina daada, un error ocurrir y se har una entrada en el log de error. Puede usar esta informacin para localizar la pgina individual y restaurarla de un backup valido.

Confiabilidad Media

Introduccin Ms all de su estrategia de restauracin, 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 durante los procesos de backup y restauracin, permitindole 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 Restauracin

Puede usar la opcin CHECKSUM de la statement BACKUP para calcular una checksum en cada pgina de datos y verificar esta checksum antes de escribir la informacin a su backup media. Esto le ayudara a asegurarse que solo datos validos sern escritos cuando haga el backup de archivos. El siguiente ejemplo de cdigo muestra como usar la opcin CHECKSUM:
BACKUP DATABASE AdventureWorks TO AWBackup WITH CHECKSUM

Por defecto, si ocurre un error durante la creacin del proceso checksum, el backup falla. Este comportamiento puede ser evitado usando la opcin CONTINUE_AFTER_ERROR escrita abajo. Los checksums computados son escritos en el backup media. Pueden ser usados durante el proceso de restauracin para una vez mas, verificar los datos cuando son ledos del backup, antes que sea finalizado a la base de datos restaurada. Use la opcin CHECKSUM del statement RESTORE para instruir al SQL Server a verificar los datos antes de restaurarlos, como muestra el siguiente ejemplo de cdigo:
RESTORE DATABASE AdventureWorks FROM AWBackup WITH CHECKSUM

Puede forzar al SQL Server a log, pero no fallar, cuando encuentra errores de checksum usando la opcin CONTINUE_AFTER_ERROR. La statement RESTOREVERIFYONLY ha sido mejorada para incluir la opcin CHECKSUM y permitirle verificar los datos antes de intentar restaurarlos. Nota Debe usar la opcin 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 restauracin de sus datos a travs del uso de un backup media mirroring. Este mtodo 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 cdigo muestra como usar la opcin MIRROR TO en el statement BACKUP:
BACKUP DATABASE AdventureWorks TO AWBackup MIRROR TO AWMirror WITH FORMAT

Nota Cuando usa la opcin MIRROR TO, tambin debe incluir la opcin 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 restauracin posible aunque el otro miembro este daado. Continuar Luego de Errores El statement RESTORE en SQL Server 2005 incluye un nuevo punto que le permite completar una operacin de restauracin completa aunque un error aparezca durante el procesos. Usando la opcin CONTINUE_AFTER_ERROR cauda al SQL Server simplemente intentar log el error y continuar con su trabajo, como muestra el siguiente cdigo:
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 verificacin 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 operacin de restauracin, la cual entonces fallara. Si los errores ocurren, la base de datos es marcada SUSPECT al final del proceso de restauracin, permitindole chequear manualmente que errores ocurrieron y que impacto habrn tenido en su base de datos.

Cmo Recuperar la Base de Datos Master

Introduccin Si su base de datos master es daada, puede necesitar o simplemente restaurar la base de datos o reconstruirla completamente. Restaurar la Base de Datos Master 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 ms 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 lnea de comando, navegue a la carpeta de instalacin de SQL Server y tipee el siguiente cdigo:

sqlservr.exe -c .m

2. Ejecute una operacin de restauracin de un backup de una base de datos completa:


RESTORE DATABASE master FROM masterbackup

Si hizo algn 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 razn, cuando realiza un cambio a master (por ejemplo, cambiar una configuracin 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 restauracin es completado, el SQL Server es parado automticamente. 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 daada severamente, puede ser que no pueda iniciar una instancia de SQL Server. En esta situacin, debera reconstruir una versin 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 reconstruccin esta completa, puede restaurar su versin 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.

Modulo 8 Disponibilidad de Datos y Replicacin en SQL Server 2005 Introduccin a la Disponibilidad de Datos Failover Clustering Database Mirroring Mejoras en Replicacin

Introduccin a Disponibilidad de Datos

Introduccin Idealmente, un sistema de base de datos debera estar disponible las 24 horas del da, cada da. En realidad, esto no es siempre posible, hay tcnicas que puede usar para incrementar la disponibilidad de sus aplicaciones. El SQL Server 2005 provee tres tecnologas 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 estn 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 tambin extiende la funcionalidad de clustering para permitirle ver el clustering en conjuncin con Analysis Services, Notification Services, y SQL Server Replication.
!

Log shipping Log shipping provee un calido standby de sus datos que puede ser trado online en caso de falla del sistema. Una base de datos completa es restaurada a un servidor secundario, y luego los logs de transaccin de la base de datos primaria son aplicados constantemente a la base de datos secundaria. Este es un costo relativamente bajo a la solucin 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 rgimen estricto de backup las bases de datos master y msdb en el servidor primario y restaurarlos en el secundario. Sin este rgimen, 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 tcnica disponible en SQL Server 2005 Enterprise Edition que provee una versin mejorada de log shipping para un failover mas rpido. En lugar de shipping transaction logs e una constante, intervalos configurados, cada transaccin es shipped mientras que es aplicada al servidor primario. No puede configurar un mirror set para automticamente fail over en el caso en que el servidor primario falle, y puede programar aplicaciones de cliente para automticamente 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 correccin de su sistema de base de datos. Seleccione una Solucin de Alta Disponibilidad Es importante entender que ninguna de las soluciones de alta disponibilidad en SQL Server 2005 es una opcin aislada. Puede combinar dos o ms tcnicas dentro del mismo sistema para cubrir todas las eventualidades. La siguiente tabla compara y contrasta tres de las tecnologas de alta disponibilidad en SQL Server 2005.

Atributo Disponible

Clustering

Log shipping

Database mirroring Si Si Menos de tres segundos Si en algunas configuraciones Si No No Base de datos de Usuario

Deteccin de Falla Failover Automtico Perceived downtime Potencial de datos perdidos Masking of storage failure Requerimientos especiales de hardware Distancia limitada Rango

Si Si 30 segundos + recupero Si una copia de datos Sin disco compartido Almacenamiento y servidores certificados Yes.about 100 miles Base de datos de sistema y usuario

No No N/A Si la ultima transaccin log Si No No Base de datos de usuario

Puede usar replicacin en combinacin con soluciones de alta disponibilidad para dar mayor proteccin de datos de su sistema.

Introduccin a Mirroring de Base de Datos

Introduccin Mirroring de base de datos puede proveer una solucin failover casi instantnea para las bases de datos SQL Server 2005. En esta edicin, 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 seccin le ensea el concepto de mirroring una base de datos. Objetivos de la seccin Luego de completar esta seccin, 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 sesin 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?

Introduccin Mirroring de base de datos es una solucin 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 tenan las versiones anteriores de SQL Server y provee una alternativa fcil al clustering failover. Definicin Mirroring de base de datos funciones manteniendo un servidor en standby que tiene un copia de la base de datos. Si el servidor de produccin falla, las aplicaciones pueden ser redireccionadas al servidor en standby. El failover puede ser la mas instantnea, tpicamente necesita de menos de tres segundos si es realizada automticamente.

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 trminos 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. Redireccin 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 redireccin 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 sesin del cliente ser perdida. El cliente intentara reconectarse al servidor principal, pero si falla, automticamente redireccionara la conexin 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 sincronizacin. Para permitir hacer el mirror, la base de datos mirror debe ser creada, y todos los cambios realizados a la base de datos principal tambin deben ser aplicados a la base de datos mirror. Mientras que esto sucede, la base de datos principal y la mirror estn en estado de sincronizacin. " Estado de sincronizacin. Una vez que la base de datos mirror se actualizo con la base de datos principal, ambas estn en estado de sincronizacin. Todos los cambios hechos a la base de datos principal sern automticamente hechos en la base de datos mirror para asegurarse que permanecen sincronizadas. " Estado desconectado. Si un servidor pierde conexin 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 transicin que realiza cada base de datos son descriptas en mas detalle en esta leccin. Modos de Operacin Los mirror de las bases de datos pueden operar en dos modos, que determinan el grado de exposicin 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 expensas del tiempo adicional que requiere completar una transaccin. Este modo soporta failover manual y automtico. " 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 comunicacin 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 administracin 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.

Rol de los Servidores en el Mirroring de Base de Datos

Introduccin 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 automtico. 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 conexin confiable. Idealmente, ambos servidores deben pertenecer al mismo dominio. Servidor Testigo Un Servidor Testigo monitorea los servidores de base de datos principal y mirror y verifica que ambos servidores estn 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 configuracin en curso de set de mirrors, son descriptas mas tarde en esta seccin.

Sesiones de Mirror

Introduccin 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 sesin mirror Cuando un administrador de base de datos inicia un una sesin 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 sincronizacin de la sesin mirror. Durante la sesin 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 operacin de la sesin mirror (sincronizada o desincronizada) determina si los registros de log de transacciones sern aplicados a la base de datos mirror antes o despus que las transacciones se completen en la base de datos principal. Una sesin mirror mantiene la informacin acerca del estado de cualquiera de los servidores testigo, asegurndose que el servidor testigo esta visible y puede monitorear a los partner servers. Terminar una Sesin Mirror Una sesin puede ser terminada por una variedad de causas, las mas comunes son: Falla en la comunicacin de los servidores Si el servidor principal se vuelve inaccesible, el servidor mirror puede ser hecho el servidor principal. Esto puede ocurrir automticamente, dependiendo del modo de operacin en la sesin mirror y la presencia de un servidor testigo.
!

Intervencin manual del administrador de la base de datos. El administrador de la base de datos puede terminar manualmente el mirroring usando comandos Transact-SQL ALTER DATABASE. una sesin 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 sincronizacin otra vez hasta que la sesin continu.)
!

Nota Luego que una sesin mirror ha comenzado, los usuarios no podrn 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 sesin mirror son descriptos mas detalladamente en esta seccin.

Configuraciones de Base de Datos Mirroring


Introduccin 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 operacin (sincronizado o desincronizado). Para establecer cualquier tipo de sesin mirror, primero debe restaurar la base de datos desde el servidor principal dentro del servidor mirror, y luego aplicar los logs de transaccin al servidor mirror. Luego puede establecer la sesin usando las statement ALTER DATABASE con la clusula SET PARTNER en cada servidor. tiene la opcin de crear un servidor testigo usando la stament ALTER DATABASE con la clusula SET WITNESS. Una vez que la sesin es iniciada, las transacciones que ocurran en el servidor principal sern mirrored en el servidor mirror. Diferentes configuraciones tendrn diferentes comportamientos ambas durante la sesin 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 automtico 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 operacin sincronizada, las transacciones no son comprometidas en el servidor principal hasta que hayan sido entradas en el log de transaccin 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 continuacin: Servidor Principal. Si el servidor principal se vuelve no disponible por cualquier razn, 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 sesin mirror 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 configuracin 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 configuracin es particularmente til cuando hay una larga distancia o tardanza entre los servidores principal y mirror. En el modo de operacin 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 comunicacin del servidor mirror. El comportamiento cuando un servidor en un set de mirror desincronizado se vuelve no disponible es descrito a continuacin: Servidor Principal. Si el servidor principal no esta disponible, el servidor testigo no puede iniciar failover automtico 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 sesin.
!

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 configuracin 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 automtico no puede ocurrir porque no hay suficientes servidores para formar una decisin qurum 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 continuacin: Servidor Principal. Si el servidor principal se vuelve no disponible, la base de datos tambin se vuelve no disponible. Forzar manualmente al servidor mirror a servir y resumir la sesin 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 accin es para maximizar la proteccin 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 automticamente otra vez.
!

Configurar Mirroring de Base de Datos

Introduccin Crear una sesin mirror envuelve configurar un Server mirror, estableciendo una sesin, y , opcionalmente, establecer un servidor testigo. Otras tareas de administracin incluyen inicializar failovers manualmente para propsitos de mantenimiento y terminar sesiones. Esta seccin le mostrara como configurar y usar mirroring de una base de datos. Objetivos de la seccin Luego de completar esta seccin, usted podr: ! Configurar un servidor mirror. ! Configurar mirroring endpoints. ! Establecer una sesin mirror. ! Establecer un servidor testigo. ! Administrar sesiones mirror. ! Configurar mirroring de base de datos.

Como Configurar un Servidor Mirror

Introduccin Antes de configurar un mirroring de base de datos y establecer una sesin 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. Debera 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 recuperacin 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 clusula WITH NORECOVERY. Nota Es importante que use la opcin WITH NORECOVERY, porque la base de datos mirror debe permanecer en el estado de restauracin para que los registros de transaccin log sean aplicados durante el mirroring.

Cmo Configurar Mirroring Endpoints

Introduccin Antes de establecer una sesin mirror, debe configurar el mecanismo de configuracin 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 tambin 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 mltiples de SQL Server participando en una sesin 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 cdigo crea partners endpoint llamados mirroring_ep y especifica que debe volverse activo inmediatamente seteando el parmetro STATE a STARTED. Tambin 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 tambin 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, tambin 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 exclusin que necesita especificar el rol WITNESS. El siguiente cdigo 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.

Cmo Establecer una Sesion Mirror

Introduccin Luego de haber preparado el servidor y base de datos mirror y crear el endpoint apropiado, debe iniciar una sesin mirror estableciendo el servidor de base de datos principal y mirror como partners. Los siguientes ejemplos estn basados asumiendo que quiere hacer un mirror de la base de datos AdventureWorks en el servidor London al servidor Manchester. El ejemplo tambin asume que el puerto TCP por defecto 5022 es usado por el mirroring endpoints en cada servidor. Crear un mirroring en una Relacin de Partners Corra el comando ALTER DATABASE con la clusula SET PARTNER para crear una relacin 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 direccin endpoint del servidor principal como el parmetro server_network_address. Esto pondr a la base de datos mirror en un estado listo para iniciar la sincronizacin 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 sincronizacin, corra el comando ALTER DATABASE en el servidor principal, especificando el servidor mirror como el parmetro 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 sincronizacin y la sesin mirror comenzaran; ambas bases de datos pasar al estado de sincronizacin antes de entrar al estado sincronizado. Cambiar el Modo de Operacin

Por defecto, una sesin de mirror opera en modo sincronizado. puede cambiar el modo de operacin de una sesin mirror usando el comando ALTER DATABASE con la clusula SET PARTNER SAFETY en cualquier servidor partner:
ALTER DATABASE database_name SET PARTNER SAFETY <safety_mode>

El parmetro safety_mode puede estar en OFF (para modo desincronizado), o FULL (para modo sincronizado). Por ejemplo, especificar el modo sincronizado para la sesin mirror configurada antes, ejecute el siguiente comando en cualquier servidor, el London o el Manchester:
ALTER DATABASE AdventureWorks SET PARTNER SAFETY FULL

Ver Informacin de Mirrors en Relacion de Partners Puede consultar la vista del catalogo sys.databases para examinar la relacin de partners mirror entre bases de datos. La siguiente tabla describe las columnas conteniendo informacin de mirroring til.

Columna mirroring_state_desc

Descripcin Una descripcin textual del estado de la base de datos. Esta columna tendr alguno de los siguientes valores: DISCONNECTED SYNCHRONIZED SYNCHRONIZING SUSPENDED PENDING_FAILOVER La direccin de red del mirroring partner. La direccin de red del servidor testigo, o nada si no hay testigo presente. Una descripcin textual del estado del servidor testigo. Esta columna tendr algunos de los siguientes valores: UNKNOWN CONNECTED DISCONNECTED Una descripcin del rol de la base de datos. Esta columna tendr los siguientes valores: PRINCIPAL MIRROR Una descripcin del modo de operacin de la base de datos. Esta columna tendr los siguientes valores: UNKNOWN OFF (desincronizado) FULL (sincronizado)

mirroring_partner_name mirroring_witness_name mirroring_witness_state_desc

mirroring_role_desc

mirroring_safety_level_desc

mirroring_safety_sequence mirroring_failover_lsn

Actualiza el numero de secuencia por cambios de transaccin a nivel de seguridad. EL numero de secuencia de log en el ultimo failover.

Nota Si una base de datos no participa en una sesin mirror, todas las columnas mirror en sys.databases para esa base de datos, contendrn valores null. Tambin 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.

Cmo Establecer un Servidor Testigo

Introduccin Si quiere implementar el failover automtico, 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 clusula SET WITNESS en el servidor principal para crear un servidor testigo:
ALTER DATABASE database_name SET WITNESS = 'server_network_address'

Especifique la direccin 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 sesin 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 automtico correr si la sesin mirror es establecida usando el modo de operacin sincronizado, un servidor testigo ha sido creado, y las bases de datos principales y mirror estn corriendo en computadoras separadas.

Remover un Testigo Puede deshabilitar un testigo de una sesin mirror usando el siguiente comando en cualquiera de los servidores partner:
ALTER DATABASE database_name SET WITNESS OFF

Con el servidor testigo deshabilitado, la sesin mirror continuara, pero el failover automtico no ser posible y el failover deber ser realizado manualmente. Nota El failover manual solo es posible si la sesin mirror es usada en el modo de operacin sincronizado. Ver Informacin del Servidor Testigo La vista de catalogo sys.database_mirroring_witnesses contiene informacin acerca del servidor testigo. Las columnas de inters de esta vista estn resumidas en la siguiente tabla.
Columna database_name principal_server_name mirror_server_name safety_level_desc Descripcin La direccin de red de la base de datos sobre la cual se esta haciendo el mirror. La direccin de red del servidor que tiene la base de datos principal. La direccin de red del servidor que tiene la base de datos mirror. Una descripcin textual del modo de operacin en curso. Esta columna tendr los siguiente valores: UNKNOWN OFF (desincronizado) FULL (sincronizado)

Cmo Administrar Sesiones Mirror

Introduccin En presencia de un servidor testigo, el failover ocurrir automticamente 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 estn sincronizadas, el failover no puede ocurrir y debe forzar el servicio a hacer el mirror de la base de datos. Tambin puede suspender y resumir una sesin 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 clusula SET PARTNER FAILOVER en el servidor principal para iniciar un failover manual:
ALTER DATABASE database_name SET PARTNER FAILOVER

El servidor mirror completara cualquier recuperacin 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 sesin mirror usa el modo de operacin 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 clusula 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, tambin ser marcado como suspendido. Suspender y Resumir Sesiones Mirror

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 sesin causa que todas las logs de transaccin en el servidor principal crezcan mientras que cada transaccin es logged y almacenada. Hasta que la sesin mirror es resumida o terminada, el log de transaccin del servidor principal no puede ser truncado porque la transaccin aun tiene que ser aplicada al servidor mirror. Use el comando ALTER DATABASE con la clusula SET PARTNER SUSPEND en cualquier servidor para suspender la sesin:
ALTER DATABASE database_name SET PARTNER SUSPEND

Para resumir la sesin, use el comando ALTER DATABASE y con la clusula SET PARTNER RESUME:
ALTER DATABASE database_name SET PARTNER RESUME

Terminar la Sesin Mirror Puede terminar manualmente la sesin mirror y terminar la relacin entre los servidores. Terminar la sesin borra toda la informacin acerca de la sesin 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 restauracin hasta que sea recuperada o borrada manualmente. Use el comando ALTER DATABASE con la clusula SET PARTNER OFF en cualquier servidor para terminar la sesin:
ALTER DATABASE database_name SET PARTNER OFF

Modulo 9 Replicacin en SQL Server 2005 Introduccin a la Replicacin de Datos Mejoras en Replicacin

Introduccin
Introduccin de mejoras en la replicacin Nuevos tipos de replicacin Configurando replicacin

Introduccin

La replicacin de Microsoft SQL Server es comnmente utilizada para distribuir datos a travs de la infraestructura para acercar los datos a los usuarios. En este modulo usted aprender acerca de la nueva funcionalidad y mejoras en replicacin en SQL Server 2005. Los administradores de base de datos que tengan implementados esquemas de replicacin con versiones previas de SQL Server podrn aprender acerca de las mejoras para configurar y administrar la replicacin ms fcilmente. Estas mejoras introducen tambin capacidades nuevas para distribuir datos.

Introduccin a las mejoras de replicacin


Mejoras de la interface de usuario Administracin de replicacin Performance y escalabilidad Monitoreo de replicacin Otras mejoras

Se han realizado algunos cambios en la funcionalidad y las caractersticas de replicacin en SQL Server 2005. Los asistentes de configuracin hacen mas simple la utilizacin, y la performance y escalabilidad han sido mejoradas. En esta seccin, usted aprender acerca de las mejoras y nuevas caractersticas.

Mejoras de interface de usuario


Introduccin Los elementos de interface de usuario en SQL Server para configuracin, administracin, y monitoreo han sido rediseados en SQL Server 2005.

Mejoras en los asistentes


Los asistentes que se utilizan para controlar la replicacin en SQL Server 2005 incluyen las siguientes mejoras: 40% menos paginas (en promedio) Paginas simplificadas Mejoras en valores por defecto y auto-deteccin

Como con otros asistentes en SQL Server 2005, puede usar los asistentes de replicacin para implementar o simplificar la generacin de scripts de su implementacin para ejecutarlos mas adelante en otra instancia de SQL Server.

Nuevo asistente para actualizacin de suscripciones


En versiones previas de SQL Server, existen dos asistentes para configuracin 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 simultneamente mltiples suscripciones con propiedades diferentes de publicacin. Esto puede disminuir considerablemente el esfuerzo de configuracin de replicacin para instalaciones pequeas porque usted genera las suscripciones corriendo una sola vez el asistente. Para instalaciones grandes, usted puede continuar generando los scripts con menor esfuerzo administrativo.

Administracin de la replicacin
Inicializacin de subscriber Backup y restore Copiando una base de datos Snapshots dinmicos Resumiendo trasferencias snapshot Replicando DDL statements Habilitando anonymous subscriptions para todas las publicaciones
Introduccin SQL Server 2005 incluye algunas caractersticas nuevas y otras actualizadas que le ayudan a administrar la replicacin. En esta seccin se detallan las caractersticas nuevas y actualizadas en SQL Server 2005.

Inicializacin de subscriber

En versiones previas de SQL Server, se inicializa la base de datos del subscriber usando una replicacin snapshot. Cuando usted trabaja con bases de datos grandes, esto consume demasiado tiempo. SQL Server 2005 introduce nuevas caractersticas 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 replicacin. Copia de base de datos Se puede tambin inicializar la base de datos del subscriber usando mtodos Standard de copia de base de datos, como attach DB en el suscriber o usar un DTS package. Cuando use alguno de estos mtodos, usted debe asegurarse que los datos y schema correctos estn presentes en el distribution agent para copiar la metadata y system procedures al subscriber. Snapshots dinmicos Usted puede usar snapshots dinmicos como snapshots iniciales para filtrar merge replication subscriber. La principal ventaja de estos mtodos es que la base de datos de suscripcin inmediatamente est disponible cuando usted crea la suscripcin, eliminando el tiempo de espera para el proceso de inicializacin.

Resumiendo transferencias snapshot


Si la entrega de un snapshot es interrumpida, el snapshot agent automticamente reinicia la entrega y enva los archivos que estn incompletos. Esto puede reducir la ocurrencia de problemas cuando inicializa cualquier tipo de replicacin sobre vnculos 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 replicacin. Estos tipos de cambios son replicados una vez que los cambios en los datos estn hechos durante el prximo periodo de replicacin. En SQL Server 2005, los cambios al schema usando los siguientes data definition language (DDL) statements son replicados automticamente:
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 publicacin a False. Cuando desarrolle scripts, usted puede llamar al stored procedure sp_changepublication usando la parmetro replicate_ddl habilitado y deshabilitado de replicacin 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 administracin de publicaciones con mltiples subscribers. En SQL Server 2005, todas las suscripciones pueden ser creadas sin predefinir en el publisher. Esto puede reducir las tareas asociadas a la administracin con la creacin de suscripciones para publicaciones populares.

Performance y escalabilidad

Introduccin

Cuando fue desarrollada la replicacin en SQL Server 2000, el objetivo fue la habilidad de dar servicio a cientos de subscribers. El uso de la replicacin se ha incrementado hacia SQL Server 2005 para poder dar servicio a cientos de suscriptores de una publicacin. Como resultado, un nmero de caractersticas nuevas y mejoras se agregaron a la replicacin de SQL Server para mejorar la performance y la escalabilidad del producto.

Particiones Precomputadas

Cuando usa dynamic filtering en una replicacin merge, los cambios en una row pueden solo ser necesarios como una replicacin 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 sincronizacin 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 sincronizacin. SQL Server 2005 introduce el concepto de precomputed partitions que evala si los miembros de una particin 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 replicacin 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 opcin de Independent Agent de la publicacin para habilitar a un distribution agent a ser utilizado por publicacin o por subscriber. En SQL Server 2005, esta opcin esta habilitada por defecto para asegurar la disponibilidad de la mejor performance.

Descarga y upload de artculos En algunos escenarios de replicacin merge, los cambios son hechos nicamente en el Publisher y subscribers que usan un subset de datos. Sin embargo, esto no es un requerimiento para merge de datos, y la metadata que no cambia necesita ser transmitida sobre el cable. Si la publicacin cumple con estos requerimientos y es marcada como download- only article, la performance de la red mejora notablemente.

Reduccin de contencin

Usted puede usar algunas de las nuevas caractersticas en SQL Server 2005 para reducir la contencin en los subscribers creados con el propsito de reporting. Si una publicacin con gran numero de subscribers require up-to-the-minute data, usted puede usar snapshot isolation level para reducir la contencin.

Replication Monitor
Introduccin SQL Server 2005 incluye una nueva herramienta de Replication Monitor que permite el monitoreo de la replicacin 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 aplicacin separada, el Replication Monitor puede trabajar en modo pasivo sin afectar el trabajo del server.

Otras mejoras
Introduccin

SQL Server 2005 incluye tambin otra mejoras a la funcionalidad de la replicacin que le ayudan a administrar sistema de replicacin. Mejoras en concurrencia de replicacin Merge Usted puede buscar issues de concurrencia que ocurren cuando una replicacin merge falla en el proceso. Si la publicacin 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 artculos. Esto garantiza que las rows sean entregadas juntas, asegurando que no ocurran issues de concurrencia. Replicacin de ms tipos de objetos

SQL Server 2005 habilita la replicacin de mas tipos de objetos que en versiones anteriores. Por ejemplo, puede replicar .NET user defined types (UDTs) y .NET assemblies.

Nuevos tipos de replicacin

Replicacin heterognea Replicacin transaccional Peer-to-Peer Replicacin HTTP


Introduccin

SQL Server 2005 incluye tres nuevos tipos de replicacin: publicacin de datos desde una base de datos Oracle, replicacin peer-level, y sincronizacin Web. En esta seccin, usted aprender acerca de estos nuevos tipos de replicacin y le pueden ayudar en la mejora de funcionalidad y escalabilidad.

Replicacin heterognea
Introduccin

En SQL Server 2000, usted puede publicar datos a subscribers heterogneos, como Oracle y DB2, usando drivers ODBC relevantes y OLE DB provider. Sin embargo, la nica forma de suscribir a datos de esos orgenes de datos es construir aplicaciones a medida o de terceras partes. SQL Server 2005 introduce la funcionalidad necesaria para utilizar datos de Oracle versin 8 y posteriores como orgenes de datos en funcionalidad publishers dentro de la topologa de replicacin. Usted puede configurar replicacin transaccional y snapshot desde SQL Server sin requerir software adicional y con mnimos conocimientos de Oracle. Replicacin Snapshot desde un Publisher Oracle

La replicacin 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 informacin en la base de datos Oracle. Replicacin Transaccional desde un Publisher Oracle

La replicacin transaccional requiere el seguimiento de cada transaccin 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 ms fcil 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 despus transfiere esos cambios a los subscribers en forma normal.

Replicacin transaccional Peer-to-Peer

Introduccin

SQL Server 2005 introduce el concepto de replicacin peer-to-peer para incrementar la capacidades de server scale-out de los sistemas SQL Server. En replicacin 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 clsica replicacin transaccional es que no existe un sistema de jerarqua entre los nodos, es decir todos tiene la misma participacin sobre los cambios de los datos, sin embargo el esquema utilizado sigue siendo el de replicacin transaccional.

Replicacin HTTP

Introduccin

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 mtodos 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 caracterstica provee a usted la habilidad de replicar directamente sobre una conexin HTTP o HTTPS. Esta es una solucin ideal para usuarios mviles que necesitan replicar cambios a travs de un firewall. Como trabaja la replicacin HTTP La replicacin 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 parmetros de autentificacin configurados en los mensajes de suscripcin. Los mensajes de actualizacin son enviados en formato XML y pueden ser encriptados usando Secure Sockets Layer (SSL). Porque la replicacin HTTP utilice tecnologa de merge, las actualizaciones pueden ser generadas tanto en el publisher como en el suscriber.

Configurando replicacin

Como configurar Replicacin usando SQL Server Management Studio


Introduccin

Usted puede utilizar SQL Server Management Studio para configurar y administrar replicacin en SQL Server 2005. La interface de usuario contiene nuevos asistentes para la configuracin de la replicacin y nuevas opciones en los cuadros de dialogo de Properties.

Creando una publicacin


Utilice el siguiente procedimiento para crear una publicacin 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 botn derecho en Publications, y luego clic en New Publication. 3. Utilice el asistente New Publication para configurar lo siguiente: a. Base de datos de Publicacin. b. Tipo de publicacin. 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. Artculos a publicar. e. Filtros a Artculos. f. Snapshot agent schedule. Creando una suscripcin

Utilice el siguiente procedimiento para crear una suscripcin usando el asistente New Subscription en SQL Server Management Studio: 1. Conecte el suscriber en Object Explorer, expanda el nodo server y el nodo Replication. 2. Haga botn derecho en Subscriptions, y luego click en New Subscriptions. 3. Utilice el asistente New Subscription para configurar lo siguiente: a. Publisher y publicacin.

c. d. e. f.

b. Tipo de suscripcin. Elegir entre: Push subscription Pull subscription Base de datos del Subscriber y suscripcin. Cuentas de seguridad de Replication agent. Synchronization agent schedule. Horario de inicializacin.

Sincronizando una suscripcion Utilice el siguiente procedimiento para una sincronizacin de una suscripcin 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 botn derecho en la suscripcin 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