You are on page 1of 150

Facultad de Ingeniera Industrial y de Sistemas

C API TULO 1
Instalacin y configuracin del SQL Server 2008 Ediciones del SQL Server 2008 Requerimientos de Hardware y Software

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 1

Universidad Nacional de Ingeniera

I N S TA L A C I O N Y C O N F I G U R A C I O N S Q L S E R V E R 2 0 0 8

D E L

Una de las primeras responsabilidades que asume un DBA (Data Base Administrador), es la eleccin del software ms adecuado a las necesidades que presente la empresa. Es por esta razn que, Microsoft corp., pone a nuestra disposicin, de diferentes ediciones de su Sistema Administrador de Base de Datos SQL Server 2008.

QU ES SQL SERVER 2008?


SQL Server 2008 es una plataforma global de base de datos que ofrece administracin de datos empresariales con herramientas integradas de inteligencia empresarial (BI). El motor de la base de datos SQL Server 2008 ofrece almacenamiento ms seguro y confiable tanto para datos relacionales como estructurados, lo que le permite crear y administrar aplicaciones de datos altamente disponibles y con mayor rendimiento para utilizar en su negocio. El motor de datos SQL Server 2008 constituye el ncleo de esta solucin de administracin de datos empresariales. Asimismo, SQL Server 2008 combina lo mejor en anlisis, informacin, integracin y notificacin. Esto permite que su negocio cree y despliegue soluciones de BI rentables que ayuden a su equipo a incorporar datos en cada rincn del negocio a travs de tableros de comando, escritorios digitales, servicios Web y dispositivos mviles. La integracin directa con Microsoft Visual Studio, el Microsoft Office System y un conjunto de nuevas herramientas de desarrollo, incluido el Business Intelligence Development Studio, distingue al SQL Server 2008. Ya sea que usted se desempee como encargado de desarrollo, administrador de base de datos, trabajador de la industria de la informacin o dirija una empresa, SQL Server 2008 ofrece soluciones innovadoras que le ayudan a obtener ms valor de sus datos.

HERRAMIENTAS QUE INCLUYE EL SQL SERVER 2008


Base de datos relacional. Un motor de base de datos relacional ms segura, confiable, escalable y altamente disponible con mejor rendimiento y compatible para datos estructurados y sin estructura (XML). Servicios de rplica. Rplica de datos para aplicaciones de procesamiento de datos distribuidos o mviles, alta disponibilidad de los sistemas, concurrencia escalable con almacenes de datos secundarios para soluciones de informacin empresarial e integracin con sistemas heterogneos, incluidas las bases de datos Oracle existentes. Notification Services. Capacidades avanzadas de notificacin para el desarrollo y el despliegue de aplicaciones escalables que pueden entregar actualizaciones de informacin personalizadas y oportunas a una diversidad de dispositivos conectados y mviles. Integration Services. Capacidades de extraccin, transformacin y carga (ELT) de datos para almacenamiento e integracin de datos en toda la empresa.

Pg. 2

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas Analysis Services. Capacidades de procesamiento analtico en lnea (OLAP) para el anlisis rpido y sofisticado de conjuntos de datos grandes y complejos, utilizando almacenamiento multidimensional. Reporting Services. Una solucin global para crear, administrar y proporcionar tanto informes tradicionales orientados al papel como informes interactivos basados en la Web. Herramientas de administracin. SQL Server incluye herramientas integradas de administracin para administracin y optimizacin avanzadas de bases de datos, as como tambin integracin directa con herramientas tales como Microsoft Operations Manager (MOM) y Microsoft Systems Management Server (SMS). Los protocolos de acceso de datos estndar reducen drsticamente el tiempo que demanda integrar los datos en SQL Server con los sistemas existentes. Asimismo, el soporte del servicio Web nativo est incorporado en SQL Server para garantizar la interoperabilidad con otras aplicaciones y plataformas. Herramientas de desarrollo. SQL Server ofrece herramientas integradas de desarrollo para el motor de base de datos, extraccin, transformacin y carga de datos, minera de datos, OLAP e informes que estn directamente integrados con Microsoft Visual Studio para ofrecer capacidades de desarrollo de aplicacin de extremo a extremo. Cada subsistema principal en SQL Server se entrega con su propio modelo de objeto y conjunto de interfaces del programa de aplicacin (API) para ampliar el sistema de datos en cualquier direccin que sea especfica de su negocio.

NOVEDADES EN SQL SERVER 2008


SQL Server permite ejecutar aplicaciones de misin crtica, reduciendo costos de administracin de infraestructura de datos y brindando introspectiva e informacin a todos los usuarios. Confiable: Permite a las organizaciones ejecutar sus aplicaciones ms crticas con niveles de seguridad, confiabilidad y escalabilidad muy altos. Productivo: Permite reducir el tiempo y los costos requeridos para desarrollar y administrar sus infraestructuras de datos. Inteligente: Ofrece una plataforma integral que brinda introspectiva e informacin donde sus usuarios lo desean Nuevas funcionalidades de SQL Server 2008: Proteccin de la Informacin Cmo podra saber si ha copiado la base de datos del servidor de produccin de un cliente y lo han instalado en otra base de datos o si estn accediendo a la informacin? Con SQL 2008, puede proteger la informacin con una clave de proteccin (Encriptacin). Cmo podra saber que datos estn siendo ledos y modificados, a qu hora y por quien? SQL 2008 da la opcin de Auditora de Datos. Continuidad del Negocio Si sus clientes necesitan estar siempre en lnea con sus sistemas sin cadas, SQL 2008 ofrece mejoras en una tcnica llamada Mirroring, el cual es una copia o espejo de la base de datos. Si el disco se daa, donde reside los datos, SQL 2008 recupera la informacin de una copia reciente de los datos daados al otro equipo espejo de manera transparente.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 3

Universidad Nacional de Ingeniera Ahorro en espacio en disco, mediante la tcnica de comprensin, ahorrando costos en compra de discos si es que el volumen de la informacin de Base de Datos empieza a crecer en forma rpida. Datos Geoespaciales Poder manejar informacin geogrfica, la que hoy en da es de alta importancia en las organizaciones, con todo el tema de globalizacin Acceder a la Informacin desde cualquier lugar en cualquier momento Con SQL 2008 podre crear rpidamente aplicaciones conectadas a la base de datos con la funcionalidad de funcionar en forma desconectada y despus sincronizarlos con la base de datos central sin perder la lnea de negocio y manteniendo los datos validados Reportes Poder acceder a reportes directamente desde Word, mejoras en los tipos de grficos en los reportes, hacindolos ms entendibles y poder editar los reportes de Microsoft Office, sin saber donde fue diseado el reporte.

LAS EDICIONES DEL SQL SERVER 2008


Cada una de las ediciones que se encuentran disponibles en el mercado, est dirigida a un grupo, para responder adecuadamente a las necesidades y requisitos de estos.

EDICIONES DE SERVIDOR
Trmino Definicin
Enterprise SQL Server Enterprise es una completa plataforma de datos que proporciona (x86, x64 e escalabilidad empresarial, rendimiento, alta disponibilidad y capacidades avanzadas de IA64)1 inteligencia empresarial para ejecutar aplicaciones seguras y esenciales para la empresa. Para obtener ms informacin, vea http://msdn.microsoft.com/eses/library/cc645993(v=SQL.100).aspx . Standard (x86 y x64) SQL Server Standard es una completa plataforma de datos que proporciona facilidad de uso y capacidad de administracin. Esto incluye capacidades integradas de inteligencia empresarial para ejecutar aplicaciones de departamentos. Para obtener ms informacin, vea http://msdn.microsoft.com/eses/library/cc645993(v=SQL.100).aspx . SQL Server Standard for Small Business contiene todos los componentes tcnicos y capacidades tcnicas de SQL Server Standard y su uso est autorizado en un entorno de pequea empresa con 75 equipos o menos.

EDICIONES ESPECIALIZADAS
Trmino Definicin
SQL Server 2008 SQL Server 2008 Developer permite a los desarrolladores crear cualquier tipo de Developer (x86, aplicacin basada en SQL Server. Incluye toda la funcionalidad de SQL Server x64 e IA64) 2008 Enterprise, pero su uso est autorizado como sistema de desarrollo y pruebas, no como servidor de produccin. SQL Server 2008 Developer es una opcin ideal para las personas que crean y prueban aplicaciones. Puede actualizar SQL Server 2008 Developer para utilizarlo en produccin. Workgroup (x86 y SQL Server Workgroup es ideal para ejecutar bases de datos ubicadas en x64) sucursales y proporciona una administracin de datos confiable y una

Pg. 4

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


Trmino Definicin
plataforma de informes que incluye capacidades de sincronizacin y de administracin seguras y remotas. Web (x86, x64) SQL Server 2008 Web es una opcin con un costo total de propiedad bajo para los hosts de web y los sitios web que proporciona capacidades de administracin y escalabilidad para propiedades web, tanto de pequea como de gran escala. La plataforma de bases de datos de SQL Server Express se basa en SQL Server 2008. Es tambin la sustitucin de Microsoft Desktop Engine (MSDE). Gracias a su integracin con Visual Studio, SQL Server Express facilita el desarrollo de aplicaciones controladas por datos que tienen una gran capacidad, ofrecen un almacenamiento seguro y se implementan con rapidez. SQL Server Express es gratuito y los ISV pueden redistribuirlo (segn su contrato). SQL Server Express es ideal para conocer y crear pequeas aplicaciones de servidor y de escritorio. Esta edicin es la mejor opcin para los fabricantes de software independientes, los desarrolladores no profesionales y los aficionados que crean aplicaciones cliente. Si necesita caractersticas de base de datos ms avanzadas, SQL Server Express se puede actualizar sin problemas a versiones ms sofisticadas de SQL Server.

SQL Server Express (x86 y x64) SQL Server Express with Tools (x86 y x64) SQL Server Express con Advanced Services (x86 y x64)

Compact 3.5 SP1 SQL Server Compact 3.5 es una base de datos gratuita e incrustada, ideal para (x86) crear aplicaciones independientes que se conectan ocasionalmente para Compact 3.1 (x86) dispositivos mviles, escritorios y clientes web en todas las plataformas de Windows.

COMPONENTES QUE VIENEN A ESCOGER EN EL SQL SERVER


Componentes servidor de Descripcin

SQL Server Database SQL Server Database Engine (Motor de base de datos de SQL Server) Engine (Motor de base de incluye Database Engine (Motor de base de datos), el servicio principal datos de SQL Server) para almacenar, procesar y proteger datos; tambin incluye replicacin, bsqueda de texto completo y herramientas para administrar datos XML y relacionales. Analysis Services Analysis Services incluye las herramientas para crear y administrar aplicaciones de procesamiento analtico en lnea (OLAP) y de minera de datos. Reporting Services incluye componentes de servidor y de cliente para crear, administrar e implementar informes tabulares, matriciales, grficos y de forma libre. Reporting Services tambin es una plataforma extensible que puede utilizarse para desarrollar aplicaciones de informes. Integration Services es un conjunto de herramientas grficas y objetos programables para mover, copiar y transformar datos.

Reporting Services

Integration Services

Herramientas administracin

de Descripcin

SQL Server Management SQL Server Management Studio es un entorno integrado para tener Studio acceso, configurar, administrar y desarrollar componentes de SQL Server.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 5

Universidad Nacional de Ingeniera


Herramientas administracin de Descripcin
Management Studio permite a los desarrolladores de software y administradores con diferentes grados de experiencia usar SQL Server. Para la instalacin de Management Studio, se requiere Internet Explorer 6 Service Pack 1 o una versin posterior. Administrador configuracin Server de de El Administrador de configuracin de SQL Server proporciona SQL administracin de configuracin bsica para los servicios, protocolos de servidor, protocolos de cliente y alias de cliente de SQL Server. SQL Server Profiler proporciona una interfaz grfica de usuario para supervisar una instancia del Database Engine (Motor de base de datos) o de Analysis Services.

SQL Server Profiler

Asistente para la El Asistente para la optimizacin de Database Engine (Motor de base de optimizacin de Database datos) crea conjuntos ptimos de ndices, vistas indizadas y particiones. Engine (Motor de base de datos) Business Intelligence Business Intelligence Development Studio es un IDE para las soluciones Development Studio Analysis Services, Reporting Services y Integration Services. Para la instalacin de BI Development Studio, se requiere Internet Explorer 6 Service Pack 1 o una versin posterior. Componentes conectividad de Instala componentes para la comunicacin entre clientes y servidores, y bibliotecas de red para DB-Library, ODBC y OLE DB.

NMERO MXIMO DE PROCESADORES COMPATIBLES CON LAS EDICIONES DE SQL SERVER


SQL Server admite el nmero especificado de sockets de procesador multiplicado por el nmero de CPU lgicas en cada socket. Por ejemplo, lo siguiente se considera un solo procesador para los fines de esta tabla: Un procesador de un solo ncleo e hipersubprocesamiento con dos CPU lgicas por socket. Un procesador de doble ncleo con dos CPU lgicas. Un procesador de ncleo cudruple con cuatro CPU lgicas. SQL Server se utiliza bajo licencia para cada socket del procesador y no para cada CPU lgica.
Nmero de procesadores admitidos
Sistema operativo mximo Sistema operativo mximo 4 4 2

Edicin de SQL Server 2008


Enterprise Developer Standard Web Workgroup

Pg. 6

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


Edicin de SQL Server 2008
Express Express with Tools Express con Advanced Services

Nmero de procesadores admitidos


1 1 1

REQUISITOS DEL SISTEMA SQL SERVER 2008


Componente
Marco trabajo2

Requisito

de El programa de instalacin de SQL Server instala los siguientes componentes de software requeridos por el producto: .NET Framework 3.5 SP11 SQL Server Native Client Archivos auxiliares para la instalacin de SQL Server El programa de instalacin de SQL Server requiere Microsoft Windows Installer 4.5 o una versin posterior Una vez instalados los componentes requeridos, el programa de instalacin de SQL Server comprobar que el equipo en el que se ha instalado SQL Server 2008 tambin cumple los dems requisitos para su correcta instalacin. Para obtener ms informacin, vea Comprobar los parmetros del Comprobador de configuracin del sistema. de Los requisitos de software de red para las versiones de 64 bits de SQL Server 2008 son los mismos que para las versiones de 32 bits. Los sistemas operativos compatibles tienen el software de red integrado. Las instancias predeterminadas y con nombre independientes admiten los siguientes protocolos de red: Memoria compartida Canalizaciones con nombre TCP/IP VIA Nota La memoria compartida y VIA no se admiten en clsteres de conmutacin por error. SQL Server 2008 es compatible con entornos de mquina virtual que se ejecutan en la funcin Hyper-V de las ediciones Standard, Enterprise y Datacenter de Windows Server 2008 R2 y Windows Server 2008. La mquina virtual debe ejecutarse en un sistema operativo compatible con la edicin de SQL Server 2008 concreta que se cita ms adelante en este tema. Adems de los recursos requeridos por la particin primaria, a cada mquina virtual (particin secundaria) se debe proporcionar suficientes recursos de procesador, memoria y recursos de disco para su instancia de SQL Server 2008. Los requisitos se enumeran ms adelante en este tema.3 Dentro de la funcin Hyper-V de Windows Server 2008, se puede asignar un mximo de cuatro procesadores virtuales a mquinas virtuales que ejecuten las ediciones de 32 o 64 bits de Windows Server 2008. Se pueden asignar como mximo 2 procesadores virtuales a equipos virtuales que ejecuten ediciones de 32 bits de Windows Server 2003. Para equipos virtuales que alojan otros sistemas operativos, se puede asignar como mximo un procesador virtual a equipos

Software2

Software red

Virtualizacin

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 7

Universidad Nacional de Ingeniera


Componente Requisito
virtuales. Notas: Se recomienda cerrar SQL Server 2008 antes de apagar la mquina virtual. Para obtener ms informacin sobre la funcin Hyper-V de Windows Server 2008, vea el sitio web de Windows Server 2008. La agrupacin en clsteres de conmutacin por error del invitado se admite en SQL Server 2008. Para obtener ms informacin sobre las versiones admitidas de SQL Server y los sistemas operativos para la agrupacin en clsteres de conmutacin por error del invitado, y la compatibilidad con la virtualizacin, vea el tema que trata sobre la directiva de compatibilidad para los productos de Microsoft SQL Server que se ejecutan en un entorno virtual de hardware. Software Internet de Para todas las instalaciones de SQL Server 2008 se requiere Microsoft Internet Explorer 6 SP 1 o una versin posterior. Se requiere Internet Explorer 6 Service Pack 1 o una versin posterior para Microsoft Management Console (MMC), SQL Server Management Studio, Business Intelligence Development Studio, el componente Diseador de informes de Reporting Services y la Ayuda HTML. Las necesidades de espacio en disco variarn con los componentes de SQL Server 2008 que instale. Para obtener ms informacin, vea Requisitos de espacio en disco duro, ms adelante en este tema. Para la instalacin desde disco se necesita una unidad de CD o DVD. Las herramientas grficas de SQL Server 2008 requieren VGA o una resolucin mayor: resolucin mnima de 1.024 x 768 pxeles. Dispositivo sealador: se necesita un mouse Microsoft o dispositivo sealador compatible.

Disco duro

Unidad Pantalla Otros dispositivos

Nota: Las versiones de 64 bits de SQL Server 2008 incluyen soporte para sistemas extendidos, tambin conocidos como Windows on Windows (WOW64). WOW64 es una caracterstica de las ediciones de 64 bits de Microsoft Windows que permite que las aplicaciones de 32 bits se ejecuten de forma nativa en modo de 32 bits. Las aplicaciones funcionan en modo de 32 bits aunque el sistema operativo subyacente se ejecute en la plataforma de 64 bits.

Componente
Procesador

Requisito
Tipo de procesador: Mnimo: AMD Opteron, AMD Athlon 64, Intel Xeon compatible con Intel EM64T, Intel Pentium IV compatible con EM64T Velocidad de procesador: Mnimo: 1,4 GHz Recomendado: 2,0 GHz o ms Windows Server 2003 SP2 de 64 bits x64 Standard1 Windows Server 2003 SP2 de 64 bits x64 Datacenter1 Windows Server 2003 SP2 de 64 bits x64 Enterprise1 Windows Server 2008 de 64 bits x64 Standard Windows Server 2008 de 64 bits x64 Standard sin Hyper-V Windows Server 2008 de 64 bits x64 Datacenter

Sistema operativo

Pg. 8

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


Componente Requisito
Windows Server 2008 de 64 bits x64 Datacenter sin Hyper-V1 Windows Server 2008 de 64 bits x64 Enterprise Windows Server 2008 de 64 bits x64 Enterprise sin Hyper-V1 Windows Server 2008 R2 de 64 bits x64 Web1,2 Windows Server 2008 R2 de 64 bits x64 Standard1,2 Windows Server 2008 R2 de 64 bits x64 Enterprise1,2 Windows Server 2008 R2 de 64 bits x64 Datacenter1,2 Memoria RAM: Mnimo: 512 MB Recomendado: 2,048 GB o ms Mximo: mximo del sistema operativo

CONSIDERACIONES SOBRE LA SEGURIDAD


Para iniciar Management Studio, elija Programas>Microsoft SQL Server 2008>SQL Server Management Studio en el men de Inicio de Windows. Management Studio se instala durante la instalacin de Sql Server 2008. Al abrirse, le pide que se conecte a una instancia de SQL Server. En cuanto se conecte, la instancia de SQL Server aparece en el Explorador de objetos.

Si fuera necesario, se podra dar a conocer caractersticas especiales sobre la conexin, para ello, hay que hacer clic sobre el botn Options, luego, aparecer la siguiente pantalla.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 9

Universidad Nacional de Ingeniera

En el combo de base de datos, se podr seleccionar la Base de Datos con la cual deseamos conectarnos, esto depender del servidor con el cual nos enlacemos. En el rea de detalles de la red, veremos el modo de conexin que tenemos con el SQL Server, dicho sea de paso, no es necesario cambiar esta opcin. En conexiones, podemos especificar el tiempo de espera para la conexin, en tiempo de ejecucin, se determina el tiempo de espera para la ejecucin de las sentencias en T-SQL. Una vez que hayamos dado a conocer, todas las caractersticas necesarias para la conexin, haremos clic sobre el botn Connect. Seguidamente, veremos la pantalla del Management Studio.

Pg. 10

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Instalando el SQL Server 2008 Una vez que hayan decidido la Edicin a utilizar del SQL Server 2008, procederemos a instalar el software.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 11

Universidad Nacional de Ingeniera

Pg. 12

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Aqu dan a conocer todos los servicios que van a utilizar:

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 13

Universidad Nacional de Ingeniera

Si tuvieran que crear una nueva instancia, aqu debern de dar el nombre de esta:

Pg. 14

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 15

Universidad Nacional de Ingeniera

Tener en cuenta que la instalacin se debe de hacer con el usuario que tenga mximos privilegios, adems de tener una contrasea.

Pg. 16

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 17

Universidad Nacional de Ingeniera

Pg. 18

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 19

Universidad Nacional de Ingeniera

Pg. 20

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 21

Universidad Nacional de Ingeniera

Pg. 22

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

C API TULO 2
Administracin de la Base de Datos y Archivos Planificacin de la BD. Creacin de la BD. Administracin de la BD. Uso de Schemas y FileGroups.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 23

Universidad Nacional de Ingeniera

R E A C I N

D E

L A

B D

Para crear la base de datos, podemos hacer uso del management Studio, o a travs de sentencias T-SQL, en ambos casos, tendremos los mismos resultados. El proceso de definicin de una base de datos crea tambin un registro de transacciones para esa base de datos.

Utilizando el management Studio, el procedimiento sera el siguiente, primero nos ubicamos sobre el objeto Databases, luego clic derecho.

Del men contextual, seleccionar la alternativa New Database, para que se muestre la ventana de propiedades de la nueva base de datos.

Desde esta ventana, podremos darle nombre a la nueva base de datos, tambin se puede especificar el propietario, as como los nombres fsicos y lgicos de la base de datos.

Si fuera necesario agregar nuevos grupos de archivos, hacer clic sobre el botn Add, luego aparecer la siguiente pantalla.

Pg. 24

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Desde aqu podremos crear los nuevos grupos de archivo, con los cuales trabajar nuestra base de datos. Para crear la base de datos desde T-SQL, podemos escribir lo siguiente: Creando la base de datos sin dar mayores especificaciones sobre los archivos a crear:
USE master; GO IF DB_ID (N'sistemasUNI') IS NOT NULL DROP DATABASE miproyecto; GO CREATE DATABASE sistemasUNI; GO Verificando los archivos y tamaos de la BD SELECT name, size, size*1.0/128 AS [Size in MBs] FROM sys.master_files WHERE name = N' sistemasUNI '; GO

Creando una base de datos especificando los archivos de datos y de transacciones


USE master; GO IF DB_ID (N'Ventitas') IS NOT NULL DROP DATABASE Sales; GO obteniendo la ruta del SQL Server DECLARE @data_path nvarchar(256); SET @data_path = ( SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1) FROM master.sys.master_files WHERE database_id = 1 AND file_id = 1); -- ejecutando la sentencia CREATE DATABASE EXECUTE ('CREATE DATABASE Ventitas ON ( NAME = Ventitas _dat, FILENAME = '''+ @data_path + ' Ventitasdat.mdf'', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = Ventitas _log, FILENAME = '''+ @data_path + ' Ventitaslog.ldf'', SIZE = 5MB, MAXSIZE = 25MB,

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 25

Universidad Nacional de Ingeniera


FILEGROWTH = 5MB )' ); GO

Creando una base de datos con mltiples archivos, los archivos con extensiones mdf contienen los archivos primarios, los ndf contienen los archivos secundarios y los ldf contienen las transacciones.
USE master; GO IF DB_ID (N'Archivo') IS NOT NULL DROP DATABASE Archivo; GO obteniendo la ruta del SQL Server DECLARE @data_path nvarchar(256); SET @data_path =(SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1) FROM master.sys.master_files WHERE database_id = 1 AND file_id = 1); -- ejecutar la sentencia CREATE DATABASE EXECUTE ('CREATE DATABASE Archivo ON PRIMARY ( NAME = Arch1, FILENAME = '''+ @data_path + 'archdat1.mdf'', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Arch2, FILENAME = '''+ @data_path + 'archdat2.ndf'', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Arch3, FILENAME = '''+ @data_path + 'archdat3.ndf'', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20) LOG ON ( NAME = Archlog1, FILENAME = '''+ @data_path + 'archlog1.ldf'', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Archlog2, FILENAME = '''+ @data_path + 'archlog2.ldf'', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20)' ); GO

La informacin acerca de las bases de datos de SQL Server est almacenada en la tabla sysdatabases de la base de datos master. Por tanto, debe utilizar la base de datos master para definir una base de datos cuando utilice instrucciones TransactSQL. La definicin de una base de datos consiste en especificar el nombre de la base de datos, y disear el tamao y la ubicacin de los archivos de la base de datos. Cuando se crea la nueva base de datos, sta es un duplicado de la base de datos model. Las opciones o configuraciones de la base de datos model se copian en la nueva base de datos. Importante, se recomienda hacer una copia de seguridad de la base de datos master cada vez que cree, modifique o elimine una base de datos. Al crear una base de datos se pueden establecer los siguientes parmetros:

PRIMARY

Pg. 26

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas Este parmetro especifica los archivos del grupo de archivos principal. El grupo de archivos principal contiene todas las tablas del sistema de la base de datos. Tambin contiene todos los objetos no asignados a grupos de archivos del usuario. Todas las bases de datos tienen un archivo de datos principal. El archivo de datos principal es el punto de inicio de la base de datos y seala a los dems archivos de la base de datos. La extensin de nombre de archivo recomendada para los archivos de datos principales es mdf. Si no se especifica la palabra clave PRIMARY, el primer archivo enumerado en la instruccin es el archivo principal.

FILENAME
Este parmetro especifica el nombre del archivo del sistema operativo y la ruta de acceso al archivo. La ruta acceso de archivo debe especificar una carpeta del servidor en el que est instalado SQL Server.

SIZE
Este parmetro especifica el tamao de los archivos de datos o de registro. Puede especificar los tamaos en megabytes (MB), que es el valor predeterminado, o en kilobytes (KB). El tamao mnimo es de 512 KB, tanto para los archivos de datos como para los archivos de registro. El tamao especificado para el archivo de datos principal debe ser, al menos, como el tamao del archivo principal de la base de datos model. Cuando se agrega un archivo de datos o un archivo de registro, el valor predeterminado es 1 MB.

MAXSIZE
Este parmetro especifica el tamao mximo hasta el que puede crecer el archivo. Puede especificar el tamao en megabytes (valor predeterminado) o en kilobytes. Si no se especifica el tamao, el archivo crece hasta que el disco est lleno.

FILEGROWTH Este parmetro especifica el incremento de crecimiento del archivo. El valor de FILEGROWTH de un archivo no puede sobrepasar el valor de MAXSIZE. Un valor de 0 indica que no hay crecimiento. El valor se puede especificar en megabytes (el valor predeterminado), en kilobytes o como porcentaje (%). Si no se especifica FILEGROWTH, el valor predeterminado es el 10 por ciento y el valor mnimo es 64 KB (una extensin). El tamao especificado se redondea al mltiplo de 64 KB ms prximo.

COLLATION
Este parmetro especifica la intercalacin predeterminada para la base de datos. La intercalacin incluye las reglas que gobiernan el uso de caracteres de un lenguaje o un alfabeto.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 27

Universidad Nacional de Ingeniera

Registro de Transacciones
1
Modificaciones de datos es enviada por la aplicacin

3
Buffer Cache

La modificacin se registra en diario de las transacciones en el disco Disk

Pginas de datos se encuentran en, o se leen, en el buffer de cach y son modificados

Disk

Checkpoint escribe cometido de las transacciones en la base de datos

SQL Server graba todas las transacciones en un registro de transacciones para mantener la coherencia de la base de datos y facilitar la recuperacin. El registro es un rea de almacenamiento que efecta automticamente el seguimiento de todos los cambios en la base de datos. SQL Server graba las modificaciones al registro en disco cuando se ejecutan, antes de que se escriban en la base de datos. El proceso de registro es el siguiente: La aplicacin enva una modificacin de datos. Cuando la modificacin se ejecuta, las pginas de datos afectadas se cargan en la cach del bfer desde el disco si no estn ya cargadas en la cach del bfer por una consulta anterior. Cada instruccin de modificacin de datos se graba en el registro mientras se ejecuta. El cambio siempre se graba en el registro y se escribe en disco antes de hacer la modificacin en la base de datos. Este tipo de registro se denomina registro de preescritura. De forma repetitiva, el proceso de punto de comprobacin escribe en disco todas las transacciones completadas en la base de datos. Si se produce un error del sistema, el proceso automtico de recuperacin utiliza el registro de transacciones para aplicar todas las transacciones confirmadas y deshacer las transacciones incompletas. Los marcadores de transaccin del registro se utilizan durante la recuperacin automtica para determinar los puntos de inicio y fin de cada transaccin. Una transaccin se considera completa cuando el marcador BEGIN TRANSACTION tiene

Pg. 28

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas un marcador COMMIT TRANSACTION asociado. Las pginas de datos se escriben en disco cuando existe un punto de comprobacin.

Administracin de la BD.
Despus de haber creado una base de datos, se puede definir opciones de base de datos con el Management Studio del SQL Server o por medio de la instruccin ALTER DATABASE. Puede configurar varias opciones de base de datos, pero slo se puede hacer en una sola base de datos al mismo tiempo. Para que las opciones afecten a todas las bases de datos nuevas, cambie la base de datos model. La tabla siguiente enumera algunas de las opciones de uso ms frecuente.
Propiedad Opciones automticas

Descripcin AUTO_CREATE_STATISTICS

AUTO_UPDATE_STATISTICS

Opciones cursor

de

CURSOR_CLOSE_ON_COMMIT

CURSOR_DEFAULT GLOBAL

LOCAL

Opciones recuperacin

de

RECOVERY FULL BULK_LOGGED | SIMPLE

TORN_PAGE_DETECTION

Valor Retornado Crea automticamente las estadsticas que faltan que son necesarias para la optimizacin de consultas. El valor predeterminado es ON. Actualiza automticamente las estadsticas desfasadas necesarias para la optimizacin de consultas. El valor predeterminado es ON. Cierra automticamente los cursores abiertos cuando se confirma una transaccin. El valor predeterminado es OFF y los cursores permanecen abiertos. CURSOR_DEFAULT_LOCAL limita el mbito del cursor. Es local al lote, procedimiento almacenado o desencadenador en el que se cre el cursor. CURSOR_DEFAULT_GLOBAL es el valor predeterminado; el mbito del cursor es global respecto a la conexin. FULL proporciona recuperabilidad completa ante errores del medio; es el valor predeterminado. BULK_LOGGED utiliza menos espacio de registro porque el registro es mnimo, pero tiene un riesgo mayor de exposicin. SIMPLE recupera la base de datos slo hasta la ltima copia de seguridad completa de la base de datos o hasta la ltima copia de seguridad diferencial. Permite a SQL Server detectar

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 29

Universidad Nacional de Ingeniera


Propiedad

Descripcin

Opciones de SQL

ANSI_NULL_DEFAULT

ANSI_NULLS

Opciones estado

de

READ_ONLY | READ_WRITE

SINGLE_USER RESTRICTED_USER MULTI_USER

| |

Valor Retornado operaciones de E/S incompletas causadas por cortes de energa u otros apagones del sistema. El valor predeterminado es ON. Permite al usuario controlar la capacidad de asignacin predeterminada de valores NULL de la base de datos. Si est activada, todas las comparaciones con un valor nulo se evalan como NULL (desconocido). Si est desactivada, todas las comparaciones de valores no Unicode con un valor nulo se evalan como verdaderas (TRUE) si ambos valores son NULL. De manera predeterminada, la opcin de base de datos ANSI_NULLS es OFF. Define la base de datos como de slo lectura (se utiliza para establecer la seguridad en las bases de datos de ayuda a la toma de decisiones) o devuelve la base de datos a operaciones de lectura y escritura. SINGLE_USER permite que los usuarios se conecten a la base de datos de uno en uno. Todas las dems conexiones se interrumpen. RESTRICTED_USER permite que slo los miembros de la funcin fija de base de datos db_owner y de las funciones fijas de servidor dbcreator y sysadmin se conecten a la base de datos. MULTI_USER permite que todos los usuarios con los permisos adecuados se conecten a la base de datos. MULTI_USER es la opcin predeterminada.

Recuperacin de informacin de la base de datos


Puede determinar las propiedades de la base de datos con la siguiente funcin DATABASEPROPERTYEX. SELECT DATABASEPROPERTYEX (base de datos, propiedad) Tener en cuenta que, esta funcin slo devuelve el valor de una propiedad a la vez.

Pg. 30

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas La siguiente tabla enumera algunas de las propiedades de la base de datos. Propiedad Collation Descripcin
nombre por defecto para la base de datos.

Valor retornado
Collation name NULL = Database is not started. Base data type: nvarchar(128) Returns the comparison style. Returns 0 for all binary collations. Base data type: int

ComparisonStyle

The Windows comparison style of the collation. ComparisonStyle is a bitmap that is calculated by using the following values. Style Value Ignore 1 case Ignore 2 accent Ignore 65536 Kana Ignore 131072 width For example, the default of 196609 is the result of combining the Ignore case, Ignore Kana, and Ignore width options. Base de datos sigue normas ISO para permitir valores nulos. Todas las comparaciones a nulo para evaluar desconocidos. Cadenas son rellenadas con la misma longitud antes de comparacin o insercin. Mensajes de error o de advertencia se emiten cuando un error estndar se produce. Las consultas se terminan cuando un error por desbordamiento o divisin por cero se produce durante la ejecucin de las consultas. Base de Datos se cierra limpiando y liberando recursos a partir de la

IsAnsiNullDefault

IsAnsiNullsEnabled

IsAnsiPaddingEnabled

1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int

IsAnsiWarningsEnabled

IsArithmeticAbortEnabled

IsAutoClose

1 = TRUE 0 = FALSE NULL = Input not valid

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 31

Universidad Nacional de Ingeniera Propiedad IsAutoCreateStatistics Descripcin


ltima salida de usuario Falta de estadsticas que se requieren de una consulta para la optimizacin automtica se construy durante la consulta de optimizacin. Archivos de Base de datos son candidatos para peridos automticos de disminucin. Estadsticas existentes son actualizadas automticamente, por las estadsticas de fuera de fecha, porque los datos en las tablas han cambiado. Cursores que estn abiertas cuando una transaccin se ha comprometido estn cerradas Base de Datos con fulltext permitido.

Valor retornado
Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int

IsAutoShrink

1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int

IsAutoUpdateStatistics

IsCloseCursorsOnCommitEnabled

1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int

IsFulltextEnabled

IsInStandBy

IsLocalCursorsDefault

Base de Datos esta online como read-only, con restauracin del log permitido. Declaracin del Cursor por defecto como LOCAL

IsMergePublished

IsNullConcat

Las tablas de una Base de Datos pueden ser publicadas para una replicacin, si la replicacin est instalada. Concatenacin de operaciones Null rinden con NULL. Los errores se generan cuando la prdida de precisin se produce en las expresiones PARAMETERIZATION de la base de datos con la opcin SET es FORCED.

1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid

IsNumericRoundAbortEnabled

IsParameterizationForced

Pg. 32

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas Propiedad IsQuotedIdentifiersEnabled Descripcin


Doble comillas se puede utilizar en identificadores.

Valor retornado
1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int

IsPublished

IsRecursiveTriggersEnabled

Las tablas de la base de datos pueden ser publicados por la instantnea o la replicacin transaccional, si se instala la replicacin. Recursivo disparo de factores desencadenantes est activado Base de datos est suscrito a una publicacin

IsSubscribed

IsSyncWithBackup

IsTornPageDetectionEnabled

LCID

La base de datos es una base de datos de publicacin o una base de datos de distribucin, y puede ser restaurada sin interrumpir la replicacin transaccional. El SQL Server Database Engine Engine detecta operaciones incompletas de E/S causados por fallos de energa o cortes de otro sistema. El identificador de Windows local (LCID) de la colacin.

1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int

1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int

Recovery

Modelo de recuperacin para la base de datos

SQLSortOrder

SQL Server sort order ID supported in earlier versions of SQL Server SQL Server ordenanimiento, apoya ordenamiento por ID en las versiones anteriores de SQL Server Estado de la Base de

LCID value (in decimal format). Base data type: int For a list of LCID values (in hexadecimal format), see Collation Settings in Setup. FULL = Full recovery model BULK_LOGGED = Bulk logged model SIMPLE = Simple recovery model Base data type: nvarchar(128) 0 = Database is using Windows collation >0 = SQL Server sort order ID NULL = Input not valid or database is not started Base data type: tinyint

Status

ONLINE = Database is

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 33

Universidad Nacional de Ingeniera Propiedad Descripcin


Datos.

Valor retornado
available for query. OFFLINE = Database was explicitly taken offline. RESTORING = Database is being restored. RECOVERING = Database is recovering and not yet ready for queries. SUSPECT = Database did not recover. EMERGENCY = Database is in an emergency, read-only state. Access is restricted to sysadmin members Base data type: nvarchar(128) READ_ONLY = Data can be read but not modified. READ_WRITE = Data can be read and modified. Base data type: nvarchar(128) SINGLE_USER = Only one db_owner, dbcreator, or sysadmin user at a time RESTRICTED_USER = Only members of db_owner, dbcreator, and sysadmin roles MULTI_USER = All users Base data type: nvarchar(128) Version number = Database is open. NULL = Database is not started. Base data type: int

Updateability

Indica si los datos pueden ser modificados

UserAccess

Indica que los usuarios puedan acceder a la base de datos.

Version

Nmero de versin interna del cdigo SQL Server con el que la base de datos se ha creado. Identificado slo con fines informativos. No soportado. La compatibilidad en el futuro no est garantizada.

La siguiente tabla enumera los procedimientos almacenados del sistema de uso comn que presentan informacin acerca de las bases de datos y sus parmetros. Procedimiento sistema sp_helpdb almacenado de Descripcin Informa acerca de todas las bases de datos de un servidor. Proporciona el nombre, tamao, propietario, Id., fecha de creacin y opciones

Pg. 34

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas Procedimiento sistema almacenado de Descripcin de la base de datos. Informa slo acerca de la base de datos especificada. Proporciona el nombre, tamao, propietario, Id., fecha de creacin y opciones de la base de datos. Tambin enumera los archivos de datos y de registro. Resume el espacio de almacenamiento que utiliza una base de datos o un objeto de base de datos.

sp_helpdb baseDeDatos

sp_spaceused [nombreObjeto]

Componentes fsicos: archivos y grupos de archivos de bases de datos (FileGroup). Un grupo de archivos es un conjunto lgico de archivos de datos que permite a los administradores controlar todos los archivos del grupo como un nico elemento. La posibilidad de controlar la posicin fsica de los objetos individuales de la base de datos puede proporcionar diversas ventajas en cuanto a facilidad de administracin y rendimiento. Por ejemplo, puede utilizar varios grupos de archivos para controlar cmo se almacenan fsicamente los datos de una base de datos en dispositivos de almacenamiento, y para separar los datos de lectura y escritura de los datos de slo lectura.

Tipos de grupos de archivos


SQL Server 2008 tiene un grupo de archivos principal y tambin puede tener grupos de archivos definidos por el usuario.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 35

Universidad Nacional de Ingeniera El grupo de archivos principal contiene el archivo principal de datos con las tablas del sistema. El archivo principal de datos utiliza normalmente la extensin .mdf. Un grupo de archivos definido por el usuario consta de archivos de datos agrupados con fines de asignacin y administrativos. Estos otros archivos de datos se conocen como archivos secundarios de datos y suelen utilizar la extensin .ndf.

SITUACIN DE EJEMPLO PARA VARIOS GRUPOS DE ARCHIVOS


La ilustracin proporciona un ejemplo de cmo podra colocar los archivos de base de datos en discos diferentes, como se describe en la lista siguiente: Puede crear grupos de archivos definidos por el usuario para separar los archivos que se consultan con mucha frecuencia de los que se modifican mucho. En la ilustracin, los archivos OrdHist1.ndf y OrdHist2.ndf se colocan en un disco distinto que las tablas Product, Customer y SalesOrderHeader, ya que se consultan como ayuda para la toma de decisiones en lugar de actualizarse con informacin de pedidos actual. Tambin podra colocar los archivos OrdHist1.ndf y OrdHist2.ndf en discos diferentes si ambos se consultaran con mucha frecuencia. No puede poner archivos de registro de transacciones en grupos de archivos. El espacio del registro de transacciones se administra por separado del espacio de datos. Los registros de transacciones suelen utilizar la extensin .ldf. En el siguiente ejemplo de cdigo Transact-SQL se utiliza la instruccin CREATE DATABASE para implementar esta situacin de ejemplo. CREATE DATABASE [AdventureWorks] ON PRIMARY ( NAME = N'AdventureWorks_Data', FILENAME = N'C:\AdventureWorks_Data.mdf' ), FILEGROUP [OrderHistoryGroup] ( NAME = N'OrdHist1', FILENAME = N'D:\OrdHist1.ndf' ), ( NAME = N'OrdHist2', FILENAME = N'D:\OrdHist2.ndf' ) LOG ON ( NAME = N'AdventureWorks_log', FILENAME = N'E:\AdventureWorks_log.ldf') Tambin puede utilizar la instruccin ALTER DATABASE para agregar o eliminar archivos y grupos de archivos de bases de datos existentes.

CUNDO CREAR GRUPOS DE ARCHIVOS


Puede crear varios archivos de datos en discos diferentes y crear un grupo de archivos definido por el usuario para contener los archivos. Las dos razones principales para utilizar grupos de archivos son mejorar el rendimiento y controlar la colocacin fsica de datos.

Pg. 36

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Uso de varios archivos en un nico grupo de archivos para mejorar el rendimiento Si bien Matriz redundante de discos independientes (RAID) es la manera preferida de mejorar el rendimiento de una base de datos, puede asignar varios archivos de discos distintos a un nico grupo de archivos para mejorar el rendimiento implementando una forma de seccionamiento de datos dentro de SQL Server. Puesto que SQL Server utiliza una estrategia de relleno proporcional al escribir datos en un grupo de archivos, los datos se reparten entre los archivos y, por tanto, en las particiones fsicas del disco. Este mtodo permite tener un control ms fino sobre el seccionamiento de datos del que se puede lograr al crear un conjunto de volmenes seccionados en el sistema operativo Windows, o utilizando una controladora de matriz RAID. Nota: En la mayora de los casos, el uso de las funciones de seccionamiento de RAID Proporciona la misma ganancia de rendimiento que podra lograr utilizando grupos de archivos definidos por el usuario, sin la carga administrativa agregada que supone definir y administrar los grupos de archivos.

USO

DE VARIOS GRUPOS DE ARCHIVOS PARA CONTROLAR LA COLOCACIN FSICA DE LOS DATOS Para utilizar grupos de archivos con el fin de simplificar el mantenimiento o lograr objetivos de diseo, puede: Almacenar los datos de lectura y escritura separados de los datos de slo lectura para mantener separados los diferentes tipos de actividad de E/S de disco. Almacenar los ndices en discos diferentes que las tablas, lo que puede conducir a un mayor rendimiento. Hacer copia de seguridad o restaurar archivos individuales o grupos de archivos en lugar de hacer copia de seguridad o restaurar una base de datos entera. Puede ser

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 37

Universidad Nacional de Ingeniera necesario hacer copia de seguridad de archivos o de grupos de archivos para las bases de datos grandes con el fin de tener una estrategia eficaz de copia de seguridad y restauracin. Agrupar en los mismos grupos de archivos las tablas y los ndices que tienen unos requisitos de mantenimiento similares. Quizs desee realizar tareas de mantenimiento en algunos objetos con ms frecuencia que en otros. Por ejemplo, si crea dos grupos de archivos y les asigna tablas, puede ejecutar las tareas diarias de mantenimiento en las tablas de un grupo diario y las tareas de mantenimiento semanales en las tablas de un grupo semanal. Esto limita la contencin de disco entre los dos grupos de archivos. Separar las tablas de usuario y otros objetos de base de datos de las tablas del sistema en el grupo de archivos principal. Tambin debe cambiar el grupo de archivos predeterminado para evitar que el crecimiento inesperado de las tablas restrinja las tablas del sistema del grupo de archivos principal. Almacenar las particiones de una tabla con particiones en varios grupos de archivos. sta es una buena forma de separar fsicamente los datos que tienen necesidades de acceso diferentes dentro de una nica tabla, y tambin puede proporcionar ventajas de facilidad de administracin y rendimiento.

Creacin de esquemas
Los desarrolladores que hayan trabajado con Microsoft .NET Framework o con XML estarn familiarizados con el concepto de espacios de nombres. Un espacio de nombres ayuda a agrupar los objetos relacionados, haciendo que las listas de objetos complejas sean ms fciles de administrar. SQL Server 2008 utiliza esquemas para implementar un concepto similar para los objetos de base de datos. Los objetos de una base de datos (como tablas, vistas y procedimientos almacenados) se crean dentro de un esquema. Es esencial comprender lo que es un esquema antes de planear e implementar una base de datos de SQL Server 2008.

Pg. 38

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

ESQUEMAS COMO ESPACIOS DE NOMBRES


Un esquema es un espacio de nombres para objetos de base de datos. Es decir, un esquema define un lmite dentro del cual todos los nombres son nicos. Puesto que los nombres de esquema deben ser nicos dentro de la base de datos, cada objeto de una base de datos tiene un nombre completo nico con el formato servidor.base de datos.esquema.objeto. Dentro de una base de datos, puede acortarlo a esquema.objeto. La ilustracin anterior muestra tres esquemas de la base de datos AdventureWorks en una instancia de SQL Server denominada Server1. Los esquemas se denominan Person, Sales y dbo. Cada uno de estos esquemas contiene una tabla y el nombre completo de la tabla incluye el nombre del servidor, la base de datos y el esquema. Por ejemplo, el nombre completo de la tabla ErrorLog del esquema dbo es Server1.AdventureWorks.dbo.ErrorLog. En versiones anteriores de SQL Server, el espacio de nombres de un objeto estaba determinado por el nombre de usuario de su propietario. En SQL Server 2008, los esquemas estn separados de la propiedad de los objetos, lo que proporciona las ventajas siguientes: Mayor flexibilidad a la hora de organizar los objetos de base de datos en espacios de nombres, ya que la agrupacin de objetos en esquemas no depende de la propiedad de los objetos. Administracin de permisos ms sencilla, ya que se puede otorgar permisos en el mbito del esquema y en los objetos individuales. Facilidad de administracin mejorada, porque al quitar a un usuario no es necesario cambiar el nombre de todos los objetos que ese usuario posee.

ESQUEMAS DE EJEMPLO
La base de datos AdventureWorks utiliza los esquemas siguientes para organizar sus objetos de base de datos en espacios de nombres: HumanResources Person Production Purchasing Sales Por ejemplo, para hacer referencia a la tabla HumanResources se utiliza HumanResources.Employee. Employee del esquema

El esquema dbo Todas las bases de datos contienen un esquema denominado dbo. dbo es el esquema predeterminado para todos los usuarios que no tienen ningn otro esquema predeterminado definido explcitamente. Creacin de un esquema Para crear un esquema, utilice el Explorador de objetos de SQL Server Management Studio o utilice la instruccin CREATE SCHEMA, como se muestra en el ejemplo siguiente. Use AdventureWorks

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 39

Universidad Nacional de Ingeniera GO CREATE SCHEMA Sales GO

Cmo funciona la resolucin de nombres de objetos


Cuando una base de datos contiene varios esquemas, la resolucin de nombres de objetos puede resultar confusa. Por ejemplo, una base de datos podra contener dos tablas denominadas Order en dos esquemas diferentes, Sales y dbo. Los nombres completos de los objetos dentro de la base de datos son inequvocos: Sales.Order y dbo.Order, respectivamente. Sin embargo, el uso del nombre incompleto Order puede producir resultados inesperados. Puede asignar a los usuarios un esquema predeterminado para controlar cmo se resuelven los nombres de objetos incompletos.

CMO FUNCIONA LA RESOLUCIN DE NOMBRES


SQL Server 2008 utiliza el proceso siguiente para resolver un nombre de objeto incompleto: Si el usuario tiene un esquema predeterminado, SQL Server intenta encontrar el objeto en ese esquema predeterminado. Si el objeto no se encuentra en el esquema predeterminado del usuario, si el usuario no tiene ningn esquema predeterminado, SQL Server intenta encontrar el objeto en el esquema dbo.

Pg. 40

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas Por ejemplo, un usuario que tiene el esquema predeterminado Person ejecuta la siguiente instruccin Transact-SQL: SELECT * FROM Contact SQL Server 2008 intentar resolver primero el nombre de objeto como Person.Contact. Si el esquema Person no contiene un objeto denominado Contact, SQL Server intentar resolver el nombre de objeto como dbo.Contact. Si un usuario que no tiene ningn esquema predeterminado definido ejecuta la misma instruccin, SQL Server resolver inmediatamente el nombre de objeto como dbo.Contact. Asignacin de un esquema predeterminado Puede asignar un esquema predeterminado a un usuario utilizando el cuadro de dilogo Propiedades de Usuario de la base de datos o especificando el nombre del esquema en la clusula DEFAULT_SCHEMA de la instruccin CREATE USER o ALTER USER. Por ejemplo, el siguiente cdigo Transact-SQL asigna Sales como el esquema predeterminado para el usuario Angello: ALTER USER Angello WITH DEFAULT_SCHEMA = Sales

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 41

Universidad Nacional de Ingeniera

C A PI TULO 3
Planificacin de una Estrategia de Backups Realizando el Backup de la BD Restaurando una BD Recuperacin de datos desde Snapshots

Pg. 42

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

P B

L A N I F I C A C I N A C K U P S

D E

U N A

S T R A T E G I A

D E

Con frecuencia, los datos en una base de datos confirman las operaciones de una organizacin. Sin la base de datos, la organizacin no puede funcionar adecuadamente. Es importante que cada misin crtica sistema de base de datos haya sido adecuadamente definida en procedimientos de recuperacin de desastres. Las operaciones de Copia de seguridad y Restauracin, son una parte vital de la gestin de datos y son esenciales para la recuperacin ante fallas y desastres. Por lo tanto, una parte importante del papel de un administrador de bases de datos, es garantizar que los datos sean respaldados y puedan ser restaurados rpidamente en caso de un desastre.

Tipos de Backup Full

Descripcin Todos los archivos de la Base de Datos, datos (MDF y NDF) y de transacciones (LDF).

Transaction Log

Cualquier cambio en la Base de Datos, es guardado en el archivo de transacciones.

Tail-Log Differential

La porcin activa del archivo de transacciones. Las partes de la Base de Datos que han cambiado desde el ltimo backup completo a la Base de Datos.

File / Filegroup Partial

Archivos especficos o grupos de archivos. El grupo de archivos primario, cada grupo de archivos de lectura/escritura, y cualquier grupo de archivos especificado como lectura/escritura.

Copy-only

La Base de Datos o el archivo de Transacciones (sin afectar la secuencia de backup).

Realizando el Backup de la BD
Uso de la Instruccin BACKUP DATABASE
Realiza una copia de seguridad completa de la base de datos o de uno o varios archivos o grupos de archivos (BACKUP DATABASE). Adems, con el modelo de recuperacin completa o el modelo de recuperacin optimizado para cargas masivas de registros, realiza la copia de seguridad del registro de transacciones (BACKUP LOG). Sintaxis
--creando un backup BACKUP DATABASE { database_name | @database_name_var } TO <backup_device> [ ,...n ]

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 43

Universidad Nacional de Ingeniera


[ <MIRROR TO clause> ] [ next-mirror-to ] [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ] [;] --Backup para Files o Filegroups BACKUP DATABASE { database_name | @database_name_var } <file_or_filegroup> [ ,...n ] TO <backup_device> [ ,...n ] [ <MIRROR TO clause> ] [ next-mirror-to ] [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ] [;] --Creando un Backup Parcial BACKUP DATABASE { database_name | @database_name_var } READ_WRITE_FILEGROUPS [ , <read_only_filegroup> [ ,...n ] ] TO <backup_device> [ ,...n ] [ <MIRROR TO clause> ] [ next-mirror-to ] [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ] [;]

Argumentos
DATABASE Especifica una copia de seguridad completa de la base de datos. Si se especifica una lista de archivos y grupos de archivos, slo se realiza la copia de seguridad de esos archivos o grupos de archivos. Durante una copia de seguridad completa o diferencial de una base de datos, SQL Server realiza la copia de seguridad de una parte suficiente del registro de transacciones para producir una base de datos coherente cuando se restaure la base de datos. LOG Especifica que slo se realizar la copia de seguridad del registro de transacciones. Se realiza la copia de seguridad del registro desde la ltima copia de seguridad del registro ejecutada correctamente hasta el final actual del registro. Antes de que pueda crear la primera copia de seguridad del registro, debe crear una copia de seguridad completa. { database_name | @database_name_var } Es la base de datos para la que se realiza la copia de seguridad del registro de transacciones, de una parte de la base de datos o de la base de datos completa. Si se proporciona como una variable (@database_name_var), este nombre se puede especificar como una constante de cadena (@database_name_var = database name) o como una variable de un tipo de datos de cadena de caracteres, excepto los tipos de datos ntext o text. <file_or_filegroup> [ ,...n ] Se utiliza slo con BACKUP DATABASE, especifica un grupo de archivos o un archivo de copia de seguridad que se va a incluir en una copia de seguridad de archivos o especifica un grupo de archivos o un archivo de slo lectura que se va a incluir en una copia de seguridad parcial. FILE = { logical_file_name | @logical_file_name_var } Es el nombre lgico de un archivo o una variable cuyo valor equivale al nombre lgico de un archivo que se va a incluir en la copia de seguridad. FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }

Pg. 44

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas Es el nombre lgico de un grupo de archivos o una variable cuyo valor equivale al nombre lgico de un grupo de archivos que se va a incluir en la copia de seguridad. En el modelo de recuperacin simple, se permite la copia de seguridad de un grupo de archivos slo si se trata de un grupo de archivos de slo lectura. n Es un marcador de posicin que indica que se pueden especificar varios archivos y grupos de archivos en una lista separada por comas. El nmero es ilimitado. READ_WRITE_FILEGROUPS [ , FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var } [ ,...n ] ] Especifica una copia de seguridad parcial. Una copia de seguridad parcial incluye todos los archivos de lectura/escritura en una base de datos: el grupo de archivos principal y los grupos de archivos secundarios de lectura/escritura, as como los grupos de archivos o archivos de slo lectura especificados. READ_WRITE_FILEGROUPS Especifica que en la copia de seguridad parcial se copiarn todos los grupos de archivos de lectura/escritura. Si la base de datos es de slo lectura, READ_WRITE_FILEGROUPS incluye tan slo el grupo de archivos principal. FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var } Es el nombre lgico de un grupo de archivos de slo lectura o una variable cuyo valor equivale al nombre lgico de un grupo de archivos de slo lectura que se va a incluir en la copia de seguridad parcial. Para obtener ms informacin, vea "<file_or_filegroup>", anteriormente en este tema. n Es un marcador de posicin que indica que se pueden especificar varios grupos de archivos de slo lectura en una lista separada por comas. TO <backup_device> [ ,...n ] Indica que el conjunto de dispositivos de copia de seguridad correspondiente es un conjunto de medios no reflejado o el primero de los reflejos de un conjunto de medios reflejado (para los que se declaran una o ms clusulas MIRROR TO). <backup_device> Especifica el dispositivo de copia de seguridad fsico o lgico que se va a utilizar para la operacin de copia de seguridad. { logical_device_name | @logical_device_name_var } Es el nombre lgico del dispositivo de copia de seguridad en que se hace la copia de seguridad de la base de datos. El nombre lgico debe seguir las reglas definidas para los identificadores. Si se proporciona como una variable (@logical_device_name_var), el nombre del dispositivo de copia de seguridad se puede especificar como una constante de cadena (@logical_device_name_var = nombre del dispositivo de copia de seguridad lgico) o como una variable de un tipo de datos de cadena de caracteres, excepto los tipos de datos ntext o text. { DISK | TAPE } = { 'physical_device_name' | @physical_device_name_var } Especifica un archivo de disco o un dispositivo de cinta.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 45

Universidad Nacional de Ingeniera No es necesario que exista un dispositivo de disco antes de que se especifique en una instruccin BACKUP. Si el dispositivo fsico existe y no se especifica la opcin INIT en la instruccin BACKUP, la copia de seguridad se anexa al dispositivo. n Es un marcador de posicin que indica que se pueden especificar hasta 64 dispositivos de copia de seguridad en una lista separada por comas. MIRROR TO <backup_device> [ ,...n ] Especifica un conjunto de uno o varios dispositivos de copia de seguridad que reflejarn los dispositivos de copia de seguridad especificados en la clusula TO. La clusula MIRROR TO debe incluir el mismo nmero y tipo de dispositivos de copia de seguridad que la clusula TO. El nmero mximo de clusulas MIRROR TO es tres. Esta opcin slo est disponible en SQL Server 2008 Enterprise Edition y versiones posteriores. <backup_device> Vea "<backup_device>", en un apartado anterior de esta seccin. n Es un marcador de posicin que indica que se pueden especificar hasta 64 dispositivos de copia de seguridad en una lista separada por comas. El nmero de dispositivos de la clusula MIRROR TO debe ser igual al nmero de dispositivos de la clusula TO. [ next-mirror-to ] Es un marcador de posicin que indica que una sola instruccin BACKUP puede contener hasta tres clusulas MIRROR TO, adems de una sola clusula TO. Opciones de WITH Especifica las opciones que se van a utilizar con una operacin de copia de seguridad. DIFFERENTIAL Se utiliza slo con BACKUP DATABASE. Especifica que la copia de seguridad de la base de datos o el archivo slo debe estar compuesta por las partes de la base de datos o el archivo que hayan cambiado desde la ltima copia de seguridad completa. Una copia de seguridad diferencial suele ocupar menos espacio que una copia de seguridad completa. Utilice esta opcin para que no tenga que aplicar todas las copias de seguridad de registros individuales efectuadas desde que se realiz la ltima copia de seguridad completa. DESCRIPTION = { 'text' | @text_variable } Especifica el texto de forma libre que describe el conjunto de copia de seguridad. La cadena puede tener un mximo de 255 caracteres. NAME = { backup_set_name | @backup_set_var } Especifica el nombre del conjunto de copia de seguridad. Los nombres pueden tener un mximo de 128 caracteres. Si no se especifica NAME, est en blanco. PASSWORD = { password | @password_variable } Establece la contrasea del conjunto de copia de seguridad. PASSWORD es una cadena de caracteres.

Pg. 46

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas Si se define una contrasea para el conjunto de copia de seguridad, debe suministrarla para realizar operaciones de restauracin de SQL Server de ese conjunto de copia de seguridad. No obstante, la contrasea del conjunto de copia de seguridad no impide que se sobrescriba el archivo de copia de seguridad. Para evitar que se sobrescriba el archivo de copia de seguridad, utilice una contrasea para el conjunto de medios (vea la opcin MEDIAPASSWORD ms adelante en esta tabla). (Para obtener ms informacin sobre cmo utilizar las contraseas, vea "Permisos", ms adelante en este tema.)

Utilizando el Management del SQL Server


Primero nos ubicamos en el explorador de objetos, y luego hacemos clic derecho sobre la base de datos, seguidamente, haremos clic sobre la opcin de propiedades de la base de datos.

Luego, en la opcin Recovery Model, seleccionaremos la alternativa Full, con la cual, podremos realizar todos los tipos de Backup de nuestra Base de Datos.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 47

Universidad Nacional de Ingeniera Una vez cambiadas las propiedades de nuestra base de datos, haremos clic derecho sobre la base de datos de la que queremos una copia de seguridad, en la opcin Tasks, seleccionamos Back Up.. (ver figura).

Luego aparecer la siguiente pantalla, en la cual seleccionaremos el tipo de Backup a realizar.

Pg. 48

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas Una vez que hayamos realizado las configuraciones del caso, procederemos a hacer clic sobre el botn OK, luego de algunos instantes, aparecer la siguiente pantalla.

Restaurando una BD
Para realizar la restauracin de una Base de Datos, podemos hacer uso de la instruccin RESTORE, o de los contrario, utilizar el management Sql Server. RESTORE (Transact-SQL) Restaura copias de seguridad realizadas con el comando BACKUP. Este comando le permite realizar los siguientes escenarios de restauracin: Restaurar una base de datos completa a partir de una copia de seguridad completa de la base de datos (restauracin completa). Restaurar parte de una base de datos (restauracin parcial). Restaurar archivos o grupos de archivos en una base de datos (restauracin de archivos). Restaurar pginas especficas en una base de datos (restauracin de pginas). Restaurar un registro de transacciones en una base de datos (restauracin del registro de transacciones). Revertir una base de datos al punto temporal capturado por una instantnea de la base de datos.

--To Restore an Entire Database from a Full database backup (a Complete Restore): RESTORE DATABASE { database_name | @database_name_var } [ FROM <backup_device> [ ,...n ] ] [ WITH { [ RECOVERY | NORECOVERY | STANDBY = {standby_file_name | @standby_file_name_var } ] | , <general_WITH_options> [ ,...n ] | , <replication_WITH_option> | , <change_data_capture_WITH_option> | , <service_broker_WITH options> | , <point_in_time_WITH_optionsRESTORE_DATABASE> } [ ,...n ] ] [;]

--To perform the first step of the initial restore sequence -- of a piecemeal restore: RESTORE DATABASE { database_name | @database_name_var } <files_or_filegroups> [ ,...n ] [ FROM <backup_device> [ ,...n ] ] WITH

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 49

Universidad Nacional de Ingeniera


PARTIAL, NORECOVERY [ , <general_WITH_options> [ ,...n ] | , <point_in_time_WITH_optionsRESTORE_DATABASE> ] [ ,...n ] [;] --To Restore Specific Files or Filegroups: RESTORE DATABASE { database_name | @database_name_var } <file_or_filegroup> [ ,...n ] [ FROM <backup_device> [ ,...n ] ] WITH { [ RECOVERY | NORECOVERY ] [ , <general_WITH_options> [ ,...n ] ] } [ ,...n ] [;] --To Restore Specific Pages: RESTORE DATABASE { database_name | @database_name_var } PAGE = 'file:page [ ,...n ]' [ , <file_or_filegroups> ] [ ,...n ] [ FROM <backup_device> [ ,...n ] ] WITH NORECOVERY [ , <general_WITH_options> [ ,...n ] ] [;] --To Restore a Transaction Log: RESTORE LOG { database_name | @database_name_var } [ <file_or_filegroup_or_pages> [ ,...n ] ] [ FROM <backup_device> [ ,...n ] ] [ WITH { [ RECOVERY | NORECOVERY | STANDBY = {standby_file_name | @standby_file_name_var } ] | , <general_WITH_options> [ ,...n ] | , <replication_WITH_option> | , <point_in_time_WITH_optionsRESTORE_LOG> } [ ,...n ] ] [;] RESTORE DATABASE { database_name | @database_name_var } FROM DATABASE_SNAPSHOT = database_snapshot_name

Permisos
Si la base de datos que se va a restaurar no existe, el usuario debe tener permisos CREATE DATABASE para poder ejecutar RESTORE. Si la base de datos existe, los permisos RESTORE corresponden de forma predeterminada a los miembros de las funciones fijas de servidor sysadmin y dbcreator, y al propietario (dbo) de la base de datos (para la opcin FROM DATABASE_SNAPSHOT, la base de datos siempre existe). Los permisos RESTORE se conceden a funciones en las que la informacin acerca de los miembros est siempre disponible para el servidor. Debido a que los miembros de una funcin fija de base de datos slo se pueden comprobar cuando la base de datos es accesible y no est daada, lo que no siempre ocurre cuando se ejecuta RESTORE, los miembros de la funcin fija de base de datos db_owner no tienen permisos RESTORE.

Pg. 50

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas La operacin de copia de seguridad puede especificar opcionalmente contraseas de un conjunto de medios, de un conjunto de copia de seguridad o de ambos. Si se ha definido una contrasea en un conjunto de medios o un conjunto de copia de seguridad, debe especificar la contrasea o contraseas correctas en la instruccin RESTORE. Estas contraseas impiden operaciones de restauracin y anexiones no autorizadas de los conjuntos de copia de seguridad en medios que utilizan herramientas de SQL Server. No obstante, los medios protegidos con contrasea se pueden sobrescribir mediante la opcin FORMAT de la instruccin BACKUP.

Ejemplos sobre el uso del RESTORE A. Restaurar una base de datos completa En el siguiente ejemplo se restaura una copia de seguridad completa de la base de datos desde un dispositivo lgico de copia de seguridad de AdventureWorksBackups
RESTORE DATABASE AdventureWorks FROM AdventureWorksBackups

B. Restaurar copias de seguridad de bases de datos completas y diferenciales En el siguiente ejemplo se restaura una copia de seguridad completa despus de una copia de seguridad diferencial del dispositivo de copia de seguridad Z:\SQLServerBackups\AdventureWorks.bak, que contiene las dos copias de seguridad. La copia de seguridad de bases de datos completa que se va a restaurar es el sexto conjunto de copias de seguridad del dispositivo (FILE = 6), y la copia de seguridad de base de datos diferencial es el noveno conjunto del dispositivo (FILE = 9). En cuanto se recupere la copia de seguridad diferencial, se recuperar la base de datos.
RESTORE DATABASE AdventureWorks FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak' WITH FILE = 6 NORECOVERY; RESTORE DATABASE AdventureWorks FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak' WITH FILE = 9 RECOVERY;

C. Restaurar una base de datos con la sintaxis de RESTART En el ejemplo siguiente se usa la opcin RESTART para reiniciar una operacin RESTORE interrumpida por un error de alimentacin del servidor.
-- This database RESTORE halted prematurely due to power failure. RESTORE DATABASE AdventureWorks FROM AdventureWorksBackups -- Here is the RESTORE RESTART operation. RESTORE DATABASE AdventureWorks FROM AdventureWorksBackups WITH RESTART

D. Restaurar una base de datos y mover archivos En el ejemplo siguiente se restaura una base de datos completa y el registro de transacciones, y se mueve la base de datos restaurada al directorio C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data.
RESTORE DATABASE AdventureWorks FROM AdventureWorksBackups WITH NORECOVERY, MOVE 'AdventureWorks_Data' TO

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 51

Universidad Nacional de Ingeniera


'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf', MOVE 'AdventureWorks_Log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\NewAdvWorks.ldf' RESTORE LOG AdventureWorks FROM AdventureWorksBackups WITH RECOVERY

E. Copiar una base de datos con BACKUP y RESTORE En el ejemplo siguiente se usan las instrucciones BACKUP y RESTORE para realizar una copia de la base de datos AdventureWorks. La instruccin MOVE hace que se restauren los datos y el archivo de registro en las ubicaciones especificadas. La instruccin RESTORE FILELISTONLY se usa para determinar el nmero y los nombres de los archivos de la base de datos que se estn restaurando. La nueva copia de la base de datos se llama TestDB. Para obtener ms informacin, vea RESTORE FILELISTONLY (Transact-SQL).
BACKUP DATABASE AdventureWorks TO AdventureWorksBackups ; RESTORE FILELISTONLY FROM AdventureWorksBackups ; RESTORE DATABASE TestDB FROM AdventureWorksBackups WITH MOVE 'AdventureWorks_Data' TO 'C:\MySQLServer\testdb.mdf', MOVE 'AdventureWorks_Log' TO 'C:\MySQLServer\testdb.ldf'; GO

F. Restaurar con la sintaxis de FILE y FILEGROUP En el siguiente ejemplo se restaura una base de datos llamada MyDatabase que tiene dos archivos, un grupo de archivos secundario y un registro de transacciones. La base de datos usa el modelo de recuperacin completa. La copia de seguridad de la base de datos es el noveno conjunto de copia de seguridad del conjunto de medios en un dispositivo lgico de copia de seguridad llamado MyDatabaseBackups. A continuacin se restauran mediante WITH NORECOVERY tres copias de seguridad de registros que estn en los tres conjuntos de copia de seguridad siguientes (10, 11 y 12) en el dispositivo MyDatabaseBackups. Tras restaurar la ltima copia de seguridad de registros se restaura la base de datos. Tenga en cuenta que en RESTORE DATABASE hay dos tipos de opciones FILE. Las opciones FILE que preceden al nombre del dispositivo de copia de seguridad especifican los nombres de archivos lgicos de los archivos de base de datos que se van a restaurar desde el conjunto de copia de seguridad; por ejemplo, FILE = 'MyDatabase_data_1'. Este conjunto de copia de seguridad no es la primera copia de seguridad de la base de datos en el conjunto de medios; por ello, su posicin en el conjunto de medios se indica mediante la opcin FILE de la clusula WITH, FILE=9.
RESTORE DATABASE MyDatabase FILE = 'MyDatabase_data_1', FILE = 'MyDatabase_data_2', FILEGROUP = 'new_customers' FROM MyDatabaseBackups WITH FILE = 9, NORECOVERY; GO -- Restore the log backups. RESTORE LOG MyDatabase FROM MyDatabaseBackups

Pg. 52

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


WITH FILE = 10, NORECOVERY; GO RESTORE LOG MyDatabase FROM MyDatabaseBackups WITH FILE = 11, NORECOVERY; GO RESTORE LOG MyDatabase FROM MyDatabaseBackups WITH FILE = 12, NORECOVERY; GO --Recover the database: RESTORE DATABASE MyDatabase WITH RECOVERY; GO

Recuperando la BD desde el management

Especificamos el origen del archivo de Backup, seleccionamos From Device

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 53

Universidad Nacional de Ingeniera

Hacemos clic sobre el botn Add para especificar la ubicacin del archivo de Backup.

Seleccionamos el archivo.

Pg. 54

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Confirmamos la ubicacin del archivo a recuperar.

Indicamos el nombre de la Base de Datos a recuperar.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 55

Universidad Nacional de Ingeniera

Verificamos la ubicacin de los archivos de mdf, ndf y ldf.

Una vez completado, aparecer el siguiente mensaje.

Pg. 56

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

C API TULO 4
Administracin de la Seguridad Modos de autenticidad Creacin de Usuarios Uso de Credenciales y Permisos

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 57

Universidad Nacional de Ingeniera

D M I N I S T R A C I N

D E

L A

E G U R I D A D

La seguridad es una consideracin primordial cuando se disea y administra un entorno de base de datos, aqu, daremos a conocer los componentes fundamentales de seguridad de SQL Server: entidades de seguridad, protegibles y el modo en que se aplican los permisos dentro del modelo de seguridad de SQL Server.

Qu son las entidades de seguridad?


SQL Server 2008 emplea el trmino entidad de seguridad para referirse a las identidades autenticadas en un sistema de SQL Server. La comprensin de las diferentes entidades de seguridad que pueden existir en un sistema de SQL Server le ayudar a planear su modelo de seguridad.

Una entidad de seguridad es cualquier identidad autenticada a la que se puede conceder permiso para tener acceso a un objeto del sistema de base de datos. SQL Server distingue entre entidades principales indivisibles, que son identidades nicas (como, por ejemplo, inicios de sesin), y entidades de seguridad de coleccin, que son colecciones de identidades (tales como funciones fijas de servidor). Las entidades de seguridad existen en tres niveles: Microsoft Windows, SQL Server y base de datos. Los tipos de entidad de seguridad posibles en cada uno de estos niveles

Pg. 58

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


se muestran en la tabla siguiente. Nivel Windows Entidades de seguridad Cuenta de usuario local de Windows Cuenta de usuario de dominio de Windows Grupo de Windows Inicio de sesin de SQL Server Funcin de SQL Server Usuario de la base de datos Funcin de la base de datos Funcin de aplicacin Grupo de bases de datos (slo compatibilidad con versiones anteriores)

SQL Server Base de datos

para

Nota Los grupos de bases de datos se admiten principalmente por motivos de compatibilidad con versiones anteriores. Debera usar las funciones de base de datos para crear entidades de seguridad de coleccin en el nivel de base de datos.

Qu son los protegibles?


Los objetos cuyo acceso est regulado por el sistema de autorizacin de SQL Server 2008 se denominan protegibles. Como ocurre con las entidades de seguridad, es necesario comprender los diferentes mbitos de los protegibles en SQL Server para planear su modelo de seguridad.

Los protegibles se organizan en jerarquas anidadas llamadas mbitos, que tambin se pueden proteger. Los tres mbitos protegibles son servidor, base de datos y esquema. Los protegibles en el nivel de Windows incluyen archivos y claves del Registro. El mbito de servidor Los protegibles que contiene el mbito de servidor incluyen: Inicios de sesin Extremos Bases de datos

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 59

Universidad Nacional de Ingeniera


El mbito de base de datos Los protegibles que contiene el mbito de base de datos incluyen: Usuarios Funciones Funciones de aplicacin Certificados Claves simtricas Claves asimtricas Ensamblados Catlogos de texto completo Eventos DDL Esquemas Los protegibles que contiene el esquema incluyen: Tablas Vistas Funciones Procedimientos Tipos Sinnimos Agregados

El mbito de esquema

Nota Tenga en cuenta que una entidad de seguridad tambin puede ser un protegible. Por ejemplo, un inicio de sesin es una entidad de seguridad, pero tambin se pueden otorgar permisos en ese inicio de sesin a otros inicios de sesin, lo que lo convierte en un protegible.

Permisos de SQL Server 2008


SQL Server 2008 usa permisos para controlar el acceso a los protegibles por parte de entidades de seguridad. Para planear su modelo de seguridad para la base de datos, es importante entender cmo se implementan los permisos en los mbitos de los protegibles.

Pg. 60

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


Los permisos son las reglas que gobiernan el nivel de acceso de las entidades de seguridad a los protegibles. Se pueden otorgar, revocar o denegar permisos en un sistema de SQL Server. Todos los protegibles de SQL Server tienen permisos asociados que pueden otorgarse a cada entidad de seguridad.

Ejemplo de permiso
La nica manera de que una entidad de seguridad pueda tener acceso a un recurso en un sistema de SQL Server es recibir permiso para ello, directa o indirectamente a travs de la suscripcin de una entidad secundaria como una funcin o un grupo. Puede administrar los permisos usando el Explorador de objetos en SQL Server Management Studio o mediante la ejecucin de instrucciones GRANT, REVOKE o DENY. Los permisos concretos asociados a cada uno de los protegibles varan segn los tipos de acciones que son compatibles con un protegible.

Permisos heredados
Determinados permisos en SQL Server 2008 se pueden heredar a travs de un permiso concedido en un nivel ms alto de la jerarqua de mbito del protegible. Por ejemplo: Una entidad de seguridad a la que se le ha concedido el permiso SELECT en un esquema hereda automticamente el permiso SELECT en todos los objetos del esquema. Una entidad de seguridad a la que se la ha concedido el permiso CONTROL en un objeto de base de datos hereda automticamente el permiso CONTROL en todos los protegibles que contiene esa base de datos y todos los protegibles que contienen los esquemas incluidos en esa base de datos. Permisos efectivos Los permisos efectivos para una entidad de seguridad se evalan de la misma manera que en versiones anteriores de SQL Server. Una entidad de seguridad puede realizar una accin determinada si: El permiso se ha concedido explcitamente a la entidad de seguridad o a una coleccin de la que es miembro la entidad de seguridad, y El permiso no se ha denegado explcitamente a la entidad de seguridad o a una coleccin de la que es miembro la entidad de seguridad. Nota Una instruccin DENY explcita siempre reemplaza a una instruccin GRANT. Por ejemplo, si a un usuario se le ha concedido explcitamente el permiso SELECT en una tabla determinada pero es miembro de una funcin a la que se le ha denegado explcitamente el permiso SELECT en la tabla, el usuario no podr ejecutar una instruccin SELECT en la tabla.

Qu son los modos de autenticacin de SQL Server?


SQL Server 2008 puede configurarse para usar uno de los dos modos de autenticacin siguientes:

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 61

Universidad Nacional de Ingeniera


Modo de autenticacin de Windows. Los usuarios se autentican con Windows y se les concede el acceso a SQL Server mediante un inicio de sesin asignado a su cuenta de Windows (o a un grupo de Windows del que son miembros). Cuando se realiza la solicitud de conexin inicial, el smbolo de acceso del usuario, que se emiti cuando se inici sesin en Windows, se presenta a SQL Server y, si se encuentra un inicio de sesin coincidente, se concede al usuario el acceso a SQL Server.

Modo de autenticacin de Windows y SQL Server. Los usuarios que se conectan a SQL Server mediante una conexin de confianza (una conexin de red a travs de la cual se puede pasar el smbolo de acceso de Windows del usuario) tienen acceso a SQL Server mediante la autenticacin de Windows. Adems, SQL Server mantiene inicios de sesin no asignados a usuarios de Windows y los usuarios pueden conectarse a SQL Server tras indicar un nombre de inicio de sesin vlido y la contrasea que SQL Server valida de forma independiente a Windows. El modo de autenticacin de Windows y SQL Server se conoce a veces como modo mixto.

Nota Los inicios de sesin en SQL Server asignados a los usuarios de Windows se conocen como inicios de sesin de Windows. Los inicios de sesin autenticados en SQL Server se conocen como inicios de sesin de SQL. Las necesidades de seguridad de sus entornos de servidor y de red determinarn el modo de autenticacin que se usar para SQL Server. Puede usar SQL Server Management Studio para establecer el modo de autenticacin de su servidor.

CUANDO USAR EL MODO DE AUTENTICACIN WINDOWS


Use el modo de autenticacin de Windows en entornos de red en los que todos los usuarios estn autenticados mediante cuentas de usuario de Windows. La autenticacin de Windows proporciona varias ventajas sobre la autenticacin de SQL Server, como por ejemplo: Le permite agregar grupos de usuarios a SQL Server mediante la agregacin de una cuenta de inicio de sesin nica. Permite a los usuarios un rpido acceso a SQL Server sin tener que recordar otra cuenta de inicio de sesin y contrasea.

Pg. 62

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

CUANDO USAR EL MODO DE AUTENTICACIN SQL


Use el modo de autenticacin de Windows y SQL Server cuando deba permitir que se conecten a SQL Server usuarios o aplicaciones que no tienen las credenciales de Windows. A menos que necesite especficamente conexiones a SQL Server que no sean de Windows, no debera habilitar el modo de autenticacin de Windows y SQL Server por las razones siguientes: La autenticacin de Windows no exige que los nombres de usuario y las contraseas pasen por la red al conectarse a SQL Server. En su lugar, se usa el smbolo de acceso de usuario de Windows, lo que hace ms segura la autenticacin de Windows. La autenticacin de Windows requiere menos sobrecarga administrativa, ya que el acceso a SQL Server puede lograrse mediante un inicio de sesin que se asigna a un grupo de Windows, y la administracin de cada uno de los usuarios se confina al dominio de Windows. El modo de autenticacin de Windows y SQL Server aumenta la superficie del sistema de SQL Server, lo que lo hace ms vulnerable ante cualquier ataque. Importante Independientemente del modo de seguridad empleado, asegrese de que la contrasea para el inicio de sesin del administrador del sistema (sa) no est en blanco.

Cmo funcionan las directivas de contraseas


En Microsoft Windows Server 2003 y 2008, puede usar la Directiva de grupo para definir las configuraciones de usuarios y equipos para grupos de usuarios y equipos. Puede usar la Directiva de grupo para configurar muchas opciones, incluidas las directivas de cuentas. Las directivas de contraseas son tiles para garantizar que todas las contraseas sean lo suficientemente complejas y que se cambien peridicamente para maximizar la seguridad y evitar el acceso no autorizado. En SQL Server 2008, las directivas de cuentas locales o de dominio se pueden aplicar a inicios de sesin de SQL, as como a los inicios de sesin de Windows, cuando SQL Server se instala en equipos que usan Windows Server 2003 / 2008 o posterior.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 63

Universidad Nacional de Ingeniera

Directivas de complejidad de contraseas Las directivas de complejidad de contraseas estn diseadas para disuadir los ataques de fuerza bruta por medio del aumento del nmero de contraseas posibles. Cuando se aplica la directiva de complejidad de contraseas, las nuevas contraseas deben cumplir los requisitos de directiva establecidos por la directiva de contraseas de Windows. Un ejemplo de este tipo de directiva sera: La contrasea no contiene todo o parte del nombre de cuenta del usuario. Una parte de un nombre de cuenta se define como tres o ms caracteres alfanumricos consecutivos delimitados en ambos extremos por un espacio en blanco (espacio, tabulacin, retorno, etc.) o por cualquiera de los caracteres siguientes: , . - _ # La contrasea debe tener una longitud de siete caracteres como mnimo. La contrasea contiene caracteres de tres de las cuatro categoras siguientes: Abecedario ingls en maysculas (de la A a la Z) Abecedario ingls en minsculas (de la a a la z) Dgitos en base decimal (del 0 al 9) Caracteres no alfanumricos (por ejemplo: !, $, #, o %)

Directiva de caducidad de contrasea Las directivas de caducidad de contraseas se usan para administrar el tiempo de vida de una contrasea. Cuando se usa una directiva de caducidad de contraseas, se recuerda a los usuarios que cambien las contraseas anteriores y las cuentas con contraseas caducadas se deshabilitan.

Cmo administrar inicios de sesin de SQL Server


Puede administrar los inicios de sesin mediante el Explorador de objetos en SQL Server Management Studio o por medio de la ejecucin de las instrucciones Transact-SQL CREATE LOGIN, ALTER LOGIN y DROP LOGIN.

Pg. 64

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Nota De manera predeterminada, SQL Server est configurado para usar el modo de autenticacin de Windows. Todava puede crear inicios de sesin de SQL, pero no podrn conectarse al servidor hasta que se cambie el modo de autenticacin al modo de autenticacin de Windows y SQL Server.

CREANDO INICIOS DE SESIN


Puede usar la instruccin CREATE LOGIN para crear inicios de sesin de Windows o SQL Server. Las opciones concretas que puede usar dentro de la instruccin CREATE LOGIN dependen de si est creando un inicio de sesin de Windows o un inicio de sesin de SQL Server. El ejemplo siguiente muestra una instruccin CREATE LOGIN que crea un inicio de sesin de Windows para un grupo de Windows local denominado SalesDBUsers:
CREATE LOGIN [SERVERX\Vendedor] FROM WINDOWS WITH DEFAULT_DATABASE = AdventureWorks

El ejemplo siguiente muestra una instruccin CREATE LOGIN que crea un inicio de sesin de SQL:
CREATE LOGIN DRamos WITH PASSWORD = 'Pa$$w0rd', DEFAULT_DATABASE = AdventureWorks

Las cuentas de usuario de Windows estn sujetas a directivas de contraseas aplicadas por Windows. SQL Server 2008 proporciona restricciones de directiva similares para inicios de sesin de SQL cuando est instalado en Windows Server 2003/2008. Cuando una directiva de contraseas est habilitada para el servidor, SQL Server la habilita de forma predeterminada para nuevos inicios de sesin de SQL; puede cambiar este comportamiento mediante las opciones de la instruccin CREATE LOGIN mostradas en la tabla siguiente. Opcin HASHEDloca Descripcin Especifica que la contrasea ya se ha comprobado aleatoriamente. Si no est especificada, la cadena se comprobar aleatoriamente antes del almacenamiento. Solicita a un inicio de sesin que cambie su contrasea la primera vez que se conecta. Si se especifica esta opcin,

MUST_CHANGE

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 65

Universidad Nacional de Ingeniera


CHECK_EXPIRATION y CHECK_POLICY deben establecerse en ON. Cuando se encuentra en ON (el valor predeterminado), esta opcin especifica que la directiva de caducidad de contraseas de Windows Server 2003/2008 debera aplicarse al inicio de sesin de SQL Server. Si esta opcin se encuentra en ON, la opcin CHECK_POLICY tambin debe estar en ON o se producir un error en la instruccin. Cuando se encuentra en ON (el valor predeterminado), esta directiva especifica que la directiva de complejidad de contraseas de Windows Server 2003/2008 debera aplicarse al inicio de sesin de SQL Server.

CHECK_EXPIRATION

CHECK_POLICY

El ejemplo siguiente muestra una instruccin CREATE LOGIN que crea un inicio de sesin de SQL que no est sujeto a la directiva de contraseas definida para el servidor:
CREATE LOGIN LeoRamos WITH PASSWORD = 'password', DEFAULT_DATABASE = AdventureWorks, CHECK_EXPIRATION = OFF, CHECK_POLICY = OFF

Importante CHECK_EXPIRATION y CHECK_POLICY slo se aplican en Windows Server 2003/2008 y posteriores. Adems, un problema conocido en Windows Server 2003 podra evitar que se restablezca el recuento de la contrasea incorrecta una vez se haya alcanzado el umbral de bloqueo. Esto podra producir un bloqueo inmediato en los subsiguientes intentos fallidos de inicio de sesin. Puede restablecer manualmente el recuento de la contrasea incorrecta con solo establecer CHECK_POLICY = OFF, seguido por CHECK_POLICY = ON.

MODIFICANDO INICIOS DE SESIN


Puede modificar un inicio de sesin viendo sus propiedades en el Explorador de objetos o mediante la ejecucin de la instruccin ALTER LOGIN. Un uso comn de la instruccin ALTER LOGIN es desbloquear un inicio de sesin bloqueado por una contrasea caducada. El ejemplo siguiente muestra cmo desbloquear una cuenta bloqueada:
ALTER LOGIN dRamos WITH PASSWORD = 'NewPa$$w0rd' UNLOCK

Eliminando inicios de sesin


Puede eliminar un inicio de sesin haciendo clic sobre l con el botn secundario en el Explorador de objetos y haciendo clic a continuacin en Eliminar, o ejecutando la instruccin DROP LOGIN como se muestra en el ejemplo siguiente:
DROP LOGIN dRamos

Qu son las funciones fijas de servidor?


Las funciones proporcionan un medio de agrupar usuarios en una sola unidad a la que se pueden aplicar permisos.

Pg. 66

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

SQL Server proporciona funciones de servidor predefinidas para funciones administrativas comunes, de manera que resulte sencillo otorgar una seleccin de permisos administrativos a un usuario determinado. Las funciones fijas de servidor proporcionan agrupaciones de privilegios administrativos en el nivel de servidor. Se administran de forma independiente a las bases de datos de usuarios en el servidor. Adems de las funciones fijas de servidor mostradas en la tabla anterior, cada instancia de SQL Server contiene una funcin fija de servidor especial denominada pblica, de la que todos los inicios de sesin son miembros. La funcin fija de servidor pblica recibe el permiso VIEW ANY DATABASE. Asignar una cuenta de inicio de sesin a una funcin fija de servidor Puede usar las Propiedades de inicio de sesin de SQL Server en SQL Server Management Studio o el procedimiento almacenado del sistema sp_addsrvrolemember para agregar una cuenta de inicio de sesin como un miembro de una funcin fija de servidor. Slo los miembros de funciones fijas de servidor pueden ejecutar el procedimiento almacenado del sistema sp_addsrvrolemember. Al agregar una cuenta de inicio de sesin a una funcin de servidor, la cuenta consigue los permisos asociados a la funcin de servidor. Para asignar cuentas de inicio de sesin a funciones fijas de servidor, tenga en cuenta los puntos siguientes: No puede agregar, modificar o eliminar funciones fijas de servidor. Cualquier miembro de una funcin fija de servidor puede agregar otras cuentas de inicio de sesin a esa funcin. El procedimiento almacenado del sistema sp_addsrvrolemember no puede ejecutarse dentro de una transaccin definida por el usuario. Tambin puede usar el procedimiento almacenado del sistema sp_dropsrvrolemember para eliminar un miembro de una funcin fija de servidor

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 67

Universidad Nacional de Ingeniera

Requisitos para la delegacin


SQL Server y Windows se pueden configurar para permitir que una instancia de SQL Server se conecte a otra instancia de SQL Server en el contexto de un usuario de Windows autenticado. Esta tcnica se conoce como delegacin.

Por ejemplo, un procedimiento almacenado en una base de datos en Servidor1 podra consultar una tabla en una base de datos en Servidor2. Cuando se usa la delegacin, el procedimiento almacenado usa la identidad de seguridad del usuario que lo llam al solicitar los datos desde Servidor2.

Requisitos para la delegacin


Para usar la delegacin, todos los servidores a los que est conectando deben tener instalado Windows 2003 o Windows Server 2008 con el soporte tcnico de Kerberos habilitado; adems, debe estar usando el servicio de directorios de Active Directory. Windows Server 2008 admite una delegacin ms concreta que las versiones anteriores de Windows. Windows Server 2003 permite la concesin de derechos de delegacin a determinadas combinaciones de servicios. Se dice que estas combinaciones son de confianza para la delegacin restringida. Esta configuracin es la configuracin preferida y ms segura en dominios que tienen la funcionalidad completa de Windows Server 2003/2008. Configurar Active Directory para la delegacin Debe establecer las opciones de cuenta siguientes en Active Directory para que la delegacin funcione: La cuenta es confidencial y no se puede delegar. No debe seleccionar esta opcin para el usuario que solicita la delegacin. La cuenta es de confianza para la delegacin. Debe seleccionar esta opcin para la cuenta de servicio de SQL Server. El equipo es de confianza para la delegacin. Debe seleccionar esta opcin para el equipo que ejecuta SQL Server. Configurar SQL Server para la delegacin Para usar la delegacin de la cuenta de seguridad, SQL Server debe tener un Nombre principal de servicio (SPN) asignado por el administrador de dominio de cuenta de Windows Server 2003 a la cuenta de servicio de SQL Server y debe usar un Protocolo de control de transmisin/Protocolo de Internet (TCP/IP). Si el servicio de SQL Server se est ejecutando en la cuenta LocalSystem, el servicio SQL Server registra un SPN automticamente al inicio del servicio y anula el registro cuando se cierra SQL Server.

Pg. 68

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Qu son las credenciales?


Una credencial es una representacin alternativa de un inicio de sesin que contiene la informacin de autenticacin necesaria para conectarse a un recurso fuera de SQL Server. La mayora de las credenciales estn compuestas por un inicio de sesin y una contrasea de Windows. Las credenciales permiten a los usuarios que se conectan a SQL Server mediante el modo de autenticacin de SQL Server conectarse a Windows (u otros recursos) fuera de SQL Server. Por ejemplo, un usuario conectado a SQL Server con un inicio de sesin de SQL podra ejecutar un procedimiento almacenado que llama a un servicio web ASP.NET que est configurado para la autenticacin de Windows. El procedimiento almacenado pasara al servicio web el nombre de cuenta y la contrasea de Windows en la credencial asignada al inicio de sesin de SQL Server.

CREANDO CREDENCIALES
Puede crear una credencial mediante el uso de SQL Server Management Studio o de la instruccin CREATE CREDENTIAL de Transact-SQL. La sintaxis de la instruccin CREATE CREDENTIAL puede verse en la siguiente muestra de cdigo.
CREATE CREDENTIAL credential_name WITH IDENTITY = 'identity_name' [ , SECRET = 'secret' ]

Las clusulas y parmetros de la instruccin CREATE CREDENTIAL son como se describen a continuacin: credential_name. Especifica el nombre de la credencial que se est creando. credential_name no puede comenzar con el signo almohadilla (#). Las credenciales del sistema empiezan por ##. identity_name. Especifica el nombre de la cuenta que se va a usar al conectarse fuera del servidor. secret. Especifica el secreto requerido para superar la autenticacin. Esta clusula es opcional. El ejemplo siguiente crea la credencial llamada AlterEgo. La credencial contiene el usuario de Windows Francesca y la contrasea Pa$$w0rd.
CREATE CREDENTIAL AlterEgo WITH IDENTITY = 'ADVENTURE-WORKS\Francesca', SECRET = 'Pa$$w0rd' GO

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 69

Universidad Nacional de Ingeniera

Permisos de mbito de servidor


Los protegibles del mbito de servidor incluyen objetos como el mismo servidor, los inicios de sesin y las bases de datos.

La tabla siguiente muestra algunos permisos de ejemplo en el mbito de servidor. Para obtener una lista completa de los permisos, consulte Permisos en los Libros en pantalla de SQL Server. Protegible Servidor Permiso CONNECT_SQL CREATE LOGIN ALTER ANY LOGIN CONTROLSERVER Login Base de datos ALTER IMPERSONATE CREATE TABLE ALTER ANY USER CONTROL Descripcin Conectarse al servidor. Crear un inicio de sesin. Modificar cualquier inicio de sesin en el mbito de servidor. Control administrativo de todo el sistema. Modificar el inicio de sesin. Suplantar el inicio de sesin. Crear una tabla en la base de datos. Modificar cualquier usuario de la base de datos. Control completo de la base de datos.

Conceder los permisos a protegibles de mbito de servidor Para conceder permisos a protegibles en el mbito de servidor: Use el Explorador de objetos en SQL Server Management Studio para ver las propiedades del inicio de sesin al que desea conceder los permisos. En la ficha Elementos que pueden protegerse, agregue los protegibles requeridos y establezca los permisos necesarios. Tambin puede otorgar permisos del mbito de servidor mediante el uso de la instruccin GRANT de Transact-SQL con la sintaxis siguiente:
GRANT { securable_permission [ ,...n ] } [ON securable_type :: securable_name] TO login [ ,...n ] [ WITH GRANT OPTION ] [ AS { group | role } ]

Las clusulas y parmetros de la instruccin GRANT para protegibles del mbito de servidor se describen en la tabla siguiente. Clusula/Parmetro securable_permission securable_type Descripcin El permiso especfico que se concede al protegible. El tipo de protegible del mbito de servidor al que se aplica el permiso. Esta clusula se omite si el permiso se aplica al propio servidor. El nombre del protegible del mbito de servidor.

securable_name

Pg. 70

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


Inicio de sesin WITH GRANT OPTION AS group | role Un inicio de sesin al cual se otorga el permiso. Una opcin que permite que el cesionario conceda el mismo permiso a otros. Una especificacin de una entidad de seguridad con los permisos necesarios para conceder este permiso del mbito de servidor. Se requiere en escenarios en los que el otorgante no tiene todos los permisos necesarios para conceder el permiso, pero es miembro de una funcin o grupo que s los tiene.

El ejemplo siguiente muestra cmo otorgar el permiso de servidor ALTER ANY DATABASE y el permiso ALTER a un inicio de sesin denominado AWWebApp para un inicio de sesin denominado ADVENTUREWORKS\Naty:
USE master GRANT ALTER ANY DATABASE TO [ADVENTUREWORKS\Naty] GRANT ALTER ON LOGIN :: AWWebApp TO [ADVENTUREWORKS\Naty]

Cmo administrar usuarios


Los inicios de sesin se usan para permitir el acceso al sistema SQL Server. Sin embargo, el acceso a cada una de las bases de datos se logra creando usuarios en esas bases de datos. Puede crear usuarios mediante el uso del Explorador de objetos en SQL Server Management Studio o la ejecucin de la instruccin CREATE USER en la base de datos adecuada.

Asignar usuarios a inicios de sesin En la mayora de los casos, los usuarios de la base de datos estn asignados a inicios de sesin. Por ejemplo, podra crear una usuaria llamada Eliana en la base de datos AdventureWorks para hacer que esa base de datos sea accesible para un inicio de sesin denominado ADVENTUREWORKS\ Eliana. De forma predeterminada, todos los inicios de sesin suscritos a la funcin fija de servidor sysadmin estn asignados al usuario dbo en todas las bases de datos. Cuando se ha creado un inicio de sesin para un grupo de Windows, puede crear un usuario para que el inicio de sesin permita que todos los usuarios de Windows del grupo tengan acceso a la base de datos. Adems, puede crear un usuario para un miembro individual del grupo Windows incluso si no existe ningn inicio de sesin individual para ese usuario. Por ejemplo, si un grupo de Windows local denominado DBSERVER1\SalesUsers contiene los usuarios de dominio ADVENTUREWORKS\Naty y ADVENTUREWORKS\Leyla, puede crear un inicio de sesin nico para el grupo DBSERVER1\SalesUsers para dar acceso a SQL Server a ambos usuarios. Por ejemplo, podra crear un usuario denominado SalesUsers en la

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 71

Universidad Nacional de Ingeniera


base de datos AdventureWorks que se asigne al inicio de sesin denominado DBSERVER1\SalesUsers para permitir que ambos usuarios tengan acceso a la base de datos. Sin embargo, si deseara conceder los permisos concretos a Naty y no a Leyla, puede crear un usuario denominado Naty en la base de datos AdventureWorks para ADVENTUREWORKS\Naty, aunque no hay ningn inicio de sesin individual para ADVENTUREWORKS\Naty. Cuando Marta tiene acceso a la base de datos AdventureWorks, lo hace usando la identidad SalesUsers, pero cuando Rosa tiene acceso a la base de datos, lo hace con la identidad Naty. Ejemplo de creacin de un usuario Puede crear un usuario en SQL Server Management Studio mediante el uso del Explorador de objetos o la instruccin CREATE USER de Transact-SQL, como se muestra en los ejemplos siguientes:
-- Crear un usuario para un inicio de sesin con el mismo nombre CREATE USER Leonardo -- Crear un usuario con un nombre diferente a partir del inicio de sesin asignado CREATE USER Angello FOR LOGIN [ADVENTUREWORKS\Angello] -- Crear un usuario con un esquema predeterminado explcitamente definido CREATE USER SalesUser FOR LOGIN [DBSERVER1\SalesUsers] WITH DEFAULT_SCHEMA = 'Sales'

Modificar un usuario Puede modificar un usuario cambiando sus propiedades en el Explorador de objetos o mediante la ejecucin de la instruccin ALTER USER. Quitar un usuario Puede quitar un usuario eliminndolo en SQL Server Management Studio o ejecutando la instruccin DROP USER. Debe transferir la propiedad de los objetos de un usuario antes de anularlo.

Usuarios especiales
Los usuarios especiales de una base de datos son usuarios predefinidos que tienen funciones especiales como la de permitir el acceso administrativo o de invitado.

Pg. 72

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


dbo El inicio de sesin sa y los miembros de la funcin sysadmin estn asignados a una cuenta de usuario especial, que se encuentra dentro de todas las bases de datos, denominada dbo. Cualquier objeto creado por un administrador del sistema pertenece automticamente a dbo. El usuario dbo es una cuenta predeterminada y no puede eliminarse. invitado La cuenta de usuario guest (invitado) permite inicios de sesin sin cuentas de usuario para tener acceso a una base de datos. Las cuentas de inicio de sesin asumen la identidad del usuario guest cuando se cumplen las condiciones siguientes: La cuenta de inicio de sesin tiene acceso a SQL Server pero no tiene acceso a la base de datos a travs de su propia cuenta de usuario. Se ha habilitado la cuenta de invitado. La cuenta de invitado puede habilitarse mediante la instruccin GRANT para conceder el permiso CONNECT al usuario invitado. El cdigo siguiente muestra cmo habilitar la cuenta de invitado en la base de datos AdventureWorks:
USE AdventureWorks GRANT CONNECT TO guest; GO

Los permisos se pueden aplicar al usuario invitado como si el usuario invitado fuera cualquier otra cuenta de usuario. Puede habilitar al usuario invitado en cualquier base de datos excepto la master y las bases de datos tempdb.

Qu son las funciones de base de datos?


SQL Server proporciona dos tipos de funciones en el nivel de base de datos: funciones fijas de base de datos y funciones de base de datos definidas por el usuario.

Las funciones fijas de base de datos proporcionan a las agrupaciones privilegios administrativos en el nivel de base de datos a las que se han concedido permisos para las

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 73

Universidad Nacional de Ingeniera


tareas comunes de la base de datos. Las funciones fijas de base de datos de una base de datos se describen en la tabla siguiente. Funcin db_accessadmin db_backupoperator db_datareader db_datawriter db_ddladmin db_denydatareader db_denydatawriter db_owner db_securityadmin public Descripcin Agregar o quitar usuarios, grupos y funciones de la base de datos. Realizar una copia de seguridad de la base de datos. Leer datos de cualquier tabla. Agregar, cambiar o eliminar datos de cualquier tabla. Agregar, modificar o eliminar objetos de la base de datos. No poder leer los datos de ninguna tabla. No poder cambiar los datos de ninguna tabla. Realizar cualquier actividad de funcin de base de datos. Cambiar las funciones de la base de datos, cambiar las funciones de aplicacin, crear esquemas. Mantener los permisos predeterminados.

La funcin public es una funcin fija de base de datos especial a la que pertenece cada usuario de la base de datos y no se puede eliminar. La funcin public: Mantiene todos los permisos predeterminados para los usuarios de una base de datos. No puede tener usuarios, grupos o funciones asignados porque los usuarios, grupos y funciones ya le pertenecen de forma predeterminada. Est definida en cada base de datos, incluidas las bases de datos master, msdb, tempdb, model y todas las bases de datos de usuario. No se puede eliminar. Sin los permisos adecuados, un usuario puede tener acceso a una base de datos de SQL Server pero slo podr realizar tareas limitadas. Sin permisos, un usuario posee todos los permisos que se conceden a la funcin public y puede realizar las acciones siguientes: Ejecutar las instrucciones que no requieren permisos, como la instruccin PRINT. Ver informacin de la tabla del sistema y ejecutar ciertos procedimientos almacenados del sistema para la base de datos master y las bases de datos de usuario a las que tenga acceso. Obtener acceso a cualquier base de datos con una cuenta de invitado habilitada Funciones de base de datos definidas por el usuario Cuando ninguna de las funciones fijas de base de datos se adeca a sus propsitos, puede crear sus propias funciones de base de datos para agrupar a varios usuarios que requieran los mismos permisos en una base de datos. La creacin de una funcin de base de datos definida por el usuario le permite crear un grupo de usuarios con un conjunto de permisos comunes. Puede crear una funcin de base de datos definida por el usuario mediante el Explorador de objetos en SQL Server Management Studio o por medio de la instruccin CREATE ROLE de Transact-SQL, como se muestra en los ejemplos siguientes:
USE AdventureWorks CREATE ROLE auditors

Puede modificar o eliminar una funcin de base de datos definida por el usuario en el Explorador de objetos o mediante el uso de las instrucciones ALTER ROLE y DROP ROLE de Transact-SQL.

Asignar una entidad de seguridad a una funcin de base de datos

Pg. 74

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


Despus de crear una funcin, use el Explorador de objetos en SQL Server Management Studio o el procedimiento almacenado del sistema sp_addrolemember para agregar usuarios o funciones como miembros de la funcin. Slo los miembros de las funciones fijas de servidor sysadmin, db_securityadmin y db_owner o el propietario de la funcin pueden ejecutar sp_addrolemember para agregar un miembro a una funcin de base de datos definida por el usuario. Considere los datos siguientes cuando asigne cuentas de seguridad a una funcin de base de datos definida por el usuario: Cuando agrega una cuenta de seguridad a una funcin, cualquier permiso aplicado a la funcin se aplicar al nuevo miembro. Cuando agrega una funcin de base de datos como un miembro de otra funcin de base de datos, no es posible crear funciones recursivas. Por consiguiente, SalesManager no podra agregarse como miembro de SeniorEmployee si SeniorEmployee ya fuera miembro de SalesManager. Para quitar una entidad de seguridad de una funcin de base de datos, use el Explorador de objetos o el procedimiento almacenado del sistema sp_droprolemember.

Qu son las funciones de aplicacin?


Las funciones de aplicacin permiten cumplir con la seguridad para una aplicacin determinada. Proporcionan un contexto de seguridad alternativo para que un usuario tenga acceso a una base de datos. El usuario ejecuta una aplicacin asociada a una funcin de aplicacin y el contexto de seguridad de la funcin de aplicacin se usa en lugar del usuario individual.

Funciones de aplicacin frente a otras funciones de base de datos Las funciones de aplicacin difieren de otras funciones. A continuacin se muestra una lista de las diferencias fundamentales entre las funciones de aplicacin y otras funciones: Las funciones de aplicacin no tienen miembros: se activan para los usuarios cuando los usuarios ejecutan la aplicacin. Las funciones de aplicacin permiten que los usuarios dispongan de permisos especiales cuando usan la aplicacin y evitan la necesidad de conceder permisos directamente a los usuarios. Las funciones de aplicacin exigen activar una contrasea.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 75

Universidad Nacional de Ingeniera


Al activar una funcin de aplicacin, los usuarios: Pierden todos los permisos existentes en la base de datos actual para sus cuentas de usuario y cualquier funcin a la que pertenezcan, salvo los permisos que se aplican a la funcin public. Heredan todos los permisos concedidos a la funcin de aplicacin en la base de datos actual.

Crear una funcin de aplicacin Use SQL Server Management Studio o el comando CREATE APPLICATION ROLE (TransactSQL) para crear una nueva funcin de aplicacin. Slo los miembros de las funciones db_owner, db_securityadmin y sysadmin pueden crear funciones de aplicacin; la instruccin requiere el permiso ALTER ANY APPLICATION ROLE en la base de datos. Cuando se crea una funcin de aplicacin, debe especificarse una contrasea. Esta contrasea se usa a continuacin para activar la funcin de aplicacin. El ejemplo siguiente muestra cmo crear una funcin de aplicacin denominada weekly_receipts con una contrasea compleja:
CREATE APPLICATION ROLE weekly_receipts WITH PASSWORD = '987Gbv876sPYY5m23' GO

Activar una funcin de aplicacin El procedimiento almacenado sp_setapprole se usa para activar una funcin de aplicacin. sp_setapprole puede ejecutarse slo mediante instrucciones Transact-SQL y no puede ejecutarse dentro de otro procedimiento almacenado o dentro de una transaccin definida por el usuario. El ejemplo siguiente muestra el procedimiento sp_setapprole utilizado para activar la funcin de aplicacin weekly_receipts creada en el ejemplo anterior:
EXEC sp_setapprole 'weekly_receipts', '987Gbv876sPYY5m23' GO

Permisos de mbito de base de datos


Los permisos de base de datos son permisos para que una entidad de seguridad pueda ejecutar ciertas tareas dentro de la base de datos. Por ejemplo, el permiso ALTER ANY USER permite que una entidad de seguridad cree, modifique y quite usuarios de una base de datos.

Pg. 76

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Los permisos del mbito de base de datos son permisos que pueden aplicarse a protegibles en el mbito de base de datos, como usuarios, esquemas, funciones, ensamblados y objetos de service broker. La tabla siguiente muestra algunos de los permisos del mbito de base de datos. Protegible Usuario Esquema Permiso ALTER SELECT ALTER TAKE OWNERSHIP Descripcin Modificar el usuario especificado. Seleccionar filas de cualquier objeto del esquema. Modificar cualquier objeto del esquema. Hacerse con la propiedad del esquema.

Permisos de mbito de esquema


Los protegibles del mbito de esquema incluyen objetos como tablas, vistas, procedimientos almacenados y tipos.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 77

Universidad Nacional de Ingeniera

La tabla siguiente muestra algunos de los permisos aplicables en el mbito de esquema. Protegible Esquema Permiso SELECT ALTER TAKE OWNERSHIP Tabla SELECT ALTER CONTROL Descripcin Seleccionar filas de cualquier objeto del esquema. Modificar cualquier objeto del esquema. Hacerse con la propiedad del esquema. Seleccionar filas de la tabla. Modificar la tabla. Control completo de la tabla.

Concesin de permisos de protegible del mbito de esquema Puede conceder permisos a algunos de los protegibles de la base de datos mediante el uso del Explorador de objetos en SQL Server Management Studio o por medio de la instruccin GRANT de Transact-SQL. La sintaxis de la instruccin GRANT es diferente para los tipos definidos por el usuario que para otros protegibles del mbito de esquema. La sintaxis usada para conceder permisos en un tipo definido por el usuario se muestra en el ejemplo siguiente, que muestra cmo conceder el permiso EXECUTE en un tipo llamado addressType:
USE AdventureWorks GRANT EXECUTE ON TYPE :: Person.addressType TO SalesUser

Para otros protegibles de mbito de esquema (como tablas, vistas y procedimientos almacenados), use la sintaxis mostrada en el ejemplo siguiente, que muestra cmo conceder el permiso SELECT en una tabla llamada orders en el esquema sales:
USE AdventureWorks GRANT SELECT ON sales.orders TO SalesUser

Pg. 78

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Qu son las claves?


Una clave es un valor que se puede aplicar a una funcin criptogrfica para cifrar o descifrar un valor de datos seguro. El algoritmo criptogrfico que se usa para crear la clave y la longitud de la clave determinan su complejidad. Las claves son la base fundamental para toda la criptografa y se pueden implementar en dos formas: simtrica y asimtrica.

Claves simtricas Una clave simtrica es un valor que se usa tanto para cifrar como para descifrar datos. Cuando se usa una clave simtrica, deben compartirla tanto la persona o sistema que cifra los datos como la persona o sistema que los descifra. SQL Server admite claves simtricas para la encriptacin de datos. Puede crear una clave simtrica en SQL Server mediante la ejecucin de la instruccin CREATE SYMMETRIC KEY, como se muestra en el ejemplo de cdigo siguiente:
CREATE SYMMETRIC KEY SymKey WITH ALGORITHM = AES_256 ENCRYPTION BY PASSWORD = 'j7%ga5c$b+hdb05'

Tenga en cuenta que debe cifrar la propia clave simtrica para mantenerla en secreto. En el ejemplo anterior, se usa una contrasea para cifrar la clave simtrica. Las opciones alternativas para cifrar una clave simtrica son usar un certificado, una clave asimtrica u otra clave simtrica.

Claves asimtricas Las claves asimtricas estn compuestas de un par de valores que pueden usarse en una funcin aritmtica unidireccional de manera que los datos puedan cifrarse con un valor y descifrarse con el otro. Los pares de claves asimtricas estn compuestos de una clave pblica, que puede compartirse pblicamente, y una privada, que el propietario de la clave debe mantener en secreto. Los datos cifrados con la clave pblica slo pueden descifrarse con la clave privada.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 79

Universidad Nacional de Ingeniera


Adems, la clave pblica puede usarse para comprobar que una parte de los datos ha sido cifrada por la clave privada (aunque no puede usarse para descifrar los datos). Este enfoque se usa para crear una firma digital que puede usarse para autenticar el origen de los datos. Puede crear claves asimtricas en SQL Server mediante la ejecucin de la instruccin CREATE ASYMMETRIC KEY, como se muestra en el ejemplo siguiente:
CREATE ASYMMETRIC KEY AsymKey WITH ALGORITHM = RSA_2048 ENCRYPTION BY PASSWORD = 'bmsA$dk7i82bv55'

Tenga en cuenta que la clave privada de una clave asimtrica se cifra con una contrasea. Si se omite la clusula ENCRYPTION BY PASSWORD, SQL Server cifra la clave privada con la clave de base de datos para la base de datos en la que se crea la clave. Las claves de base de datos se analizan ms adelante en este mdulo.

Qu son los certificados?


Los certificados son instrucciones firmadas digitalmente que asocian una clave pblica a la identidad de la persona o sistema que posee la clave privada correspondiente. Una entidad emisora de certificados de confianza puede emitir los certificados y usarlos para autenticar un gran nmero de usuarios sin necesidad de mantener una contrasea para cada usuario.

Contenido de un certificado Un certificado suele contener la siguiente informacin: La clave pblica del sujeto (la persona o sistema al que se emiti el certificado). La informacin identificativa del sujeto, como el nombre y la direccin de correo electrnico. El perodo de validez. sta es el tiempo durante el que el certificado se considera vlido. Informacin identificadora y firma digital del emisor. Certificados en SQL Server SQL Server 2008 admite certificados para la autenticacin, autorizacin y criptografa; tambin proporciona la funcionalidad para crear, exportar e importar certificados, como se muestra en el ejemplo de cdigo siguiente:

Pg. 80

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


-- crear un nuevo certificado CREATE CERTIFICATE AWCustRelationsCert ENCRYPTION BY PASSWORD = 'pGFD4bb925DGvbd2439587y' WITH SUBJECT = 'Adventure Works Customer Relations', EXPIRY_DATE = '31/10/2009' -- Exportar el certificado BACKUP CERTIFICATE AWCustRelationsCert TO FILE = 'c:\certs\AWCustRelationsCert.cer' -- Importar un certificado CREATE CERTIFICATE SupplierCert FROM FILE = 'c:\certs\SupplierCert.cer'

Arquitectura de criptografa de SQL Server


SQL Server 2008 usa una jerarqua de claves y certificados para implementar la funcionalidad criptogrfica. Cada nivel de la jerarqua se usa para proteger los elementos del nivel inmediatamente inferior.

Clave principal de servicio La Clave principal de servicio es una clave Triple DES en la base de la jerarqua de cifrado de SQL Server 2008. Esta clave se genera automticamente cuando se necesita por primera vez, y est protegida por la proteccin de datos de Windows API (DPAPI). Clave principal de base de datos Una clave principal de base de datos es una clave simtrica Triple DES que se puede usar para proteger las claves privadas de certificados y claves asimtricas de una base de datos. Cuando se crea una clave principal de base de datos, se cifra mediante el uso del algoritmo Triple DES y una contrasea proporcionada por el usuario. Para habilitar el descifrado automtico de la clave principal, una copia de la clave se cifra mediante el uso de la Clave principal de servicio tanto en la misma base de datos como en la base de datos master. La muestra de cdigo Transact-SQL siguiente muestra cmo crear una clave principal de base de datos.
USE AdventureWorks CREATE MASTER KEY ENCRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe'

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 81

Universidad Nacional de Ingeniera


Claves y certificados en una base de datos Puede crear claves y certificados en una base de datos para cifrar los datos confidenciales o implementar una autenticacin y autorizacin basadas en certificados. Las claves privadas en una base de datos se pueden proteger mediante la clave principal de base de datos o mediante una contrasea.

Cundo usar claves y certificados


Hay varias maneras de usar claves y certificados en una solucin de base de datos de SQL Server. Cifrado de datos Puede usar claves y certificados para cifrar datos para el almacenamiento seguro en la base de datos. SQL Server incluye las funciones en la tabla siguiente para cifrar y descifrar datos. Funciones EncryptByKey y DecryptByKey Descripcin Use estas funciones para cifrar y descifrar datos con una clave simtrica. Estas funciones requieren un GUID que identifique la clave asimtrica que debe usarse, lo que puede obtenerse llamando a la funcin Use estas funciones para cifrar y descifrar datos con una clave asimtrica. Estas funciones requieren un Id. que identifique la clave asimtrica que debe usarse, lo que puede obtenerse llamando a la funcin AsymKey_ID. Use estas funciones para cifrar y descifrar datos con un certificado. Estas funciones requieren un Id. Que identifique la clave asimtrica que debe usarse, lo que puede obtenerse llamando a la funcin Cert_ID

KeyGUID. EncryptByAsymKey y DecryptByAsymKey

EncryptByCert y DecryptByCert

Los algoritmos de criptografa asimtrica, como los usados por claves y certificados asimtricos, son intensivos para el procesador y pueden conducir a la sobrecarga de rendimiento cuando se usan para cifrar grandes cantidades de datos. Por esta razn, generalmente debera cifrar los datos con una clave simtrica, que a su vez se cifra con una clave asimtrica o un certificado. Firma de mdulos de cdigo Puede usar una clave asimtrica o un certificado para firmar un mdulo de cdigo, como un procedimiento, funcin o desencadenador almacenado. Cualquier modificacin subsiguiente en un mdulo de cdigo firmado invalidar la firma. La firma y contrafirma slo pueden realizarla las personas con acceso a la clave privada. Adems de comprobar que el mdulo de cdigo no ha sido forzado, una firma crea una identidad secundaria para el mdulo de cdigo. Puede crear un usuario a partir del certificado usado para firmar el mdulo de cdigo mediante la clusula FOR CERTIFICATE de la instruccin CREATE USER y conceder permisos al usuario basado en certificados en lugar de a los usuarios que ejecutarn el mdulo de cdigo. Para firmar un mdulo de cdigo, la clave privada debe estar presente y usar la instruccin ADD SIGNATURE como se muestra en el ejemplo siguiente:
ADD SIGNATURE TO Sales.AddOrder BY CERTIFICATE SalesDevCert

Contexto de suplantacin SQL Server 2008 proporciona la clusula EXECUTE AS para controlar el contexto de seguridad para la ejecucin del mdulo de cdigo. Si un mdulo de cdigo que cambia de contexto de ejecucin usando la clusula EXECUTE AS obtiene acceso a los recursos de otra base de datos, la base de datos de destino debe confiar en el autenticador usado para

Pg. 82

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


establecer el contexto de la suplantacin para extender el contexto de la suplantacin de la base de datos de origen. Una manera de extender el contexto de la suplantacin por varias bases de datos es firmar el mdulo de cdigo que contiene la clusula EXECUTE AS con un certificado. La firma realiza dos funciones: acta como autenticador para el contexto de la suplantacin y proporciona una identidad secundaria para el mdulo de cdigo. En la base de datos de destino, debe crear un usuario que est asignado al certificado y conceder el permiso AUTHENTICATE (si el cdigo requiere permisos del mbito de base de datos) o el permiso AUTHENTICATE SERVER (si el cdigo requiere permisos del mbito de servidor). Esto permite que el certificado usado como autenticador en la base de datos de origen compruebe la identidad del mdulo de cdigo en la base de datos de destino. Tambin deben concederse al usuario asignado al certificado los permisos necesarios para tener acceso a los objetos de base de datos referenciados por el mdulo de cdigo. Esto permite usar la identidad secundaria del mdulo de cdigo firmado para tener acceso a los recursos necesarios. Autenticacin entre servidores Puede usar certificados para implementar la autenticacin por las instancias del servidor para el reflejo del service broker y de la base de datos. Esto permite que las instancias del servidor se autentiquen entre s para comunicarse de forma segura.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 83

Universidad Nacional de Ingeniera

C A PI TULO 5
Transferencia de Datos Modos de Transferencia de Datos Introduccin al SQL Server Integration Services

Pg. 84

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

E S

L A

T R A N S F E R E N C I A

D E

D A T O S

La transferencia de datos es el movimiento de datos entre almacenes de datos. El proceso puede ser desde muy simple hasta muy complejo. Prcticamente todas las soluciones de bases de datos requieren algn tipo de transferencia de datos. Normalmente, el proceso de transferir datos de un sistema a otro implica los pasos siguientes: Extraer datos del origen de datos. Transformar los datos (opcional). Cargar los datos en el almacn de datos de destino.

Escenarios comunes Los siguientes son escenarios comunes para la transferencia de datos: Trasladar los datos a sistemas de almacenamiento de datos. Consolidar datos en un lugar a partir de varios orgenes. Por ejemplo, una oficina comercial central puede contar con una base de datos con datos consolidados de todos sus sistemas de almacenamiento remotos. Mover datos de un sistema heredado a un sistema nuevo. Mover datos de un sistema no relacional, como el de Excel de Microsoft Office, a un sistema relacional, como SQL Server 2008.

Qu es la transformacin de datos?
Cuando seleccione datos para importarlos a su sistema, los datos podran no estar en el formato necesario o no cumplir con sus reglas de validacin. Con la transformacin de los datos se pueden eliminar incoherencias. La transformacin de los datos puede significar un simple cambio de los tipos de datos o una transformacin compleja mediante cdigo de procedimiento.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 85

Universidad Nacional de Ingeniera

Cambiar el formato de los datos Si integra datos de diferentes orgenes, a sus formatos sern diferentes. El cambio del formato de los datos podra implicar la simple modificacin del tipo de datos char a varchar, pero tambin puede conllevar una transformacin ms compleja, como el cambio de un campo de fecha basado en cadenas a un tipo de datos datetime. Agregar los datos A menudo, necesitar copiar datos desde un sistema de Procesamiento de transacciones en lnea (OLTP) a un Sistema de ayuda a la toma de decisiones (DSS). Con frecuencia, el DSS no requiere la granularidad fina de datos del sistema OLTP. Un DSS suele generar informes agregados, y la transformacin de los datos podra mejorar el rendimiento mediante la agregacin previa de estos datos y su almacenamiento en un formulario resumido. Mantener la coherencia de los datos Al tratar con datos de sistemas diferentes, existe con frecuencia ms de una versin de los mismos datos. Los nombres, direcciones y nmeros de telfono tienen, por lo general, ortografas o estructuras diferentes y la transformacin de los datos puede garantizar la coherencia en el destino. Validar los datos Si tiene cualquier duda sobre la validez de los datos de origen, debera validarlos antes de colocarlos en el sistema de destino. Puede resolver automticamente algunos errores de validacin, pero puede que necesite hacerlo manualmente en el caso de que los errores sean ms complejos. Escenarios comunes A continuacin se presentan algunos escenarios habituales en los que se puede usar la transformacin de los datos: Almacenamiento de datos. Los almacenes de datos son colecciones de datos de varios orgenes, que con frecuencia necesitan un esquema diferente al de estos sistemas originales y podran contener datos agregados. Un almacn de datos es una herramienta clave para la toma de decisiones, por lo que resulta fundamental que los datos sean coherentes, vlidos, y que se almacenen en la estructura adecuada.

Pg. 86

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


Integracin de aplicacin empresarial (EAI). La EAI es el uso compartido de todos los datos disponibles dentro de una organizacin. Ser ms eficaz si los datos son coherentes y vlidos. Integracin negocio a negocio (B2B). Los sistemas B2B necesitan asignar estructuras de datos de una organizacin a las de otra. Integracin con un sistema heredado. Muchas compaas confan en exceso en sistemas heredados, que a menudo generan datos en un formato que no es el ideal para el almacenamiento y el anlisis en un sistema moderno. La transformacin de los datos modifica su estructura y formato antes de cargarlos en el nuevo sistema.

Herramientas para la transferencia de datos


SQL Server 2008 tiene varias herramientas para transferir datos. Cada una de ellas es adecuada para escenarios concretos.

Programa de copia masiva Un Programa de copia masiva (PCM) es un programa de lnea de comandos para importar y exportar los datos a archivos de texto. Es una herramienta til cuando es necesario importar o exportar datos desde la lnea de comandos o un archivo de proceso por lotes; proporciona un rendimiento rpido con una carga mnima para el sistema. BULK INSERT BULK INSERT es la versin de Transact-SQL del PCM y tiene muchos de los mismos parmetros. Es til cuando es necesario incluir la funcionalidad de importacin de datos en su lgica de Transact-SQL. Componente de carga masiva XML La Carga masiva XML es un Modelo de objetos componente (COM) independiente que le permite cargar los datos del Lenguaje de marcado extensible (XML) en las tablas de SQL Server. Debera usar el componente Carga masiva de XML cuando necesite importar una gran cantidad de datos XML y distribuirlos en una o ms tablas relacionales. Rplica La rplica es til cuando dos o ms sistemas tienen la misma estructura y no es necesario transformar los datos. Los cambios en el sistema editor se replican en los suscriptores con una frecuencia preconfigurada y algunas formas de rplica permitirn que los propios suscriptores

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 87

Universidad Nacional de Ingeniera


modifiquen los datos. La rplica no es adecuada si los datos deben transformarse o si proceden de un sistema no relacional. SQL Server Integration Services Los SQL Server Integration Services son un sistema mucho ms avanzado para la transferencia y transformacin de los datos. Proporciona una arquitectura flexible, rpida y escalable que permite la integracin de datos de forma eficaz en entornos empresariales actuales. La transferencia y transformacin de los datos puede ser muy sencilla mediante los SSIS, pero tambin puede conllevar una compleja asignacin y validacin de datos.

Introduccin a SQL Server Integration Services


SSIS es una aplicacin compleja. SSIS tiene dos motores: un motor en tiempo de ejecucin y un motor de flujo de datos. El motor de flujo de datos controla las tareas de extraccin, transformacin y carga; el motor en tiempo de ejecucin controla todo lo dems, incluidas la repeticin y la comunicacin con procesos externos.

QU ES SSIS?
SQL Server 2008 Integration Services (SSIS) es una plataforma para generar soluciones de integracin de datos de alto rendimiento, incluidas la extraccin, la transformacin y la carga (ETL) de paquetes para el almacenamiento de datos. SSIS se compone de un motor en tiempo de ejecucin orientado a operaciones y de un motor de flujo de datos escalable y rpido. El flujo de datos existe en el contexto de un flujo de tareas global. El motor en tiempo de ejecucin es el que proporciona el recurso en tiempo de ejecucin y el soporte operativo para el motor de flujo de datos.

Herramientas y asistentes de SSIS SSIS incluye las herramientas y asistentes siguientes, que pueden usarse para crear, configurar, implementar y ejecutar paquetes SSIS: Diseadores. SSIS ofrece diseadores integrados en SQL Server Business Intelligence Development Studio. Juntos, proporcionan el principal entorno de desarrollo para crear paquetes SSIS.

Herramientas administrativas. SSIS incluye varias herramientas administrativas que se pueden usar solas, o bien, se puede obtener acceso a ellas desde SQL Server Management Studio.

Pg. 88

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


Estas herramientas administrativas pueden usarse para configurar, implementar y ejecutar paquetes SSIS. Utilidades del smbolo de sistema. SSIS incluye utilidades del smbolo de sistema que pueden usarse para ejecutar paquetes SSIS desde la lnea de comandos o en un archivo de proceso por lotes. Asistentes. Los asistentes de SSIS proporcionan una sencilla interfaz de usuario que puede usarse para llevar a cabo las tareas SSIS ms habituales.

Terminologa SSIS Cuando se crea una solucin SSIS, es importante entender la terminologa siguiente: Paquete. Un paquete es una coleccin organizada de conexiones, elementos de flujo de control, elementos de flujo de datos, controladores de eventos, variables y configuraciones que se ensamblan mediante las herramientas de diseo grfico que proporciona SSIS o que se generan mediante programacin. A continuacin, se debe guardar el paquete finalizado en SQL Server 2008, el Almacn de paquetes SSIS o el sistema de archivos. El paquete es la unidad de trabajo que se recupera, se ejecuta y se guarda. Tarea. Las tareas realizan el trabajo en paquetes. SSIS incluye tareas para la realizacin de diversas funciones. Contenedor. Los contenedores son objetos que proporcionan la estructura a los paquetes. Admiten los flujos de control repetidos en paquetes y agrupan tareas y otros contenedores en unidades de trabajo significativas.

CMO PROCESA SSIS LAS TAREAS


Un paquete est compuesto por un flujo de control y, opcionalmente, por uno o ms flujos de datos.

Flujo de control SSIS tiene tres tipos de componentes de flujo de control: contenedores, tareas y restricciones de precedencia.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 89

Universidad Nacional de Ingeniera


Los contenedores agrupan las tareas en unidades significativas de trabajo y son compatibles con la repeticin a travs del contenedor para cada miembro de una coleccin o hasta que una expresin determinada se evala como FALSE. Las tareas realizan el trabajo en paquetes. Las tareas pueden: o Extraer, transformar y cargar datos. o Copiar datos. o Comunicarse con otros procesos. o Trabajar con objetos y datos de SQL Server. o Trabajar con objetos de Analysis Services y procesarlos. o Ejecutar trabajos administrativos como copias de seguridad. Las tareas tambin contienen secuencias de comandos para implementar funcionalidades personalizadas. Las restricciones de precedencia crean una secuencia ordenada de ejecucin para los contenedores y las tareas.

Flujo de datos El flujo de datos es un tipo especial de tarea dentro de un flujo de control. SSIS tiene tres tipos de componentes de flujo de datos: orgenes, destinos y transformaciones. Los orgenes extraen los datos de una amplia gama de almacenes de datos que incluyen bases de datos relacionales, archivos de texto y hojas de clculo. Las transformaciones modifican los datos entre el origen y el destino, e incluyen la validacin, agregacin y asignacin de datos. Los destinos cargan los datos en cualquiera de los almacenes de datos.

HERRAMIENTAS SSIS
SSIS cuenta con una amplia gama de asistentes y herramientas con las que es posible desarrollar paquetes con rapidez. Asistentes SSIS incluye las herramientas y asistentes siguientes, que pueden usarse para crear y administrar paquetes SSIS: El Asistente para importacin y exportacin es el mtodo ms simple de crear un paquete. Puede importar y exportar de SQL Server, archivos de texto, Microsoft Office Access, Excel, BD OLE y proveedores de Microsoft ADO.NET. El Asistente para la instalacin de paquetes transfiere los paquetes al sistema de archivos o a otra instancia de SQL Server 2008. Antes de ejecutar el Asistente para la instalacin de paquetes, debe construir una utilidad de implementacin para el proyecto que contiene los paquetes que desea implementar. El Asistente para la configuracin de paquetes crea configuraciones para cambiar los valores de las propiedades de objeto en tiempo de ejecucin. El Asistente para la migracin de paquetes convierte los paquetes de los Servicios de transformacin de datos (STD) de SQL Server 2000 en paquetes SSIS de SQL Server 2008. Diseador SSIS El Diseador SSIS es una herramienta grfica para crear paquetes. Puede usarla para crear el flujo de control o el flujo de datos, agregar controladores de eventos, ver el contenido del paquete y ver el progreso de ejecucin en tiempo de ejecucin. El flujo de control, el flujo de datos, los controladores de eventos y el Explorador de paquetes tienen una ficha cada uno en el Diseador SSIS y una ficha Progreso aparece cuando un paquete se est ejecutando. Hay tambin un rea de Administradores de conexin para agregar y configurar los administradores de conexin que usa un paquete para conectarse a los datos. Utilidades del smbolo de sistema SSIS incluye las siguientes utilidades del smbolo del sistema:

Pg. 90

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


La utilidad del smbolo del sistema dtexec ejecuta un paquete en el equipo local. Puede usar la utilidad Paquete de ejecucin (dtexecui.exe) para administrar dtexec a travs de un cliente grfico. La utilidad del smbolo del sistema dtutil copia, elimina, mueve, firma y comprueba paquetes desde el smbolo del sistema.

Usar SQL Server Integration Services


Para crear paquetes SSIS es necesario entender cmo se crea cada objeto. A menudo los paquetes se crean en sistemas de desarrollo y se implementan en entornos de produccin.

QU SON LOS ORGENES DE DATOS Y LAS VISTAS DE ORIGEN DE DATOS?


SSIS incluye dos objetos en tiempo de diseo que facilitan la implementacin de las conexiones en paquetes: orgenes de datos y vistas de origen de datos. Los orgenes de datos y las vistas de origen de datos se crean en un proyecto. A continuacin, estarn disponibles para cada paquete de ese proyecto. Los orgenes de datos y las vistas de origen de datos son objetos en tiempo de diseo que no se implementan. En su lugar, SSIS usa las propiedades de los orgenes de datos y las vistas de origen de datos para crear administradores de conexiones.

Orgenes de datos Un origen de datos es una referencia en tiempo real a una conexin de almacn de datos. Los orgenes de datos no son necesarios, pero pueden acelerar el desarrollo de un proyecto o de un paquete, dado que muchos administradores de conexin pueden usar el mismo origen de datos. El uso de orgenes de datos en paquetes SSIS proporciona las ventajas siguientes: Los orgenes de datos estn disponibles para un proyecto completo. Puede definir un origen de datos una vez y, a continuacin, hacer referencia a l en los administradores de conexin de varios paquetes dentro del proyecto. Cuando se crea un administrador de conexin mediante un origen de datos, el administrador de conexin copia la cadena de conexiones del origen de datos. El

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 91

Universidad Nacional de Ingeniera


administrador de conexin no exige que el origen de datos funcione y que contine funcionando si el origen de datos no est disponible. Si cambia las propiedades de un origen de datos, las cadenas de conexin de todos los objetos basadas en el origen de datos cambiarn.

Vistas de origen de datos Una vista de origen de datos proporciona un subconjunto de datos de un origen de datos. Puede incluir una o ms tablas o vistas del almacn de datos definidas en el origen de datos y puede aplicar un filtro a una vista de origen de datos para quitar las filas no deseadas. Puede agregar columnas calculadas y nuevas relaciones entre las tablas y reemplazar las tablas en el origen de datos con consultas. Cuando un componente usa una vista de origen de datos, almacena una instruccin TransactSQL. Por consiguiente, el objeto no se ve afectado incluso si la vista de origen de datos no est disponible. Si la vista de origen de datos cambia las tablas a las que hace referencia, este cambio no se reflejar en los objetos basados en ella. El uso de vistas de orgenes de datos en paquetes SSIS proporciona las ventajas siguientes: Una vista de origen de datos slo puede mostrar los objetos pertinentes. Un origen de datos mostrar cada tabla en el almacn de datos subyacente. Las vistas de origen de datos estn disponibles para un proyecto completo. Puede definir una vista de origen de datos una vez y, a continuacin, hacer referencia a ella en los objetos de varios paquetes dentro del proyecto. Puede actualizar una vista de origen de datos para reflejar los cambios en sus orgenes de datos subyacentes. Una vista de origen de datos almacena en memoria cach los metadatos de los orgenes de datos subyacentes, lo que le permite desconectarse del almacn de datos subyacente y seguir editando las propiedades de la vista de origen de datos.

Qu es un administrador de conexin?
Un administrador de conexin es una representacin lgica de una conexin. Se crea un administrador de conexin en tiempo de diseo para describir la conexin fsica que SSIS crea cuando el paquete se ejecuta. SSIS crea la conexin fsica mediante la cadena de conexin y otros atributos del administrador de conexin. Un paquete puede tener varios administradores de conexin, y cada administrador de conexin puede tener atributos diferentes. Por esta razn, podra crear varios administradores de conexin para el mismo almacn de datos, cada uno con propiedades ligeramente diferentes.

Pg. 92

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


Tipos de administradores de conexin Como se describe en la tabla siguiente, SSIS proporciona distintos tipos de administradores de conexin que permiten que los paquetes se conecten a diversos orgenes de datos y servidores. Tipo ADO ADO.NET EXCEL FILE FLATFILE FTP HTTP MSMQ MSOLAP100 MULTIFILE MULTIFLATFILE OLEDB ODBC SMOServer SMTP SQLMOBILE WMI Descripcin Se conecta a orgenes de datos de Objetos de datos de ActiveX (ADO) Se conecta a un origen de datos mediante un proveedor .NET Se conecta a un archivo de libro de Excel Se conecta a un archivo o a una carpeta Se conecta a un origen de datos de archivo plano Se conecta a un servidor de Protocolo de transferencia de archivos (FTP) Se conecta a un servidor web Se conecta a una cola de mensajes Se conecta a una instancia de SQL Server 2008 Analysis Services (SSAS) o a un proyecto de Analysis Services Se conecta a varios archivos y carpetas Se conecta a varios archivos de datos y carpetas Se conecta a un origen de datos mediante un proveedor OLE DB Se conecta a un origen de datos mediante la Conectividad abierta de bases de datos (ODBC) Se conecta a un servidor de Objetos de administracin SQL (SMO) Se conecta a un servidor de correo de Protocolo simple de transferencia de correo Se conecta a una base de datos SQL Server Mobile Se conecta a un servidor y especifica el mbito del Instrumental de administracin de Microsoft Windows (WMI) en el servidor

QU ES EL FLUJO DE CONTROL DE PAQUETES?


El flujo de control de paquetes es el proceso de control de la ruta de ejecucin de un paquete. Puede implantar condiciones para controlar la secuencia de las tareas basndose en el xito o error de una tarea anterior o en los resultados de una expresin. Puede agrupar tareas con propsitos organizativos o para proporcionar capacidades transaccionales. Tambin puede repetir grupos de tareas para ejecutar la tarea un cierto nmero de veces o para cada miembro de una coleccin.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 93

Universidad Nacional de Ingeniera

Tareas Las tareas realizan el trabajo en paquetes. La ms importante es la tarea de flujo de datos. Puede haber varias tareas de flujo de datos dentro de un paquete, y cada una puede representar varias operaciones de datos ETL. Otras tareas pueden realizar muchas operaciones diferentes, desde enviar correos electrnicos hasta recibir datos de servicios web. Restricciones de precedencia Las restricciones de precedencia combinan tareas. En su forma ms simple, las restricciones de precedencia permiten un flujo estructurado de operacin a travs de un paquete. Sin embargo, las restricciones de precedencia pueden ser condicionales y permitir que el proceso se ramifique en base a ciertas condiciones. Puede usar el xito, error o finalizacin (xito o error) de la tarea anterior para controlar la ruta de ejecucin. Las restricciones de precedencia tambin pueden comprobar si una expresin se evala como Verdadera, y esta expresin se puede usar en lugar de, o adems de, la restriccin de finalizacin. Contenedores Los contenedores permiten agrupar o repetir las tareas. Los contenedores de secuencias pueden agrupar tareas para su organizacin. Tambin puede usarlos como mbito para una variable, para mantener la privacidad de los valores frente a otras operaciones y como base para transacciones. Puede establecer el soporte transaccional y el nivel de aislamiento a nivel de contenedor de secuencias en lugar de tener que establecer las propiedades de cada tarea individualmente. El contenedor Foreach Loop repite las tareas para cada miembro de una coleccin. Por ejemplo, podra repetir una importacin para cada archivo de una carpeta, o una accin podra realizarse en cada fila de una tabla. Los contenedores For Loop repiten una coleccin de tareas una o dos veces segn la evaluacin de una expresin. Antes de usar un contenedor For Loop, debe crear una variable. A continuacin, use el contenedor For Loop para establecer un valor inicial (InitExpression), una iteracin (AssignExpression) y una evaluacin (EvalExpression) para esta variable. Por ejemplo, si tuviera una variable llamada Contador, podra establecer un valor inicial de @Contador=1, una iteracin de @Contador=@Contador+1, y una evaluacin de @Contador<4. Esto repetira el cdigo cuatro veces. La cuarta vez, el valor Contador se establecera en 4 y el bucle finalizara.

Pg. 94

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Qu es una tarea de flujo de datos?


La tarea de flujo de datos es una tarea especial que abarca las operaciones de extraccin, transformacin y carga de SSIS. Aparece en la pgina Flujo de control como una tarea normal, pero tiene su propia ficha porque est compuesta por varios componentes. El origen extrae datos de almacenes de datos relacionales y no relacionales, como bases de datos de SQL Server, hojas de clculo de Excel y bases de datos de Analysis Services. La transformacin transforma los datos mediante la asignacin del origen al destino y la limpieza, agregacin y modificacin de los datos y del esquema. El destino carga datos en almacenes de datos o los almacena en conjuntos de datos en memoria.

Origen El origen es la conexin al almacn de datos del que necesita extraer datos. Normalmente genera un resultado compuesto por varias columnas. Muchos orgenes tambin tienen una salida de error que tiene todas las columnas de la salida normal ms dos columnas adicionales para la informacin de errores. Aunque la mayora de los orgenes slo tienen una salida normal, puede codificar y personalizar los orgenes para tener varias salidas normales y varias salidas de error. Transformacin Una transformacin puede ser una simple columna que se asigna entre el origen y el destino, pero tambin puede realizar complejas operaciones de modificacin y limpieza en los datos. Las transformaciones tienen una entrada y una salida normal, cada una de ellas compuesta de una o ms columnas. Tambin pueden tener una salida de errores. Las transformaciones son los componentes del flujo de datos de un paquete que agregan, combinan, distribuyen y modifican los datos. Tambin pueden realizar las operaciones de bsqueda y generar conjuntos de datos de muestra. Destinos El destino es la conexin al almacn de datos en el que necesita cargar datos. Tiene por lo menos una entrada, que tiene por lo menos una columna. Un destino puede dar salida a informacin de errores as como recibir datos. Puede codificar y personalizar los destinos para tener varias entradas y salidas de errores.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 95

Universidad Nacional de Ingeniera

Cmo implementar paquetes

SSIS cuenta con herramientas y caractersticas para implementar paquetes de un sistema a otro. El proceso de implementar paquetes consta de tres pasos: 1. Definir las configuraciones de paquetes. 2. Configurar la utilidad de implementacin y generar el proyecto. 3. Copiar e implementar la generacin. Configuraciones de paquetes Las configuraciones de paquetes permiten actualizar los valores de propiedades en tiempo de ejecucin. Esto es particularmente til al trasladar un paquete de un sistema de desarrollo a un sistema de produccin. Los nombres de servidor y las cadenas de conexin probablemente habrn cambiado y las configuraciones de paquetes pueden automatizar el proceso de modificacin de estos valores. Los valores que desea aplicar se pueden almacenar en archivos XML, tablas SQL Server, entradas del Registro o variables de entorno o de paquetes. Se puede agregar una referencia a esta ubicacin de almacenamiento agregando una nueva configuracin desde el men SSIS de Business Intelligence Development Studio. El Asistente para la configuracin de paquetes se ejecuta automticamente y le guiar a travs del proceso de creacin de una configuracin de paquetes.

Pg. 96

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

C API TULO 6

Automatizacin de Tareas Administrativas Beneficios de la Automatizacin Uso del SQL Server Agent Creando Trabajos y Operadores Monitoreando los trabajos Creacin de Alertas

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 97

Universidad Nacional de Ingeniera

O N I T O R E A N D O

A L

S Q L

E R V E R

2 0 0 8

La supervisin es importante porque SQL Server proporciona un servicio en un entorno dinmico. Los datos de la aplicacin cambian, el tipo de acceso que los usuarios requieren cambia y la manera en que los usuarios se conectan cambia. SQL Server administra automticamente recursos a nivel de sistema como la memoria y el espacio en disco, pero la supervisin permite a los administradores identificar las tendencias de rendimiento para determinar si es necesario efectuar cambios.

Qu es el Monitor de actividad?
El Monitor de actividad es una herramienta grfica de SQL Server Management Studio que muestra informacin sobre los procesos de usuario y bloqueos actuales. Puede usar el Monitor de actividad para solucionar problemas de simultaneidad, como los retrasos excesivos en consultas, mientras se liberan los bloqueos o los procesos paralizados que tienen lugar cuando dos procesos esperan a que se liberen los bloqueos y ninguno de ellos puede continuar.

Pginas del Monitor de actividad El Monitor de actividad muestra informacin sobre las conexiones abiertas y los bloqueos actuales. Puede ver informacin en el Monitor de actividad en tres pginas: Informacin del proceso, Bloqueos por proceso y Bloqueos por objeto. Informacin del proceso. En la pgina <Informacin del proceso, el Monitor de actividad muestra una lista de todos los procesos de conexin del sistema. Cada proceso est identificado por un nico Id. de proceso y el Monitor de actividad muestra informacin sobre cada proceso, como el acceso a la base de datos, el nombre de la aplicacin cliente y el inicio de sesin usado por el proceso. Los administradores de la base de datos pueden usar esta pgina para determinar qu procesos estn activos actualmente y finalizar un proceso si es necesario. Bloqueos por proceso. En la pgina Bloqueos por proceso, el Monitor de actividad muestra todos los bloqueos y las solicitudes de bloqueo mantenidas por el proceso seleccionado. Los administradores de la base de datos pueden usar esta pgina para identificar procesos que estn bloquendose entre s debido a bloqueos excesivos e interbloqueos.

Pg. 98

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


Bloqueos por objeto. En la pgina Bloqueos por objeto, el Monitor de actividad muestra todos los bloqueos y las solicitudes de bloqueo mantenidas en el objeto de base de datos seleccionado. Los administradores de la base de datos pueden usar esta pgina para solucionar los problemas de bloqueos con una tabla determinada u otro objeto de base de datos.

Qu son los objetos de administracin dinmica?


Puede usar vistas de administracin dinmica y funciones de administracin dinmica para consultar metadatos dinmicos en SQL Server 2008; proporcionan informacin sobre el estado actual de SQL Server, como los bloqueos actuales de una base de datos. Vistas de administracin dinmica Las vistas de administracin dinmica se muestran con vistas de catlogo en la carpeta Vistas del sistema en el Explorador de objetos de SQL Server Management Studio. Mientras que las vistas de catlogo se pueden usar para ver la informacin de configuracin esttica, las vistas de administracin dinmica devuelven el estado actual de actividad dinmica de SQL Server. Las vistas de administracin dinmica, al igual que las vistas de catlogo, se definen en el esquema sys, pero sus nombres generalmente contienen el prefijo dm para distinguirlas de las vistas de catlogo. La tabla siguiente muestra algunas de las vistas de administracin dinmica que suelen usarse.

Vista de administracin dinmica 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 sobre recuentos de pginas y filas para cada particin de la base de datos Devuelve informacin sobre todas las sesiones actuales conectadas al servidor Devuelve informacin sobre las solicitudes de entrada/salida (E/S) pendientes Devuelve informacin sobre cada cach de objetos simple del sistema Devuelve informacin sobre las amenazas en el sistema Devuelve informacin sobre cada monitor de cola de Service Broker del sistema Devuelve informacin sobre cada bloqueo concedido o solicitado actualmente en el sistema

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 99

Universidad Nacional de Ingeniera


Consultar vistas de administracin dinmica Puede consultar vistas de administracin dinmica mediante una instruccin SELECT estndar. Por ejemplo, el cdigo siguiente devuelve detalles sobre el estado de bloqueo actual del sistema:
SELECT * FROM sys.dm_tran_locks

Para observar las actividades, desplegar el administrador, y luego hacer doble clic sobre el Monitor de Actividades.

Seguidamente, se mostrar la ventana con la informacin de los procesos.

Pg. 100

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Usando el Monitor del sistema


El Monitor de sistema es un complemento de Microsoft Management Console (MMC) que puede usarse para ver medidas de rendimiento del sistema, como el uso del procesador y de la memoria o las estadsticas de actividad de disco.

Objetos, instancias y contadores del Monitor de sistema Puede ver el Monitor de sistema mediante el inicio de la aplicacin Rendimiento en el grupo de programas de Herramientas administrativas. El Monitor de sistema clasifica la informacin en objetos, contadores e instancias. Entender cmo se relacionan entre s los objetos, los contadores y las instancias es fundamental para usar eficazmente el Monitor de sistema. Objetos. En el Monitor de sistema, los objetos son componentes principales o subsistemas del sistema del equipo. Los objetos pueden ser hardware (por ejemplo, un disco duro), software (por ejemplo, un proceso) o aplicaciones (por ejemplo, una instancia de SQL Server). Hay un nmero fijo de objetos en Microsoft Windows Server 2008 y, al instalar SQL Server, se agregan ms objetos especficos de SQL Server. Contadores. Los contadores recopilan datos sobre diferentes aspectos de los objetos. Por ejemplo, para el objeto Proceso, los contadores recopilan los datos sobre el tiempo de procesador y el tiempo de usuario. Los contadores se integran en el sistema operativo y leen continuamente datos de rendimiento, tanto si estn visibles en el Monitor de sistema como si no. Si un tipo de objeto tiene varias instancias, los contadores recopilan estadsticas de cada instancia o del total de todas las instancias. Instancias. Las instancias son mltiplos del mismo tipo de objeto. Por ejemplo, si un sistema tiene varios procesadores, el tipo de objeto Procesador tendr varias instancias. Cuando se ve informacin sobre rendimiento en el Monitor de sistema, puede decidir ver los valores para una instancia individual de un objeto (por ejemplo, el uso de un nico procesador) o los valores combinados para todas las instancias de ese objeto (por ejemplo, el uso general de procesador para todos los procesadores del sistema). En el Monitor de sistema, puede especificar qu contadores se mostrarn. Puede mostrar los valores de contador como un grfico, un histograma (grfico de barras) o un informe. Los grficos, histogramas e informes se pueden ver en un explorador e imprimirse cuando los datos de rendimiento se guardan como archivo de Lenguaje de marcado de hipertexto (HTML). Los

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 101

Universidad Nacional de Ingeniera


informes se pueden exportar a una hoja de clculo, como las de Microsoft Office Excel, para un anlisis ms extenso.

REGISTROS Y ALERTAS DE RENDIMIENTO


Adems del complemento MMC Monitor de sistema, la herramienta Rendimiento incluye un segundo complemento denominado Registros y alertas de rendimiento. Puede usar este complemento para capturar informacin sobre el rendimiento en un archivo de registro para poder verlo posteriormente en el Monitor de sistema. Los registros de contador registran datos sobre los recursos de hardware y los servicios del sistema basados en el rendimiento a lo largo del tiempo. Los registros de contador son tiles para realizar un seguimiento de las tendencias. Los registros de traza recopilan las trazas de eventos que miden las estadsticas de rendimiento asociadas a eventos como E/S de disco y archivo. Los archivos de registro proporcionan un caudal de informacin para la solucin de problemas o el planeamiento. Aunque los grficos, alertas e informes sobre la actividad actual proporcionan informacin instantnea, los archivos de registro le permiten realizar el seguimiento de los contadores durante un largo perodo de tiempo. As, puede examinar la informacin de forma ms exhaustiva y documentar el rendimiento del sistema. Adems, puede configurar alertas que se disparan cuando un contador alcanza un valor umbral concreto. Las alertas son tiles si no est supervisando activamente un contador determinado pero desea ser notificado cuando ste est por encima o por debajo de un valor especificado para poder as investigar y determinar la causa del cambio. Por ejemplo, puede establecer una alerta cuando el porcentaje de espacio en disco usado supere el 80% o cuando el nmero de intentos de inicio de sesin fallidos exceda un nmero concreto.

OBJETOS DE RENDIMIENTO DE SQL SERVER


SQL Server proporciona objetos y contadores que el Monitor de sistema puede usar para supervisar la actividad en equipos que ejecutan una instancia de SQL Server. Un objeto es cualquier recurso de SQL Server, como el administrador de bloqueos de SQL Server. Cada objeto contiene uno o ms contadores que determinan varios aspectos de los objetos para supervisar. Por ejemplo, el objeto Bloqueos de SQL Server contiene los contadores Nmero de interbloqueos/seg. y Tiempos de espera de bloqueos/seg.

Pg. 102

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Consideraciones para supervisar SQL Server


La supervisin de una instancia de SQL Server requiere el anlisis de algunos aspectos clave del sistema. Eliminar los cuellos de botella fsicos puede afectar inmediatamente al rendimiento e incluso localizar problemas de diseo en la base de datos, consultas Transact-SQL o aplicaciones cliente. Es importante supervisar el rendimiento de SQL Server para poder identificar cuellos de botella, determinar su causa y eliminarlos. Los cuellos de botella pueden eliminarse ajustando bases de datos de SQL Server, ndices y consultas; actualizando el hardware; o distribuyendo la carga del servidor entre otros servidores SQL.

Supervisar la actividad de disco SQL Server usa las llamadas de entrada/salida (E/S) del sistema operativo Windows para realizar operaciones de lectura y escritura en sus subsistemas de disco. SQL Server administra cundo y cmo se realizan las operaciones E/S de disco, pero el sistema operativo Windows realiza las operaciones E/S subyacentes. El subsistema E/S incluye el bus del sistema, las tarjetas controladoras de disco, los discos, las unidades de cinta, las unidades de CD-ROM y muchos otros dispositivos de E/S. Las operaciones E/S de disco son con frecuencia la causa de los cuellos de botella en un sistema. Supervisar la actividad de disco requiere concentrarse en dos reas: Supervisar la E/S de disco y detectar la paginacin excesiva. Aislar la actividad de disco que crea SQL Server. Puede supervisar los contadores siguientes en el objeto DiscoFsico para determinar la E/S de disco y detectar la paginacin excesiva. Contador % tiempo de disco Descripcin Supervisa el porcentaje de tiempo durante el cual el disco est ocupado con la actividad de lectura y escritura. Supervisa el nmero medio de solicitudes de lectura y escritura que se ponen en cola. Supervisa el nmero actual de solicitudes de lectura y escritura Directrices Si este contador es alto (ms del 90%), compruebe el contador Longitud actual de la cola de disco. Este contador no debera ser mayor que dos veces el nmero de husos. Este contador no debera ser mayor que dos veces el

Longitud media de la cola de disco Longitud actual de la cola de disco

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 103

Universidad Nacional de Ingeniera


que se ponen en cola. nmero de husos.

Use los valores de los contadores Longitud actual de la cola de disco y % tiempo en disco para detectar los cuellos de botella dentro del subsistema de disco. Si los valores de los contadores Longitud actual de la cola de disco y % de tiempo en disco son altos de forma consistente, considere la posibilidad de efectuar una de las acciones siguientes: Usar una unidad de disco ms rpida. Mover algunos archivos a un disco o servidor adicional. Agregar discos a un dispositivo de almacenamiento de matriz redundante de discos independientes (RAID), si se usa alguno. Supervise el contador Errores de pgina/s. en el objeto Memoria para asegurarse de que la actividad de disco no est ocasionada por la paginacin. Supervisar el uso de memoria Supervise peridicamente una instancia de SQL Server para confirmar que el uso de la memoria se encuentra dentro de los valores normales. Debe asegurarse de que ningn proceso, incluido SQL Server, usa demasiada memoria o est restringido por una memoria insuficiente. Para supervisar en busca de una condicin de memoria baja, use los contadores de objeto descritos en la tabla siguiente. Objeto: contador Descripcin Directrices Memoria: Bytes Indica cuntos bytes de Los valores bajos para el disponibles memoria estn disponibles contador Bytes disponibles actualmente para su uso puede indicar una escasez Pginas/seg. por parte de general de memoria en el procesos. equipo o que una aplicacin no est liberando la memoria. Memoria: Pginas/seg. Indica el nmero de pginas Un alto nmero para el que se recuperaron del disco contador Pginas/seg. podra debido a los errores de indicar una paginacin pgina en disco o que se excesiva. escribieron en el espacio Supervise el contador Errores de disponible del disco conjunto Memoria: de trabajo debido a los pgina/s. para asegurarse de errores de pgina. que la actividad del disco no est ocasionada por la paginacin. Proceso: Errores de Windows Virtual Memory Un nmero alto para este pgina/s Manager toma las pginas contador indica unas (instancia sqlservr) de SQL Server y otros paginaciones excesivas y procesos cuando recorta sacudidas en el disco. Use los tamaos del conjunto este contador para comprobar de trabajo de esos procesos. si SQL Server u algn otro proceso est produciendo la paginacin excesiva. Proceso: Conjunto de Muestra la cantidad de Si este nmero se encuentra trabajo (instancia memoria usada por un de forma coherente por debajo sqlservr) proceso. de la cantidad de memoria establecida por las opciones de servidor memoria mnima del servidor y memoria mxima del servidor, SQL Server se configurar para usar demasiada memoria. SQL Server: Buffer Supervisa el porcentaje de Agregue ms memoria hasta Manager:frecuencia de pginas necesarias que el valor sea

Pg. 104

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


aciertos de cach del bfer encontradas en la cach de bfer, sin leer del disco duro. No diferencia entre la memoria fsica y la memoria del archivo de paginacin usado para la cach de bfer. Supervisa el nmero total de pginas de la cach de bfer, incluidas las pginas de la base de datos, las libres y las robadas de otros procesos. Supervisa la cantidad total de memoria dinmica que usa el servidor. constantemente mayor que el 90%.

SQL Server: Buffer Manager:total de pginasSQL

Un nmero bajo puede indicar sacudidas frecuentes en el disco E/S. Considere la posibilidad de agregar ms memoria. Si este contador es consistentemente alto comparado con la cantidad de memoria fsica disponible, puede que se necesite ms memoria.

Servidor:Memory Manager: Memoria total del servidor (KB)

Supervisar el uso de CPU Supervise peridicamente una instancia de SQL Server para determinar si las tasas de uso de CPU estn dentro de los valores normales. Una tasa continuamente alta de uso de CPU puede indicar la necesidad de actualizar la CPU o de agregar varios procesadores. Por otro lado, una tasa alta de uso de CPU puede indicar la existencia de una aplicacin mal ajustada o mal diseada. Optimizar la aplicacin puede reducir el uso de CPU. Use los contadores descritos en la tabla siguiente para supervisar el uso de CPU. Objeto: contador Descripcin Directrices Procesador: % de tiempo Supervisa la cantidad de tiempo Un estado coherente de del procesador que la CPU invierte en ejecutar entre el 80% y el 90% un subproceso que no se puede indicar la necesidad encuentra inactivo. de actualizar su CPU o de agregar ms procesadores. En los sistemas multiprocesador, supervise una instancia independiente de este contador para cada procesador. Proceso: % tiempo del Supervisa la cantidad de tiempo Use este contador para procesador (instancia que la CPU invierte en ejecutar evaluar la contribucin de sqlservr) un subproceso en el proceso SQL Server al uso total del SQL Server. procesador.

Qu es el SQL Server Profiler?


El Analizador de Microsoft SQL Server es una herramienta de interfaz grfica de usuario para supervisar una instancia del Motor de base de datos de SQL Server o Anlisis Services. Puede capturar y guardar los datos sobre cada evento en un archivo o tabla para analizarlos posteriormente. Por ejemplo, puede supervisar un entorno de produccin para ver qu procedimientos almacenados afectan al rendimiento debido a una ejecucin demasiado lenta.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 105

Universidad Nacional de Ingeniera

Funciones del SQL Server Profiler El SQL Server Profiler muest ra cmo SQL Server resuelve las consultas internamente, lo que permite a los administradores ver exactamente qu instrucciones Transact-SQL se envan al servidor y cmo ste tiene acceso a la base de datos para devolver conjuntos de resultados. Mediante el uso del SQL Server Profiler, podr: Crear una traza paso a paso basada en una plantilla reutilizable. Consultar los resultados de traza mientras se ejecuta. Almacenar los resultados de traza en una tabla o en un archivo para un anlisis ms detallado. Iniciar, detener, poner en pausa y modificar los resultados de traza cuando sea necesario. Reproducir los resultados de traza. Use el SQL Server Profiler para supervisar slo aquellos eventos que le interesen. Si hay demasiada actividad para examinarla con facilidad, puede filtrar eventos basndose en la informacin que desea, de modo que slo se recopile un subconjunto de los datos de eventos. Supervisar demasiados eventos puede sobrecargar al servidor y al proceso de supervisin, lo que puede producir que el archivo o la tabla de traza se hagan muy grandes, sobre todo cuando el proceso de supervisin tiene lugar durante un largo perodo de tiempo. Obtener la traza de actividad de SQL Server mediante el SQL Server Profiler Para usar el SQL Server Profiler, primero decida lo que desea seguir paso a paso y, a continuacin, elija los criterios. Las actividades que podra desear supervisar incluyen: Consultas con un mal rendimiento. Consultas que provocan recorridos de tabla. Actividades de usuarios o aplicaciones individuales. Rendimiento de la base de datos tempdb. Problemas de interbloqueo. Intentos de inicio de sesin, errores, conexiones y desconexiones. Lecturas y escrituras del disco lgico. Uso de CPU a nivel de instruccin. Tiempo de espera para todos los eventos posteriores a la ejecucin. Puede establecer los procedimientos almacenados del sistema en el SQL Server Profiler para seguir paso a paso un conjunto definido de eventos y filtrar el nivel de informacin recopilado sobre esos eventos. Mediante el uso del procedimiento almacenado del sistema sp_trace_create, puede hacer la traza de eventos especificados en su servidor. La opcin trace_produce_blackbox crea un registro rotativo de los ltimos 5 megabytes (MB) de eventos de servidor especificados.

Pg. 106

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Opciones de traza del SQL Server Profiler


Cuando usa el SQL Server Profiler para crear una traza, dispone de varias opciones para definir la actividad que se registrar y dnde se almacenar la actividad de traza registrada. Especificar una plantilla de traza Los eventos incluidos en una traza estn determinados por la especificacin de las clases de eventos que desea supervisar y los valores de datos individuales (columnas) que desea registrar. Esto se lleva a cabo mediante la seleccin de la plantilla en la que desea basar su traza y, a continuacin, agregando o quitando clases o columnas de eventos individuales y aplicando filtros para limitar los datos recopilados basndose en criterios concretos. El SQL Server Profiler ofrece varias plantillas predefinidas que le permiten configurar con facilidad los eventos que probablemente necesitar para tipos concretos de actividad. Por ejemplo, la plantilla Estndar le ayuda a crear una traza genrica para registrar inicios y cierres de sesin, lotes finalizados e informacin de conexin. Puede usar esta plantilla sin modificarla para ejecutar trazas, o como punto de partida para plantillas adicionales con configuraciones de eventos diferentes. Tambin puede crear sus propias plantillas o modificar las plantillas predefinidas. Guardar datos de traza Debera guardar los datos de eventos capturados en un archivo o una tabla de SQL Server cuando necesite analizar o volver a consultar los datos capturados posteriormente. Al guardar una traza, puede: Usar un archivo o una tabla de traza para crear una carga de trabajo que se use como entrada para Database Engine Tuning Advisor. Usar un archivo de traza para capturar eventos y enviar el archivo de traza al proveedor de soporte tcnico para su anlisis. Usar las herramientas de procesamiento de consulta en SQL Server para tener acceso a los datos o ver los datos en el SQL Server Profiler. Slo los miembros de la funcin fija de servidor sysadmin o el creador de la tabla pueden tener acceso a la tabla de traza directamente. Las opciones disponibles al guardar una traza en una tabla son: La ubicacin y el nombre de la tabla. El nmero mximo de filas que se almacenan en la tabla (opcional). Las opciones disponibles al guardar una traza en un archivo son: La ubicacin y el nombre del archivo. El tamao mximo del archivo. Siga el comportamiento cuando el archivo est lleno (desplcese para iniciar al principio del archivo otra vez o crear un nuevo archivo). Siga el procesamiento por parte del servidor o del SQL Server Profiler. Configurar el servidor para procesar la traza puede reducir el impacto de la traza en el rendimiento. Especificar una hora de detencin de traza Puede decidir establecer una hora de detencin de la traza, lo cual le permite iniciar una traza y dejar que se ejecute hasta una fecha y hora concretas. La capacidad para especificar una pausa es til cuando desee registrar la actividad de SQL Server para un perodo predeterminado.

COLUMNAS, EVENTOS Y CATEGORAS DE TRAZA


La informacin registrada en una traza se divide en categoras. Las categoras contienen eventos, cada uno de los cuales tiene atributos definidos posteriormente por columnas. Categoras de traza En el SQL Server Profiler, una categora es un grupo de clases de eventos relacionadas. Las clases de eventos estn compuestas por tipos de eventos que se pueden seguir paso a paso. La clase de evento contiene todas las columnas de datos sobre las que un evento puede realizar informes.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 107

Universidad Nacional de Ingeniera


Las categoras mostradas de forma predeterminada son: Security Audit. Incluye las clases de eventos que se usan para auditar la actividad del servidor. Sesiones. Incluyen clases de eventos generadas por clientes que se conectan y desconectan de una instancia de SQL Server. Procedimientos almacenados. Incluyen clases de eventos generadas por la ejecucin de procedimientos almacenados. TSQL. Incluyen clases de eventos generadas por la ejecucin de instrucciones Transact-SQL pasadas a una instancia de SQL Server desde el cliente. Eventos Un evento se define como la aparicin de una accin dentro de una instancia del Motor de base de datos de SQL Server. Los eventos se definen adems por sus atributos, que se muestran en columnas de datos. Los eventos predeterminados mostrados se describen en la tabla siguiente. Categora Security Audit Evento Audit Login Descripcin Indica que un usuario ha iniciado sesin correctamente en SQL Server. Indica que un usuario ha cerrado la sesin de SQL Server. Indica las propiedades de conexiones de usuario existentes cuando se inici la traza. El servidor provoca un evento ExistingConnection por cada conexin de usuario existente. Indica que una llamada de procedimiento remoto ha finalizado. Indica que el lote de TransactSQL ha finalizado. Indica que un lote de TransactSQL se est iniciando.

Security Audit Sesiones

Audit Logout ExistingConnection

Procedimientos almacenados TSQL TSQL

RPC: completed

SQL:BatchCompleted SQL:BatchStarting

Columnas Las columnas de datos contienen los atributos de los eventos. El SQL Server Profiler usa las columnas de datos de la traza para describir eventos que se capturan cuando se ejecuta la traza. Puede administrar las columnas mediante filtros de columna para controlar qu datos se recopilan. Por ejemplo, use el filtro Nombre de aplicacin para excluir cualquier dato generado por el propio SQL Server Profiler. Tambin puede organizar columnas en grupos relacionados usando la funcin Organizar columnas.

CREANDO UNA TRAZA CON EL SQL PROFILER


Haga clic en Inicio, seleccione Todos los programas, Microsoft SQL Server 2008 y Herramientas de rendimiento y, a continuacin, haga clic en SQL Server Profiler. En el SQL Server Profiler, en el men Archivo, haga clic en Nueva traza. En el cuadro de dilogo Propiedades de traza, en el cuadro Nombre de traza, escriba Prueba de esfuerzo.

Pg. 108

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

En el cuadro de dilogo Tabla de destino, seleccione la base de datos AdventureWorks, el propietario dbo, y la tabla Prueba de esfuerzo y, a continuacin, haga clic en Aceptar.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 109

Universidad Nacional de Ingeniera


En el cuadro de dilogo Propiedades de traza, active la casilla de verificacin Habilitar hora de detencin de traza y, a continuacin, especifique una hora 5 minutos despus de la hora actual.

Haga clic en Ejecutar/Run para iniciar la traza.

Usar los desencadenadores DDL


Los desencadenadores del Lenguaje de definicin de datos (DDL) son una nueva caracterstica en SQL Server 2008. A diferencia de los desencadenadores estndar, que slo pueden responder a los cambios en los datos, los desencadenadores DDL se pueden usar para responder a las acciones en objetos en una base de datos. Por ejemplo, un desencadenador DDL puede usarse para auditar operaciones como la creacin o supresin de tablas. Por

Pg. 110

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


consiguiente, los desencadenadores de DDL son una herramienta muy til para supervisar las acciones que tienen lugar en una base de datos.

Es til poder supervisar operaciones de definicin de datos, como un usuario que crea o suprime una tabla, al auditar y regular las acciones de base de datos. Los desencadenadores DDL proporcionan una forma de capturar de forma transparente eventos de definicin de datos, para que un usuario que ejecute una instruccin de lenguaje de definicin de datos no sea consciente de que la tarea es observada.

Cundo usar desencadenadores DDL


Un desencadenador DDL se inicia cuando un usuario ejecuta una instruccin de lenguaje de definicin de datos especificada, como CREATE TABLE, DROP TRIGGER o UPDATE STATISTICS. Los desencadenadores DDL pueden ser tiles para registrar acciones administrativas en el sistema. Por ejemplo, podra crear un desencadenador en la instruccin CREATE VIEW para registrar detalles sobre la vista que se cre, el usuario que la cre y la hora en que tuvo lugar la accin. mbito de desencadenador DDL A diferencia de los desencadenadores corrientes que estn asociados a tablas, un desencadenador DDL se ejecuta cuando se ejecuta una instruccin determinada, sin tener en cuenta el destino de esa instruccin. Por ejemplo, un desencadenador DLL DROP_TABLE se iniciar cuando se anule una tabla. Algunos desencadenadores DDL funcionan en el nivel de base de datos y slo se inician cuando el evento correspondiente tiene lugar en una base de datos concreta. Estos desencadenadores tienen relacin sobre todo con objetos de una sola base de datos, como tablas, ndices, usuarios, procedimientos, vistas, etc. Un ejemplo de un desencadenador DDL que funciona en el mbito de base de datos es CREATE_TABLE. Otros desencadenadores DDL funcionan en el nivel de servidor y se inician sin tener en cuenta la base de datos que est en uso. Estos desencadenadores estn asociados a objetos en el nivel de servidor, como inicios de sesin y certificados de seguridad. El desencadenador DLL CREATE_LOGIN es un ejemplo que funciona en el mbito de servidor. Proceso desencadenador DDL Los desencadenadores DDL se inician cuando finaliza la accin desencadenadora. Por ejemplo, un desencadenador DROP_TABLE se inicia despus de que la tabla de destino se

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 111

Universidad Nacional de Ingeniera


haya anulado correctamente. No hay ningn equivalente a los desencadenadores INSTEAD OF para las operaciones DDL. Puede usar la instruccin ROLLBACK TRANSACTION para anular la transaccin actual y deshacer cualquier trabajo que se haya realizado, incluida la operacin DDL que hizo que el desencadenador se iniciara. Una sola operacin DDL puede desencadenar varios desencadenadores DDL. El orden en el que se inician los desencadenadores no se documenta. No debera confiar en que los desencadenadores DDL se ejecuten siguiendo una secuencia determinada.

Cmo crear desencadenadores DDL


Puede crear desencadenadores DDL mediante la instruccin CREATE TRIGGER. Adems, puede usar algunas nuevas extensiones de sintaxis que se han agregado a SQL Server 2008.

La instruccin CREATE TRIGGER Al crear un desencadenador DDL, debe especificar el mbito y el tipo de operacin DDL. El ejemplo siguiente crea un desencadenador que se inicia en el momento en el que un usuario ejecuta el comando UPDATE STATISTICS en la base de datos actual:
CREATE TRIGGER UpdStats ON DATABASE FOR UPDATE_STATISTICS AS ...

Indique el mbito de un desencadenador mediante la clusula ON DATABASE o mediante la clusula ON ALL SERVER en la definicin del desencadenador. El cuerpo de un desencadenador DDL puede contener instrucciones Transact-SQL o puede hacer referencia a un mtodo en un ensamblado de Microsoft .NET. La funcin eventdata Los desencadenadores de Lenguaje de manipulacin de datos estndar (DML) crean las tablas insertadas y eliminadas, permitiendo que el desarrollador examine los datos que se estn cambiando y los nuevos valores que los modifican. Los desencadenadores DDL no crean estas tablas. En su lugar, puede usar la funcin eventdata para obtener informacin sobre los eventos que inician el desencadenador.

Pg. 112

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


La funcin eventdata devuelve un documento XML EVENT_INSTANCE cuyo contenido vara segn el destino del desencadenador DDL. Todos los desencadenadores DDL devuelven un documento que incluye los elementos siguientes: <PostTime>. El momento en el que se inici el desencadenador. <SPID>. El Id. del proceso de base de datos que activa el desencadenador. <EventType>. El tipo de evento que activ el desencadenador, como CREATE_TABLE o UPDATE_STATISTICS El resto del documento XML contiene informacin que depende del comando que activa el desencadenador. Por ejemplo, un desencadenador DDL devolvi el documento siguiente mediante la activacin del comando UPDATE STATISTICS:
<EVENT_INSTANCE> <PostTime>2004-06-18T02:14:20.640</PostTime> <SPID>58</SPID> <EventType>UPDATE_STATISTICS</EventType> <ServerName>SQL2008PC</ServerName> <LoginName>SQL2008PC\Administrator</LoginName> <UserName>SQL2008PC\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>

Extraer informacin de evento Use la funcionalidad XQuery del tipo de datos xml para extraer la informacin de evento que devolvi el documento con la funcin eventdata. Por ejemplo, la muestra de cdigo siguiente recupera los elementos PostTime, Database y TargetObject en un desencadenador DDL UPDATE_STATISTICS 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 = @data.value('(/EVENT_INSTANCE/PostTime)[1]', 'nvarchar(24)') SET @database = @data.value('(/EVENT_INSTANCE/DatabaseName)[1]', 'nvarchar(100)') SET @targetobject = @data.value('(/EVENT_INSTANCE/TargetObjectName/text())[1]', 'nvarchar(100)') PRINT @posttime PRINT @database PRINT @targetobject

Cmo administrar desencadenadores DDL


SQL Server 2008 ha ampliado la sintaxis de los comandos usados para administrar desencadenadores con extensiones especficas para desencadenadores DDL.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 113

Universidad Nacional de Ingeniera

Ver los desencadenadores Puede obtener una lista de los desencadenadores disponibles de una base de datos, incluidos los desencadenadores DDL, mediante la consulta de la vista de catlogo sys.triggers, como se muestra en el ejemplo de cdigo siguiente:
SELECT name FROM sys.triggers

Puede recuperar la definicin de un desencadenador mediante la consulta de la vista de catlogo sys.sql_modules, como se muestra en el siguiente ejemplo de cdigo:
SELECT definition FROM sys.sql_modules WHERE [object_id] = (SELECT [object_id] FROM sys.triggers WHERE name='trigger_name')

Alternativamente, puede ver desencadenadores de base de datos mediante el Explorador de objetos en SQL Server Management Studio. Modificar un desencadenador Use el comando ALTER TRIGGER para cambiar la definicin de un desencadenador DDL. La sintaxis para cambiar un desencadenador DDL es muy parecida a la correccin de un desencadenador estndar. Puede: Cambiar el evento desencadenador. Cifrar el desencadenador. Modificar las instrucciones Transact-SQL que constituyen el cuerpo del desencadenador. Eliminar un desencadenador Use el comando DROP TRIGGER para quitar un desencadenador. Por ejemplo:
DROP TRIGGER UpdStats ON DATABASE

Pg. 114

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Usar las notificaciones de eventos


Las notificaciones de eventos son una nueva caracterstica en SQL Server 2008 que proporcionan un mecanismo muy escalable para supervisar la actividad de SQL Server. Son una herramienta til para registrar la actividad de la base de datos con un impacto mnimo sobre el rendimiento de SQL Server.

QU SON LAS NOTIFICACIONES DE EVENTOS?


Las notificaciones de eventos, como los desencadenadores, pueden responder a varios eventos de la base de datos. A diferencia de los desencadenadores, que ejecutan el cdigo en el mismo motor de base de datos de SQL Server 2008 como el evento que activ el desencadenador, las notificaciones de eventos se envan a un servicio mediante Service Broker, lo que le permite enviar datos de eventos de varias bases de datos y servidores a un servicio de control de eventos central. Notificaciones de eventos Una notificacin de eventos reacciona ante uno o ms eventos en la base de datos y enva un mensaje a un servicio de Service Broker diseado para controlar los eventos. Un evento de base de datos puede ser una operacin DDL en un objeto de base de datos o un evento de traza parecido a aqullos que se pueden capturar mediante el SQL Server Profiler. Capturar eventos Para capturar y procesar notificaciones de eventos, debe implementar un servicio de Service Broker. Un servicio de Service Broker es un procedimiento almacenado o una aplicacin generada mediante el marco Service Broker que supervisa una cola para los mensajes entrantes. Un servicio de Broker Service se puede escribir usando Transact-SQL o uno de los lenguajes de Common Language Runtime (CLR). Service Broker enva mensajes al servicio, y usa una cola para conservar la informacin de mensajes hasta que el servicio est listo para aceptarlos. El servicio tambin puede usar una cola para mantener solicitudes hasta que pueda procesarlas. Para simplificar el proceso de creacin de notificaciones de eventos, SQL Server 2008 incluye un tipo de mensaje predefinido y un contrato para las notificaciones de eventos. Los nicos objetos de Service Broker que necesita crear son una cola, un servicio y una ruta.

CMO CREAR NOTIFICACIONES DE EVENTOS


Use la instruccin CREATE EVENT NOTIFICATION para crear un nuevo objeto de notificacin de eventos y enviar la informacin del evento a un servicio de procesamiento de eventos.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 115

Universidad Nacional de Ingeniera


Usar la instruccin CREATE EVENT NOTIFICATION Cuando use la instruccin CREATE EVENT NOTIFICATION, debe: Definir la notificacin de eventos con un nombre que sea nico dentro de su mbito. Especificar el mbito de la notificacin de eventos. El mbito puede ser SERVER, DATABASE o QUEUE. Especificar los eventos que desea capturar. Puede especificar un evento individual o un grupo de eventos que contenga varios eventos relacionados. Especifique el servicio de Service Broker al que se debera enviar la informacin del evento. Debe especificar el nombre del servicio y la identificacin de instancia de Service Broker exclusiva que identifica la base de datos en la que se implementa el servicio. Para los servicios de la base de datos local, puede usar la cadena literal 'current database'. Ejemplos El cdigo de Transact-SQL siguiente muestra una instruccin CREATE EVENT NOTIFICATION para una notificacin de eventos denominada CreateLoginEvent. La notificacin de eventos tiene un mbito de servidor y enva informacin al servicio NotifyService en la base de datos actual cada vez que se ejecuta el comando CREATE LOGIN:
CREATE EVENT NOTIFICATION CreateLoginEvent ON SERVER FOR CREATE_LOGIN TO SERVICE 'NotifyService', 'current database'

El ejemplo siguiente muestra una instruccin CREATE EVENT NOTIFICATION para una notificacin de eventos denominada TableViewEvent con mbito de base de datos que enva informacin al servicio EvtService cuando se ejecuta cualquier operacin DDL en una tabla, vista, ndice, o estadsticas:
CREATE EVENT NOTIFICATION TableViewEvent ON DATABASE FOR DDL_TABLE_VIEW_EVENTS TO SERVICE 'EvtService', '8140a771-3c4b-4479-8ac0-81008ab17984'

Tambin puede usar las notificaciones de eventos para capturar un evento de traza. Por ejemplo, la notificacin de eventos siguiente intercepta el evento SQL_BatchCompleted. (Los eventos de traza slo se pueden capturar en el nivel de servidor).
CREATE EVENT NOTIFICATION TraceSQLBatches ON SERVER FOR SQL_BatchCompleted TO SERVICE 'NotifyService', 'current database'

CMO PROCESAR NOTIFICACIONES DE EVENTOS


La manera ms simple de crear un servicio de Service Broker para controlar eventos de SQL Server es usar un procedimiento almacenado que se active cuando aparezca un mensaje en una cola, enviado por una notificacin de eventos.

Pg. 116

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Puede especificar qu procedimiento almacenado se ejecutar cuando crea la cola. El cdigo siguiente muestra cmo especificar la ejecucin de un procedimiento almacenado denominado EventProc cuando se recibe un mensaje en la cola NotifyQueue:
CREATE QUEUE NotifyQueue WITH ACTIVATION ( PROCEDURE_NAME = dbo.EventProc, MAX_QUEUE_READERS = 5, EXECUTE AS SELF) GO

Recibir mensajes El procedimiento almacenado de procesamiento de eventos debera recuperar primero el mensaje de la cola mediante el comando RECEIVE y, a continuacin, almacenar la informacin en variables. El comando WAITFOR se usa para suspender el procesamiento hasta que se reciba un mensaje o hasta que hayan pasado dos segundos. Si no se recibe ningn mensaje, no es necesario efectuar ms acciones. En el ejemplo siguiente se muestra cmo recibir mensajes de una cola denominada 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 A los mensajes de la cola se les asigna un message_type_name que describe el tipo de mensaje. Puede usarlo para identificar si el mensaje es una notificacin de eventos o un mensaje de error de la notificacin de eventos. Los mensajes tambin contienen una columna message_body que contiene la informacin real del evento. Esta columna contiene un documento EVENT_INSTANCE XML que incluye los mismos elementos que el documento generado por el desencadenador DDL. Por ejemplo, una notificacin de eventos de tabla que activa un comando ALTER TABLE gener el documento siguiente:
<EVENT_INSTANCE>

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 117

Universidad Nacional de Ingeniera


<SPID>58</SPID> <EventType>ALTER_TABLE</EventType> <ServerName>SQL2008PC</ServerName> <LoginName>SQL2008PC\Administrator</LoginName> <UserName>SQL2008PC\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 la funcionalidad XQuery del tipo de datos xml para recuperar la informacin del evento como se muestra en el ejemplo siguiente:
DECLARE @cmd nvarchar(1000) DECLARE @posttime nvarchar(24) DECLARE @spid nvarchar(6) DECLARE @loginname nvarchar(100) DECLARE @hostname nvarchar(100) SET @cmd = @messagebody.value ('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]'), 'nvarchar(1000)') SET @posttime = @messagebody.value ('(/EVENT_INSTANCE/PostTime)[1]', 'nvarchar(24)') SET @spid = @messagebody.value ('(/EVENT_INSTANCE/SPID)[1]', 'nvarchar(6)') SET @loginname = @messagebody.value ('(/EVENT_INSTANCE/LoginName)[1]', 'nvarchar(100)') SET @hostname = HOST_NAME() INSERT INTO AuditLog(Command,PostTime,HostName,LoginName) VALUES(@cmd, @posttime, @hostname, @loginname) GO

CMO ADMINISTRAR NOTIFICACIONES DE EVENTOS


SQL Server 2008 proporciona nuevas instrucciones Transact-SQL para administrar notificaciones de eventos. Estas instrucciones permiten ver, modificar y quitar notificaciones de eventos.

Ver las notificaciones de eventos y colas Puede obtener una lista de notificaciones de eventos mediante la consulta de la vista de catlogo sys.event_notifications:
SELECT name FROM sys.event_notifications

Pg. 118

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


Puede ver una lista de colas, incluidas las usadas por las notificaciones de eventos, mediante la consulta de la vista de catlogo sys.service_queues:
SELECT name FROM sys.service_queues

Eliminar una notificacin de eventos Use el comando DROP EVENT NOTIFICATION para eliminar permanentemente una notificacin de eventos de la base de datos:
DROP EVENT NOTIFICATION UpdateStats ON SERVER

Nota Las notificaciones de eventos dependen de la funcionalidad Service Broker de SQL Server 2008. Para usar las notificaciones de eventos, debe habilitar Service Broker mediante la habilitacin de la configuracin ENABLE_BROKER para la base de datos en la que se encuentra su cdigo de notificacin de eventos.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 119

Universidad Nacional de Ingeniera

C A PI TULO 7

Monitoreando al SQL Server 2008 Uso del Monitor de Actividades Uso del Monitor del Sistema Uso del SQL Server Profiler Usando DDL Triggers Uso de Notificaciones

Pg. 120

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

U T O M A T I Z A C I N A D M I N I S T R A T I V A S

D E

T A R E A S

Una de las funciones principales de un administrador de bases de datos es el mantenimiento de SQL Server y sus bases de datos. Tambin se incluyen tareas que se deben realizar de manera programada y tareas adicionales para anticiparse a los problemas antes de que se produzcan. El trabajo de un administrador conlleva deberes administrativos que no cambian de un da para otro y que pueden llegar a ser aburridos. Puede automatizar estas tareas rutinarias y configurar SQL Server para supervisar ciertos tipos de problemas antes de que aparezcan.

Ventajas de la automatizacin
La automatizacin de la administracin y la supervisin de tareas permite al administrador de bases de datos reducir la carga de trabajo asociada a realizar tareas repetitivas y a la supervisin de SQL Server. Al usar trabajos y alertas, puede configurar SQL Server para responder automticamente a los problemas que surjan e incluso evitar que algunos de ellos aparezcan.

Ventajas de la automatizacin de la administracin de bases de datos Las ventajas de la automatizacin de la administracin de bases de datos incluyen: Reduccin de la carga de trabajo administrativa, con lo que se permite a los administradores de bases de datos centrarse en otras funciones del trabajo, como planear cambios en la base de datos u optimizar su rendimiento, en lugar de estar pendientes de tareas de mantenimiento rutinarias. Reduccin del riesgo de que se pasen por alto tareas de mantenimiento fundamentales. Reduccin del riesgo de errores humanos al realizar tareas de mantenimiento de bases de datos. La administracin proactiva de la base de datos a travs de alertas indica la accin que debe realizarse para impedir que se produzcan problemas antes de que ocurran.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 121

Universidad Nacional de Ingeniera

Qu es el Asistente para planes de mantenimiento?


Puede usar el Asistente para planes de mantenimiento para programar las tareas de mantenimiento principales a fin de garantizar la realizacin de copias de seguridad de la base de datos con regularidad, que su rendimiento sea el adecuado y que se llevan a cabo comprobaciones en busca de incoherencias. El Asistente para planes de mantenimiento crea uno o varios trabajos del Agente SQL Server que realizan estas tareas de mantenimiento automticamente a intervalos programados.

Tareas que pueden automatizarse con el Asistente para planes de mantenimiento Las tareas de mantenimiento que pueden programarse para que se ejecuten automticamente incluyen: Realizar copias de seguridad de la base de datos y de archivos del registro de transacciones. Las copias de seguridad de las bases de datos y del registro pueden conservarse durante un perodo de tiempo especfico. Ejecutar trabajos del Agente SQL Server que permiten realizar una gran variedad de acciones. Compactar los archivos de datos quitando las pginas de base de datos vacas. Realizar comprobaciones de coherencia internas de los datos y pginas de datos dentro de la base de datos para asegurarse de que un problema en el sistema o de software no haya daado los datos. Reorganizar los datos en las pginas de datos y de ndice volviendo a generar los ndices. Actualizar las estadsticas del ndice para asegurarse de que el optimizador de consultas tiene informacin actualizada sobre la distribucin de valores de los datos en las tablas. Los resultados generados por las tareas de mantenimiento se pueden escribir como un informe en un archivo de texto o en las tablas del plan de mantenimiento (sysmaintplan_log y sysmaintplan_log_detail) en la base de datos msdb.

Inicio del Asistente para planes de mantenimiento El Asistente para planes de mantenimiento se inicia desde SQL Server Management Studio. En el Explorador de objetos, expanda la carpeta del servidor y la carpeta Administracin, haga clic con el botn secundario en Planes de mantenimiento y, a continuacin, haga clic en el Asistente para planes de mantenimiento. Posteriormente, podr usar el asistente para crear un plan personalizado que se ajuste a sus requisitos de mantenimiento.

Qu es el Agente SQL Server?


El Agente SQL Server es el componente de SQL Server responsable de la automatizacin de las tareas administrativas de SQL Server. Para que el Agente SQL Server ejecute trabajos y active alertas, debe estar en funcionamiento siempre y debe contar con permisos suficientes. Al usar el Agente SQL Server, el administrador de las bases de datos podr programar tareas

Pg. 122

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


mucho ms complejas con ms flexibilidad que usando exclusivamente el Asistente para planes de mantenimiento.

Servicio Agente SQL Server


En todos los sistemas operativos Microsoft Windows Server 2003 y 2008, el Agente SQL Server se ejecuta como servicio de Windows. Deber estar en funcionamiento para ejecutar trabajos programados y activar las alertas definidas. Debera configurar el servicio Agente SQL Server para que se inicie automticamente cada vez que Windows Server 2003 o Windows 2008 se inician. Adems, puede configurar el servicio Agente SQL Server para que se reinicie automticamente si se detiene inesperadamente mediante el Administrador de configuracin de SQL Server. Para que se reinicie automticamente, la cuenta de servicio Agente SQL Server debe ser un miembro del grupo local Administradores.

Configurar el Agente SQL Server


El Agente SQL Server se implementa como un servicio de Windows. Cada instancia de SQL Server tiene su propio servicio de Agente SQL Server, que se denomina SQLSERVERAGENT para instancias predeterminadas, o bien SQLAgent$nombre_instancia para las instancias que ya tengan un nombre.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 123

Universidad Nacional de Ingeniera

Configuracin de inicio del servicio Agente SQL Server


Como cualquier servicio de Windows, el servicio Agente SQL Server puede configurarse para que se inicie manual o automticamente o puede deshabilitarse. De forma predeterminada, el servicio Agente SQL Server est definido para que se inicie manualmente cuando SQL Server 2008 est instalado. Es posible cambiar la configuracin de inicio del servicio Agente SQL Server usando el Administrador de configuracin de SQL Server o la herramienta administrativa de los servicios de Windows. Si piensa implementar trabajos y alertas automatizados, por lo general debera establecer que el servicio Agente SQL Server se iniciara automticamente al arrancar Windows, a menos que haya una buena razn para iniciar el servicio manualmente. Cuando se inicia, el servicio Agente SQL Server se conecta a SQL Server y ejecuta el procedimiento almacenado extendido xp_sqlagent_monitor en la base de datos master. Este procedimiento almacenado supervisa el estado del servicio Agente SQL Server y lo reinicia si se detiene inesperadamente.

ESPECIFICAR UNA CUENTA DE SERVICIO AGENTE SQL SERVER


Puede configurar el servicio Agente SQL Server para que se ejecute como una cuenta integrada o como una cuenta de usuario de Windows concreta. Se pueden usar las siguientes cuentas integradas para el servicio Agente SQL Server: Sistema local. La cuenta de sistema local es miembro del grupo local Administradores. Slo se ofrece la posibilidad de usar esta cuenta para la compatibilidad con versiones anteriores y no debera usarse para el servicio Agente SQL Server. Servicio local. La cuenta de servicio local dispone de permisos similares a los de un usuario local y tiene acceso a los recursos de red mediante una sesin nula sin credenciales. La cuenta de servicio local es adecuada para el servicio Agente SQL Server cuando todos los trabajos y alertas se pueden implementar de manera local en el servidor. Servicio de red. La cuenta de servicio de red dispone de permisos similares a los de un usuario local y tiene acceso a los recursos de red mediante las credenciales de la cuenta del equipo. Microsoft recomienda que no se use la cuenta de servicio de red con el servicio Agente SQL Server.

Pg. 124

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


En la mayora de los casos, debera especificar una cuenta de usuario local o de usuario de dominio para el servicio Agente SQL Server y asignar los permisos y derechos de usuario mnimos que la cuenta de servicio necesite. El servicio Agente SQL Server requiere el derecho de usuario iniciar sesin como un servicio. Adems, los siguientes derechos de usuario son necesarios para que los servidores proxy del Agente SQL Server sean compatibles: Actuar como parte del sistema operativo Omitir comprobacin de recorrido Reemplazar un testigo de nivel de proceso Ajustar las cuotas de memoria para un proceso Iniciar sesin como trabajo por lotes Si los derechos de usuario que se han descrito anteriormente no se conceden, slo los miembros de la funcin fija de servidor sysadmin pueden crear trabajos. Finalmente, la cuenta de servicio Agente SQL Server usa la autenticacin de Windows para conectar con SQL Server y debe asignarse a un inicio de sesin que sea miembro de la funcin fija de servidor sysadmin. Si se van a crear trabajos multiservidor, se debera asignar el inicio de sesin a un usuario que sea miembro de la funcin de la base de datos TargetServersRole en la base de datos msdb en el servidor principal.

Dependencias del servicio Agente SQL Server El servicio Agente SQL Server depende del servicio de SQL Server para la instancia a la que pertenece. Adems, algunas operaciones realizadas por el Agente SQL Server podran basarse en otros servicios de Windows. Por ejemplo, para enviar las notificaciones del operador usando el comando net send, debe iniciarse previamente el servicio Windows Messenger.

Opciones de correo del Agente SQL Server


SQL Server 2008 incluye dos mecanismos para enviar correo electrnico: Correo electrnico de base de datos y SQL Mail. Puede configurar el Agente SQL Server para que use cualquiera de estos mecanismos al enviar las notificaciones por correo electrnico.

Usar Correo electrnico de base de datos con el Agente SQL Server El Correo electrnico de base de datos es una funcin de SQL Server 2008 que permite a SQL Server enviar correo electrnico a travs de un servidor de Protocolo simple de transporte de correo (SMTP, Simple Mail Transport Protocol). Para usar la funcin Correo electrnico de base de datos con el Agente SQL Server, debe realizar las tareas de configuracin siguientes: Habilite el Correo electrnico de base de datos. Cree un perfil de Correo electrnico de base de datos que incluya una cuenta de correo electrnico que use el Agente SQL Server. Haga que ste sea el perfil predeterminado del usuario en la base de datos msdb que se asigna al inicio de sesin de la cuenta de servicio Agente SQL Server. Agregue al usuario para el inicio de sesin de la cuenta de servicio Agente SQL Server a la funcin de base de datos DatabaseMailUserRole en la base de datos msdb. Configure las propiedades del sistema de alertas del Agente SQL Server para usar el Correo electrnico de base de datos y especifique el perfil que haya creado en los pasos anteriores.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 125

Universidad Nacional de Ingeniera


Reinicie el servicio Agente SQL Server.

Usar SQL Mail con el Agente SQL Server


SQL Mail es una funcin de correo electrnico basada en una Interfaz de programacin de aplicaciones de mensajera (MAPI, Messaging Application Programming Interface) que puede usar para configurar SQL Server para enviar y recibir el correo electrnico a travs de Microsoft Exchange Server. Para usar SQL Mail, debe configurar un perfil de MAPI en el equipo de SQL Server para la cuenta de servicio Agente SQL Server, que requiere la instalacin de un cliente de correo electrnico como Microsoft Office Outlook.

Crear trabajos y operadores


Un trabajo es una serie especificada de operaciones realizada secuencialmente por el Agente SQL Server. Un trabajo puede realizar una amplia gama de actividades, incluso ejecutar secuencias de comandos de Transact-SQL, aplicaciones de lnea de comandos, secuencias de comandos de ActiveX, paquetes de Integration Services, comandos y consultas de Analysis Services o tareas de rplica. Los trabajos pueden ejecutar tareas repetitivas o que se pueden programar. Adems, pueden notificar automticamente a los usuarios conocidos, como operadores, acerca del estado del trabajo mediante la generacin de alertas, con lo que se simplifica en gran medida la administracin de SQL Server. Puede ejecutar manualmente un trabajo o puede configurarlo para que se ejecute segn una programacin o como respuesta a alertas.

Pg. 126

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Crear trabajos Puede usar SQL Server Management Studio o ejecutar el procedimiento almacenado del sistema sp_add_job para definir un trabajo nuevo. La definicin del trabajo se almacena en la tabla del sistema sysjobs en la base de datos msdb. Esta tabla se mantiene en cach para mejorar el rendimiento. Al definir los trabajos, debe hacer lo siguiente: Asegrese de que el trabajo est habilitado. Los trabajos se habilitan de manera predeterminada. Si un trabajo se deshabilita, no podr ejecutarse tal y como estaba programado. Sin embargo, un usuario todava puede ejecutar manualmente un trabajo deshabilitado si lo inicia en el Administrador corporativo de SQL Server. Especifique el propietario responsable de la realizacin del trabajo. De forma predeterminada, el propietario es la cuenta de inicio de sesin del usuario de Windows o SQL Server que ha creado el trabajo. Defina si el trabajo se ejecuta en un servidor local o en varios servidores remotos. Cree categoras de trabajo que le sirvan para organizar, filtrar y administrar muchos trabajos. Por ejemplo, puede crear categoras de trabajo que se correspondan con los departamentos en su organizacin.

Qu es un operador?
Los operadores son los alias para personas o grupos que pueden recibir notificacin electrnica cuando los trabajos hayan finalizado o se hayan emitido las alertas. Los operadores deberan definirse antes que las alertas. Cuando un trabajo finaliza, o si cualquiera de los pasos del trabajo falla, puede notificar a un operador mediante un localizador, correo electrnico o un comando net send.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 127

Universidad Nacional de Ingeniera

Directrices para la creacin de operadores Puede usar SQL Server Management Studio o ejecutar el procedimiento almacenado del sistema sp_add_operator para definir un nuevo operador. La definicin del operador se almacena en la tabla del sistema sysoperators en la base de datos msdb. Al crear operadores, deber hacer lo siguiente: Use un alias de grupo de correos electrnicos para notificar a ms de una persona para que respondan a problemas potenciales. Pruebe cada mtodo de notificacin que se use para notificar al operador a fin de garantizar que el operador puede recibir los mensajes. Especifique un programa de trabajo para cada operador al que se va a notificar mediante su localizador. Si un trabajo que est definido para que se notifique a un operador mediante un localizador est en conflicto con el programa de trabajo del operador, se producir un error en la notificacin.

DEFINIR UN OPERADOR A PRUEBA DE ERRORES


Puede definir un operador a prueba de errores para que responda a una alerta cuando las notificaciones mediante localizador enviadas a los operadores definidos fallen. Por ejemplo, si todos los operadores no estn disponibles cuando se activa una alerta, se pondr en contacto con el operador a prueba de errores. Se notificar a un operador a prueba de errores cuando se cumplan las siguientes condiciones: La alerta tiene definidas notificaciones del localizador para la respuesta. Ninguno de los operadores a los que se va a avisar mediante un localizador est de servicio. Se ha definido un operador a prueba de errores. Al asignar un operador a prueba de errores, tenga en cuenta lo siguiente: La informacin del operador a prueba de errores se almacena en la memoria cach de manera que no dependa de la conexin con la base de datos msdb. Slo puede haber un operador a prueba de errores. No puede eliminar un operador designado como operador a prueba de errores. Sin embargo, puede quitar la asignacin de operador a prueba de errores y, a continuacin, eliminar al operador.

Pg. 128

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Cmo crear pasos de trabajo


Puede usar SQL Server Management Studio o ejecutar el procedimiento almacenado del sistema sp_add_jobstep para definir cada paso del trabajo. Las definiciones de los pasos del trabajo se almacenan en la tabla del sistema sysjobsteps en la base de datos msdb. Puede definir pasos de trabajo para ejecutar instrucciones Transact-SQL, comandos del sistema operativo, secuencias de comandos de ActiveX o tareas de rplica de SQL Server. Sin embargo, slo se puede especificar un tipo de ejecucin para cada paso de trabajo.

Definir los pasos de trabajo de Transact-SQL Al definir los pasos de trabajo para ejecutar instrucciones Transact-SQL, procedimientos almacenados o procedimientos almacenados extendidos, tenga en cuenta las instrucciones siguientes: Debe identificar la base de datos que se va a usar. Debe incluir variables necesarias y parmetros en el paso de trabajo. Puede enviar el conjunto de resultados de un paso de trabajo a un archivo de salida. Los archivos de salida se usan a menudo en la solucin de problemas para capturar cualquier mensaje de error que puede haber aparecido mientras la instruccin se estaba ejecutando. No puede usar un archivo de salida de un paso de trabajo como entrada en un paso subsiguiente.

Definir los pasos de trabajo de comandos del sistema operativo Al definir un paso de trabajo para ejecutar una aplicacin o comando del sistema operativo (identificado mediante las extensiones de nombre de archivo .exe, .bat, .cmd o .com), deber hacer lo siguiente: Identificar un cdigo de salida de proceso para indicar que el comando se ejecut correctamente. Incluir la ruta de acceso completa a la aplicacin ejecutable. La ruta de acceso es necesaria para ayudar al Agente SQL Server a encontrar el origen de la aplicacin. Definir los pasos de trabajo de secuencias de comandos de ActiveX

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 129

Universidad Nacional de Ingeniera


Puede escribir los pasos de trabajo usando las secuencias de comandos de ActiveX con lenguajes como Microsoft Visual Basic Scripting Edition (VBScript) o Microsoft JScript. Tambin puede usar otros lenguajes si se instala la biblioteca correspondiente al lenguaje de secuencia de comandos. Al crear un paso de trabajo de secuencias de comandos de ActiveX, deber realizar lo siguiente: Identificar el lenguaje de secuencia de comandos con el que se escribe el paso de trabajo. Escribir o abrir la secuencia de comandos activa. Puede usar el objeto SQLActiveScriptHost para imprimir el resultado en el historial del paso de trabajo o para crear objetos.

Lgica de flujo de los pasos de trabajo Al crear los trabajos, un administrador de bases de datos debera especificar las medidas que SQL Server debera tomar si un paso de trabajo se realiza correctamente o si se produce un error. De forma predeterminada, SQL Server avanza al paso de trabajo siguiente si se realiza correctamente y se detiene si se produce un error. Sin embargo, los pasos de trabajo pueden ir a cualquier paso definido en el trabajo tanto si es correcto como si se produce un error. Puede especificar el nmero de veces que SQL Server debera intentar la ejecucin de un paso de trabajo si se produce un error en l. Tambin puede especificar el intervalo entre cada reintento (en minutos). Por ejemplo, si el paso de trabajo requiere una conexin a un servidor remoto, podra definir varios intentos en caso de producirse un error en la conexin. Adems, si define un trabajo para que slo se ejecute una vez, puede especificar que se elimine el trabajo cuando finalice.

Qu es el Monitor de actividad de trabajo?


El Monitor de actividad de trabajo es una herramienta de SQL Server Management Studio que le permite ver la tabla sysjobactivity. Puede ver todos los trabajos en el servidor o puede definir los filtros para limitar el nmero de trabajos mostrados. Tambin puede ordenar la informacin del trabajo haciendo clic en un encabezado de columna en la cuadrcula Actividad de trabajo del agente. Por ejemplo, al seleccionar el encabezado de la columna ltima ejecucin, podr ver los trabajos en el orden en que se ejecutaron en ltimo lugar. Al hacer clic de nuevo en el encabezado de columna, los trabajos se muestran en orden ascendente y descendente segn su ltima fecha de ejecucin.

Cundo usar el Monitor de actividad de trabajo

Pg. 130

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


Use el Monitor de actividad de trabajo cuando desee determinar cules son los trabajos programados para ejecutarse, el ltimo resultado de los trabajos que se han ejecutado durante la sesin actual y cules se estn ejecutando o estn inactivos. Si se produce un error inesperado en el servicio Agente SQL Server, podr determinar los trabajos que se estaban ejecutando examinando la sesin anterior en el Monitor de actividad de trabajo. Puede realizar las tareas siguientes con el Monitor de actividad de trabajo: Iniciar y detener trabajos. Ver las propiedades de los trabajos. Ver el historial de un trabajo concreto. Actualizar manualmente la informacin en la cuadrcula Actividad de trabajo del agente o establecer un intervalo de actualizacin automtica haciendo clic en Ver configuracin de actualizacin. Para abrir el Monitor de actividad de trabajo, expanda Agente SQL Server en el Explorador de objetos de Management Studio, haga clic con el botn secundario en Trabajos y haga clic en Ver actividad de trabajo. Tambin puede ver la actividad del trabajo para la sesin actual mediante el procedimiento almacenado sp_help_jobactivity.

Crear alertas
Las alertas son respuestas predefinidas a eventos concretos que pueden producirse en una solucin SQL Server. Puede definir alertas para realizar un trabajo o notificar a un operador cuando se produce un evento determinado o se excede un umbral de rendimiento.

SQL Server genera eventos y se anotan en el registro de aplicacin de Windows. El Agente SQL Server lee el registro de aplicacin y compara los eventos anotados con las alertas que ha definido. Cuando el Agente SQL Server encuentra una coincidencia, emite una alerta, es decir, una respuesta automatizada a un evento. Adems de supervisar los eventos de SQL Server, el Agente SQL Server tambin puede supervisar las condiciones de rendimiento y los eventos del Instrumental de administracin de Windows (WMI, Windows Management Instrumentation).

DEFINIR ALERTAS PARA ERRORES DE SQL SERVER

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 131

Universidad Nacional de Ingeniera


Al crear una alerta para que emita una respuesta cuando se produzca un error de SQL Server, podr especificar un nmero de error nico (p. ej., el 9002) o todos los errores de un nivel de gravedad concreto (p. ej., el 17). Puede definir una alerta en un nmero de error o nivel de gravedad para todas las bases de datos o para una base de datos concreta. Nota Para un evento determinado se emitir a lo sumo una alerta. El Agente SQL Server emitir la alerta ms especfica que se haya definido. Por ejemplo, si tiene una alerta definida con errores de un nivel de gravedad 17 y adems tiene una alerta definida en el error 9002 (que tambin pertenece al nivel de gravedad 17), se emitir el error 9002.

Definir alertas para condiciones de rendimiento Adems de usar alertas para responder a los errores de SQL Server, puede usarlas para responder a condiciones de rendimiento de SQL Server como aqullas que se pueden ver en el Monitor de sistema de Windows. Cuando se excede el valor de la condicin, se emite una alerta. Por ejemplo, puede crear una alerta de condicin de rendimiento que se desencadene cuando el registro de transacciones en la base de datos AdventureWorks haya excedido el 75 por ciento de su capacidad. La respuesta de la alerta podra ejecutar un trabajo para realizar una copia de seguridad del registro de transacciones y notificar al administrador de la base de datos.

CMO SE CREA UNA ALERTA


Puede crear una alerta mediante SQL Server Management Studio o mediante el procedimiento almacenado de Transact-SQL sp_add_alert. Para crear una alerta, tiene que especificar lo siguiente: El nombre de la alerta. El evento o condicin de rendimiento que desencadena la alerta. Las medidas que el Agente SQL Server toma como respuesta al evento o condicin de rendimiento. El tipo de evento determina los parmetros que usa para especificar el evento en concreto. Especificar un operador Las medidas que toma el Agente SQL Server como respuesta al evento o condicin de rendimiento pueden incluir ponerse en contacto con el operador. Para ello, debe especificar la informacin de contacto de ese operador y definir cmo se le notificar. Se puede notificar al operador por correo electrnico, localizador, o mediante el comando net send. Ejecutar un trabajo Las medidas que el Agente SQL Server toma como respuesta al evento o condicin de rendimiento pueden incluir la ejecucin de un trabajo. Para que una alerta inicie un trabajo, debe especificar el nombre del trabajo en la pgina de respuesta de la alerta. Puede usar un trabajo existente o crear uno nuevo cuando defina la alerta.

Pg. 132

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

C API TULO 8
Implementando un DataBase Mirroring Replicacin de una BD. Examen Final.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 133

Universidad Nacional de Ingeniera

M P L E M E N T A R L A C R E A C I N D E B A S E D E D A T O S

D E

R E F L E J O

La creacin de reflejo de la base de datos es una solucin de alta disponibilidad alternativa al clster de conmutacin por error en SQL Server 2008 Enterprise Edition. La creacin de reflejo de la base de datos admite la conmutacin por error automtica, pero no requiere un hardware compatible con los clsteres. Por tanto, puede proporcionar una alternativa rentable al clster de conmutacin por error. Importante Las directivas de soporte tcnico de Microsoft no se aplican a la funcin de creacin de reflejo de la base de datos en SQL Server 2008. La creacin de reflejo de la base de datos est deshabilitada de forma predeterminada, pero puede habilitarse para evaluarla nicamente mediante el uso de la marca de traza 1400 como parmetro de inicio. Para obtener ms informacin acerca de las marcas de traza, consulte Marcas de traza (Transact-SQL) en los Libros en pantalla de SQL Server. La creacin de reflejo de la base de datos no se debera usar en entornos de produccin. Los servicios de soporte tcnico de Microsoft no admiten bases de datos ni aplicaciones que usen la creacin de reflejo de la base de datos. La documentacin sobre la creacin de reflejo de la base de datos se incluye en SQL Server 2008 slo como evaluacin. La directiva de documentacin para soporte tcnico y actualizacin de SQL Server

Qu son los reflejos de base de datos?


La creacin de reflejo de la base de datos ofrece una solucin de alta disponibilidad alternativa al clster de conmutacin por error. La creacin de reflejo de la base de datos se puede implementar con hardware estndar. Toda la administracin tendr lugar en su totalidad en SQL Server. En una solucin de creacin de reflejo de la base de datos, se almacena una base de datos en un servidor y se copia en otro. De esta forma se proporciona una copia de reserva de la base de datos que puede prestar servicio a los clientes en caso de un error de servidor.

Pg. 134

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Funciones de servidor en la creacin de reflejo de la base de datos


La creacin de reflejo de la base de datos requiere varias instancias de SQL Server, que se deberan instalar en equipos independientes para proporcionar proteccin frente a los errores del servidor. Las funciones del servidor en una solucin de creacin de reflejo de la base de datos son: Servidor principal. El servidor principal aloja la copia activa de la base de datos (denominada base de datos principal) y presta servicio a las solicitudes de los clientes. El servidor principal reenva todas las transacciones al servidor reflejado antes de aplicarlas en la base de datos principal. Servidor reflejado. El servidor reflejado aloja una copia de la base de datos principal (denominada base de datos reflejada) y aplica las transacciones reenviadas por la base de datos principal para mantener la base de datos reflejada sincronizada con la principal. Servidor testigo. El servidor testigo es un componente opcional de una solucin de creacin de reflejo de la base de datos. Cuando est presente, un servidor testigo supervisa los servidores principales y reflejados para asegurar una conectividad continuada y la participacin en la sesin de reflejo (denominada qurum). Si uno de los servidores pierde el qurum, el servidor testigo asigna la funcin de servidor principal, con lo que se produce la conmutacin por error automtica del servidor principal al reflejado si fuera necesario. Los servidores testigo son necesarios para la conmutacin por error automtica; sin embargo, un servidor testigo puede admitir varias sesiones de reflejo porque no se trata de una tarea intensiva.

Redireccionamiento de clientes en una solucin de creacin de reflejo de la base de datos


Cuando una sesin de creacin de reflejo de la base de datos se conmuta por error, todas las aplicaciones cliente deben conectarse al nuevo servidor principal (el servidor reflejado anterior). Las aplicaciones cliente que usan SQL Native Client o el proveedor de datos Microsoft .NET Framework 2.0 para Microsoft SQL Server admiten la redireccin automtica de clientes y pueden controlar de forma transparente la conmutacin por error al servidor reflejado. Las aplicaciones cliente que usen otras tecnologas de acceso de datos deben adaptarse para redirigir las solicitudes al servidor reflejado en el caso de conmutacin por error.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 135

Universidad Nacional de Ingeniera

CUNDO USAR LA CREACIN DE REFLEJO DE LA BASE DE DATOS


La creacin de reflejo de la base de datos se usa en los siguientes casos: Cuando necesita redundancia en el nivel de base de datos individual. Cuando no desea invertir en hardware compatible con clsteres. Cuando necesita una carga de trabajo administrativa inferior a la asociada con el clster de conmutacin por error.

OPCIONES

PARA LA CONFIGURACIN DE LA CREACIN DE REFLEJOS DE LA BASE DE DATOS


Hay tres modos de creacin de reflejo de la base de datos. El nivel de rendimiento y proteccin difieren entre los modos, por lo que deber tenerse cuidado a la hora de proporcionar la solucin adecuada para el sistema.

MODO DE ALTA DISPONIBILIDAD


En el modo de alta disponibilidad, se establece la seguridad de la transaccin en COMPLETA, lo que provoca que las transacciones se apliquen a las bases de datos principal y reflejada de manera sincronizada. Cuando el servidor principal confirma una transaccin, el servidor reflejado tambin lo hace. El servidor principal slo emite una confirmacin una vez que el servidor reflejado ha enviado la confirmacin de que ha almacenado la transaccin en el disco. El modo de alta disponibilidad usa un servidor testigo. Debera colocarse en un tercer servidor (no en el principal ni en el reflejado) para ofrecer redundancia. El modo de alta disponibilidad permite la conmutacin por error automtica o manual del servidor principal en el reflejado. Si se produce un error en el servidor principal en el modo de alta disponibilidad, el servidor testigo inicia la conmutacin por error automtica en el reflejado. Si se produce un error en el servidor reflejado, la base de datos sigue con conexin mientras se mantenga el qurum entre los servidores principal y testigo.

MODO DE ALTA PROTECCIN


En el modo de alta proteccin, la seguridad de la transaccin se establece en COMPLETA para aplicar transacciones de manera sincronizada, tal y como ocurre en el modo de alta disponibilidad. Sin embargo, el modo de alta proteccin no usa un servidor testigo. Si se produce un error en el servidor principal en el modo de alta proteccin, habr una copia completa de los datos en el servidor reflejado, pero deber realizar manualmente la conmutacin por error. Si se produce un error en el servidor reflejado, el principal se desconecta por s mismo para evitar el riesgo de prdida de datos.

Pg. 136

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

MODO DE ALTO RENDIMIENTO


En el modo de alto rendimiento, la seguridad de la transaccin se desactiva y las transacciones se aplican de forma asncrona. De esta forma el servidor principal responde a los clientes sin comprobar primero que las transacciones se hayan aplicado en el servidor reflejado. Aunque as se obtiene mejor rendimiento, se sacrifica la alta disponibilidad. Si se produce un error en el servidor principal en el modo de alto rendimiento, deber conmutar por error manualmente al servidor reflejado. Sin embargo, debido a que es posible que algunas transacciones se completen en el servidor principal pero no en el reflejado, es posible que pierda algunos datos. Si se produce un error en el servidor reflejado en el modo de alto rendimiento, el servidor principal no se ver afectado.

Qu son los extremos en la creacin de reflejos de base de datos?


Un extremo es un objeto de SQL Server que permite la conectividad de red con el servidor. Para la creacin de reflejo de la base de datos, un extremo define el puerto TCP en el que una instancia est a la escucha de mensajes de creacin de reflejo. Cada instancia necesita un extremo dedicado.

CREAR EXTREMOS DE REFLEJO


La instruccin CREATE ENDPOINT genera extremos para la creacin de reflejo de la base de datos. Puede usar tanto la autenticacin de Windows como la autenticacin basada en certificados como el modo de autenticacin de los extremos. La sintaxis para crear los extremos se muestra en la siguiente muestra de cdigo de Transact-SQL:
CREATE ENDPOINT <endpointName> STATE=STARTED AS TCP ( LISTENER_PORT = <listenerPortList> ) FOR DATABASE_MIRRORING ( [ AUTHENTICATION = { WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] | CERTIFICATE certificate_name }]

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 137

Universidad Nacional de Ingeniera


[ [ , ] ENCRYPTION = { DISABLED |SUPPORTED | REQUIRED } [ ALGORITHM { RC4 | AES | AES RC4 | RC4 AES } ] ] [,] ROLE = { WITNESS | PARTNER | ALL } )

Parmetros Los parmetros de la instruccin CREATE ENDPOINT para la creacin de reflejo de la base de datos se describen en la lista siguiente. <endpointName>. Nombre nico para el extremo de la creacin de reflejo de la base de datos de la instancia del servidor. STARTED. Especifica que se va a iniciar el extremo y que va a empezar a escuchar las conexiones. Normalmente se crea un extremo de creacin de reflejo de la base de datos en el estado STARTED. De manera alternativa, puede iniciar una sesin en el estado predeterminado detenido (STOPPED) o en el deshabilitado (DISABLED). <listenerPortList>. Lista de uno o varios nmeros de puerto en los que desea que el servidor realice escuchas de mensajes de creacin de reflejo de la base de datos. Debe especificar TCP, ya que si especifica cualquier otro protocolo se produce un error. AUTHENTICATION. Especifica el modo de autenticacin para el extremo. En el caso de la autenticacin de Windows, no es necesario especificar la opcin de autenticacin (AUTHENTICATION) a menos que desee que el extremo use slo NTLM o Kerberos para autenticar las conexiones. <authorizationMethod> especifica el mtodo usado para autenticar las conexiones como una de las siguientes: NTLM, KERBEROS o NEGOTIATE. El mtodo predeterminado, NEGOTIATE, hace que el extremo use el protocolo de negociacin de Windows para elegir NTLM o Kerberos. Para la autenticacin basada en certificados, debe especificar un certificado existente. ENCRYPTION. Especifica si se deberan cifrar las conexiones con el extremo, adems del algoritmo de cifrado que se va a usar. El ajuste de cifrado predeterminado es REQUIRED. Sin embargo, puede deshabilitar el cifrado o hacerlo opcional en un extremo. ROLE. Define la funcin o funciones que el servidor puede realizar. Es necesario especificar ROLE. Para permitir a una instancia del servidor actuar como una funcin para una sesin de creacin de reflejo de la base de datos y una funcin diferente para otra sesin, especifique ROLE=ALL. Para restringir una instancia de servidor para ser un socio o un testigo, especifique ROLE=PARTNER o ROLE=WITNESS, respectivamente.

CMO

PREPARAR LOS SERVIDORES PARA LA CREACIN DE REFLEJOS DE LA BASE DE DATOS


Hay varios pasos que realizar antes de activar la creacin de reflejo de la base de datos. Tareas de preparacin de creacin de reflejo de la base de datos Antes de poder establecer una sesin de creacin de reflejo de la base de datos, debe realizar las tareas de preparacin descritas en la lista siguiente: Crear extremos de reflejo e inicios de sesin. Debe crear extremos y un inicio de sesin en la base de datos master para cualquier instancia del servidor que se ejecute como una cuenta de usuario de dominio diferente del servidor principal. Establecer el modelo de recuperacin. Debe establecer el modelo de recuperacin para la base de datos que se va a reflejar en COMPLETO (full). Realizar una copia de seguridad de la base de datos principal y restaurarla en el servidor reflejado. Debe realizar una copia de seguridad completa de la base de datos principal y

Pg. 138

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


restaurarla en la instancia reflejada mediante la especificacin de NORECOVERY y el uso del mismo nombre como la base de datos principal.

De manera alternativa, podra usar una copia de seguridad completa reciente. Si es el caso, debera restaurar cualquier copia de seguridad del registro desde la copia de seguridad completa y realizar una copia de seguridad y una restauracin del registro de transacciones para asegurarse de que los datos estn al da. Copiar recursos de nivel de servidor. Debera copiar manualmente cualquier recurso de nivel de servidor, como inicios de sesin o trabajos del Agente SQL, que seran necesarios en el caso de conmutacin por error a la instancia reflejada.

CMO ESTABLECER UNA SESIN DE REFLEJO


Despus de haber preparado los servidores, puede establecer una sesin de reflejo. Necesita configurar los servidores reflejados y principales para hacer referencia los unos a los otros con objeto de crear una sesin de reflejo en el modo de alta proteccin. Podr cambiar a continuacin el modo de sesin de reflejo segn sea necesario agregando un servidor testigo para habilitar el modo de alta disponibilidad o deshabilitando la seguridad de la transaccin para activar el modo de alto rendimiento.

Establecer una sesin de reflejo Es posible establecer una sesin de reflejo con el asistente en el cuadro de dilogo Propiedades de la base de datos en el Explorador de objetos mediante la instruccin ALTER DATABASE. Use el proceso siguiente para establecer una sesin de reflejo:

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 139

Universidad Nacional de Ingeniera


1. Establezca el servidor principal a partir del servidor reflejado, tal y como se muestra en la siguiente muestra de cdigo:
ALTER DATABASE AdventureWorks SET PARTNER = 'TCP:// DBSERVER1.COMPANYINFO.MIEMPRESA.COM: 5022'

2. Establezca el servidor reflejado a partir del principal, tal y como se muestra en la siguiente muestra de cdigo:
ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://DBSERVER1.COMPANYINFO.MIEMPRESA.COM: 5023'

3. Si fuera necesario, cambie el modo de sesin de reflejo de proteccin alta. Para definir el modo de alta disponibilidad, agregue un servidor testigo desde el servidor principal o desde el reflejado, tal y como se muestra en la siguiente muestra de cdigo:
ALTER DATABASE AdventureWorks SET WITNESS = 'TCP:// DBSERVER1.COMPANYINFO.MIEMPRESA.COM: 5024'

Para establecer el modo de alto rendimiento, desactive la seguridad de las transacciones en el servidor principal, tal y como se muestra en la siguiente muestra de cdigo:
ALTER DATABASE AdventureWorks SET PARTNER SAFETY OFF

Cmo tratar la conmutacin por error


La conmutacin por error puede ser automtica o manual. Es posible usar la conmutacin por error manual aun cuando la conmutacin por error automtica est disponible si necesita dejar sin conexin a un servidor para realizar tareas de mantenimiento.

El modo de alta disponibilidad puede usar la conmutacin por error automtica o manual. El modo de alta proteccin puede usar la conmutacin por error manual o el servicio forzado (con posible prdida de datos). El modo de alto rendimiento puede usar el servicio forzado (con posible prdida de datos). Conmutacin por error automtica Si se produce un error en el servidor principal en el modo de alta disponibilidad, la conmutacin por error ser automtica. Cuando el servidor principal est sin conexin, el reflejado y el

Pg. 140

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


testigo formarn un qurum y harn que el reflejado sea ahora el principal. Si el servidor principal original vuelve a conectarse, pasar a ser el reflejado. Conmutacin por error manual Si se produce un error en el servidor principal en el modo de alta proteccin, debe iniciar la conmutacin por error manual realizando los pasos siguientes en el servidor principal: Conecte con la instancia del servidor principal y, en el panel Explorador de objetos, haga clic en el nombre del servidor para expandir el rbol de servidores. Expanda Bases de datos y, a continuacin, seleccione la base de datos para la que se va a crear el reflejo. Haga clic con el botn secundario en la base de datos y, a continuacin, haga clic en Propiedades; se abrir el cuadro de dilogo Propiedades de la base de datos. En el panel Seleccionar una pgina, haga clic en Creacin de reflejo. Haga clic en Conmutacin por error. De manera alternativa puede iniciar la conmutacin por error manual usando Transact-SQL en el servidor principal, tal y como se muestra en la siguiente muestra de cdigo:
ALTER DATABASE AWData SET PARTNER FAILOVER

Servicio forzado (con posible prdida de datos) Si se produce un error en el servidor principal en el modo de alto rendimiento, puede forzar el servicio en el servidor reflejado, con posible prdida de datos, usando la instruccin ALTER DATABASE con el parmetro FORCE_SERVICE_ALLOW_DATA_LOSS, tal y como se muestra en la siguiente muestra de cdigo:
ALTER DATABASE AWData SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS

Qu es el trasvase de registros?
El trasvase de registros es una tcnica de alta disponibilidad en la que el registro de transacciones del servidor primario se restaura peridicamente en un servidor de reserva. Puede programar las copias de seguridad del registro para que se produzcan con una frecuencia que se adapte a los requisitos de disponibilidad y rendimiento. Adems de proporcionar redundancia, el servidor de reserva se puede usar para consultas de slo lectura y de esta forma aliviar parte de la carga del servidor primario.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 141

Universidad Nacional de Ingeniera


En el caso de que se produzca un error en el servidor primario, la conmutacin por error automtica no tendr lugar. Debe promover manualmente el servidor de reserva y reconfigurar todos los clientes para que se conecten a l. Si es necesaria una solucin ms automatizada, debera considerar la creacin de reflejo de la base de datos o el clster de servidores. De manera opcional, puede crear un servidor de supervisin. El servidor de supervisin registra cualquier problema con el trasvase de registros adems de enumerar las ltimas operaciones de copia de seguridad y restauracin. Los servidores de supervisin deberan separarse de los servidores primarios y de reserva en caso de error en los servidores.

CMO IMPLEMENTAR EL TRASVASE DE REGISTROS


Puede configurar el trasvase de registros mediante SQL Server Management Studio o usando Transact-SQL.

Antes de configurar el trasvase de registros, sin embargo, deber realizar las siguientes tareas: Cree un recurso compartido de archivos para las copias de seguridad del registro de transacciones, preferiblemente en un servidor tolerante a errores que no forma parte de la configuracin del trasvase de registros. Para maximizar la disponibilidad del servidor primario, Microsoft recomienda que coloque el recurso compartido de copia de seguridad en un equipo host independiente. Cree una carpeta para cada servidor secundario en el que el trasvase de registros copiar los archivos de copia de seguridad del registro de transacciones. Estas carpetas se colocan normalmente en los servidores secundarios. Transact-SQL Use los siguientes procedimientos almacenados para configurar el trasvase de registros: sp_add_log_shipping_primary_database sp_add_jobschedule sp_add_log_shipping_alert_job sp_add_log_shipping_secondary_primary sp_add_log_shipping_secondary_database sp_add_log_shipping_primary_secondary

CMO CAMBIAR FUNCIONES DE SERVIDOR


El cambio de funciones convierte el servidor de reserva en servidor primario. Necesita realizar un cambio de funciones si el servidor primario se queda inesperadamente sin conexin o si necesita que el servidor primario est sin conexin para realizar tareas de mantenimiento.

Pg. 142

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

La primera vez que cambia las funciones, necesitar configurar el trasvase de registros en la base de datos secundaria. Esto no es necesario para los cambios de funciones siguientes, por lo que ser ms fcil cambiar y volver al estado previo. Cambiar funciones Realice los pasos siguientes para cambiar las funciones o para que el servidor de reserva pase a ser el servidor primario: 1. Copie cualquier copia de seguridad del registro de transacciones del recurso compartido de copia de seguridad en la carpeta de destino y restaure stas y otras copias de seguridad de la carpeta en el servidor de reserva. 2. Realice una copia de seguridad del registro con NORECOVERY si el servidor primario est disponible, tal y como se muestra en el siguiente cdigo de Transact-SQL:
BACKUP LOG AdventureWorks TO AWLogBackup WITH NORECOVERY

3. Restaure la copia de seguridad del paso anterior en el servidor de reserva con la instruccin RECOVERY, tal y como se muestra en el siguiente cdigo de Transact-SQL:
RESTORE LOG AdventureWorks FROM AWLogBackup WITH RECOVERY

De manera alternativa, si no hay disponible ninguna copia de seguridad, lleve a cabo una restauracin con RECOVERY sin especificar un archivo de copia de seguridad, tal y como se muestra en el siguiente cdigo de Transact-SQL:
RESTORE LOG AdventureWorks WITH RECOVERY

4. Deshabilite los trabajos de trasvase de registros en el servidor primario original y deshabilite la copia y restaure los trabajos en el servidor secundario original. 5. Si es la primera vez que se han cambiado las funciones del servidor, tendr que configurar el trasvase de registros en la base de datos secundaria. Debera tratarla ahora como una base de datos primaria. Use el mismo recurso compartido para crear copias de seguridad que ya cre para el servidor primario original. Al agregar la base de datos secundaria, en el cuadro de dilogo Configuracin de base de

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 143

Universidad Nacional de Ingeniera


datos secundaria, escriba el nombre de la base de datos primaria original en el cuadro Base de datos secundaria y, a continuacin, seleccione No, la base de datos secundaria est inicializada.

Introduccin a la rplica
Qu es la rplica?
La rplica es el mecanismo para crear y mantener varias copias de los mismos datos. Los datos se distribuyen de forma flexible, lo que da ms autonoma a los sitios y garantiza que las actualizaciones se replican en un perodo de tiempo aceptable. SQL Server 2008 tiene varios mtodos de rplica disponibles, lo que permite su uso en distintos escenarios.

Ventajas de la rplica La rplica ofrece varias ventajas al sistema de base de datos: Acerca los datos a usuarios alejados geogrficamente. Permite que los sitios autnomos no tengan que estar conectados continuamente. Permite mantener copias independientes de los datos del Procesamiento de transacciones en lnea (OLTP) y del Sistema de ayuda a la toma de decisiones (DSS). Por su naturaleza, OLTP y DSS generarn conflictos de bloqueo de archivos entre s que pueden resolverse mediante copias independientes, pero que se hayan replicado, de los datos.

Funciones de servidor en la rplica


En la rplica de SQL Server 2008, una instancia puede ser un publicador, distribuidor, suscriptor o la combinacin de los tres. La combinacin y ubicacin concretas de publicadores, distribuidores y suscriptores se denomina topologa de rplica. Por ejemplo, puede haber un publicador usando un distribuidor independiente y replicando los datos a dos suscriptores, tal y como se muestra en la ilustracin.

Pg. 144

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Los publicadores crean y modifican los datos, los distribuidores almacenan datos concretos de la rplica asociados con uno o varios publicadores y los suscriptores reciben los datos. Con la rplica de mezcla, esta situacin cambia ligeramente, ya que las modificaciones tienen lugar tanto en el publicador como en los suscriptores.

Funcin del publicador


El publicador tiene la copia original de los datos y la pone a disposicin de los suscriptores. Los datos se envan al distribuidor, que los remite a continuacin a los suscriptores.

Funcin del distribuidor


El distribuidor almacena informacin de estado de la rplica, metadatos de la publicacin y, en algunos casos, datos cuando viajan entre el publicador y los suscriptores. Un publicador tambin puede actuar como un distribuidor (denominado distribuidor local), pero cuando se replican muchos datos, se suele crear un distribuidor independiente (denominado distribuidor remoto). Muchos publicadores pueden usar el mismo distribuidor, y cada uno de ellos cuenta con una base de datos independiente en la instancia.

Funcin del suscriptor


Un suscriptor contiene una copia de la rplica de los datos. El suscriptor puede ser objeto de las siguientes acciones: Impedirle que realice modificaciones. Permitirle realizar modificaciones en el publicador. Permitirle realizar modificaciones locales que se mezclarn ms tarde.

TIPOS DE RPLICA
Los distintos sistemas tendrn requisitos diferentes (y con frecuencia en conflicto los unos con los otros) para la rplica. SQL Server proporciona tres mtodos de rplica, aunque cada uno proporciona un conjunto diferente de ventajas y tiene distintas configuraciones opcionales. Es importante que considere los puntos mostrados en esta seccin y elija el mtodo adecuado para su sistema.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 145

Universidad Nacional de Ingeniera

Todos los mtodos de rplica le permiten especificar la frecuencia de sincronizacin.

Rplica de instantneas
La rplica de instantneas enva todos los datos de una publicacin cada vez que sta se sincroniza. De esta forma se elimina la necesidad de supervisar las modificaciones de datos, aunque podra producir un aumento del volumen de datos que se estn replicando. Se replicarn todos los datos aun cuando no se haya modificado ninguno. Normalmente, la rplica de instantneas se usa en escenarios en los que una gran cantidad de datos cambia entre cada sincronizacin. Con la rplica de instantneas, los suscriptores pueden actualizar los datos en el publicador. La actualizacin puede ocurrir inmediatamente o ponerse en cola hasta que se produzca la siguiente sincronizacin.

Rplica transaccional
La rplica transaccional slo enva modificaciones de los datos cuando tiene lugar la sincronizacin. Esto puede reducir el volumen de los datos que se estn replicando, sobre todo si el nmero de modificaciones de datos es bajo o si la rplica es frecuente. Debido a la disminucin de volmenes de datos, se puede usar la rplica transaccional cuando sean necesarias actualizaciones frecuentes. La rplica transaccional se inicia normalmente con una rplica de instantneas de los objetos y datos para proporcionar una lnea de base. A continuacin, se enviarn partes del registro de transacciones a los suscriptores cuando se produzca la rplica. Con la rplica transaccional estndar, los suscriptores pueden actualizar datos en el publicador. La actualizacin puede ocurrir inmediatamente o ponerse en cola hasta que se produzca la siguiente sincronizacin. La rplica transaccional punto a punto tambin est disponible. En este mtodo, cada nodo es a la vez publicador y suscriptor de los mismos datos. No hay ninguna jerarqua de publicadores y suscriptores. Utilice este mtodo cuando cada punto trabaja con una parte concreta de los datos. Si todos los puntos realizan cambios en los mismos datos y es posible que se produzcan conflictos, se debera usar la rplica de mezcla.

Rplica de mezcla
La rplica de mezcla permite las modificaciones tanto en el publicador como en los suscriptores. Cuando se produce la sincronizacin, se mezclarn las modificaciones en el publicador y en el suscriptor.

Pg. 146

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas


En otras formas de rplica, todas las modificaciones aparecen en el publicador, con lo que se evitan conflictos pero se reduce la autonoma. En la rplica de mezcla, pueden producirse conflictos y ser necesario resolverlos. La solucin de conflictos puede ser controlada automticamente dando prioridad a los distintos suscriptores o usando una resolucin basada en Modelo de objetos componentes (COM). Puede escribir su propia resolucin basada en COM o usar una estndar incluida con SQL Server. Los conflictos tambin se pueden resolver interactivamente durante la sincronizacin mediante el componente de resolucin interactiva de Microsoft. Este componente est disponible a travs del Administrador de sincronizacin de Microsoft Windows. La rplica de mezcla se inicia normalmente con una rplica de instantneas de los objetos y datos para proporcionar una lnea de base. Las modificaciones subsiguientes se mezclan cuando la rplica tiene lugar.

Rplica heterognea
Puede replicar los datos de SQL Server en otros productos de bases de datos, como IBM DB2, Oracle y Sybase. SQL Server tambin puede actuar como suscriptor de la versin 8 o posterior de Oracle. Despus podr generar y mantener la suscripcin con un conocimiento mnimo de este programa. Se pueden usar rplicas de instantneas y transaccionales si se suscribe a una base de datos de Oracle.

Qu son artculos, publicaciones y suscripciones?


Los datos de rplica se organizan en artculos y publicaciones. Las publicaciones contienen uno o varios artculos y son las unidades de suscripcin y sincronizacin de los datos. Los suscriptores pueden recibir suscripciones o suscribirse por s mismos. Los agentes de rplica administran todo el proceso de rplica, incluido el movimiento de los datos entre publicadores y suscriptores.

Artculos
Un artculo puede ser toda una tabla u objeto de base de datos, o slo una parte. Se puede filtrar horizontalmente, restringiendo las filas que contiene, o verticalmente, restringiendo las columnas que tiene.

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 147

Universidad Nacional de Ingeniera Publicaciones


Una publicacin puede contener uno o varios artculos. Slo puede tener artculos de la misma base de datos, aunque puede haber muchas publicaciones en una base de datos. Es tanto la unidad de suscripcin como la unidad de rplica.

Suscripciones
Una suscripcin se crea en relacin con una publicacin; no se puede crear directamente en relacin con un artculo. Puede crear suscripciones de insercin o de extraccin. Las suscripciones de insercin se crean en el publicador y se pueden crear al mismo tiempo que la publicacin en muchos suscriptores. Dado que las suscripciones se crean de manera centralizada, este mtodo es ms seguro pero es necesario que los suscriptores se conecten cuando la rplica tiene lugar. Las suscripciones de extraccin se crean en el suscriptor. En primer lugar, el publicador debe haber habilitado este tipo de suscripciones y haber registrado al suscriptor, o bien haber permitido las suscripciones annimas. Por lo general, este sistema es menos seguro, pero permite al suscriptor controlar cundo se reciben las actualizaciones, hacindolo ms adecuado para aquellos sitios que se conectan con poca frecuencia. Puede tener una suscripcin de extraccin en una publicacin y una de insercin en otra.

Agentes de rplica
Los agentes de rplica controlan todo el proceso de rplica. Estos agentes se configuran cuando se define la solucin de rplica. Al implementar la rplica, debe especificar en qu instancias de SQL Server se ejecutarn los agentes de rplica. SQL Server 2008 proporciona los siguientes agentes de rplica: Agente SQL Server Agente de instantneas Agente de registro del LOG Agente de lectura de cola Agente de distribucin Agente de mezcla

Escenarios de rplica
Escenarios de rplica de servidor a servidor
Hay muchas situaciones en las que la rplica de servidor a servidor ser beneficiosa para una organizacin. En este tema se describen algunas de las ms comunes.

Pg. 148

danielramoscastaneda@hotmail.com

SQL Administracin

Facultad de Ingeniera Industrial y de Sistemas

Integrar datos de varios sitios


Con frecuencia, las oficinas regionales realizan modificaciones de datos que es necesario replicar en la oficina central. Un ejemplo sera una empresa de venta al por menor donde las tiendas puedan replicar los datos de ventas y enviarlos a un servidor de la oficina central. En este escenario, es bastante probable que la oficina central tambin acte como publicador ya que enviar informacin sobre los productos a las tiendas.

Integrar datos heterogneos


La mayora de las organizaciones tienen distintos tipos de bases de datos. Podra necesitar consolidar esos datos o replicar las modificaciones de un sistema en otro. La rplica le permite integrar los datos heterogneos de dos formas: Mediante el uso de Oracle (versin 8 y posterior) como origen para los datos que pueden replicarse a SQL Server. Mediante el uso de SQL Server como origen para los datos que pueden replicarse a bases de datos de IBM y Oracle. Incluso es posible que estos datos procedieran en un principio de Oracle y se replicaran a SQL Server antes de pasar a IBM DB2.

Descargar el procesamiento por lotes


Si se programa con regularidad la actividad intensa del procesador en el servidor de produccin, es posible que las operaciones normales puedan verse afectadas de forma negativa. Se puede usar la rplica para descargar este trabajo en un servidor independiente y, si es necesario, replicar de nuevo en el servidor de produccin despus de que se haya completado el procesamiento por lotes.

Almacenar datos e informes


Los almacenes de datos tendrn normalmente un esquema distinto al de las bases de datos del procesamiento analtico en lnea (OLAP), aunque los datos se consolidan a menudo en un rea de ensayo antes de transformarse y cargarse en el almacn de datos. La rplica es un mecanismo ideal para este tipo de carga peridica. Por lo general, los sistemas de informes tienen copias de slo lectura de datos para aplicaciones que usan muchos recursos de lectura. Si el sistema OLAP se usara para estos informes, habra un conflicto entre las operaciones de lectura y escritura de OLAP y las operaciones que slo son de lectura aunque muy extendidas. Este conflicto puede resolverse con la rplica de los datos en el sistema OLAP a una instancia de informes.

Mejorar la escalabilidad y disponibilidad


Si tiene una gran cantidad de actividades de lectura y datos relativamente estticos, la rplica puede usarse para mejorar la escalabilidad. Por ejemplo, un grupo de servidores web que

SQL Administracin

danielramoscastaneda@hotmail.com

Pg. 149

Universidad Nacional de Ingeniera


utilice el equilibrio de carga de red podra tener una instancia de SQL Server detrs de cada servidor web individual. Los cambios en cualquier servidor de base de datos se replicaran en los dems servidores. Puede mejorar la disponibilidad con una rplica de una base de datos. Si se produce una interrupcin planeada o no en el servidor principal, se puede usar la rplica.

ESCENARIOS DE RPLICA DE SERVIDOR A CLIENTE


La rplica se realiza entre servidores y clientes adems de entre servidores y otros servidores. Muchas empresas confan en sus vendedores comerciales a la hora de realizar pedidos o tener terminales de cajeros, ATM o equipos de las sucursales que no necesitan sistemas operativos de servidor.

Intercambiar datos con usuarios mviles Los usuarios mviles requieren a menudo copias de informacin de la empresa cuando trabajan fuera de ella. Muchos de ellos incluso realizan pedidos o actualizan registros mientras estn fuera de la oficina. Los dispositivos que usan abarcan desde dispositivos de mano a equipos porttiles de gran capacidad. Es posible realizar rplicas desde y hacia estos dispositivos mviles de Windows y, en funcin del hardware, sincronizar de forma inalmbrica con los usuarios mviles. Aplicaciones de punto de venta (POS) del consumidor Hay muchas aplicaciones que los consumidores usan directamente, como las ATM, o indirectamente, como los terminales de cajeros. Todas estas aplicaciones necesitan datos de un origen central y realizan actualizaciones que se vuelven a replicar en los servidores centrales. Al usar la rplica, puede mejorar la autonoma y la escalabilidad. Integrar datos de varios sitios Muchas empresas tienen oficinas regionales que no necesitan que se estn ejecutando los servidores, pero s que necesitan los datos de la oficina central y realizar modificaciones que se repliquen de nuevo posteriormente. SQL Server puede instalarse en Windows XP y la rplica puede realizarse entre esas estaciones de trabajo y los servidores de la oficina central.

Pg. 150

danielramoscastaneda@hotmail.com

SQL Administracin