You are on page 1of 217

Mantenimiento

MDULO 1: INSTALACIN Y CONFIGURACIN DE SQL SERVER 2005 - 10 -

1- Preparando la instalacin - 11 -
Ediciones de SQLServer 2005 - 11 -
Requisitos de Hardware para SQL Server 2005 (32 bits) - 12 -
Requisitos de Hardware para SQL Server 2005 (64 bits) - 13 -
Requisitos de espacio en disco duro (32 y 64 bits) - 13 -
Requisitos del sistema operativo (32 bits) - 14 -
Requisitos del sistema operativo (64 bits) - 16 -
Requerimientos adicionales de software - 18 -
Requerimientos para la Edicin Mbile - 18 -
Instancias de SQL Server 2005: - 18 -
Instancia por defecto - 18 -
Instancias con nombre - 18 -
Opciones de Licenciamiento para SQL Server 2005 - 19 -
Consideraciones sobre seguridad para Servicios SQL Server - 19 -
Usar una cuenta de usuario de dominio - 19 -
Usar la cuenta de servicio local - 19 -
Usar la cuenta de servicio de red - 19 -
Intercalacin (Collation) - 20 -
Actualizar a SQL Server 2005 - 21 -
Utilizando el Asesor de actualizaciones (Upgrade Adviser) para preparar las actualizaciones - 21 -
Cmo funciona el Asesor de actualizaciones - 21 -
Anlisis del Asesor de actualizaciones - 22 -
Compatibilidad de la base de Datos - 22 -

2- Instalacin - 23 -
Comprobador de Configuracin del Sistema (System configuration checker) - 23 -
Opciones para la instalacin de Componentes: - 23 -
Instalacin Desatendida - 25 -
Creacin del archivo .ini - 25 -
Comenzando una instalacin desatendida - 25 -

3- Manejo de la instalacin - 26 -
Configuracin de Superficie (Surface Area Configuration) - 26 -
Manejador de Configuracin (Configuration Manager) - 28 -
Servicios SQL Server - 29 -
Configuracin del Servidor de Red - 29 -
Configuracin del Cliente de Red - 29 -
SQL Server Management Studio - 29 -
Nuevas funciones de las Secuencias de Comandos - 30 -
Caractersticas del Explorador de objetos - 31 -

MDULO 2: RECUPERACIN DE DESASTRE - 32 -

1- Planeamiento - 33 -
Planear la estrategia de copias de seguridad y restauracin - 33 -
Elegir el tipo de medio para la copia de seguridad - 33 -
Administrar medios de copia de seguridad - 33 -
Ejecutar una secuencia de comandos con la funcionalidad bsica - 34 -
Garantizar la disposicin para afrontar desastres - 34 -
Revisar y reducir los posibles errores del usuario - 34 -
Modelos de recuperacin - 35 -
Recuperacin simple - 37 -
Recuperacin completa - 37 -

-2-
Recomendaciones sobre modelos de recuperacin para bases de datos del sistema - 38 -

2- Copias de Seguridad - 39 -
Tipos de Copias de Seguridad - 39 -
Copias de seguridad completas de bases de datos - 39 -
Copia de seguridad en el modelo de recuperacin completa - 39 -
Minimizar el riesgo de prdida de trabajo - 40 -
Copias de Seguridad del Registro de Transacciones - 41 -
La cadena de registros - 42 -
Administracin de registros de transacciones y modelos de recuperacin - 42 -
Truncamiento del registro con el modelo de recuperacin completa y por medio de registros de
operaciones masivas - 42 -
Cmo funciona el truncamiento del registro - 43 -
Cmo funcionan las copias de seguridad diferenciales - 44 -
Copias de seguridad diferenciales de archivos - 45 -
Copia de seguridad diferencial de grupos de archivos (filegroups) de slo lectura en bases de datos de
lectura y escritura - 46 -
Copia de seguridad de un grupo de archivos (filegroups) principalmente de slo lectura - 46 -
Copias de seguridad diferenciales parciales - 47 -
Crear una copia de seguridad diferencial de archivos - 47 -

3- Restauracin de Bases de Datos de Usuario - 49 -


Descripcin de cmo funcionan la restauracin y la recuperacin de copias de seguridad en SQL
Server - 49 -
Conjunto de puestas al da - 49 -
Secuencias de restauracin - 49 -
Fases de la restauracin - 49 -
Fase de copia de datos - 50 -
Fase de rehacer (puesta al da) - 50 -
Fase de deshacer (revertir) y recuperacin - 51 -
Opciones RECOVERY y NORECOVERY - 51 -
Restaurar una base de datos cuando SQL Server no est conectado - 52 -
Escenarios de restauracin - 52 -
Modelos de recuperacin y operaciones de restauracin admitidas - 53 -
Restaurar una copia de seguridad completa de la base de datos - 54 -
Restauracin de base de datos completa (modelo de recuperacin simple) - 54 -
Restauracin por etapas de la base de datos (modelo de recuperacin completa) - 55 -
Restauracin por etapas para algunos grupos de archivos (modelo de recuperacin simple) - 56 -
Restauracin por etapas para algunos grupos de archivos (modelo de recuperacin completa) - 57 -
Restauracin con conexin de un archivo de slo lectura (modelo de recuperacin simple) - 58 -
Aplicar copias de seguridad del registro de transacciones - 58 -
Registros de transacciones y recuperacin - 58 -
Cmo restaurar a un momento dado (SQL Server Management Studio) - 59 -
Restauracin online - 61 -
Copias de seguridad de registros para una restauracin en lnea - 62 -
Desconectar una base de datos o un archivo - 62 -

MDULO 3: MANEJO DE SEGURIDAD - 64 -

1- Seguridad de Base - 65 -
Proteger SQL Server - 65 -
Protocolos de Red y Extremos TDS - 65 -
Habilitar Protocolos de Servidor despus de la Instalacin - 65 -
Definicin de los Extremos TDS - 66 -
Restringir el Acceso a la Red - 66 -
Seguridad del Sistema Operativo - 67 -

2- Introduccin a la Seguridad de SQL Server - 68 -

-3-
Entidades de Seguridad y Seguridad de objetos de base de datos - 68 -
Entidades de Seguridad (Principals) - 68 -
Inicio de Sesin sa de SQL Server - 68 -
INFORMATION_SCHEMA y sys - 68 -
Asegurables - 68 -
Objetos - 69 -
Funciones (Roles) de Nivel de Servidor (Server Fixed Roles) - 69 -
La Funcin public - 70 -
Funciones (Roles) en el Nivel de Base de Datos - 70 -
Jerarqua de Permisos - 71 -
Trabajar con Permisos - 72 -
Permisos a Nivel de Servidor - 72 -
Conceder Permisos - 73 -
Permisos a Nivel de Base de Datos - 74 -
Permisos a Nivel de Esquema - 77 -
Cifrado y Certificados - 78 -
Jerarqua de Cifrado - 78 -
Llave Maestra de Servicio (Service Master Key) - 79 -
Llave Maestra de Base de Datos (Database Master Key) - 79 -
Certificados - 80 -
Claves Asimtricas - 81 -
Claves Simtricas - 82 -

3- Implementacin de Seguridad en SQL Server 2005 - 83 -


Seleccionar un Modo de Autenticacin - 83 -
Configurar el Modo de Autenticacin - 83 -
Conectar a travs de la Autenticacin de Windows - 84 -
Conectar a travs de la Autenticacin de SQL Server - 84 -
Ventajas de la Autenticacin de SQL Server - 85 -
Desventajas de la Autenticacin de SQL Server - 85 -
Cundo utilizar el Modo de Autenticacin de Windows - 85 -
Ventajas del la Autenticacin Windows - 85 -
Cundo utilizar el Modo Mixto - 85 -
Directiva de Contraseas - 85 -
Aplicacin de las Directivas de Contraseas - 86 -
Contraseas Seguras - 87 -
Inicios de Sesin en SQL Server (login) - 87 -
Manejo de Inicios de Sesin - 87 -
Modificacin de Inicios de Sesin - 89 -
Eliminacin de Inicios de Sesin - 89 -
Asignacin de una cuenta de inicio de sesin a una funcin fija de servidor - 90 -
Usuarios de SQL Server - 90 -
Cmo crear un usuario de base de datos - 90 -
Usuarios especiales de SQL Server - 92 -
Delegacin - 92 -
Requerimientos para Delegacin - 92 -
Configurando Active Directory para Delegacin - 93 -
Configurando SQL Server para Delegacin - 93 -
Credenciales - 93 -

MDULO 4: MONITOREO DE SQL SERVER - 94 -

1- Monitorear la Actividad en Curso - 95 -


Determinar la actividad de los usuarios - 95 -
El Monitor de actividad (SQL Server Management Studio) - 95 -
Monitor de actividad de trabajo - 96 -
Para Ver la Actividad de Trabajo (SQL Server Management Studio) - 97 -
Sesiones del Agente SQL Server - 98 -
Funciones y Vistas de Administracin Dinmica - 98 -

-4-
Vistas de Catlogo (Transact-SQL) - 99 -
Consulta de una Vista de Administracin Dinmica - 100 -

2- Monitor de Sistemas (Windows) - 101 -


Usar Objetos de SQL Server - 101 -
Consideraciones de Monitoreo de SQL Server - 103 -
Monitorear la Actividad del Disco - 104 -
Monitorear la E/S del Disco y Detectar la Paginacin Excesiva - 104 -
Aislar la Actividad del Disco creada por SQL Server - 105 -
Monitorear el Uso de la CPU - 105 -
Monitorear el Uso de la Memoria - 106 -
Aislar la Memoria que utiliza SQL Server - 107 -

3- Analizador de SQL Server (SQL Server Profiler) - 108 -


Introduccin - 108 -
Terminologa del Analizador de SQL Server - 108 -
Usar el Analizador de SQL Server - 109 -
Plantillas del Analizador de SQL Server - 110 -
Plantillas Predefinidas - 110 -
Plantilla Predeterminada - 111 -
Guardar Trazas y Plantillas de Traza - 112 -
Guardar Trazas - 112 -
Importar y Exportar Plantillas - 112 -
Analizar el Rendimiento con Plantillas - 112 -

4- Desencadenadores DLL (DLL Triggers) - 114 -


Definicin - 114 -
Usar Eventos de DDL con Desencadenadores DDL - 114 -
Usar la Funcin EVENTDATA - 116 -

5- Notificaciones de Eventos - 119 -


Introduccin - 119 -
Conceptos Bsicos de las Notificaciones de Eventos - 119 -
Descripcin de Notificaciones de Eventos frente a Desencadenadores - 120 -
Notificaciones de Eventos frente a Traza de SQL - 120 -

MDULO 5: AUTOMATIZANDO TAREAS ADMINISTRATIVAS - 123 -

1- Automatizar las tareas administrativas (Agente SQL Server) - 124 -


Herramientas para Automatizar la Administracin - 124 -
Planes de Mantenimiento - 124 -
Iniciar el Asistente para Planes de Mantenimiento (SQL Server Management Studio) - 126 -
Editar y crear Planes de Mantenimiento Manualmente - 127 -
Agente SQL Server (SQL Server Agent) - 127 -
Componentes - 128 -

2- Configurar el Agente SQL Server - 130 -


Establecer los Permisos Necesarios - 130 -
Correo del Agente SQL Server - 131 -
Correo Electrnico de Base de Datos con el Agente SQL Server - 132 -
Cmo usar SQL Mail - 133 -

3- Trabajos y Operadores - 135 -


Trabajos - 135 -
Organizar trabajos - 135 -
Propiedad de trabajos - 135 -
Crear un trabajo - 135 -

-5-
Crear pasos de trabajo - 136 -
Registros de Pasos de Trabajo - 137 -
Programas Ejecutables y Comandos del Sistema Operativo como Pasos de Trabajo - 137 -
Pasos de Trabajo Transact-SQL - 138 -
Pasos de Trabajo de Secuencias de Comandos ActiveX - 138 -
Controlar varios Pasos del Trabajo - 138 -
Programar la Ejecucin de un Trabajo - 139 -
Operadores - 141 -
Proporcionar Informacin de Contacto - 141 -
Requisitos para Notificar a un Operador - 142 -
Designar un Operador a Prueba de Errores - 142 -
Supervisar la Actividad de Trabajo - 144 -
Sesiones del Agente SQL Server - 144 -
Monitor de Actividad de Trabajo - 144 -

4- Alertas - 146 -
Alertas - 146 -
Eventos - 146 -
Seleccionar una Condicin de Rendimiento - 147 -
Seleccionar un Evento de WMI - 148 -
Alertar a Operadores - 148 -

5- Manejo de Servidores Mltiples - 149 -


Administracin multiservidor - 149 -
Consideraciones para Entornos Multiservidor - 149 -
Procesar Trabajos Multiservidor - 149 -

6 Manejando la Seguridad del Agente SQL Server - 151 -


Conceder Acceso al Agente SQL Server - 151 -
Funciones Fijas de Base de Datos del Agente SQL Server - 151 -
Permisos de las Funciones Fijas de Base de Datos del Agente SQL Server - 151 -
Permisos de SQLAgentUserRole - 152 -
Permisos de SQLAgentReaderRole - 153 -
Permisos de SQLAgentOperatorRole - 154 -
Asignar a los Usuarios varias Funciones - 156 -
Crear Cuentas de Proxy del Agente SQL Server - 156 -

MDULO 6: IMPLEMENTANDO REPLICACIN - 157 -

1- Introduccin a Rplica de SQL Server - 158 -


Informacin General sobre los Tipos de Rplica - 158 -
Rplica Transaccional - 158 -
Rplica de Mezcla - 159 -
Rplica de Instantneas - 159 -
Informacin General del Modelo de Publicacin de Rplica - 160 -
Publicador - 161 -
Distribuidor - 161 -
Suscriptores - 161 -
Artculo - 161 -
Publicacin - 161 -
Suscripcin - 162 -

2- Implementar replicacin - 163 -


Implementacin - 163 -
Configurar la Rplica y Publicar Datos - 163 -
Filtrar Datos Publicados - 163 -
La Rplica ofrece cuatro Tipos de Filtros: - 164 -
Procedimientos Almacenados de Rplica - 166 -

-6-
Crear e Inicializar Suscripciones - 167 -
Suscriptores que no son de SQL Server - 168 -
Crear Suscripciones - 168 -
Sincronizar Datos - 168 -
Asistentes para Rplica - 168 -
Asistente para Nueva Publicacin - 168 -
Para Crear Publicaciones y Definir Artculos - 169 -
Asistente para Nuevas Suscripciones - 171 -
Asistente para Configurar la Distribucin - 174 -
Asistente para deshabilitar la publicacin y distribucin - 175 -
Asistente de configuracin de la topologa punto a punto - 175 -
Asistente para la sincronizacin Web - 176 -

3- Monitor de Rplica - 177 -


Supervisin de la Rplica con el Monitor de Rplica - 177 -
La interfaz del Monitor de rplica - 177 -
Ver informacin de toda la topologa - 178 -
Ver informacin y realizar tareas relacionadas con publicadores - 178 -
Ver informacin y realizar tareas relacionadas con suscripciones - 179 -
Ver informacin y realizar tareas relacionadas con perfiles de agente - 180 -
Supervisar estado de la suscripcin y la publicacin en el Monitor de rplica - 180 -
Supervisar agentes de rplica - 181 -
Para supervisar el Agente de instantneas y el Agente de registro del LOG - 181 -
Para supervisar el Agente de distribucin y el Agente de mezcla (en el publicador) - 181 -
Para supervisar el Agente de distribucin y el Agente de mezcla (en el suscriptor) - 182 -

4- Configurar Replicacin en algunos Escenarios Comunes - 183 -


Replicar Datos en un Entorno de Servidor a Servidor - 183 -
Replicar Datos entre un Servidor y los Clientes - 183 -
Rplica Transaccional de Punto a Punto (Peer to Peer) - 183 -
Topologas de Punto a Punto - 184 -
Topologa en la que participan dos bases de datos: - 184 -
Topologa en la que participan tres o ms bases de datos - 185 -
Implementar la Rplica por Internet - 187 -
Configurar la Sincronizacin Web - 188 -

MDULO 7: MANTENIMIENTO DE ALTA DISPONIBILIDAD - 189 -

1- Introduccin a Alta Disponibilidad - 190 -


Factores que afectan la Disponibilidad: - 190 -
Configurar una Alta Disponibilidad - 190 -
Clster de conmutacin por error - 190 -
Creacin de reflejo de la base de datos - 191 -
Trasvase de registros - 191 -
Replicacin - 192 -
Seleccionar una Solucin de Alta Disponibilidad - 192 -

2- Implementacin de Server Clustering - 194 -


Que es un Clster? - 194 -
Consideraciones antes de Instalar un Clster de Conmutacin por Error - 194 -
Lista de comprobacin previa a la instalacin - 195 -
Comprobar la Solucin de Hardware - 195 -
Comprobar la Configuracin del Sistema Operativo - 196 -
Configurar el Servicio de Cluster Server de Microsoft - 196 -
Instalar el Coordinador de Transacciones Distribuidas de Microsoft - 197 -
Otras Consideraciones de Software - 197 -
Consideraciones Relativas a la Red - 198 -
Otras Consideraciones - 198 -

-7-
Instalar un Clster de Conmutacin por Error - 199 -
Elementos de una instancia de clster de conmutacin por error - 199 -
Asignar nombre a una Instancia de Clster de Conmutacin por Error - 200 -

3- Implementando Reflejo de Base de Datos - 201 -


Generalidades de la Creacin de Reflejo de la Base de Datos - 201 -
Ventajas de la creacin de reflejo de la base de datos - 201 -
Funcionamiento de la creacin de reflejo de la base de datos - 201 -
Modos de funcionamiento - 202 -
Seguridad de las Transacciones y Modos de Funcionamiento - 203 -
Extremo de Creacin de Reflejo de Base de Datos - 204 -
Cmo Crear un Extremo de Reflejo para la Autenticacin de Windows - 204 -
Para Crear un Extremo de Reflejo utilizando la Autenticacin de Windows - 205 -
Direccin de Red de Servidor - 206 -
Sesiones de Creacin de Reflejo de la Base de Datos - 207 -
Sesiones Simultneas - 208 -
Requisitos Previos para una Sesin de Creacin de Reflejo de la Base de Datos - 209 -
Conmutacin de Funciones durante una Sesin de Creacin de Reflejo de la Base de Datos - 210 -
Conmutacin por Error Manual - 210 -
Conmutacin por Error Automtica - 212 -
Forzar Servicio (con posible prdida de datos) - 212 -

4- Trasvase de Registros (Log Shipping) - 212 -


Definicin - 212 -
Operaciones del Trasvase de Registros - 213 -
Configurar el Trasvase de Registros - 213 -
Cambiar las funciones entre el servidor primario y secundario - 217 -

-8-
-9-
Mdulo 1

Instalacin y
Configuracin de SQL
Server 2005

- 10 -
1- Preparando la instalacin
Ediciones de SQLServer 2005
Los requisitos de instalacin pueden variar mucho, dependiendo de las necesidades de las
aplicaciones. Las diferentes ediciones de SQL Server 2005 satisfacen los requisitos de
rendimiento, tiempo de ejecucin y precio nicos de organizaciones y personas. Los diversos
componentes de SQL Server 2005 que instale depender de las necesidades de las
organizaciones y de las personas.
Puede usar todas las ediciones de SQL Server 2005 en entornos de produccin excepto para
SQL Server 2005 Developer Edition y SQL Server 2005 Evaluation Edition.

A continuacin se describen las ediciones de SQL Server 2005:


SQL Server 2005 Enterprise Edition (32 bits y 64 bits): Enterprise Edition es
ampliable a los niveles de rendimiento necesarios para admitir el procesamiento de
transacciones en lnea (OLTP) de las empresas ms grandes, anlisis de datos de alta
complejidad, sistemas de almacenamiento de datos y sitios web. Las completas
capacidades de anlisis y Business Intelligence, y sus caractersticas de alta
disponibilidad como, por ejemplo, el clster de conmutacin por error, permiten
controlar las cargas de trabajo empresarial de mayor importancia. Enterprise Edition es
la edicin ms completa de SQL Server y es idnea para las organizaciones ms
grandes y para los requisitos ms complejos.
SQL Server 2005 Standard Edition (32 bits y 64 bits): SQL Server 2005 Standard
Edition es la plataforma de anlisis y administracin de datos para organizaciones
pequeas y medianas. Incluye la funcionalidad bsica necesaria para soluciones de
lnea de negocio, almacenamiento de datos y comercio electrnico. Las caractersticas
de alta disponibilidad y de Business Intelligence integradas de Standard Edition
proporcionan a las organizaciones las capacidades bsicas que necesitan para realizar
sus operaciones. SQL Server 2005 Standard Edition es idneo para aqulla
organizacin pequea o mediana que necesite una plataforma completa de anlisis y
administracin de datos.
SQL Server 2005 Workgroup Edition (slo 32 bits): SQL Server 2005 Workgroup
Edition es la solucin de administracin de datos para pequeas organizaciones que
necesitan una base de datos sin lmites de tamao o nmero de usuarios. SQL Server
2005 Workgroup Edition se puede utilizar como servidor Web cliente o para
operaciones de sucursales o departamentos. Incluye las caractersticas principales de
base de datos de la lnea de productos de SQL Server y es fcilmente actualizable a
SQL Server 2005 Standard Edition o SQL Server 2005 Enterprise Edition. SQL Server
2005 Workgroup Edition es una base de datos idnea para comenzar que resulta
confiable, slida y fcil de administrar.
SQL Server 2005 Developer Edition (32 bits y 64 bits): SQL Server 2005 Developer
Edition permite a los programadores crear cualquier tipo de aplicacin sobre SQL
Server. Incluye toda la funcionalidad de SQL Server 2005 Enterprise Edition, pero su
licencia permite utilizarlo como sistema de desarrollo y prueba, no como un servidor de
produccin. SQL Server 2005 Developer Edition es una opcin ideal para fabricantes
independientes de software (ISV), asesores, integradores de sistemas, proveedores de
soluciones y programadores corporativos que crean y prueban aplicaciones. Puede
actualizar SQL Server 2005 Developer Edition para utilizarlo en produccin.
SQL Server 2005 Express Edition (slo 32 bits): La plataforma de bases de datos de
SQL Server Express se basa en SQL Server 2005. Tambin sustituye a Microsoft
Desktop Engine (MSDE). Gracias a su integracin con Microsoft Visual Studio 2005,
SQL Server Express facilita el desarrollo de aplicaciones controladas por datos que

- 11 -
tienen una gran capacidad, ofrecen un almacenamiento seguro y se implementan con
rapidez. SQL Server Express es gratuito y puede redistribuirse (mediante un acuerdo);
funciona como la base de datos de cliente, adems de como una base de datos de
servidor bsica. SQL Server Express es la opcin idnea para fabricantes
independientes de software (ISV), usuarios de servidor, programadores no
profesionales, programadores de aplicaciones Web, alojamientos de sitios Web y
aficionados a crear 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 tambin ofrece componentes
adicionales que estn disponibles como parte de SQL Server 2005 Express Edition with
Advanced Services (SQL Server Express). Adems de las caractersticas de SQL
Server Express, SQL Server Express with Advanced Services ofrece lo siguiente:
o SQL Server Management Studio Express (SSMSE), un subconjunto de SQL Server
Management Studio.
o Compatibilidad con catlogos de texto.
o Compatibilidad para ver informes mediante Reporting Services.
SQL Server 2005 Compact Edition (slo 32 bits): Microsoft SQL Server 2005
Compact Edition es la base de datos compacta que ampla la funcionalidad de
administracin de datos corporativos a dispositivos. Microsoft SQL Server 2005
Compact Edition puede replicar datos con SQL Server 2005 y SQL Server 2000, lo que
permite a los usuarios mantener un almacn de datos mvil que se sincroniza con la
base de datos primaria. Microsoft SQL Server 2005 Compact Edition es la nica edicin
de SQL Server que proporciona funcionalidad de administracin de bases de datos
relacionales para dispositivos inteligentes.

Requisitos de Hardware para SQL Server 2005 (32 bits)


Cuando se planifica la instalacin de SQL Server 2005 usted debe asegurarse de que la
computadora en la que realizar la instalacin cumple con los requerimientos mnimos y es
adecuada para sus necesidades actuales y futuras. El hecho de no alcanzar los requerimientos
mnimos puede ocasionar fallas en la instalacin de algunos o de todos los componentes.
En la tabla siguiente se muestran los requisitos de hardware para instalar y ejecutar SQL
Server 2005 en la plataforma de 32 bits:

Velocidad de
SQL Server 2005 (32 bits) Tipo de procesador procesador Memoria (RAM)

SQL Server 2005 Enterprise Procesador compatible Mnimo: 600 MHz Mnimo: 512 MB
Edition con Pentium III o superior
Recomendado: Recomendado: 1 GB o
SQL Server 2005 Developer 1 GHz o ms ms
Edition
Mximo: mximo del
SQL Server 2005 Standard sistema operativo mximo
Edition

SQL Server 2005 Workgroup Procesador compatible Mnimo: 600 MHz Mnimo: 512 MB
Edition con Pentium III o superior
Recomendado: Recomendado: 1 GB o
1 GHz o ms ms

Mximo: mximo del


sistema operativo mximo

SQL Server 2005 Express Procesador compatible Mnimo: 500 MHz Mnimo: 192 MB

- 12 -
Edition con Pentium III o superior Recomendado: Recomendado: 512 MB o
1 GHz o ms ms

Mximo: mximo del


sistema operativo mximo

SQL Server 2005 Express Procesador compatible Mnimo: 600 MHz Mnimo: 512 MB
Edition with Advanced Services con Pentium III o superior
Recomendado: Recomendado: 1 GB o
1 GHz o ms ms

Mximo: mximo del


sistema operativo

Requisitos de Hardware para SQL Server 2005 (64 bits)


En la siguiente tabla se muestran los requisitos de hardware para instalar y ejecutar SQL
Server 2005 en la plataforma de 64 bits.

SQL Server 2005 (64 Velocidad de


bits) Tipo de procesador procesador Memoria (RAM)

SQL Server 2005 IA64 mnimo: procesador Itanium o IA64 mnimo: 1 IA64 mnimo: 512 MB
Enterprise Edition superior GHz
IA64 recomendado: 1
SQL Server 2005 x64 mnimo: AMD Opteron, AMD Athlon IA64 recomendado: GB o ms
Developer Edition 64, Intel Xenon compatible con Intel 1 GHz o ms
EM64T, Intel Pentium IV compatible con IA64 mximo: 32 TB
SQL Server 2005 EM64T x64 mnimo: 1 GHz
Standard Edition Mximo del sistema
x64 recomendado: operativo
1 GHz o ms
Mnimo: 512 MB

x64 recomendado: 1
GB o ms

x64 mximo: mximo


del sistema operativo

Requisitos de espacio en disco duro (32 y 64 bits)


Los requisitos de disco duro actuales dependen de la configuracin del sistema y las
aplicaciones y caractersticas que haya decidido instalar. En la siguiente tabla se muestran los
requisitos de espacio en disco de los componentes de SQL Server 2005.

Requisito de espacio
Caracterstica en disco

Database Engine (Motor de base de datos) y archivos de datos, Rplica y Bsqueda de 280 MB
texto

Analysis Services y archivos de datos 90 MB

- 13 -
Reporting Services y Administrador de informes 120 MB

Componentes del motor de Notification Services, componentes de cliente y componentes 50 MB


de reglas

Integration Services 120 MB

Componentes de cliente 850 MB

Libros en pantalla de SQL Server y Libros en pantalla de SQL Server Compact Edition 240 MB

Ejemplos y bases de datos de ejemplo. Tenga en cuenta que, de forma predeterminada, 410 MB
los ejemplos y las bases de datos de ejemplo no se instalan.

Requisitos del sistema operativo (32 bits)


En la siguiente tabla se muestran los sistemas operativos que ejecutan el software de servidor
para cada versin de 32 bits de SQL Server 2005.

Express Edition
y Express with
Enterprise Developer Standard Workgroup Advanced Evaluation
Edition1 Edition Edition Edition Services Edition

Windows 2000 No No No No No No

SP4 de Windows
2000 Professional No S S S S S
Edition

SP4 de Windows
S S S S S S
2000 Server

SP4 de Windows
2000 Advanced S S S S S S
Server

SP4 de Windows
2000 Datacenter S S S S S S
Edition

Windows XP
Embedded SP2 No No No No S No
Feature pack 2007

Windows Embedded
No No No No S No
for Point of Service

SP2 de Windows XP
No S No No S No
Home Edition

- 14 -
SP2 de Windows XP
No S S S S S
Professional Edition

SP2 de Windows XP
No S S S S S
Media Edition

SP2 de Windows XP
No S S S S S
Tablet Edition

SP1 de Windows
S S S S S S
Server 2003 Server

SP1 de Windows
Server 2003 S S S S S S
Enterprise Edition

SP1 de Windows
Server 2003 S S S S S S
Datacenter Edition

SP1 de Windows
Server 2003 Web No No No No S No
Edition

SP1 de Windows
Small Business
S S S S S S
Server 2003
Standard Edition

SP1 de Windows
Small Business
S S S S S S
Server 2003
Premium Edition

Windows Vista
No No No No No No
Starter Edition

Windows Vista Home


No S7 No No S S
Basic Edition

Windows Vista Home


No S No No S S
Premium Edition

Windows Vista
No S S S7 S S
Ultimate Edition

Windows Vista
No S S S7 S S
Business Edition

Windows Vista
No S S S S S
Enterprise Edition

SP1 de Windows
Server 2003 64-Bit No No No No No No
Itanium Datacenter

- 15 -
Edition

SP1 de Windows
Server 2003 64-Bit
No No No No No No
Itanium Enterprise
Edition

SP1 de Windows
Server 2003 64-Bit WOW64 WOW64 WOW64 WOW64 WOW64 WOW64
x64 Standard Edition

SP1 de Windows
Server 2003 64-Bit
WOW64 WOW64 WOW64 WOW64 WOW64 WOW64
x64 Datacenter
Edition6

SP1 de Windows
Server 2003 64-Bit
WOW64 WOW64 WOW64 WOW64 WOW64 WOW64
x64 Enterprise
Edition6

Windows XP x64
No WOW64 WOW64 WOW64 WOW64 No
Professional 2003

Windows Vista Home


Basic 64-Bit x64 No WOW64 No No WOW64 WOW64
Edition

Windows Vista Home


Premium 64-Bit x64 No WOW64 No No WOW64 WOW64
Edition

Windows Vista
Ultimate 64-Bit x64 No WOW64 WOW64 WOW64 WOW64 WOW64
Edition

Windows Vista
Business 64-Bit x64 No WOW64 WOW64 WOW64 WOW64 WOW64
Edition

Windows Vista No WOW64 WOW64 WOW64 WOW64 WOW64


Enterprise 64-Bit x64
Edition

Requisitos del sistema operativo (64 bits)


En la siguiente tabla se muestran los sistemas operativos que ejecutan el software de servidor
para cada versin de 64 bits de SQL Server 2005.

Express
Edition y
Develop Develop Standar Standar Express
Enterprise Enterprise er er d d with Evaluation Evaluation
Edition1(IA Edition1(X6 Edition Edition Edition Edition Advanced Edition Edition
64) 4) (IA64)2 (X64)3 (IA64) (X64) Services (IA64) (X64)

- 16 -
SP1 de
Windows
Server 2003
64-Bit S No S No S No No S No
Itanium
Datacenter
Edition

SP1 de
Windows
Server 2003
64-Bit S No S No S No No S No
Itanium
Enterprise
Edition

SP1 de
Windows
Server 2003
No S No S No S WOW64 No S
64-Bit x64
Standard
Edition5

SP1 de
Windows
Server 2003
No S No S No S WOW64 No S
64-Bit x64
Datacenter
Edition5

SP1 de
Windows
Server 2003
No S No S No S4 WOW64 No S
64-Bit x64
Enterprise
Edition5

Windows XP
x64
No S No S No S WOW64 No S
Professional
2003

Windows
Vista Home
Basic x64 No No No S No No WOW64 No S
Edition de
64 bits

Windows
Vista Home
Premium No No No S No No WOW64 No S
x64 Edition
de 64 bits

Windows
Vista x64
Ultimate No No No S No S WOW64 No S
Edition de
64 bits

- 17 -
Windows
Vista x64
Business No No No S No S WOW64 No S
Edition de
64 bits

Windows
Vista x64
Enterprise No No No S No S WOW64 No S
Edition de
64 bits

Requerimientos adicionales de software


SQL Server 2005 requiere tambin el siguiente software:
Microsoft Internet Explorer 6.0 Service Pack 1 o superior (requerido para Microsoft
Management Console)
Internet Information Services (IIS) 5.0 o 6.0 (requerido para Reporting Services)
TCP/IP
Microsoft .NET Framework 2.0 (SQL Server lo instalar si es necesario.)
Microsoft Windows Installer 3.1 (SQL Server lo instalar si es necesario.)
Microsoft Data Access Components (MDAC) 2.8 Service Pack 1 o superior

Requerimientos para la Edicin Mbile


SQL Server 2005 Mobile Edition est diseada para dispositivos mviles ms que para
plataforma PC. SQL Server Mobile Edition soporta:
Plataforma Pocket PC 2003
Windows CE 5.0
Windows Mobile 5.0 para Pocket PC y Smartphone

Instancias de SQL Server 2005:


Una instalacin de SQL Server 2005 consiste de una o ms instancias. Una instancia del motor
de base de datos (database engine) de SQL Server, sea por defecto o con nombre, tiene su
propio conjunto de programas de instancia especficos y archivos de datos, as como un
conjunto de archivos comunes compartidos con todas las instancias de la computadora.
Las instancias de otros componentes como Analysis Services o Reporting Service tambin
tienen su propio conjunto de programas y archivos de datos.
Cada instancia opera independientemente de cualquier otra instancia de la misma
computadora, y las aplicaciones pueden conectarse a cualquiera de las instancias.

Instancia por defecto


Esta instancia es identificada por el nombre de red de la computadora en la cual se est
ejecutando. La instancia por defecto del servicio de SQL Server es MSSQLSERVER.

Instancias con nombre


Estas instancias son identificadas por el nombre de red de la computadora ms un nombre de
instancia con el formato: nombrecomputadora/nombreinstancia , como por ejemplo
MiPC\SQLINSTANCE2 para una instancia llamada SQLINSTANCE2 en una computadora
llamada MiPC.
Una nueva instancia debe comenzar con una letra o guin bajo (_), y puede contener
nmeros, letras u otros caracteres.

- 18 -
Cada instancia con nombre est formada por un conjunto diferente de servicios y puede tener
diferentes asignaciones para intercalado (collation), seguridad y otras opciones.

Opciones de Licenciamiento para SQL Server 2005


Microsoft SQL Server 2005 est disponible en base a tres modelos de licencias:
Licencia de servidor ms una licencia de acceso de cliente (CAL) por dispositivo.
Requiere una licencia para el equipo que ejecuta el producto servidor de Microsoft, y
una CAL para cada dispositivo cliente.
Licencia de servidor ms una licencia de acceso de cliente (CAL) por usuario.
Requiere una licencia para el equipo que ejecuta el producto servidor de Microsoft, y
una CAL para cada usuario.
Licencia por procesador. Requiere una nica licencia por cada CPU en el entorno del
sistema operativo que ejecuta SQL Server. Esta licencia incluye un acceso ilimitado de
dispositivos cliente.

Consideraciones sobre seguridad para Servicios SQL Server


Para que SQL Server y el Agente SQL Server se ejecuten como servicios de Windows, SQL
Server y el Agente SQL Server deben estar asignados a una cuenta de usuario de Windows.
Las cuentas pueden ser: de usuario, de dominio o de sistema. Se puede asignar la misma
cuenta de Windows a todos los servicios de SQL Server o bien configurar una cuenta para
cada servicio.
A continuacin se describen recomendaciones en la utilizacin de los diferentes tipos de
cuenta:

Usar una cuenta de usuario de dominio


Es posible que sea preferible una cuenta de usuario de dominio cuando el servicio debe
interactuar con los servicios de red. Muchas actividades de servidor a servidor slo se pueden
realizar con una cuenta de usuario de dominio, por ejemplo:
Llamadas a procedimiento remoto.
Rplica.
Copias de seguridad en unidades de red.
Combinaciones heterogneas en las que intervienen orgenes de datos remotos.
Caractersticas de correo del Agente SQL Server y SQL Mail. Esta restriccin se aplica
si utiliza Microsoft Exchange. La mayora de los otros sistemas de correo tambin
requieren que los clientes (como el servicio SQL Server y el servicio del Agente SQL
Server) se ejecuten con cuentas con acceso a la red.

Usar la cuenta de servicio local


La cuenta de servicio local es una cuenta integrada especial parecida a una cuenta de usuario
autenticado. La cuenta de servicio local tiene el mismo nivel de acceso a los recursos y objetos
que los miembros del grupo Usuarios. Este acceso limitado ayuda a proteger el sistema si
procesos o servicios individuales se ven afectados. Los servicios que se ejecutan como cuenta
de servicio local tienen acceso a los recursos de red como una sesin nula sin credenciales.

Usar la cuenta de servicio de red


La cuenta de servicio de red es una cuenta integrada especial parecida a una cuenta de
usuario autenticado. La cuenta de servicio de red tiene el mismo nivel de acceso a los recursos
y objetos que los miembros del grupo Usuarios. Los servicios que se ejecutan como la cuenta
de servicio de red tienen acceso a los recursos de red a travs de las credenciales de la cuenta
de equipo.

- 19 -
Intercalacin (Collation)
Una intercalacin especifica los patrones de bits que representan a cada carcter de un
conjunto de datos. Las intercalaciones tambin determinan las reglas que ordenan y comparan
datos. SQL Server 2005 admite almacenamiento de objetos con distintas intercalaciones en
una sola base de datos (cada columna de una base de datos de SQL Server puede tener su
propia intercalacin). En columnas que no sean Unicode, la configuracin de intercalacin
especifica la pgina de cdigos de los datos y, por ende, qu caracteres se pueden
representar. Se pueden quitar datos entre columnas Unicode directamente. Los datos entre
columnas que no sean Unicode no se pueden quitar directamente y debe convertirlos la pgina
de cdigos actual.
El resultado de una instruccin Transact-SQL puede variar cuando la instruccin se ejecuta en
el contexto de distintas bases de datos en las que cada una de ellas tenga una configuracin
de intercalacin diferente. Las prcticas recomendadas incluyen el uso de una intercalacin
normalizada para la organizacin, siempre que sea posible. El uso de una configuracin de
intercalacin estndar en todos los sistemas de su organizacin le ayudar a eliminar la
necesidad de especificar de manera explcita la intercalacin en cada carcter o expresin
Unicode. Si tiene que trabajar con objetos que tienen configuraciones de intercalacin y de
pgina de cdigos distintas, debe codificar sus consultas para que tengan en cuenta las reglas
de prioridad de intercalacin.
Las caractersticas de una intercalacin distinguen idiomas, maysculas de minsculas, acento,
Kana y ancho.
Las intercalaciones de SQL Server 2005 incluyen las siguientes agrupaciones:
Intercalaciones de Windows: Las intercalaciones de Windows definen reglas para
almacenar los datos de caracteres basadas en la configuracin regional de Windows
asociada. En una intercalacin de Windows, la comparacin de datos no Unicode se
implementa con el mismo algoritmo que la de los datos Unicode. Estas reglas de
intercalacin bsicas de Windows especifican qu alfabeto o idioma se utiliza cuando
se aplica un orden de diccionario, y la pgina de cdigos que se utiliza para almacenar
los datos de caracteres que no son Unicode. Tanto la ordenacin Unicode y como la
ordenacin no Unicode son compatibles con comparaciones de cadenas de una
determinada versin de Windows. Esto proporciona coherencia entre los tipos de datos
de SQL Server y tambin ofrece a los programadores la posibilidad de ordenar
cadenas en sus aplicaciones utilizando las mismas reglas utilizadas por SQL Server; es
decir, llamando a la funcin CompareStringW de la API Win32 de Microsoft.
Intercalaciones binarias: Las intercalaciones binarias ordenan datos segn la
secuencia de los valores codificados definidos por la configuracin regional y los tipos
de datos. Una intercalacin binaria de SQL Server define la configuracin regional de
idioma y la pgina de cdigos ANSI que se van a utilizar, aplicando un orden binario.
Las intercalaciones binarias son tiles, gracias a su relativa simplicidad, para obtener
un rendimiento mejorado de las aplicaciones. En tipos de datos no Unicode, las
comparaciones de datos dependen de los puntos de cdigo definidos en la pgina de
cdigos ANSI. En tipos de datos Unicode, las comparaciones de datos dependen de
los puntos de cdigo Unicode. En intercalaciones binarias de tipos de datos Unicode, la
configuracin regional no se tiene en cuenta a la hora de ordenar los datos. Por
ejemplo, Latin_1_General_BIN y Japanese_BIN producen idnticos resultados de
orden cuando se utilizan en datos Unicode. Las intercalaciones binarias anteriores de
SQL Server realizaban una comparacin de punto de cdigo a punto de cdigo
incompleta para datos Unicode. En dichas intercalaciones binarias de versiones
anteriores de SQL Server se comparaba el primer carcter como WCHAR, seguido de
una comparacin byte a byte. Por razones de compatibilidad con versiones anteriores,
la semntica de intercalacin binaria no se cambiar. Las intercalaciones binarias de
esta versin de SQL Server incluyen un nuevo conjunto de intercalaciones de

- 20 -
comparacin de puntos de cdigo pura. Los clientes pueden elegir migrar a las
intercalaciones binarias nuevas para aprovecharse de las comparaciones de puntos de
cdigo reales y deberan utilizar las nuevas intercalaciones binarias para el desarrollo
de nuevas aplicaciones. El nuevo sufijo BIN2 identifica nombres de intercalacin que
implementan la nueva semntica de intercalacin de punto de cdigo. Adems, se ha
agregado un nuevo indicador de comparacin correspondiente a BIN2 para el nuevo
orden binario.
Intercalaciones de SQL Server: Las intercalaciones de SQL Server proporcionan
compatibilidad de orden con versiones anteriores de SQL Server. Las intercalaciones
de SQL Server se basan en rdenes de SQL Server heredados para datos que no son
Unicode (por ejemplo, tipos de datos char y varchar) definidos por SQL Server. Las
reglas de ordenacin alfabtica de datos no Unicode no son compatibles con ninguna
rutina de ordenacin suministrada por sistemas operativos Windows, pero la
ordenacin de datos Unicode es compatible con una versin particular de las reglas de
ordenacin de Windows. Como las intercalaciones de SQL Server utilizan reglas de
comparacin diferentes para datos no Unicode y para datos Unicode, puede ver
resultados diferentes en las comparaciones de los mismos datos, dependiendo del tipo
de datos subyacentes.
Intercalacin por Defecto y reglas de ordenamiento: Si usted no designa una
Intercalacin y reglas de ordenamiento, SQL Server aplica las asignadas por defecto.

SQL Server selecciona lo siguiente:


La Intercalacin de Windows basada en la configuracin regional de Windows para la
computadora en la que SQL es instalado.
La Intercalacin de SQL que es compatible con versiones anteriores de SQL basada en
la configuracin regional detectada.

Cambie la configuracin predeterminada de intercalacin de Windows slo si:


Su instalacin de SQL Server debe coincidir con la configuracin de intercalacin
utilizada por otra instancia de SQL Server.
Si la configuracin de intercalacin debe coincidir con la configuracin regional del
sistema Windows de otro equipo.

Actualizar a SQL Server 2005


Puede actualizar directamente las instancias de SQL Server 2000 Service Pack 3 (SP3) o
posterior, e instancias de SQL Server 7.0 SP4 o posterior, a SQL Server 2005. Puede realizar
la mayora de las operaciones de actualizacin mediante el programa de instalacin; no
obstante, algunos componentes admiten o necesitan la migracin de aplicaciones o soluciones
una vez ejecutado el programa de instalacin.

Utilizando el Asesor de actualizaciones (Upgrade Adviser) para preparar las


actualizaciones
El Asesor de actualizaciones de Microsoft SQL Server 2005 ayuda a preparar las
actualizaciones de SQL Server 2005. El Asesor de actualizaciones analiza los componentes
instalados de SQL Server 2000 o SQL Server 7.0 y genera informes que identifican los
problemas que han de solucionarse antes o despus de la actualizacin a SQL Server 2005.

Cmo funciona el Asesor de actualizaciones


Al ejecutar el Asesor de actualizaciones, se mostrar la pgina de inicio del Asesor de
actualizaciones. Desde la pgina Inicio, podr ejecutar las siguientes herramientas:
Asistente para anlisis del Asesor de actualizaciones

- 21 -
Visor de informes del Asesor de actualizaciones
Ayuda del Asesor de actualizaciones
La primera vez que utilice el Asesor de actualizaciones, ejecute el Asistente para anlisis del
Asesor de actualizaciones para analizar los componentes de SQL Server. Una vez que el
asistente haya finalizado el anlisis, podr ver los informes resultantes en el Visor de informes
del Asesor de actualizaciones. Los informes incluyen vnculos a informacin de la Ayuda del
Asesor de actualizaciones que le ayudar a solucionar los problemas conocidos o a paliar su
efecto.

Anlisis del Asesor de actualizaciones


El Asesor de actualizaciones analiza los siguientes componentes de SQL Server:
Database Engine (Motor de base de datos)
Analysis Services
Notification Services
Reporting Services
Integration Services, anteriormente conocido como Servicios de transformacin de
datos (DTS)
Un analizador dedicado se ejecuta en el contexto del Asesor de actualizaciones para cada
componente de SQL Server. El anlisis examina los objetos accesibles para los analizadores
individuales, como secuencias de comandos, procedimientos almacenados, desencadenadores
y archivos de traza. El Asesor de actualizaciones no puede analizar aplicaciones de escritorio
ni procedimientos almacenados cifrados.
La salida de cada analizador es un informe XML sobre dicho componente. Podr ver el informe
XML mediante el visor de informes del Asesor de actualizaciones.

Compatibilidad de la base de Datos


Algunos comportamientos en la base de datos SQL Server 2005 son diferentes a los utilizados
en versiones anteriores de SQL Server.
Si existen aplicaciones en uso que utilicen una versin anterior de SQL Server es necesario
que usted asigne el nivel de compatibilidad de SQL Server 2005 para su correcto
funcionamiento.
Para signar un nivel de compatibilidad de una base de datos SQL Server debe hacerlo
utilizando el comando ALTER DATABASE con la clusula SET COMPATIBILITY_LEVEL .

- 22 -
2- Instalacin
Microsoft SQL Server 2005 se puede instalar mediante el Asistente para la instalacin o desde
el smbolo del sistema. El Asistente para la instalacin proporciona una interfaz grfica de
usuario que le gua a travs de cada decisin del proceso de instalacin.
El Asistente para la instalacin proporciona instrucciones para la configuracin inicial de SQL
Server 2005, lo que incluye seleccin de caractersticas, reglas de nomenclatura de instancias,
configuracin de cuentas de servicio, directrices para contraseas seguras y escenarios para
establecer intercalaciones.
Las instalaciones del smbolo del sistema son para escenarios avanzados como instalaciones
silenciosas; se pueden ejecutar directamente desde el smbolo del sistema o a partir de una
sintaxis del smbolo del sistema que haga referencia al archivo de instalacin para especificar
opciones de instalacin.

Comprobador de Configuracin del Sistema (System configuration checker)


Como parte de la instalacin de SQL Server 2005, el Comprobador de configuracin del
sistema (SCC) examina el equipo en el que se haya instalado Microsoft SQL Server 2005. El
SCC comprueba las condiciones que impiden una instalacin correcta de SQL Server. Antes de
que el programa de instalacin inicie el Asistente para la instalacin de SQL Server 2005, el
SCC recupera el estado de cada elemento de comprobacin, compara el resultado con las
condiciones necesarias y proporciona instrucciones para eliminar los problemas de bloqueo.
Todos los elementos de comprobacin del SCC estn habilitados por la red; las
comprobaciones se pueden ejecutar en un equipo local, as como en situaciones remotas o de
clster.

Opciones para la instalacin de Componentes:


El Asistente para la instalacin proporciona una interfaz grfica de usuario que le gua a travs
de cada decisin del proceso de instalacin, as como instrucciones para la configuracin inicial
de SQL Server 2005, lo que incluye seleccin de caractersticas, reglas de nomenclatura de
instancias, configuracin de cuentas de servicio, directrices para contraseas seguras y
escenarios para establecer intercalaciones.
Utilice la pgina Seleccin de caractersticas del Asistente para la instalacin de SQL Server
para seleccionar los componentes que se incluir en la instalacin de SQL Server 2005.
Utilice las siguientes descripciones para determinar el conjunto de caractersticas que satisfag
sus necesidades.
En el panel Componentes para instalar, se muestra una descripcin de cada grupo de
componentes al seleccionarlo. Puede activar una combinacin de casillas de verificacin.
Para seleccionar caractersticas individuales para la instalacin, haga clic en Avanzadas. Para
instalar componentes en una carpeta de destino personalizada o para ver los requisitos de
espacio en disco para un componente o caracterstica individual, haga clic en Avanzadas.

Seleccione este grupo


de componentes Para instalar estos componentes y caractersticas

Servicios de bases de SQL Server Database Engine (Motor de base de datos de SQL Server) incluye las
datos de SQL Server siguientes tecnologas:

Database Engine (Motor de base de datos) es el servicio principal para


almacenar, procesar y proteger los datos.

- 23 -
La rplica es un conjunto de tecnologas destinadas a la copia y distribucin
de datos y objetos de base de datos desde una base de datos a otra, para
luego sincronizar ambas bases de datos y mantener su coherencia.
La bsqueda de texto proporciona funcionalidad para realizar consultas de
texto en datos simples basados en caracteres contenidos en tablas de SQL
Server.
Herramientas para administrar datos relacionales y XML.

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

Notification Services Notification Services es una plataforma para desarrollar e implementar aplicaciones que
enven informacin personalizada puntualmente a los suscriptores de una gran variedad
de dispositivos.

Integration Services Integration Services es un conjunto de herramientas grficas y objetos programables


para mover, copiar y transformar datos.

Componentes de la Instala componentes para la comunicacin entre clientes y servidores, incluidas


estacin de trabajo, bibliotecas de red para DB-Library, OLEDB para OLAP, ODBC, ADODB y ADOMD+.
Libros en pantalla y
herramientas de Herramientas de administracin
desarrollo
SQL Server Management Studio (SSMS), nuevo en Microsoft SQL Server
2005, es un entorno integrado para obtener acceso, configurar, administrar y
desarrollar todos los componentes de SQL Server. SSMS rene las
caractersticas del Administrador corporativo, el Analizador de consultas y
Analysis Manager, herramientas incluidas en versiones anteriores de SQL
Server, en un nico entorno que proporciona acceso para SQL Server a los
desarrolladores y administradores de todos los niveles de conocimiento.
El Administrador de configuracin de SQL Server proporciona administracin
de configuracin bsica para los servicios, protocolos de servidor, protocolos
de cliente y alias de cliente de SQL Server.
Analizador de SQL Server proporciona una interfaz grfica de usuario para
supervisar una instancia de Database Engine (Motor de base de datos) o una
instancia de Analysis Services.
El Asistente para la optimizacin de Database Engine (Motor de base de
datos) crea conjuntos ptimos de ndices, vistas indizadas y particiones.
El Monitor de rplica permite realizar un seguimiento del estado y del
rendimiento de las publicaciones y las suscripciones en una topologa de
rplica.
Caractersticas de cliente SQLXML

Documentacin

Los Libros en pantalla de SQL Server son la documentacin principal de SQL


Server 2005.
Kits de desarrollo de software

Herramientas de desarrollo

Business Intelligence Development Studio es un entorno de desarrollo

- 24 -
integrado para las soluciones de Analysis Services, Reporting Services y
Integration Services.

Instalacin Desatendida
Usted puede realizar una instalacin desatendida creando un archivo .ini que contenga la
informacin de setup y ejecutando el setup.exe desde la lnea de comandos. Entender cmo
realizar una instalacin desatendida puede ayudarlo a distribuir mltiples instalaciones de SQL
Server idnticas.

Creacin del archivo .ini


Puede crear este archivo desde cualquier editor de texto, como por ejemplo el Notepad.
El CD de SQL Server contiene un archivo modelo llamado template.ini que usted puede
utilizar para comenzar a crear su propio archivo .ini.
El archivo .ini est compuesto de una seccin de Opciones que contiene mltiples parmetros,
cada uno de los cuales hace referencia a un componente o configuracin diferente.

Comenzando una instalacin desatendida


Para comenzar una instalacin desatendida utilice la siguiente sintaxis de comando:

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

Por ejemplo, para llevar a cabo una instalacin desatendida con un archivo .ini llamado
installsettings.ini en la carpeta C:\setup folder, utilice el siguiente comando:

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

Adicionalmente, usted puede especificar /qn para instalacin desatendida (sin cajas de
dilogo) o /qb para especificar que slo el dilogo de progreso ser mostrado.

- 25 -
3- Manejo de la instalacin

Configuracin de Superficie (Surface Area Configuration)


La herramienta Configuracin de superficie para caractersticas proporciona una sola interfaz
para habilitar o deshabilitar muchas caractersticas del Motor de base de datos, Analysis
Services y Reporting Services. Si se deshabilitan las caractersticas que no se utilizan, se
pueden proteger las instalaciones de Microsoft SQL Server reduciendo la superficie de SQL
Server.
Usted puede utilizar la herramienta Configuracin de Superficie para habilitar o deshabilitar los
siguientes servicios y opciones de conectividad para cada instancia de SQL Server en la
computadora.
En las siguientes tablas se incluye el valor predeterminado para cada configuracin:

Configuracin Valor predeterminado

Consultas ad hoc distribuidas Deshabilitada en nuevas instalaciones.

Integracin de CLR (Common Language Deshabilitada en nuevas instalaciones.


Runtime)

Conexin de administrador dedicada (DAC) Deshabilitada en nuevas instalaciones.

Correo electrnico de base de datos Deshabilitada en nuevas instalaciones.

Servicios Web XML nativos Los extremos no estn configurados de forma predeterminada.

Procedimientos almacenados de Deshabilitada en nuevas instalaciones.


automatizacin OLE

Service Broker Los extremos no estn configurados de forma predeterminada.

SQL Mail Deshabilitada en nuevas instalaciones.

Procedimientos almacenados de Asistente Deshabilitada en nuevas instalaciones.


para Web

xp_cmdshell Deshabilitada en nuevas instalaciones.

En las siguientes tablas se incluye el valor predeterminado para cada configuracin de


servicios y protocolos de red de Windows:

Servicio o protocolo Valor predeterminado

Servicio del Database Engine (Motor de base El inicio puede establecerse en Automtico o Manual durante la
de datos) instalacin.

Conexiones remotas del Database Engine Las conexiones remotas estn deshabilitadas en las ediciones

- 26 -
(Motor de base de datos) Express, Evaluation y Developer de SQL Server 2005 y estn
habilitadas en otras ediciones.

Servicio de Analysis Services El inicio puede establecerse en Automtico o Manual durante la


instalacin.

Conexiones remotas de Analysis Services Las conexiones remotas estn deshabilitadas en las ediciones
Express, Evaluation y Developer de SQL Server 2005 y estn
habilitadas en otras ediciones.

Servicio de Reporting Services El inicio puede establecerse en Automtico o Manual durante la


instalacin.

Servicio del Agente SQL Server Si se encuentra instalado, el tipo de inicio est establecido en
Manual y el servicio est detenido.

Servicio de bsqueda de texto Si se encuentra instalado, el inicio est establecido en Manual y el


servicio est detenido.

Servicios de instancia de Notification Servicios no instalados durante la instalacin.


Services

Servicio de Integration Services Si se encuentra instalado, el servicio est establecido en el modo de


inicio Automtico.

Servicio Explorador de SQL Server El inicio est establecido en Automtico en las siguientes
condiciones:

Cuando hay instancias con nombre del motor de base de


datos o Analysis Services en el servidor
Cuando se encuentra instalado en un clster
Cuando est instalado SQL Server 2000 al mismo tiempo

- 27 -
Manejador de Configuracin (Configuration Manager)
El SQL Server Configuration Manager es una herramienta que usted puede utilizar para
manejar los servicios asociados a SQL Server, configurar los protocolos de red utilizados por
SQL Server y manejar la configuracin de conectividad de red desde computadoras cliente
SQL Server.

- 28 -
Servicios SQL Server
Usted puede utilizar SQL Server Configuration Manager para iniciar, pausar, detener o
restaurar servicios Windows asociados a SQL Server. Tambin puede configurar los servicios
para que controlen sus modos de inicio y sus cuentas de servicio, as como propiedades
avanzadas como por ejemplo parmetros de inicio.

Importante: para cambiar las cuentas de servicio utilice SQL Server Configuration Manager en
lugar de la consola de Windows Services porque SQL Server Configuration Manager aplica
automticamente los permisos de registro requeridos para la cuenta que usted especifique.

Configuracin del Servidor de Red


Usted puede utilizar SQL Server Configuration Manager para configurar los protocolos de red
utilizados por una instancia de SQL Server. Puede habilitar o deshabilitar un protocolo
determinado y manejar los valores especficos para ese protocolo como el puerto TCP utilizado
por el protocolo TCP/IP.

Configuracin del Cliente de Red


Cuando se instala SQL Server Configuration Manager en una computadora cliente, usted
puede utilizarlo para manejar la librera Cliente Nativo SQL (SQL Native Client) estableciendo
el orden de prioridad de protocolos de red y alianzas de servidor.

SQL Server Management Studio


SQL Server Management Studio es un entorno integrado para obtener acceso a todos los
componentes de SQL Server, configurarlos, administrarlos y desarrollarlos. Combina un amplio
grupo de herramientas grficas con una serie de editores de script para ofrecer acceso a SQL
Server a programadores y administradores de todos los niveles de especializacin.
SQL Server Management Studio combina las caractersticas del Administrador corporativo, el
Analizador de consultas y Analysis Manager, herramientas incluidas en versiones anteriores de
SQL Server, en un nico entorno. Adems, SQL Server Management Studio funciona con

- 29 -
todos los componentes de SQL Server, como Reporting Services, Integration Services y SQL
Server Compact 3.5. Los programadores obtienen una experiencia familiar y los
administradores de bases de datos una nica herramienta completa que combina herramientas
grficas fciles de usar con funciones de script enriquecidos.

SQL Server Management Studio incluye las siguientes caractersticas generales:

Compatibilidad con la mayora de las tareas administrativas de SQL Server 2005 y SQL
Server 2000.
Un entorno nico integrado para administracin y edicin de SQL Server Database
Engine (Motor de base de datos de SQL Server).
Nuevos cuadros de dilogo para la administracin de objetos de SQL Server Database
Engine (Motor de base de datos de SQL Server), Analysis Services, Reporting
Services, Notification Services y Microsoft SQL Server 2005 Compact Edition, lo que
permite ejecutar las acciones inmediatamente, enviarlas a un editor de cdigo o
escribirlas en secuencias de comandos para ejecutarlas posteriormente.
Cuadros de dilogo no modales y de tamao variable que permiten obtener acceso a
varias herramientas mientras un cuadro de dilogo est abierto.
Un cuadro de dilogo comn de programacin que permite realizar acciones de los
cuadros de dilogo de administracin en otro momento.
Exportacin e importacin del registro de servidor de SQL Server Management Studio
desde un entorno de Management Studio a otro.
Guardado o impresin de archivos de plan de presentacin XML o de interbloqueo
generados por el Analizador de SQL Server, revisin posterior o envo a los
administradores para su anlisis.
Un nuevo cuadro de mensaje de error e informativo que presenta mucha ms
informacin, permite enviar a Microsoft un comentario sobre los mensajes, copiar
mensajes en el Portapapeles y enviar fcilmente los mensajes por correo electrnico al
equipo de soporte.
Un explorador Web integrado para una rpida exploracin de MSDN o la ayuda en
pantalla.
Integracin de la ayuda de comunidades en lnea.
Un nuevo monitor de actividad con filtro y actualizacin automtica.
Interfaces de Correo electrnico de base de datos integradas.

Nuevas funciones de las Secuencias de Comandos


El Editor de cdigo de SQL Server Management Studio contiene editores de secuencias de
comandos integrados para crear secuencias de comandos Transact-SQL, MDX, DMX, XML/A
y XML. Ofrece las caractersticas siguientes:

Ayuda dinmica para el acceso inmediato a la informacin relevante mientras se


trabaja.
Un amplio conjunto de plantillas y la posibilidad de crear plantillas personalizadas.
Compatibilidad con la escritura y modificacin de consultas o secuencias de comandos
sin necesidad de conexin a un servidor.
Compatibilidad con secuencias de comandos para consultas y secuencias de
comandos SQLCMD.
Una nueva interfaz para ver resultados XML.
Control de cdigo fuente integrado para proyectos de secuencias de comandos y
soluciones compatibles con el almacenamiento y la conservacin de copias de
secuencias de comandos a medida que evolucionan.
Compatibilidad de Microsoft IntelliSense con instrucciones MDX.

- 30 -
Caractersticas del Explorador de objetos
El Explorador de objetos de SQL Server Management Studio es una herramienta integrada
para ver y administrar objetos en todo tipo de servidores. Ofrece las caractersticas siguientes:

Filtrado por todo o parte de un nombre, esquema o fecha.


Llenado asincrnico de objetos, con la posibilidad de filtrar objetos segn sus
metadatos.
Acceso al Agente SQL Server en los servidores de rplica para administracin.

- 31 -
Mdulo 2

Recuperacin de
desastre

- 32 -
1- Planeamiento
Planear la estrategia de copias de seguridad y restauracin
Al administrar una base de datos de SQL Server, es importante estar preparado para la
recuperacin de desastres potenciales. Es necesario un plan de restauracin y de copia de
seguridad correctamente diseado y probado para poder recuperar las copias de seguridad de
SQL Server de las bases de datos despus de un desastre.
Adems, para garantizar que todos los sistemas y datos puedan recuperar rpidamente su
funcionamiento normal en caso de un desastre natural, es necesario crear un plan de
recuperacin de desastres. Durante la elaboracin de este plan es preciso tener en cuenta los
escenarios de distintos tipos de desastres que pueden afectar a su negocio, incluidos los
desastres naturales, como un incendio, y los desastres tcnicos, como los errores en dos
discos de una matriz RAID-5. Cuando cree un plan de recuperacin de desastres, identifique y
prepare todos los pasos necesarios para hacer frente a cada tipo de desastre. Debe realizar la
comprobacin prctica de los pasos de recuperacin de cada escenario. Se recomienda que
compruebe el plan de recuperacin de desastres mediante la simulacin de un desastre
natural.

Durante el diseo del plan de copia de seguridad y restauracin, es necesario realizar el diseo
del plan de recuperacin de desastres segn el entorno y las necesidades del negocio.
Por ejemplo, supongamos que se produce un incendio y destruye el centro de datos
disponibles 24 horas al da. Est seguro de que es posible la recuperacin? Cunto tiempo
se puede tardar en llevar a cabo la recuperacin y tener disponible el sistema? Cul es la
cantidad de datos perdidos que pueden tolerar los usuarios?
Lo ideal es que el plan de recuperacin de desastres indique el tiempo que durar la
recuperacin y el estado final de las bases de datos que los usuarios pueden esperar. Por
ejemplo, puede determinar que, tras la adquisicin del hardware especificado, la recuperacin
debe completarse en 48 horas y slo se garantizarn los datos hasta finales de la semana
previa al incidente.

Un plan de recuperacin de desastres se puede estructurar de diferentes maneras y puede


contener muchos tipos de informacin. Entre los tipos de planes de recuperacin de desastres
se incluyen los siguientes:
Un plan para adquirir el hardware.
Un plan de comunicacin.
Una lista de las personas con las que ponerse en contacto si se produce un desastre.
Instrucciones para ponerse en contacto con las personas implicadas en la respuesta al
desastre.
Informacin acerca del propietario de la administracin del plan.
Una lista de comprobacin de las tareas necesarias para cada escenario de
recuperacin. Para facilitar la revisin de la evolucin de la recuperacin de desastres,
ponga a cada tarea una inicial a medida que se vayan completando y anote la hora de
finalizacin en la lista de comprobacin.

Elegir el tipo de medio para la copia de seguridad


SQL Server puede generar copias en discos rgidos o cintas. Los discos locales o a travs de la
red son el medio ms comn para guardar copias de seguridad. Cuando la copia se genera en
cinta el dispositivo debe estar instalado localmente al servidor de SQL Server.

Administrar medios de copia de seguridad


Se recomienda que el plan de copias de seguridad estipule cmo se han de administrar los
medios de copia de seguridad, por ejemplo:

- 33 -
Un plan de seguimiento y administracin para almacenar y reciclar conjuntos de copias
de seguridad.
Una programacin para sobrescribir el medio de copia de seguridad.
En un entorno multiservidor, la decisin de utilizar copias de seguridad centralizadas o
distribuidas.
Un modo de realizar un seguimiento de la vida til del medio.
Un procedimiento para minimizar los efectos de la prdida de un conjunto o medio de
copia de seguridad, por ejemplo, la prdida de una cinta.
La decisin de guardar los conjuntos de copia de seguridad dentro o fuera del sitio, y
un anlisis de cmo afectara esta decisin al tiempo de recuperacin.

Ejecutar una secuencia de comandos con la funcionalidad bsica


Normalmente, las secuencias de comandos con la funcionalidad bsica se incluyen en los
planes de recuperacin de desastres para confirmar que todo funciona como se espera. Una
secuencia de comandos con la funcionalidad bsica proporciona una herramienta confiable
para que los administradores de sistemas o de bases de datos puedan comprobar que se ha
recuperado la base de datos con un estado viable, sin tener que depender de los usuarios
finales para llevar a cabo la comprobacin.
Una secuencia de comandos con la funcionalidad bsica es especfica de la aplicacin y puede
adoptar muchas formas diferentes. Por ejemplo, en un sistema de informes o ayuda a la toma
de decisiones, la secuencia de comandos puede ser simplemente una copia de varias de las
consultas para informes ms importantes. Para una aplicacin de procesamiento de
transacciones en lnea (OLTP), la secuencia de comandos puede ejecutar un lote de
procedimientos almacenados que contengan instrucciones INSERT, UPDATE y DELETE. Por
ejemplo, una secuencia de comandos con la funcionalidad bsica puede ser tan simple como
un archivo .sql que enva instrucciones SQL por lotes al servidor desde la utilidad sqlcmd. Otro
ejemplo es usar un archivo .bat que contenga los comandos bcp y sqlcmd.

Garantizar la disposicin para afrontar desastres


Para asegurarse de que est preparado para hacer frente a desastres, se recomienda que
realice las siguientes tareas de forma peridica:
Compruebe los procedimientos de copia de seguridad y recuperacin antes de que se
produzca un error real. Las comprobaciones le ayudan a asegurarse de que cuenta con
las copias de seguridad necesarias para recuperarse de diversos errores, que sus
procedimientos estn perfectamente definidos y documentados y que cualquier
operario cualificado puede ejecutarlos rpidamente y sin problemas.
Para que la cantidad de datos perdidos sea mnima, realice peridicamente copias de
seguridad de las bases de datos y los registros de transacciones. Se recomienda
realizar copias de seguridad del sistema y de las bases de datos de los usuarios.
Mantenga los registros del sistema de manera segura. Conserve registros de todos los
Service Pack instalados en Microsoft Windows y SQL Server. Conserve registros de las
bibliotecas de red usadas y del modo de seguridad. Asimismo, si SQL Server se
ejecuta en autenticacin de modo mixto (modo de autenticacin de SQL Server y de
Windows), registre la contrasea de sa.
En otro servidor, evale por anticipado los pasos que debe seguir para la recuperacin
de un desastre, modifquelos segn sea necesario para ajustarlos a su entorno de
servidor local y compruebe los pasos modificados.
Conserve una secuencia de comandos con la funcionalidad bsica a fin de evaluar
rpidamente la capacidad mnima.

Revisar y reducir los posibles errores del usuario

- 34 -
Uno de los escenarios de recuperacin ms difciles es recuperarse de un error de usuario
importante, como quitar objetos de la base de datos de forma accidental. En esta seccin se
enumeran herramientas que le pueden ayudar a revisar y en algunos casos a regular los
cambios efectuados a las bases de datos.
Desencadenadores del lenguaje de definicin de datos (DDL): Estos
desencadenadores se pueden crear para revisar y regular algunos cambios del
esquema de base de datos. Los desencadenadores DDL activan procedimientos
almacenados en respuesta a una variedad de instrucciones DDL. Estas instrucciones
son bsicamente las que empiezan por CREATE, ALTER y DROP. El mbito de un
desencadenador DDL puede ser una base de datos determinada o una instancia de
servidor completa.
Notificaciones de eventos: Las notificaciones de eventos se ejecutan en respuesta a
una variedad de instrucciones DDL de Transact-SQL y eventos de la traza de SQL, y
envan informacin acerca de esos eventos a un servicio de Service Broker.
Se pueden programar notificaciones de eventos para muchos de los eventos
capturados por Traza de SQL, pero, en lugar de usarlas para crear trazas, puede usar
dichas notificaciones para realizar una accin en una instancia de SQL Server 2005
como respuesta a eventos. Dado que las notificaciones de eventos se ejecutan de
forma asincrnica, estas acciones no consumen recursos definidos por la transaccin
inmediata.
Agente SQL Server: Se trata de un servicio de Windows que ejecuta tareas
administrativas programadas, denominadas trabajos. El Agente SQL Server utiliza SQL
Server para almacenar informacin de los trabajos. Entre otras cosas, el Agente SQL
Server puede ejecutar un trabajo en respuesta a un evento concreto; por ejemplo,
errores que tienen un nivel de gravedad o un nmero de mensaje especficos.
Traza de SQL (Trace): La traza de SQL proporciona procedimientos almacenados del
sistema Transact-SQL para crear trazas sobre clases de eventos seleccionadas por el
usuario en una instancia del Motor de base de datos de SQL Server. Puede utilizar
estos procedimientos almacenados del sistema desde sus propias aplicaciones para
crear trazas manualmente.

Modelos de recuperacin
Los modelos de recuperacin se han diseado para controlar el mantenimiento del registro de
transacciones. Existen tres modelos de recuperacin: simple (Simple), completa (Full) y por
medio de registros de operaciones masivas (BULK_LOGGED). Normalmente, en las bases de
datos se usa el modelo de recuperacin completa o el modelo de recuperacin simple.

En la tabla siguiente se resumen estos modelos de recuperacin.

Modelo de Riesgo de prdida de Recuperacin hasta un


recuperacin Descripcin trabajo momento dado?

Simple Sin copias de seguridad de Los cambios realizados Slo se puede recuperar
registros. despus de la copia de hasta el final de una copia
seguridad ms reciente no de seguridad.
Recupera automticamente el estn protegidos. En caso de
espacio de registro para desastre, es necesario volver
mantener al mnimo los requisitos a realizar dichos cambios.
de espacio, eliminando, en
esencia, la necesidad de
administrar el espacio del registro
de transacciones.

- 35 -
Completa Requiere copias de seguridad de Normalmente ninguno. Se puede recuperar hasta
registros. determinado momento,
Si el final del registro resulta siempre que las copias de
No se pierde trabajo si un archivo daado, se deben repetir los seguridad se hayan
de datos se pierde o resulta cambios realizados desde la completado hasta ese
daado. ltima copia de seguridad de momento.
registros.
Se puede recuperar hasta
cualquier momento, por ejemplo,
antes del error de aplicacin o
usuario.

Por medio de Requiere copias de seguridad de Si el registro resulta daado Se puede recuperar hasta
registros de registros. o se han realizado el final de cualquier copia
operaciones operaciones masivas desde de seguridad. No admite
masivas Complemento del modelo de la ltima copia de seguridad recuperaciones a un
recuperacin completa que de registros, se pueden momento dado.
permite operaciones de copia repetir los cambios desde
masiva de alto rendimiento. esa ltima copia de
seguridad.
Reduce el uso del espacio de
registro mediante el registro En caso contrario, no se
masivo de la mayora de las pierde el trabajo.
operaciones masivas.

- 36 -
Recuperacin simple
Utilcelo si se dan todas las condiciones siguientes:
La recuperacin al momento del error no es necesaria. Si se pierde o se daa la base
de datos, no le importa perder todas las actualizaciones realizadas entre el error y la
copia de seguridad anterior.
No le importa perder algunos datos del registro.
No desea realizar copias de seguridad del registro de transacciones ni restaurarlo, y
prefiere confiar exclusivamente en las copias de seguridad completas y diferenciales.

Recuperacin completa
Utilice este modelo y, opcionalmente, tambin el modelo de recuperacin por medio de
registros de operaciones masivas, si se da cualquiera de las condiciones siguientes:
Desea poder recuperar todos los datos.
Si la base de datos incluye varios grupos de archivos y desea realizar una restauracin
por etapas de los grupos de archivos secundarios de lectura y escritura, y
opcionalmente, de los de slo lectura.
Debe poder realizar una recuperacin hasta el momento del error.
Desea poder restaurar pginas individuales.

- 37 -
Le resulta aceptable incurrir en los costes administrativos de las copias de seguridad
del registro de transacciones

Recomendaciones sobre modelos de recuperacin para bases de datos del sistema


En esta seccin se resumen las recomendaciones para utilizar un modelo de recuperacin con
cada una de las bases de datos del sistema.

Base de
datos del Modelo de
sistema recuperacin Comentarios

master Simple Por compatibilidad con versiones anteriores de Microsoft SQL Server, el
modelo de recuperacin de master se puede establecer en FULL o
BULK_LOGGED. No obstante, master no admite BACKUP LOG. Por lo tanto,
incluso si el modelo de recuperacin de master se cambia a completo o por
medio de registros de operaciones masivas, la base de datos contina
funcionando como si estuviese usando el modelo de recuperacin simple.

model Completa (valor Las bases de datos de usuario recin creadas usan el mismo modelo de
predeterminado) recuperacin que la base de datos model. Si desea que las nuevas bases de
datos usen el modelo de recuperacin simple, cambie el modelo de
recuperacin de model a SIMPLE.

Recomendacin: es aconsejable crear copias de seguridad completas de


base de datos de model, slo cuando sea necesario. Puesto que model es de
pequeo tamao y no suele cambiar, no es necesario realizar copia de
seguridad del registro.

msdb Simple (valor Si desea utilizar la informacin del historial de copias de seguridad y
predeterminado) restauraciones que hay en msdb para recuperar las bases de datos de
usuarios, se recomienda usar el modelo de recuperacin completa para msdb.
Adems, debera considerar la posibilidad de situar el registro de
transacciones msdb en un medio de almacenamiento con tolerancia a errores.

Resource El modelo de recuperacin es irrelevante. La copia de seguridad de SQL


Server no puede realizar una copia de seguridad de la base de datos
Resource.

Nota: Puede realizar una copia de seguridad basada en disco o en archivos de


la base de datos Resource si trata a Mssqlsystemresource.mdf como si fuese
un archivo binario (.exe). No obstante, no puede utilizar la restauracin de SQL
Server en estas copias de seguridad.

Tempdb Simple Requiere el modelo de recuperacin simple, de forma que el espacio de


registro tempdb se recupera siempre automticamente. No se puede hacer
una copia de seguridad de tempdb.

- 38 -
2- Copias de Seguridad

Tipos de Copias de Seguridad


Copias de seguridad completas de bases de datos
Copias de Seguridad del Registro de Transacciones
Copias de Seguridad Diferenciales
Copias de Seguridad de Archivos o Grupos de Archivos

Copias de seguridad completas de bases de datos


Una copia de seguridad completa de la base de datos crea una copia de seguridad de toda la
base de datos, que incluye parte del registro de transacciones para que se pueda recuperar la
copia de seguridad completa de la base de datos. Las copias de seguridad completas
representan la base de datos en el momento en que finaliz la copia de seguridad.
Las copias de seguridad de bases de datos son fciles de utilizar. Una copia de seguridad
completa de una base de datos contiene todos los datos de la base de datos. Para las bases
de datos pequeas, de las que se puede hacer una copia de seguridad con rapidez, la prctica
recomendada es utilizar copias de seguridad completas de la base de datos. Sin embargo, a
medida que la base de datos aumenta de tamao, las copias de seguridad completas requieren
una mayor cantidad de tiempo y espacio de almacenamiento. Por ello, para una base de datos
grande, puede que desee complementar las copias de seguridad completas con copias de
seguridad diferenciales.

Copia de seguridad en el modelo de recuperacin completa


En el modelo de recuperacin completa se usan copias de seguridad de registros para evitar la
prdida de datos en la mayor parte de los casos de error y es necesario realizar copias de
seguridad y restaurar el registro de transacciones (copias de seguridad de registros). La
ventaja de usar las copias de seguridad de registros reside en que permite restaurar una base
de datos a cualquier momento de una copia de seguridad de registros (recuperacin a un
momento dado). Si consideramos que se puede realizar una copia de seguridad del registro
activo despus de que ocurra un desastre, se podr restaurar la base de datos al momento del
error sin perder datos. Las desventajas de usar las copias de seguridad de registros son que
requieren espacio de almacenamiento y aumentan la duracin y la complejidad de las
restauraciones.
En las bases de datos en que se usa con frecuencia el modelo de recuperacin completa, se
pueden optimizar algunas operaciones masivas utilizando temporalmente el modelo de
recuperacin por medio de registros de operaciones masivas. El modelo de recuperacin por
medio de registros de operaciones masivas impone varias restricciones que hacen que no sea
adecuado para su uso diario.

Ejemplo:
En la siguiente ilustracin se muestra la estrategia de copia de seguridad ms fcil con el
modelo de recuperacin completa. En la ilustracin se han realizado una copia de seguridad de
base de datos, Db_1, y dos copias de seguridad de registros rutinarias, Log_1 y Log_2. Algn
tiempo despus de la copia de seguridad de registros Log_2, se pierden datos de la base de
datos. Antes de restaurar estas tres copias de seguridad, el administrador de la base de datos
debe realizar una copia de seguridad del registro activo (el final del registro). Entonces, el
administrador de la base de datos restaura Db_1, Log_1 y Log_2 sin recuperar la base de
datos. A continuacin, el administrador de la base de datos restaura y recupera la copia de
seguridad de registros despus del error (Tail). As se recupera la base de datos al momento
del error, incluidos todos los datos.

- 39 -
Minimizar el riesgo de prdida de trabajo
Una vez que finaliza la primera copia de seguridad completa de la base de datos y se inician
las copias de seguridad peridicas de registros, el riesgo potencial de prdida de trabajo se
limita al tiempo transcurrido entre el momento en que se daa la base de datos y la copia de
seguridad peridica de registros ms reciente. Por lo tanto, recomendamos que realice copias
de seguridad de registros con suficiente frecuencia para mantener el riesgo de prdida de
trabajo dentro de los lmites establecidos por sus requisitos empresariales.
Cuando se produce un error, puede intentar realizar una copia de seguridad del registro
despus del error (el registro del que an no se ha realizado una copia de seguridad). Si la
copia de seguridad del registro despus del error se realiza sin problemas, puede evitar
cualquier prdida de trabajo restaurando la base de datos hasta el momento del error.
Puede utilizar una serie de copias de seguridad de registros para poner al da una base de
datos hasta cualquier momento que se encuentre en una de las copias de seguridad de
registros. Para minimizar el riesgo, recomendamos programar copias de seguridad de registros
rutinarias. Tenga en cuenta que para minimizar el tiempo de restauracin, puede complementar
cada copia de seguridad completa con una serie de copias de seguridad diferenciales de los
mismos datos.

La siguiente ilustracin muestra una estrategia de copia de seguridad que complementa las
copias de seguridad completas de la base de datos con copias de seguridad diferenciales, as
como una serie de copias de seguridad de registros rutinarias. La presencia de copias de
seguridad del registro de transacciones reduce el posible riesgo de prdida de trabajo al
momento despus de la copia de seguridad de registros ms reciente. Tras la primera copia de
seguridad de la base de datos, se realiza una serie de tres copias de seguridad diferenciales.
La tercera copia de seguridad diferencial tiene el tamao suficiente como para que la prxima
copia de seguridad sea una copia de seguridad de base de datos completa. As se establece
una nueva base diferencial.

- 40 -
En esta ilustracin, antes de la primera copia de seguridad de la base de datos, existe un
riesgo potencial de prdida de trabajo en la base de datos (de la hora t0 a la hora t1). Por
tanto, las copias de seguridad de registros rutinarias reducen el riesgo de prdida de trabajo a
la posibilidad de perder los cambios realizados despus de la ltima copia de seguridad de
registros (realizada a la hora t14 en esta ilustracin). Si se produce un error, el administrador
de la base de datos debe intentar realizar inmediatamente una copia de seguridad del registro
activo (el final del registro). Si esta copia de seguridad de registros despus del error se realiza
correctamente, la base de datos se puede restaurar hasta el momento del error.

Copias de Seguridad del Registro de Transacciones


En los modelos de recuperacin completa y por medio de registros de operaciones masivas, es
necesario realizar copias de seguridad peridicas de los registros de transacciones (copias de
seguridad de registros) para recuperar datos. Gracias a las copias de seguridad de registros es
posible recuperar la base de datos en el punto en que se haya producido el error o en un
momento dado. Es aconsejable realizar copias de seguridad de registros suficientemente
regulares para ajustarse a los requisitos de su empresa, especficamente a la tolerancia a la
prdida de trabajo que una unidad de registro daada podra provocar. La frecuencia adecuada
para realizar copias de seguridad de registros vara en funcin de la tolerancia al riesgo de
prdida de trabajo y, por otra parte, de la cantidad de copias de seguridad de registros que
puede almacenar, administrar y, potencialmente, restaurar. Una copia de seguridad de
registros cada 15 30 minutos puede ser suficiente. Si su empresa necesita minimizar el riesgo
de prdida de trabajo, piense en la posibilidad de realizar copias de seguridad de registros ms
frecuentemente. Al realizar copias de seguridad de registros con ms frecuencia tendr la
ventaja aadida de que la frecuencia del truncamiento del registro ser mayor, por lo que los
archivos o archivos de registro sern ms pequeos.
Antes de crear la primera copia de seguridad de registros, debe crear una copia de seguridad
completa, como una copia de seguridad de la base de datos o la primera de un conjunto

- 41 -
completo de copias de seguridad de archivos. La restauracin de una base de datos utilizando
nicamente copias de seguridad de archivos puede llegar a ser un proceso complejo. Por lo
tanto, es recomendable que comience con una copia de seguridad de la base de datos
completa si es posible. Posteriormente, ser necesario realizar copias de seguridad del registro
de transacciones con regularidad. De esta forma, no slo se minimiza el riesgo de prdida de
trabajo, sino que tambin se permite el truncamiento del registro de transacciones.
Normalmente, el registro de transacciones se trunca tras cada copia de seguridad de registros
convencional.

La cadena de registros
Una secuencia continua de copias de seguridad de registros se denomina cadena de registros.
Una cadena de registros empieza con una copia de seguridad completa de la base de datos.
Por lo general, una nueva cadena de registros slo se inicia cuando se realiza una copia de
seguridad de la base de datos por primera vez o despus de cambiar del modelo de
recuperacin simple al modelo de recuperacin completa o por medio de registros de
operaciones masivas.
Para restaurar una base de datos al momento del error, es preciso que la cadena de registros
est intacta. De esta forma, es necesario que una secuencia ininterrumpida de las copias de
seguridad del registro de transacciones se extienda hasta el momento del error. El lugar en el
que sta secuencia de registros debe comenzar depende del tipo de copias de seguridad de
datos que est restaurando: de base de datos, parcial o de archivos. En las copias de
seguridad de base de datos o parciales, la secuencia de copias de seguridad de registros debe
extenderse desde el final de la copia de seguridad de base de datos o parcial. En un conjunto
de copia de seguridad de archivos, la secuencia de copias de seguridad de registros debe
comenzar desde el principio del conjunto completo de copias de seguridad de archivos.
Si slo utiliza copias de seguridad de archivos, es necesario realizar una copia de seguridad
del registro desde el principio de la primera copia de seguridad de archivos completa. Es
posible comenzar a realizar copias de seguridad de registros inmediatamente despus de la
primera copia de seguridad de archivos completa. Es recomendable comenzar en ese
momento, dado que la primera copia de seguridad de registros puede tardar mucho tiempo.
Mientras se realiza la copia de seguridad del registro, puede realizar copias de seguridad de
otros archivos. Para restaurar la base de datos slo con copias de seguridad de archivos, el
conjunto de copias de seguridad completas de archivos debe ampliarse con una o ms copias
de seguridad de registros que cubran el intervalo entre la primera copia de seguridad de
archivos y la ltima.

Nota: Para identificar la copia de seguridad con la que comienza la cadena de registros en un
conjunto de copias de seguridad, consulte la columna begins_log_chain de la tabla backupset
o ejecute RESTORE HEADERONLY en el dispositivo de copia de seguridad para ver la
columna BeginsLogChain en el conjunto de resultados.

Administracin de registros de transacciones y modelos de recuperacin


Las operaciones de copia de seguridad y restauracin se producen en el contexto de un
modelo de recuperacin. Un modelo de recuperacin es una propiedad de base de datos que
controla la forma en que se registran las transacciones, si el registro de transacciones requiere
que se realice la copia de seguridad y si lo permite, y qu tipos de operaciones de restauracin
hay disponibles.

Truncamiento del registro con el modelo de recuperacin completa y por medio de


registros de operaciones masivas

- 42 -
En el modelo de recuperacin completa o en el modelo de recuperacin por medio de registros
de operaciones masivas, no se puede truncar la parte inactiva del registro hasta que se hayan
capturado todas sus entradas de registro en una copia de seguridad de registros. Esto es
necesario para mantener la cadena de registros, una serie de entradas de registro que tienen
una secuencia continua de nmeros de secuencia de registro (LSN). El registro se trunca
cuando se realiza la copia de seguridad del registro de transacciones, siempre que se cumplan
las siguientes condiciones:
Se ha producido un punto de comprobacin (Checkpoint) desde la ltima copia de
seguridad del registro. Un punto de comprobacin es esencial pero no suficiente para
truncar el registro en el modelo de recuperacin completa o el modelo de recuperacin
por medio de registros de operaciones masivas. Despus de un punto de
comprobacin, el registro se mantiene intacto, al menos hasta la siguiente copia de
seguridad del registro de transacciones.
Ningn otro factor impide el truncamiento del registro.
Por lo general, si se hacen copias de seguridad con regularidad, el espacio de registro
se libera con la misma frecuencia para su uso futuro. Sin embargo, otros factores,
como una transaccin de ejecucin prolongada, pueden impedir temporalmente el
truncamiento del registro.
La instruccin BACKUP LOG no especifica WITH NO_TRUNCATE, WITH NO_LOG o
WITH COPY_ONLY.

Cmo funciona el truncamiento del registro


El truncamiento no reduce el tamao del archivo de registro fsico. Reducir el tamao fsico de
un archivo de registro requiere la reduccin del archivo.
El registro de transacciones es un archivo de registro circular. Cuando se crea la base de
datos, el archivo de registro lgico empieza por el principio del archivo de registro fsico. Las
nuevas entradas del registro se agregan al final del registro lgico y se expanden hacia el final
del archivo fsico. El registro de transacciones de una base de datos est asignado a uno o
varios archivos fsicos. El Motor de base de datos de SQL Server segmenta cada archivo de
registro fsico internamente en una serie de archivos de registro virtuales. El truncamiento del
registro libera el espacio en el registro lgico a base de eliminar archivos de registro virtuales
inactivos desde el principio del registro lgico.
Los archivos de registro virtuales son las unidades de espacio que se pueden reutilizar. Slo se
pueden truncar los archivos de registro que contienen nicamente entradas de registro
inactivas. La parte activa del registro de transacciones, el registro activo, no puede truncarse ya
que se necesita para recuperar la base de datos. El punto de comprobacin ms reciente
define el registro activo. El registro se puede truncar hasta ese punto de comprobacin.
Cuando se lleva a cabo el punto de comprobacin, la parte inactiva del registro de
transacciones se marca como reutilizable. A partir de ese momento, se puede liberar la parte
inactiva mediante el truncamiento del registro. El truncamiento libera los archivos de registro
virtuales para su reutilizacin. Finalmente, cuando se escribe una nueva entrada en un registro
virtual libre, ese archivo de registro virtual pasa de nuevo a estar activo.
Una parte de la informacin registrada en un punto de comprobacin es el nmero de
secuencia de registro (LSN) de la primera entrada del registro que debe estar presente para
una reversin correcta de toda la base de datos. Este LSN se denomina LSN de recuperacin
mnimo (MinLSN). El inicio de la parte activa del registro es el registro virtual que contiene el
MinLSN. Cuando se trunca un registro de transacciones, slo se liberan para su reutilizacin
las entradas del registro por delante de este archivo de registro virtual.

En la siguiente ilustracin se muestra un registro de transacciones antes y despus del


truncamiento. En la primera ilustracin se muestra un registro de transacciones que no se ha
truncado nunca. El registro lgico tiene actualmente cuatro archivos de registro virtuales en
uso. El registro lgico empieza por delante del primer archivo de registro virtual y termina en el

- 43 -
registro virtual 4. La entrada MinLSN se encuentra en el registro virtual 3. Los registros virtuales
1 y 2 slo contienen entradas de registro inactivas. Estas entradas pueden truncarse. El
registro virtual 5 no se utiliza an y no forma parte del registro lgico actual.

En la segunda ilustracin se muestra el registro despus del truncamiento. Se han liberado los
registros virtuales 1 y 2 para su reutilizacin. El registro lgico empieza ahora en el inicio del
registro virtual 3. El registro virtual 5 no se utiliza an y no forma parte del registro lgico actual.

Cmo funcionan las copias de seguridad diferenciales


Este tema es relevante para todos los tipos de base de datos.
Una copia de seguridad diferencial se basa en la copia de seguridad completa ms reciente
existente. Esto se denomina base del diferencial. Una copia de seguridad diferencial incluye
slo los datos que han cambiado desde la ltima base diferencial.
El tamao de una copia de seguridad diferencial depende de la cantidad de datos que han
cambiado desde la base. Como regla general, cuanto ms antigua sea una base, ms grande
ser una nueva copia de seguridad diferencial. Una copia de seguridad diferencial captura el
estado de las extensiones modificadas en el momento en que se crea la copia de seguridad. Si
crea una serie de copias de seguridad diferenciales, es probable que una extensin actualizada
con frecuencia contenga datos diferentes en cada una de las copias diferenciales. A medida
que se incrementa el tamao de las copias de seguridad diferenciales, la restauracin de una
copia de seguridad diferencial puede incrementar sensiblemente el tiempo necesario para
restaurar una base de datos. Por ello, recomendamos que realice una copia de seguridad
completa a intervalos definidos para establecer una nueva base diferencial para los datos. Por
ejemplo, cada semana podra realizar una copia de seguridad completa de toda la base de
datos (es decir, una copia de seguridad completa de la base de datos) seguida de una serie de
copias de seguridad diferenciales de la base de datos realizadas peridicamente durante la
semana.

En la siguiente ilustracin se muestra cmo funciona una copia de seguridad diferencial. La


ilustracin muestra 24 extensiones de datos, 6 de las cuales han cambiado. La copia de
seguridad diferencial slo contiene estas 6 extensiones de datos. La operacin de copia de
seguridad diferencial se basa en una pgina de mapa de bits que contiene un bit por cada
extensin. Por cada extensin actualizada desde que se cre la base, el bit se establece en 1
en el mapa de bits.

- 44 -
Nota: El mapa de bits de la copia de seguridad diferencial no se actualiza con las copias de
seguridad de slo copia. Por tanto, una copia de seguridad de slo copia no puede servir de
base diferencial o copia de seguridad diferencial. Una copia de seguridad de slo copia no
afecta a las copias de seguridad diferenciales subsiguientes.
Una copia de seguridad diferencial que se realiza poco despus de su base tiende a ser
sustancialmente ms pequea que la base diferencial. As, se gana espacio de copia de
seguridad y tiempo.
Sin embargo, a medida que la base de datos cambia, la diferencia entre la base de datos y una
base diferencial concreta aumenta. Cuanto ms tiempo pasa entre una copia de seguridad
diferencial y su base, ms probabilidades hay de que la copia de seguridad diferencial sea ms
grande. Esto significa que las copias de seguridad diferenciales pueden, a la larga, asemejarse
en tamao a la base diferencial. La copia de seguridad diferencial grande pierde las ventajas
de una copia de seguridad ms rpida y de menor tamao.
En el momento de la restauracin, antes de restaurar una copia de seguridad diferencial, debe
restaurar su base. A continuacin, slo necesita restaurar la copia diferencial ms reciente para
poner al da la base de datos hasta el momento en que se cre la copia de seguridad
diferencial. Por lo general, restaurar la copia de seguridad completa ms reciente seguida de
la copia de seguridad diferencial ms reciente que est basada en la copia de seguridad
completa.
Al crear y restaurar copias de seguridad diferenciales, SQL Server 2005 trata la base de datos
como un conjunto de archivos. Esto afecta al contenido de las copias de seguridad
diferenciales y al modo en que se utilizan en combinacin con las copias de seguridad de
bases de datos y de archivos. SQL Server Database Engine (Motor de base de datos de SQL
Server) est diseado para tratar los escenarios habituales fcilmente y sin ningn
comportamiento inesperado.

Copias de seguridad diferenciales de archivos


Una copia de seguridad diferencial de archivos necesita una copia de seguridad completa de
archivos como base.
La copia de seguridad diferencial de archivos supone una forma rpida de crear copias de
seguridad de archivos actuales y, adems, ocupa poco espacio. En el modelo de recuperacin
simple, las copias de seguridad diferenciales de archivos se habilitan nicamente para los
grupos de archivos de slo lectura. En el modelo de recuperacin completa, las copias de

- 45 -
seguridad diferenciales de archivos estn permitidas en todos los grupos de archivos que
tengan una base diferencial. Las copias de seguridad diferenciales de archivos pueden
disminuir significativamente el tiempo de recuperacin reduciendo la porcin del registro de
transacciones que debe restaurarse.

Se recomienda utilizar las copias de seguridad diferenciales de archivos en las siguientes


situaciones:
A algunos archivos se les hacen copias de seguridad con menor frecuencia que a
otros.
Los archivos son grandes y los datos se actualizan con poca frecuencia, o bien se
actualizan los mismos datos de forma repetida.

Importante: Evite el uso de copias de seguridad de bases de datos diferenciales y de archivos


diferenciales en la misma base de datos.

Copia de seguridad diferencial de grupos de archivos (filegroups) de slo lectura en


bases de datos de lectura y escritura
Las copias de seguridad diferenciales de una base de datos de lectura y escritura funcionan
correctamente aunque uno de los grupos de archivos fuera de slo lectura cuando se cre la
base diferencial. Como con cualquier copia de seguridad diferencial de una base de datos de
lectura y escritura, el Motor de base de datos de SQL Server registra la base diferencial en el
archivo principal.

Nota: Para una base de datos de slo lectura, el mapa de bits diferencial del archivo principal
no se puede actualizar durante una copia de seguridad.

Copia de seguridad de un grupo de archivos (filegroups) principalmente de slo lectura


En un grupo de archivos principalmente de slo lectura, la mayor parte del tiempo el grupo de
archivos es de slo lectura pero, ocasionalmente, pasa a ser de lectura y escritura durante
breves perodos de mantenimiento. Por ejemplo, un archivo de grupos que normalmente es de
slo lectura se puede establecer temporalmente como de lectura y escritura para permitir que
los archivos se importen de forma masiva y, posteriormente, se restablece a slo lectura.
Una vez se hayan completado las actualizaciones, puede proteger los datos nuevos haciendo
una copia de seguridad del grupo de archivos. La recomendacin para esta copia de seguridad
vara en funcin de cunto ha cambiado el archivo:
Si el grupo de archivos ha cambiado significativamente y sigue siendo de lectura y
escritura, realice una copia de seguridad completa de archivos. Dado que el grupo de
archivos sigue siendo de lectura y escritura, la operacin de copia de seguridad puede
restablecer el mapa de bits diferencial para preparar una serie de copias de seguridad
diferenciales nuevas. A continuacin, cambie el grupo de archivos a slo lectura
nuevamente y cree inmediatamente una copia de seguridad diferencial de archivos
para poder restaurar el grupo de archivos, que ahora es de slo lectura.
Si el grupo de archivos no ha cambiado mucho desde la ltima copia de seguridad
completa de archivos, asumiendo que existe una copia de seguridad completa de
archivos como base diferencial, establezca el grupo de archivos como de slo lectura
de nuevo inmediatamente y, a continuacin, cree una copia de seguridad diferencial de
archivos.

Nota: La propiedad IsReadOnly se establece en un grupo de archivos, no en archivos


individuales. Si un grupo de archivos es de slo lectura (es decir, si la propiedad IsReadOnly
es TRUE para el grupo de archivos), todos los archivos del grupo son de slo lectura.

- 46 -
Copias de seguridad diferenciales parciales
Las copias de seguridad diferenciales parciales se utilizan slo con las copias de seguridad
parciales. Una copia de seguridad diferencial parcial nicamente registra las extensiones de
datos que han cambiado en grupos de archivos desde la copia de seguridad parcial anterior,
que se conoce como la base para la diferencial. Si slo han cambiado algunos de los datos
capturados en la copia de seguridad parcial, la copia de seguridad diferencial parcial ser
menor que la base y ms rpida de crear. En una base de datos grande, una copia de
seguridad diferencial facilita la realizacin de copias de seguridad frecuentes de los datos, lo
que disminuye el riesgo de prdida de datos.
Sin embargo, la restauracin a partir de copias de seguridad diferenciales parciales implicar
necesariamente ms pasos y ms tiempo que la restauracin a partir de una copia de
seguridad parcial. Adems, el proceso de restauracin es ms complejo dado que intervienen
dos archivos de copia de seguridad.
Las copias de seguridad diferenciales parciales se utilizan con una base diferencial nica.

Crear una copia de seguridad diferencial de archivos


La sintaxis de BACKUP necesaria para crear una copia de seguridad diferencial de archivos
es:

BACKUP DATABASE database_name <file_or_filegroup> [ ,...n] TO <backup_device>


WITH DIFFERENTIAL

Tambin puede utilizar la herramienta SQL Server Management Studio

- 47 -
Consideraciones para el operador de las Copias de Seguridad
El operador de las copias de seguridad deber ser miembro de alguna de las funciones fijas de
seguridad mencionadas a continuacin:
sysadmin (funcin fija de servidor)
db_owner (funcin fija de base de datos)
db_backupoperator (funcin fija de base de datos)

- 48 -
3- Restauracin de Bases de Datos de Usuario
Descripcin de cmo funcionan la restauracin y la recuperacin de copias de seguridad
en SQL Server
La restauracin es el proceso de copiar datos desde una copia de seguridad y aplicar
transacciones registradas a los datos para ponerlos al da hasta el punto de recuperacin de
destino. Una copia de seguridad de datos o diferencial contiene suficientes registros de
transacciones para permitir poner al da las transacciones activas como parte de la
restauracin de cada copia de seguridad. Cada copia de seguridad contiene suficientes
registros para revertir las transacciones no confirmadas y llevar la base de datos a un estado
coherente con la transaccin y utilizable. El proceso de poner al da las transacciones no
confirmadas, si las hay, y poner la base de datos en conexin se conoce como recuperacin.

Conjunto de puestas al da
El proceso de aplicar cambios registrados a los datos de una base de datos para poner los
datos al da se conoce como poner al da. El conjunto de todos los datos restaurados se
conoce como el conjunto de puestas al da. Un conjunto de puestas al da se define con la
restauracin de una o ms copias de seguridad completas, como una copia de seguridad de
base de datos o parcial, o un conjunto de copias de seguridad de archivos. Si una instruccin
RESTORE especifica grupos de archivos, archivos o pginas, slo se incluyen estos elementos
en el conjunto de puestas al da. De lo contrario, se incluirn en el conjunto de puestas al da
todos los archivos de la copia de seguridad que se est restaurando. Si la copia de seguridad
completa contiene entradas de registro, los datos restaurados se pondrn al da mediante este
registro.

Nota: Si especifica un grupo de archivos durante la restauracin, sta engloba todo el grupo de
archivos tal como existe actualmente. Esto incluye los archivos agregados al grupo de archivos
desde que se realiz la copia de seguridad.

Para copias de seguridad diferenciales, si se agregaron archivos a la base de datos desde la


base diferencial, la restauracin de una copia de seguridad diferencial podra sobrescribir
pginas del conjunto de puestas al da con datos de la copia de seguridad diferencial.
La restauracin de una copia de seguridad diferencial slo actualiza una pgina si sta est en
el conjunto de puestas al da; la pgina se incluye en la copia de seguridad y la instruccin
RESTORE muestra la pgina o su archivo o no muestra ningn archivo ni pgina.
Con los modelos de recuperacin completa y de recuperacin por medio de registros de
operaciones masivas, se debe realizar una copia de seguridad independiente del registro.
Despus de restaurar copias de seguridad de datos y (opcionalmente) diferenciales, en general
debera restaurar las copias de seguridad de registros subsiguientes para llevar la base de
datos al punto de error. Restaurar una copia de seguridad de registros pone al da todas las
pginas del conjunto de puestas al da.

Secuencias de restauracin
Cada escenario de restauracin se implementa mediante uno o varios pasos de restauracin
(operaciones), lo que se denomina secuencia de restauracin. Cada operacin corresponde a
una instruccin RESTORE de Transact-SQL independiente. Una secuencia de restauracin
mueve los datos afectados a travs de una o varias fases de la restauracin.

Fases de la restauracin
Una restauracin es un proceso de varias fases. Las fases posibles de una restauracin
incluyen las fases de copia de datos, rehacer (puesta al da) y deshacer (revertir):

- 49 -
La fase de copia de datos implica copiar todos los datos, el registro y las pginas de
ndice desde el medio de copia de seguridad de una base de datos a los archivos de la
base de datos.
La fase de rehacer aplica las transacciones registradas a los datos copiados desde la
copia de seguridad para poner al da esos datos hasta el punto de recuperacin.
Normalmente, en este punto una base de datos tiene transacciones no confirmadas y
se encuentra en un estado inutilizable. En ese caso, se requiere una fase de deshacer
como parte de la recuperacin de la base de datos.
La fase de deshacer, que es la primera parte de la recuperacin, revierte cualquier
transaccin no confirmada y hace que la base de datos est disponible para los
usuarios. Despus de la fase de reversin, no se pueden restaurar las copias de
seguridad subsiguientes.

Fase de copia de datos


La primera fase de todo proceso de restauracin es la fase de copia de datos. La fase de copia
de datos inicializa el contenido de la base de datos, los archivos o las pginas que se
restauran. Esta fase se realiza mediante las operaciones de restaurar la base de datos,
restaurar archivos y restaurar pginas utilizando copias de seguridad completas o diferenciales.
La fase de copia de datos implica copiar datos de una o ms copias de seguridad completas y,
de forma opcional, copias de seguridad diferenciales y, a continuacin, restablecer el contenido
de la base de datos, los archivos o las pginas afectados en el momento en que fueron
capturados por esas copias de seguridad.
El archivo o la pgina ms antiguo del conjunto de puestas al da determina el punto de inicio
de la siguiente fase: rehacer (puesta al da).

Fase de rehacer (puesta al da)


Rehacer (o puesta al da) es el proceso de rehacer los cambios registrados hasta los datos del
conjunto de puestas al da para avanzar los datos en el tiempo. Para llevar a cabo la puesta al
da, el Motor de base de datos de SQL Server procesa las copias de seguridad de registros
conforme se restauran, empezando por el registro contenido en las copias de seguridad
completas.
La restauracin evita las puestas al da innecesarias. Generalmente, si los datos eran de slo
lectura cuando se realiz la copia de seguridad y han permanecido como de slo lectura, la
puesta al da es innecesaria y se omite.
El objetivo de la puesta al da es devolver los datos a su estado original en el punto de
recuperacin. El punto de recuperacin es el punto hasta el que el usuario especifica que
debe recuperarse el conjunto de datos. Con el modelo de recuperacin completa, puede
especificar el punto de recuperacin como un momento determinado, una transaccin marcada
o un nmero de secuencia de registro. Con el modelo de recuperacin por medio de registros
de operaciones masivas, slo puede realizar la restauracin a un momento dado si no se ha
realizado ninguna operacin masiva desde la copia de seguridad de registros anterior.
En la fase de rehacer, los datos siempre se ponen al da hasta un punto que es coherente
para rehacer con el estado de la base de datos en el punto de recuperacin. Todos los datos
se han puesto al da hasta un punto en el que se puede realizar la operacin de deshacer.

El archivo principal define el estado de la base de datos, como se indica a continuacin:


Si el archivo principal se est restaurando, el punto de recuperacin determina el
estado de toda la base de datos. Por ejemplo, si una base de datos se est
recuperando a un momento dato justo antes de que la tabla se quitara
accidentalmente, toda la base de datos debe restaurarse al mismo momento dado.
Si el archivo principal no se est restaurando, el estado de la base de datos es
conocido y los datos restaurados se ponen al da hasta un punto de recuperacin
transaccionalmente coherente con la base de datos. SQL Server lo exige.

- 50 -
Sin embargo, la base de datos puede contener cambios realizados por transacciones que no
estn confirmadas en el punto de recuperacin. Para la restauracin con conexin, los datos se
recuperan a un momento dado coherente con el estado actual de la parte conectada de la base
de datos.
Una copia de seguridad diferencial avanza hasta el punto en que se realiz la copia de
seguridad diferencial. Las pginas del conjunto de puestas al da se sobrescriben con pginas
ms recientes de la copia de seguridad diferencial.

Fase de deshacer (revertir) y recuperacin


Despus de que la fase de rehacer haya puesto al da todas las transacciones del registro, una
base de datos suele contener los cambios realizados por las transacciones no confirmadas en
el punto de recuperacin. Esto convierte los datos puestos al da en transaccionalmente
incoherentes. El proceso de recuperacin abre el registro de transacciones para identificar las
transacciones no confirmadas. Las transacciones no confirmadas se deshacen mediante la
reversin, a menos que mantengan bloqueos que eviten que otras transacciones vean datos
transaccionalmente incoherentes. Este paso se denomina fase de deshacer (o revertir). Si los
datos ya son transaccionalmente coherentes al inicio del proceso de recuperacin, la fase de
deshacer se omitir. Despus de que la base de datos sea transaccionalmente coherente, la
recuperacin conecta la base de datos.

Nota: En trminos generales, la recuperacin es el conjunto de operaciones que hace que una
base de datos sea coherente al inicio de esa base de datos. Si la base de datos se apagaba
peridicamente, la recuperacin omite las fases de rehacer y deshacer. Esto se conoce como
recuperacin de reinicio.
Despus de que se hayan restaurado una o ms copias de seguridad, la recuperacin suele
incluir tanto la fase de rehacer y como la de deshacer. Cada copia de seguridad completa y
diferencial contiene suficientes registros de transacciones para permitir que los datos de esa
copia de seguridad se recuperen a un estado coherente consigo mismo.

Nota: Durante una recuperacin tras bloqueo o una conmutacin por error de la creacin de
reflejo de la base de datos, SQL Server 2005 Enterprise Edition permite a los usuarios obtener
acceso a la base de datos durante la fase de deshacer. Esto se conoce como recuperacin
rpida. La recuperacin rpida es posible porque las transacciones que no estaban
confirmadas cuando se produjo el error vuelven a adquirir los bloqueos que mantenan antes
del error. Mientras estas transacciones se revierten, sus bloqueos las protegen de las
interferencias de los usuarios.

Opciones RECOVERY y NORECOVERY


Una instruccin RESTORE especfica termina despus de la fase de rehacer o contina con la
fase de deshacer, segn si la instruccin especific WITH NORECOVERY, de la manera
siguiente:
WITH RECOVERY: Recupera la base de datos e incluye las fases de rehacer y
deshacer; no se pueden restaurar otras copias de seguridad. Es el valor
predeterminado.
Si el conjunto de puestas al da no se ha puesto al da lo suficiente para ser coherente
con la base de datos, la fase de deshacer no se podr producir. El Motor de base de
datos emitir un error y la recuperacin se detendr. Si todo el conjunto de puestas al
da es coherente con la base de datos, se realizar la recuperacin y se podr conectar
la base de datos.
WITH NORECOVERY: Omite la fase de deshacer para preservar las transacciones no
confirmadas. Al omitir la fase de deshacer, se pueden restaurar otras copias de
seguridad para poner al da la base de datos a un momento posterior. A veces,

- 51 -
RESTORE WITH NORECOVERY pone al da los datos hasta donde son coherentes
con la base de datos. En estos casos, el Motor de base de datos emite un mensaje
informativo indicando que el conjunto de puestas al da se puede recuperar mediante la
opcin RECOVERY.

Restaurar una base de datos cuando SQL Server no est conectado


Es posible restaurar y recuperar una base de datos mediante SQL Writer mientras SQL Server
no est conectado si no hay ningn catlogo de texto. Si hay un catlogo de texto asociado a
una base de datos, primero es necesario iniciar SQL Server o detener el servicio Motor de texto
completo de Microsoft para SQL Server (MSFTESQL).
Al ejecutarse, SQL Server obliga a cerrar los archivos del catlogo de texto como preparacin
para la operacin de restauracin. Sin embargo, si SQL Server est sin conexin, es posible
que MSFTESQL mantenga abiertos determinados archivos de texto. As se evita que la
aplicacin de restauracin los sobrescriba. Para obligar a esos archivos de texto a cerrarse,
una aplicacin puede apagar MSFTESQL.

Para evitar tener que hacer esto, realice alguna de las siguientes acciones:
Inicie SQL Server
Detenga MSFTESQL

Escenarios de restauracin
Un escenario de restauracin en SQL Server es el proceso de restaurar datos de una o ms
copias de seguridad y, a continuacin, recuperar la base de datos. Los escenarios de
restauracin compatibles dependen del modelo de recuperacin de la base de datos y de la
edicin de SQL Server 2005.
La siguiente tabla presenta los posibles escenarios de restauracin compatibles para diferentes
modelos de recuperacin.

Escenario de Modelos de recuperacin completa o por


restauracin Modelo de recuperacin simple medio de registros de operaciones masivas

Restauracin Es la estrategia de restauracin bsica. Una Es la estrategia de restauracin bsica. Una


completa de la restauracin de base de datos completa restauracin completa de una base de datos
base de datos puede implicar simplemente la restauracin supone restaurar una copia de seguridad
y recuperacin de una copia de seguridad completa de base de datos y, opcionalmente, una
completa de base de datos. Por otra parte, copia de seguridad diferencial (si existe), adems
una restauracin de base de datos completa de restaurar todas las copias de seguridad de
puede consistir en restaurar una copia de registros posteriores (en orden secuencial). La
seguridad completa de base de datos y, restauracin completa de base de datos finaliza
luego, restaurar y recuperar una copia de al recuperar la ltima copia de seguridad de
seguridad diferencial. registros y restaurarla (RESTORE WITH
RECOVERY).

Restauracin Restauracin de uno o ms archivos de slo Restaura uno o ms archivos, sin restaurar la
de archivos* lectura daados, sin restaurar la base de base de datos completa. La restauracin de
datos completa. La restauracin de archivos archivos puede realizarse mientras la base de
est disponible slo si la base de datos tiene datos est desconectada o, en algunas versiones
como mnimo un grupo de archivos de slo de SQL Server 2005, cuando est conectada.
lectura. Durante la restauracin de archivos, los grupos
de archivos en los que se incluyen los archivos
en cuestin permanecen siempre desconectados.

Restauracin No aplicable Restaura una o ms pginas daadas. La


de pginas restauracin de pginas puede realizarse
mientras la base de datos est desconectada o,

- 52 -
en algunas versiones de SQL Server 2005,
cuando est conectada. Durante la restauracin
de pginas, las pginas que se estn restaurando
permanecen siempre desconectadas.

Es preciso que haya disponible una cadena


intacta de copias de seguridad de registros, hasta
el archivo de registro actual, y deben aplicarse
todas a fin de actualizar la pgina segn el
archivo de registro actual.

Restauracin Restauracin y recuperacin de la base de Restauracin y recuperacin de la base de datos


por etapas * datos por etapas a nivel de grupo de por etapas a nivel del grupo de archivos,
archivos, empezando por el grupo de empezando por el grupo de archivos principal.
archivos principal y todos los grupos de
archivos secundarios de lectura y escritura.

* La restauracin con conexin slo se permite en SQL Server 2005 Enterprise Edition.
Independientemente de la forma de restauracin de datos, antes de que una base de datos se
pueda recuperar, el Motor de base de datos de SQL Server garantiza la coherencia lgica de
toda la base de datos. Por ejemplo, si restaura un archivo, no puede recuperarlo y conectarlo
hasta que se haya puesto al da hasta un punto lo bastante avanzado de forma que sea
coherente con la base de datos.

Modelos de recuperacin y operaciones de restauracin admitidas


Las operaciones de restauracin disponibles para una base de datos dependen de su modelo
de recuperacin. En la tabla siguiente se resumen todos los modelos de recuperacin y las
diferentes situaciones de restauracin en las que funcionaran.

Modelo de recuperacin por


Operacin de Modelo de recuperacin medio de registros de Modelo de recuperacin
restauracin completa operaciones masivas simple

Recuperacin de Recuperacin completa Existe el riesgo de perder Se perdern los datos


datos (si el registro est algunos datos. desde la ltima copia de
disponible). seguridad completa o
diferencial.

Restauracin a un Cualquier momento No est permitida si la copia de No compatible.


momento dado cubierto por las copias seguridad de registros contiene
de seguridad de algn cambio registrado de
registros. forma masiva.

Restauracin de Totalmente compatible. A veces* Slo est disponible para


archivos* archivos secundarios de
slo lectura.

Restauracin de Totalmente compatible. A veces Ninguna.


pginas*

Restauracin por Totalmente compatible. A veces Slo est disponible para


etapas (de grupos de archivos secundarios de
archivos)* slo lectura.

- 53 -
* Slo disponible en SQL Server 2005 Enterprise Edition.

Restaurar una copia de seguridad completa de la base de datos


La sintaxis RESTORE bsica para restaurar una copia de seguridad de la base de datos es:

RESTORE DATABASE nombre_basedatos


FROM dispositivo [ WITH NORECOVERY ]

Nota: Use WITH NORECOVERY si tambin desea restaurar una copia de seguridad
diferencial de la base de datos.

Restauracin de base de datos completa (modelo de recuperacin simple)


El objetivo de una restauracin completa de la base de datos es restaurar la base de datos
completa. Durante el proceso de restauracin, la base de datos completa se encuentra sin
conexin. Antes de que ninguna parte de la base de datos tenga conexin, se recuperan todos
los datos a un punto coherente en el que todas las partes de la base de datos se encuentran en
el mismo momento y en el que no existe ninguna transaccin sin confirmar.
En el modelo de recuperacin simple, no se puede restaurar la base de datos a un momento
concreto de una copia de seguridad especfica.
Una restauracin completa de base de datos con el modelo de recuperacin simple implica una
o dos instrucciones RESTORE, en funcin de si se debe restaurar o no una copia de seguridad
diferencial de la base de datos.
Si slo usa copias de seguridad completas de la base de datos, restaure slo la copia de
seguridad ms reciente. Si tambin usa una copia de seguridad diferencial de la base de datos,
restaure la copia de seguridad completa ms reciente de la base de datos sin recuperar la base
de datos y, a continuacin, restaure la copia de seguridad diferencial ms reciente de la base
de datos y recupere la base de datos.
Al restaurar completamente una base de datos, debe utilizar una nica secuencia de
restauracin. En el siguiente ejemplo se muestran las opciones crticas de una secuencia de
restauracin en un escenario de restauracin de base de datos completa. Una secuencia de
restauracin est formada por una o ms operaciones de restauracin que mueven los datos
mediante una o varias fases de restauracin. La sintaxis y los detalles no relevantes para este
propsito se omiten.
La base de datos se restaura a su estado de copia de seguridad completa de base de datos. Al
recuperar una base de datos, se recomienda especificar explcitamente la opcin RECOVERY
por motivos de claridad, aunque es la opcin predeterminada.

Ejemplo:
En el siguiente ejemplo se muestra primero cmo usar la instruccin BACKUP para crear una
copia de seguridad completa y diferencial de la base de datos AdventureWorks. A continuacin,
se restauran estas copias de seguridad una despus de la otra.
Nota: En el ejemplo se comienza con una instruccin ALTER DATABASE que establece el
modelo de recuperacin como SIMPLE.

USE master;
-- Establece el modelo Simple
ALTER DATABASE AdventureWorks SET RECOVERY SIMPLE;
GO

-- Back up Completo de la base de datos AdventureWorks.


BACKUP DATABASE AdventureWorks
TO DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'

- 54 -
WITH FORMAT;
GO

--Crea Backuo diferencial.


BACKUP DATABASE AdventureWorks
TO DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'
WITH DIFFERENTIAL;
GO

-- Restauracin completa del backup completo.


RESTORE DATABASE AdventureWorks
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'
WITH FILE=1, NORECOVERY;

-- Restauracin diferencial.
RESTORE DATABASE AdventureWorks
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'
WITH FILE=2, RECOVERY;
GO

Restauracin por etapas de la base de datos (modelo de recuperacin completa)


En una secuencia de restauracin por etapas se restaura y recupera una base de datos en
fases en el nivel del grupo de archivos, empezando con los grupos de archivos principales, los
de lectura y escritura, y los secundarios.

En este ejemplo, la base de datos adb se restaura en un nuevo equipo despus de un


desastre. La base de datos est utilizando el modelo de recuperacin completa, por lo que,
antes de iniciar la restauracin, debe crearse una copia de seguridad de registros despus del
error de la base de datos. Antes del desastre, todos los grupos de archivos estn conectados.
El grupo de archivos B es de slo lectura. Se deben restaurar todos los grupos de archivos
secundarios, pero por orden de importancia: A (el de mayor importancia), C y, por ltimo, B. En
este ejemplo, hay cuatro copias de seguridad de registros, incluida la copia de seguridad de
registros despus del error.
Antes de restaurar la base de datos, el administrador debe realizar una copia de seguridad de
registros despus del error. Dado que la base de datos est daada, esta copia de seguridad
debe crearse con la opcin NO_TRUNCATE:

BACKUP LOG adb TO tailLogBackup WITH NORECOVERY, NO_TRUNCATE

La copia de seguridad de registros despus del error es la ltima copia de seguridad que se
aplica en las secuencias de restauracin siguientes.

a. Restauracin parcial del grupo de archivos principal y secundario A:

RESTORE DATABASE adb FILEGROUP='Primary' FROM backup1


WITH PARTIAL, NORECOVERY
RESTORE DATABASE adb FILEGROUP='A' FROM backup2
WITH NORECOVERY
RESTORE LOG adb FROM backup3 WITH NORECOVERY
RESTORE LOG adb FROM backup4 WITH NORECOVERY
RESTORE LOG adb FROM backup5 WITH NORECOVERY
RESTORE LOG adb FROM tailLogBackup WITH RECOVERY

- 55 -
b. Restauracin con conexin del grupo de archivos C.
En este momento, el grupo de archivos principal y el secundario A estn conectados. Todos los
archivos de los grupos de archivos B y C estn pendientes de recuperacin y sin conexin.
Los mensajes de la ltima instruccin RESTORE LOG del paso 1 indican que la reversin de
las transacciones en las que interviene el grupo de archivos C se ha diferido porque este grupo
de archivos no est disponible. Las operaciones peridicas pueden continuar, pero estas
transacciones mantienen los bloqueos y no se truncar el registro hasta que se pueda
completar la reversin. En la segunda secuencia de restauracin, el administrador de la base
de datos restaura el grupo de archivos C:

RESTORE DATABASE adb FILEGROUP='C'


FROM backup2a WITH NORECOVERY
RESTORE LOG adb FROM backup3 WITH NORECOVERY
RESTORE LOG adb FROM backup4 WITH NORECOVERY
RESTORE LOG adb FROM backup5 WITH NORECOVERY
RESTORE LOG adb FROM tailLogBackup WITH RECOVERY

En este momento, los grupos de archivos principal, A y C estn conectados. Los archivos del
grupo B permanecen pendientes de recuperacin, con el grupo de archivos sin conexin. Las
transacciones diferidas se han resuelto y se trunca el registro.

c. Restauracin con conexin del grupo de archivos B.


En la tercera secuencia de restauracin, el administrador de la base de datos restaura el grupo
de archivos B. La copia de seguridad del grupo de archivos B se realiz despus de cambiar el
grupo a slo lectura, por lo que no es necesario ponerlo al da durante la recuperacin.

RESTORE DATABASE adb FILEGROUP='B'


FROM backup2b WITH RECOVERY

Restauracin por etapas para algunos grupos de archivos (modelo de recuperacin


simple)
En una secuencia de restauracin por etapas restaura y recupera una base de datos en fases
en el nivel del grupo de archivos, empezando con los grupos de archivos principales y todos los
secundarios de lectura y escritura.
En este ejemplo, la base de datos adb se restaura en un nuevo equipo despus de un
desastre. La base de datos utiliza el modelo de recuperacin simple. Antes del desastre, todos
los grupos de archivos estn conectados. Los grupos de archivos A y C son de lectura y
escritura, y el grupo de archivos B es de slo lectura. El grupo de archivos B pas a ser de slo
lectura antes de la copia de seguridad parcial ms reciente, que contiene el grupo de archivos
principal y los grupos de archivos secundarios de lectura y escritura, A y C. Despus de que el
grupo de archivos B pasara a ser de slo lectura, se realiz una copia de seguridad de archivos
independiente del grupo de archivos B.

a. Restauracin parcial del grupo de archivos principal y los grupos de archivos A y C.

RESTORE DATABASE adb FILEGROUP='A',FILEGROUP='C'


FROM partial_backup
WITH PARTIAL, RECOVERY;

b. En este momento, los grupos de archivos principal, A y C estn conectados. Todos los
archivos del grupo de archivos B estn pendientes de recuperacin y el grupo de archivos est
sin conexin.

- 56 -
RESTORE DATABASE adb FILEGROUP='B' FROM backup
WITH RECOVERY;

Todos los grupos de archivos estn ahora conectados.

Restauracin por etapas para algunos grupos de archivos (modelo de recuperacin


completa)
En una secuencia de restauracin por etapas restaura y recupera una base de datos en fases
en el nivel del grupo de archivos, empezando con los grupos de archivos principales y todos los
secundarios de lectura y escritura.
En este ejemplo, una base de datos llamada adb, que utiliza el modelo de recuperacin
completa, contiene tres grupos de archivos. El grupo de archivos A es de lectura y escritura,
mientras que los grupos de archivos B y C son de slo lectura. Inicialmente, los tres estn
conectados.
Parece que el grupo de archivos principal y el B de la base de datos adb estn daados. El
grupo de archivos principal es bastante ms que pequeo y puede restaurarse con rapidez. El
administrador de la base de datos decide restaurarlos utilizando una secuencia de restauracin
por etapas. En primer lugar se restauran el grupo de archivos principal y los registros de
transacciones posteriores y luego se recupera la base de datos.
Los grupos de archivos intactos A y C incluyen informacin fundamental. Por lo tanto, se
recuperarn a continuacin para conectarlos tan pronto como sea posible. Por ltimo, se
restaurar y recuperar el grupo de archivos secundario daado, el B.

a. Crea una copia de seguridad de registros despus del error de la base de datos adb. Este
paso es esencial para actualizar los grupos de archivos A y C intactos respecto al punto de
recuperacin de la base de datos.

BACKUP LOG adb TO tailLogBackup WITH NORECOVERY

b. Restauracin parcial del grupo de archivos principal.

RESTORE DATABASE adb FILEGROUP='Primary' FROM backup


WITH PARTIAL, NORECOVERY
RESTORE LOG adb FROM backup1 WITH NORECOVERY
RESTORE LOG adb FROM backup2 WITH NORECOVERY
RESTORE LOG adb FROM backup3 WITH NORECOVERY
RESTORE LOG adb FROM tailLogBackup WITH RECOVERY

En este momento, el grupo principal est conectado. La recuperacin de los archivos de los
grupos A, B y C est pendiente, por lo que estos grupos de archivo estn desconectados.

c. Restauracin con conexin de los grupos de archivos A y C.

Dado que estos datos no estn daados, no es preciso restaurar los grupos de archivos a partir
de la copia de seguridad. Sin embargo, es necesario recuperarlos para volver a conectarlos.
El administrador de la base de datos recupera A y C inmediatamente.

RESTORE DATABASE adb FILEGROUP='A', FILEGROUP='C' WITH RECOVERY

En este momento, los grupos de archivos principal, A y C estn conectados. Los archivos del
grupo B permanecen pendientes de recuperacin, con el grupo de archivos sin conexin.

d. Restauracin con conexin del grupo de archivos B.

- 57 -
Los archivos del grupo de archivos B se restauran en cualquier momento a partir de este
momento.
Nota: La copia de seguridad del grupo de archivos B se realiz despus de cambiar el grupo a
slo lectura, por lo que no es necesario poner al da los archivos.

RESTORE DATABASE adb FILEGROUP='B' FROM backup WITH RECOVERY

Ahora todos los grupos de archivos estn conectados.

Restauracin con conexin de un archivo de slo lectura (modelo de recuperacin


simple)
El modelo de recuperacin simple permite restaurar un archivo de slo lectura con conexin si
existe una copia de seguridad realizada despus de que el archivo pasara a ser de slo lectura
por ltima vez.
En este ejemplo, la base de datos adb contiene tres grupos de archivos. El grupo de archivos A
es de lectura y escritura, mientras que los grupos de archivos B y C son de slo lectura.
Inicialmente, los tres estn conectados.
Se debe restaurar el archivo de slo lectura b1 del grupo de archivos B. El administrador de la
base de datos puede restaurarlo mediante una copia de seguridad realizada despus de que el
archivo pasara a ser de slo lectura. Durante la restauracin, el grupo de archivos B
permanecer sin conexin, pero el resto de la base de datos estar conectada.
Para restaurar el archivo, el administrador de la base de datos utiliza la siguiente secuencia de
restauracin:

RESTORE DATABASE adb FILE='b1' FROM filegroup_B_backup


WITH RECOVERY

Ahora el archivo est conectado.

Aplicar copias de seguridad del registro de transacciones


Este tema slo es relevante para el modelo de recuperacin completa o para el modelo de
recuperacin optimizado para cargas masivas de registros.
En este tema se describe la aplicacin de copias de seguridad del registro de transacciones
como parte de la restauracin de una base de datos de SQL Server. Para aplicar una copia de
seguridad del registro de transacciones, deben cumplirse los requisitos siguientes:
Primero debe restaurarse la copia de seguridad diferencial de la base de datos o la
copia de seguridad completa inmediatamente anterior de la base de datos.
Todos los registros de transacciones creados despus de esa copia de seguridad
completa o diferencial de la base de datos deben restaurarse en orden cronolgico. Si
se pierde o se daa una copia de seguridad del registro de transacciones en esta
cadena de registros, slo puede restaurar los registros de transacciones anteriores al
registro de transacciones que falta.
Todava no se ha recuperado la base de datos. No se puede recuperar la base de
datos hasta que se haya aplicado el registro de transacciones final. Si recupera la base
de datos despus de restaurar una de las copias de seguridad intermedias del registro
de transacciones, anterior al final de la cadena de registros, no podr restaurar la base
de datos ms all de ese punto sin reiniciar toda la secuencia de restauracin,
empezando por la copia de seguridad completa de la base de datos.

Registros de transacciones y recuperacin

- 58 -
Cuando termina la operacin de restauracin y recupera la base de datos, la recuperacin
revierte todas las transacciones incompletas. Este paso se conoce como la fase de deshacer.
Revertir es necesario para restaurar la integridad de la base de datos. Despus de la reversin,
la base de datos pasa a estar en lnea y no se pueden aplicar ms copias de seguridad del
registro de transacciones a la base de datos.
Por ejemplo, una serie de copias de seguridad del registro de transacciones contiene una
transaccin de larga duracin. El inicio de la transaccin se registra en la primera copia de
seguridad del registro de transacciones, pero el final de la transaccin se registra en la
segunda copia de seguridad. En la primera copia de seguridad del registro de transacciones no
se registra ninguna operacin de confirmacin o reversin. Si se ejecuta una operacin de
recuperacin cuando se aplica la primera copia de seguridad del registro de transacciones, la
transaccin de larga ejecucin se trata como incompleta y se revierten las modificaciones de
datos registradas en la primera copia de seguridad del registro de transacciones de la
transaccin. SQL Server no admite la aplicacin de la segunda copia de seguridad del registro
de transacciones a partir de este punto.
Es aconsejable restaurar todas las copias de seguridad de registros mediante WITH
NORECOVERY:

RESTORE LOG nombre_basedatos


FROM <dispositivo> WITH NORECOVERY

A continuacin, despus de restaurar la ltima copia de seguridad de registros, recupere la


base de datos en una operacin aparte:

RESTORE DATABASE nombre_basedatos WITH RECOVERY

Cmo restaurar a un momento dado (SQL Server Management Studio)


Este tema slo es relevante para las bases de datos que utilizan los modos de recuperacin
completa o por medio de registros de operaciones masivas.
Despus de conectarse a la instancia adecuada del Motor de base de datos de SQL
Server de Microsoft, en el Explorador de objetos, haga clic en el nombre del servidor
para expandir el rbol.
Expanda Bases de datos. En funcin de la base de datos, seleccione una base de
datos de usuario o expanda Bases de datos del sistema y, a continuacin, seleccione
una base de datos del sistema.
Haga clic con el botn secundario en la base de datos, seleccione Tareas y, a
continuacin, haga clic en Restaurar.
En funcin de si est restaurando copias de seguridad de datos o slo registros de
transacciones (para una base de datos que ya est en estado de restauracin), haga
clic en Base de datos o en Registro de transacciones.
En la pgina General, el nombre de la base de datos en restauracin aparecer en el
cuadro de lista A una base de datos. Para crear una nueva base de datos, escriba su
nombre en el cuadro de lista.
La ubicacin de la opcin A un momento dado depende de si est restaurando copias
de seguridad de datos o slo copias de seguridad del registro de transacciones:
o Restaurar base de datos: la opcin A un momento dado en la seccin Destino de
la restauracin.
o Restaurar registro de transacciones: la opcin A un momento dado en la seccin
Restaurar en.
El momento dado predeterminado es Lo ms reciente posible. Para seleccionar una
fecha y hora especficas, haga clic en el botn Examinar (...).
Haga clic en Fecha y hora especficas en el cuadro de dilogo Restauracin a un
momento dado.

- 59 -
Introduzca o seleccione una fecha en el cuadro de lista Fecha. Introduzca o seleccione
una hora en el cuadro de lista Hora.
Para especificar el origen y la ubicacin de los conjuntos de copias de seguridad que
se deben restaurar, haga clic en una de las opciones siguientes:
o Desde base de datos: Escriba un nombre de base de datos en el cuadro de lista.
o Desde dispositivo: Haga clic en el botn de Examinar (...). En el cuadro de dilogo
Especificar copia de seguridad, seleccione uno de los tipos de dispositivo de la
lista en el cuadro de lista Medio para copia de seguridad. Para seleccionar uno o
varios dispositivos del cuadro de lista Ubicacin de la copia de seguridad, haga
clic en Agregar. Tras agregar los dispositivos que desee al cuadro de lista
Ubicacin de la copia de seguridad, haga clic en Aceptar para volver a la pgina
General.
Tras especificar un momento especfico, slo se seleccionan en la columna Restaurar
de la cuadrcula Seleccionar los conjuntos de copia de seguridad que se van a
restaurar las copias de seguridad que deben restaurarse a ese momento. Estas copias
de seguridad seleccionadas componen el plan de restauracin recomendado para la
restauracin a un momento dado. Slo deben utilizarse las copias de seguridad
seleccionadas para la operacin de restauracin a un momento dado.
Para ver o seleccionar opciones avanzadas, haga clic en Opciones en el panel
Seleccionar una pgina.
En el panel Opciones de restauracin, puede seleccionar una de las opciones
siguientes si son apropiadas para su situacin:
o Sobrescribir la base de datos existente
o Conservar la configuracin de replicacin
o Preguntar antes de restaurar cada copia de seguridad
o Restringir el acceso a la base de datos restaurada
Si lo desea, puede restaurar la base de datos a una nueva ubicacin si especifica un
nuevo destino de restauracin para cada archivo de la cuadrcula Restaurar los
archivos de base de datos como.
El panel Estado de recuperacin determina el estado de la base de datos despus de
la operacin de restauracin:
o Dejar la base de datos lista para su uso revirtiendo las transacciones no
confirmadas. No pueden restaurarse registros de transacciones adicionales.
(RESTORE WITH RECOVERY) . Predeterminado
o Dejar la base de datos no operativa y no revertir transacciones no confirmadas.
Pueden restaurarse registros de transacciones adicionales. (RESTORE WITH
NORECOVERY)
o Dejar la base de datos en modo de slo lectura. Deshacer las transacciones sin
confirmar, pero guardar las acciones de deshacer en un archivo en espera para
que los efectos de recuperacin puedan revertirse. (RESTORE WITH STANDBY)

- 60 -
Restauracin online
Slo se admite la restauracin con conexin en SQL Server 2005 Enterprise Edition. En esta
versin, la restauracin de un archivo, una pgina o por etapas es con conexin de manera
predeterminada.
La restauracin de datos mientras la base de datos est conectada se denomina restauracin
con conexin. Se considera que una base de datos est conectada siempre que el grupo de
archivos principal est conectado, aunque alguno de los grupos de archivos secundarios est
sin conexin. En todos los modelos de recuperacin se puede restaurar un archivo sin
conexin mientras la base de datos est conectada. En el modelo de recuperacin completa,
tambin se pueden restaurar pginas mientras la base de datos est conectada.
Durante una operacin de restauracin de archivos con conexin, los archivos que se estn
restaurando y su grupo de archivos estn sin conexin. Si algunos de dichos archivos est
conectado cuando se inicia una restauracin con conexin, la primera instruccin de la
restauracin desconecta el grupo de archivos al que pertenece el archivo. Por el contrario,
durante una restauracin con conexin de una pgina, slo esa pgina est desconectada.

El escenario de restauracin con conexin implica los siguientes pasos bsicos:


o Restaure los datos.

- 61 -
o Restaure el registro utilizando WITH RECOVERY para la ltima restauracin del
registro. As, se conectan los datos restaurados.

A veces, una transaccin sin confirmar no se puede revertir porque los datos necesarios para la
operacin de reversin estn sin conexin durante el inicio. En ese caso, la transaccin se
difiere.

Nota: Si la base de datos est usando en ese momento el modelo de recuperacin por medio
de registros de operaciones masivas, es recomendable cambiar al modelo de recuperacin
completa antes de iniciar la restauracin con conexin.

Importante: Si las copias de seguridad se realizaron con varios dispositivos conectados al


servidor, ser necesario que los mismos dispositivos estn disponibles durante una
restauracin con conexin.

Copias de seguridad de registros para una restauracin en lnea


En el caso de una restauracin en lnea, el punto de recuperacin es el punto donde se dejaron
sin conexin los datos que se van a restaurar o se convirtieron en datos de slo lectura por
ltima vez. Las copias de seguridad del registro de transacciones que llevan a este punto de
recuperacin y lo incluyen deben estar todas disponibles. Normalmente, es necesario hacer
una copia de seguridad de registros despus de ese punto para cubrir el punto de recuperacin
del archivo. La nica excepcin tiene lugar durante una restauracin con conexin de datos de
slo lectura a partir de una copia de seguridad de datos que se realiz despus de que los
datos pasaran a ser de slo lectura. En ese caso, no es necesario disponer de una copia de
seguridad de registros.
En general, puede realizar copias de seguridad del registro de transacciones mientras la base
de datos est en lnea, incluso despus de iniciar la secuencia de restauracin. El momento
oportuno para la realizacin de la ltima copia de seguridad de registros depende de las
propiedades del archivo que se va a restaurar:
En el caso de un archivo con conexin de slo lectura, puede realizar la ltima copia de
seguridad de registros necesaria para la recuperacin antes o durante la primera
secuencia de restauracin. Un grupo de archivos de slo lectura no necesita copias de
seguridad de registros si se realiz una copia de seguridad de datos o diferencial
despus de haber configurado el grupo de archivos como de slo lectura.
La informacin anterior se puede aplicar tambin a todos los archivos sin conexin.
Un caso especial es un archivo de lectura y escritura que estaba con conexin cuando
se emiti la primera instruccin de restauracin y que, a continuacin, dicha instruccin
dej sin conexin automticamente. En este caso, debe realizar una copia de
seguridad de registros durante la primera secuencia de restauracin (secuencia de una
o varias instrucciones RESTORE que restauran, ponen al da y recuperan los datos).
Por lo general, esta copia de seguridad de registros debe tener lugar despus de que
se hayan restaurado todas las copias de seguridad completas y antes de recuperar los
datos. No obstante, si hay varias copias de seguridad de archivos para un grupo de
archivos concreto, el punto mnimo de copia de seguridad de registros es despus de
que el grupo de archivos quede sin conexin. Esta copia de seguridad de registros
posterior a la restauracin de datos capta el punto en el que se dej el archivo sin
conexin y es necesaria porque el Motor de base de datos de SQL Server no puede
utilizar un registro en lnea para una restauracin con conexin.

Desconectar una base de datos o un archivo


Si no desea utilizar la restauracin con conexin, puede desconectar la base de datos antes de
iniciar la secuencia de restauracin; para ello, puede usar uno de los mtodos siguientes:

- 62 -
En todos los modelos de recuperacin puede desconectar la base de datos utilizando
la siguiente instruccin ALTER DATABASE:

ALTER DATABASE database_name SET OFFLINE

Si lo desea, en el modelo de recuperacin completa, puede forzar que la restauracin


de un archivo o una pgina sea sin conexin; para ello, utilizando la siguiente
instruccin BACKUP LOG la base de datos se pone en el estado de restauracin:

BACKUP LOG database_name WITH NORECOVERY.

Siempre que la base de datos permanezca sin conexin, todas las restauraciones sern sin
conexin.

- 63 -
Mdulo 3

Manejo de Seguridad

- 64 -
1- Seguridad de Base

Proteger SQL Server


La proteccin de SQL Server implica:
Seguridad de la plataforma y de la red: La plataforma de SQL Server incluye el
hardware fsico y los sistemas de redes que conectan los clientes con los servidores de
base de datos, as como los archivos binarios que se utilizan para procesar solicitudes
de base de datos.
Seguridad Fsica: Las recomendaciones de seguridad fsica limitan de forma estricta
el acceso al servidor fsico y a los componentes de hardware. Por ejemplo, use salas
cerradas de acceso restringido para el hardware de servidor de base de datos y los
dispositivos de red. Adems, limite el acceso a los medios de copia de seguridad
almacenndolos en una ubicacin segura fuera de las instalaciones. La
implementacin de la seguridad de la red fsica comienza por mantener a los usuarios
no autorizados fuera de la red.

Protocolos de Red y Extremos TDS


Cuando el Motor de base de datos de SQL Server se comunica con una aplicacin, asigna a la
comunicacin un formato denominado paquete de secuencia de datos tabular (TDS) de
Microsoft. La capa del protocolo de interfaz de red de SQL Server (SNI), que reemplaza las
bibliotecas de red por SQL Server y Microsoft Data Access Components (MDAC), encapsula el
paquete TDS dentro de un protocolo de comunicacin estndar, como TCP/IP o canalizaciones
con nombre (named pipes).
La capa del protocolo SNI es comn al Motor de base de datos y SQL Native Client. La capa
del protocolo SNI no se configura directamente. En su lugar, el servidor y SQL Native Client se
configuran para utilizar un protocolo de red. A continuacin, el Motor de base de datos y SQL
Native Client aplican automticamente la configuracin apropiada del protocolo. El servidor
crea un objeto de SQL Server llamado extremo TDS para cada protocolo de red. En el servidor,
SQL Server instala los extremos TDS durante la instalacin de SQL Server.
En el equipo cliente, SQL Native Client debe instalarse y configurarse para que utilice un
protocolo de red habilitado en el servidor.

Habilitar Protocolos de Servidor despus de la Instalacin


Los protocolos de red subyacentes del sistema operativo (como TCP/IP) deberan estar
instalados en el cliente y el servidor. Normalmente, los protocolos de red se instalan durante la
instalacin de Microsoft Windows; no forman parte de la instalacin de SQL Server. Si el
protocolo de red necesario no est disponible ni configurado en el servidor, el Motor de base de
datos no se iniciar. Si el protocolo de red necesario no est disponible ni configurado en el
cliente, la biblioteca de red no funcionar.
De aqu en adelante, "habilitar un protocolo" quiere decir habilitarlo para SQL Server, no para
el sistema operativo.
Los protocolos de red necesarios para comunicarse con SQL Server 2005 desde otro equipo a
menudo no estn habilitados para SQL Server durante la instalacin. Por tanto, para
conectarse desde un equipo cliente, es posible que tenga que habilitar los protocolos TCP/IP,
canalizaciones con nombre o VIA. El protocolo de memoria compartida se habilita de forma
predeterminada en todas las instalaciones, pero slo puede utilizarse para conectar con el
Motor de base de datos desde una aplicacin cliente en el mismo equipo.
Para habilitar los protocolos de red, utilice la herramienta de Configuracin de Superficie o el
Administrador de Configuracin de SQL Server. Los protocolos tambin pueden habilitarse
durante la instalacin utilizando opciones en el smbolo del sistema.

- 65 -
Una vez instaladas y configuradas las conexiones de red, SQL Server puede escuchar
simultneamente en cualquier combinacin de protocolos de red del servidor.

Definicin de los Extremos TDS


Un extremo TDS es el objeto de SQL Server que representa el punto de comunicacin entre
SQL Server y un cliente. SQL Server crea de forma automtica un extremo para cada uno de
los cuatro protocolos admitidos por SQL Server. De forma predeterminada, todos los usuarios
tienen acceso a los protocolos cuando estn habilitados. Si un protocolo de red no est
habilitado, el extremo se mantiene, pero no puede utilizarse. Para la conexin de administrador
dedicada (DAC), se crear un extremo adicional que slo pueden utilizar los miembros de la
funcin fija de servidor sysadmin.
SQL Server genera un nombre nico para cada extremo TDS. La tabla siguiente muestra los
extremos que se crean automticamente.

Finalidad Nombre del extremo

Memoria compartida TSQL LocalMachine

Canalizaciones con nombre TSQL Named Pipes

TCP/IP TSQL Default TCP

VIA TSQL Default VIA

DAC Dedicated Admin Connection

HTTP HyperText Transport Protocol

Para los protocolos de canalizaciones con nombre y memoria compartida, slo puede existir un
extremo por instancia. Para estos tipos de protocolo, no existen extremos configurables. Para
TCP/IP y VIA, existe un extremo predeterminado, pero se pueden crear extremos adicionales.
Los extremos HTTP tambin son creados por el usuario y no aparecen en el Administrador de
configuracin de SQL Server, aunque aparecen en la herramienta Configuracin de superficie.
En los extremos del sistema, slo se puede cambiar el propietario y el estado (mediante
ALTER ENDPOINT). Los extremos predeterminados no pueden deshabilitarse, pero pueden
detenerse e iniciarse. Un extremo que se ha detenido sigue escuchando, pero rechaza y cierra
las conexiones nuevas.
De forma predeterminada, los clientes se configuran para probar todos los protocolos hasta
que uno funcione. Si el protocolo TCP/IP est deshabilitado, los clientes continan con el
siguiente protocolo. Si TCP/IP est habilitado pero el extremo se ha detenido, no se rechazar
el intento de conexin y el cliente no probar otros protocolos, pero no se podr utilizar la
conexin que se ha detenido. En este caso, debe conectarse explcitamente a un extremo
activo.
Los puertos TCP dinmicos normalmente se conectan al extremo TCP predeterminado.

Restringir el Acceso a la Red


Los usuarios y administradores deben ser autenticados por el sistema operativo Microsoft
Windows para poder obtener acceso a los datos de Microsoft SQL Server 2005. El sistema
operativo Windows permite a todos los usuarios autenticados obtener acceso a un servidor
miembro desde la red. Sin embargo, de forma predeterminada, los miembros del grupo
Everyone tambin tienen permiso para obtener acceso a los servidores miembro. El grupo
Everyone incluye los usuarios annimos.

- 66 -
Para incrementar la seguridad del sistema operativo y de los datos, realice lo siguiente para
restringir los derechos de acceso a la red de los usuarios annimos:
Utilice la herramienta Directiva de seguridad local para quitar al grupo Everyone el
derecho de obtener acceso al equipo desde la red. Esta herramienta reside en el grupo
Herramienta administrativas del equipo.
Deshabilite las sesiones nulas para evitar las sesiones annimas o no autenticadas. A
tal efecto, establezca la clave RestrictAnonymous en 1. Esta clave reside en el
Registro de Windows y se encuentra en
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA.

Seguridad del Sistema Operativo


Los Service Packs y las actualizaciones del sistema operativo incluyen mejoras de seguridad
importantes. Aplique todas las revisiones y actualizaciones al sistema operativo despus de
probarlas con las aplicaciones de base de datos.
Los firewalls tambin proporcionan formas eficaces de implementar la seguridad.
Lgicamente, un firewall es un separador o limitador del trfico de red, que puede configurarse
para aplicar la directiva de seguridad de datos de su organizacin. El uso de un firewall
aumenta la seguridad del sistema operativo ya que proporciona un punto de arranque en el que
pueden centrarse las medidas de seguridad.
La reduccin de la superficie es una medida de seguridad que implica detener o deshabilitar
componentes no utilizados. La reduccin de la superficie ayuda a mejorar la seguridad al
proporcionar menos accesos para ataques potenciales al sistema. La clave para limitar la
superficie de SQL Server consiste en ejecutar los servicios requeridos con "privilegios mnimos"
mediante la concesin de los derechos necesarios nicamente a los servicios y usuarios.
Si el sistema SQL Server usa los Servicios de Internet Information Server (IIS), es necesario
realizar pasos adicionales para proteger la superficie de la plataforma.

- 67 -
2- Introduccin a la Seguridad de SQL Server

Entidades de Seguridad y Seguridad de objetos de base de datos


Las entidades de seguridad son los individuos, grupos y procesos que tienen acceso a SQL
Server. Los asegurables son el servidor, la base de datos y los objetos incluidos en la base de
datos. Cada uno de estos elementos dispone de un conjunto de permisos que pueden
configurarse para minimizar an ms la superficie de SQL Server.

Entidades de Seguridad (Principals)


Las entidades de seguridad son entidades que pueden solicitar recursos de SQL Server. Igual
que otros componentes del modelo de autorizacin de SQL Server, las entidades de seguridad
se pueden organizar en jerarquas. El mbito de influencia de una entidad de seguridad
depende del mbito de su definicin: Windows, servidor o base de datos; y de si la entidad de
seguridad es indivisible o es una coleccin. Un Inicio de sesin de Windows es un ejemplo de
entidad de seguridad indivisible y un Grupo de Windows es un ejemplo de una del tipo
coleccin. Toda entidad de seguridad tiene un identificador de seguridad (SID).

Entidades de seguridad a nivel de Windows:


Inicio de sesin del dominio de Windows
Inicio de sesin local de Windows

Entidades de seguridad a nivel de SQL Server


Inicio de sesin de SQL Server

Entidades de seguridad a nivel de bases de datos


Usuario de base de datos
Funcin de base de datos
Funcin de aplicacin

Inicio de Sesin sa de SQL Server


El inicio de sesin sa de SQL Server es una entidad de seguridad de nivel de servidor. Se crea
de forma predeterminada cuando se instala una instancia. En Microsoft SQL Server 2005, la
base de datos predeterminada de sa es master. Esto es un cambio de comportamiento con
respecto a versiones anteriores de Microsoft SQL Server.

INFORMATION_SCHEMA y sys
Todas las bases de datos incluyen dos entidades que aparecen como usuarios en vistas de
catlogo: INFORMATION_SCHEMA y sys. SQL Server necesita estas dos entidades. No son
entidades de seguridad y no se pueden modificar ni quitar.

Asegurables
Los asegurables son los recursos cuyo acceso es regulado por el sistema de autorizacin del
Motor de base de datos de SQL Server. Algunos asegurables pueden estar incluidos en otros,
con lo que se crean jerarquas anidadas denominadas "mbitos" que a su vez se pueden
asegurar. Los mbitos asegurables son servidor, base de datos y esquema.

Servidor: Incluye los asegurables siguientes:


Extremo
Inicio de sesin

- 68 -
Base de datos

Base de Datos: Incluye los asegurables siguientes:


Usuario
Funcin
Funcin de aplicacin
Ensamblado
Tipo del mensaje
Ruta
Servicio
Enlace de servicio remoto
Catlogo de texto
Certificado
Clave asimtrica
Clave simtrica
Contrato
Esquema

Esquema: Incluye los asegurables siguientes:


Tipo
Coleccin de esquemas XML
Objeto

Objetos
Los elementos siguientes son miembros de la clase de objeto:
Agregado
Restriccin
Funcin
Procedimiento
Cola
Estadstica
Sinnimo
Tabla
Vista

Funciones (Roles) de Nivel de Servidor (Server Fixed Roles)


Las funciones fijas de servidor abarcan todo el mbito del servidor. Cada miembro de una
funcin fija de servidor puede agregar otros inicios de sesin a esa misma funcin.
Las funciones fijas de servidor se pueden asignar a los permisos ms especficos que se
incluyen en SQL Server 2005. La siguiente tabla describe la asignacin de funciones fijas de
servidor a permisos.

Funcin fija de
Permiso en el servidor
servidor

bulkadmin Se le concede: ADMINISTER BULK OPERATIONS

dbcreator Se le concede: CREATE DATABASE

diskadmin Se le concede: ALTER RESOURCES

processadmin Se le concede: ALTER ANY CONNECTION, ALTER SERVER STATE

securityadmin Se le concede: ALTER ANY LOGIN

- 69 -
serveradmin Se le concede: ALTER ANY ENDPOINT, ALTER RESOURCES, ALTER SERVER STATE,
ALTER SETTINGS, SHUTDOWN, VIEW SERVER STATE

setupadmin Se le concede: ALTER ANY LINKED SERVER

sysadmin Se le concede con la opcin GRANT: CONTROL SERVER

La Funcin public
Adems de las funciones fijas de servidor mencionadas en la tabla anterior, cada instancia de
SQL contiene una funcin fija de servidor especial denominada public de la cual todos los
inicios de sesin son miembros.
A la funcin public se le concede el permiso VIEW ANY DATABASE.

Funciones (Roles) en el Nivel de Base de Datos


Las funciones fijas de base de datos se definen en el nivel de base de datos y existen en cada
una de ellas. Los miembros de las funciones de base de datos db_owner y db_securityadmin
pueden administrar a los miembros de una funcin fija de base de datos; sin embargo, slo los
miembros de una funcin de base de datos db_owner pueden agregar miembros a la funcin
fija de base de datos db_owner.
Las funciones fijas de base de datos se pueden asignar a permisos ms detallados que se
incluyen en SQL Server 2005. La tabla siguiente describe la asignacin de funciones fijas de
base de datos a permisos.

Funcin fija de base Permiso en el


Permiso en la base de datos
de datos servidor

db_accessadmin Concedido: ALTER ANY USER, CREATE SCHEMA Concedido:


VIEW ANY
DATABASE

db_accessadmin Concedido con la opcin GRANT: CONNECT

db_backupoperator Concedido: BACKUP DATABASE, BACKUP LOG, CHECKPOINT Concedido:


VIEW ANY
DATABASE

db_datareader Concedido: SELECT Concedido:


VIEW ANY
DATABASE

db_datawriter Concedido: DELETE, INSERT, UPDATE Concedido:


VIEW ANY
DATABASE

db_ddladmin Concedido: ALTER ANY ASSEMBLY, ALTER ANY ASYMMETRIC KEY, Concedido:
ALTER ANY CERTIFICATE, ALTER ANY CONTRACT, ALTER ANY VIEW ANY
DATABASE DDL TRIGGER, ALTER ANY DATABASE EVENT, DATABASE
NOTIFICATION, ALTER ANY DATASPACE, ALTER ANY FULLTEXT
CATALOG, ALTER ANY MESSAGE TYPE, ALTER ANY REMOTE
SERVICE BINDING, ALTER ANY ROUTE, ALTER ANY SCHEMA,
ALTER ANY SERVICE, ALTER ANY SYMMETRIC KEY, CHECKPOINT,
CREATE AGGREGATE, CREATE DEFAULT, CREATE FUNCTION,
CREATE PROCEDURE, CREATE QUEUE, CREATE RULE, CREATE
SYNONYM, CREATE TABLE, CREATE TYPE, CREATE VIEW,
CREATE XML SCHEMA COLLECTION, REFERENCES

db_denydatareader Denegado: SELECT Concedido:


VIEW ANY
DATABASE

- 70 -
db_denydatawriter Denegado: DELETE, INSERT, UPDATE

db_owner Concedido con la opcin GRANT: CONTROL Concedido:


VIEW ANY
DATABASE

db_securityadmin Concedido: ALTER ANY APPLICATION ROLE, ALTER ANY ROLE, Concedido:
CREATE SCHEMA, VIEW DEFINITION VIEW ANY
DATABASE

dbm_monitor Concedido: VIEW el estado ms reciente en el Monitor de creacin de Concedido:


reflejo de la base de datos VIEW ANY
Nota: La funcin fija de base de datos dbm_monitor se crea en la base DATABASE
de datos msdb cuando se registra la primera base de datos en el
Monitor de creacin de reflejo de la base de datos. La nueva funcin
dbm_monitor no tiene miembros hasta que un administrador del
sistema asigne usuarios a la funcin.

Jerarqua de Permisos
El Motor de base de datos de SQL Server 2005 administra un conjunto jerrquico de entidades
que se pueden proteger mediante permisos. Estas entidades se conocen como asegurables.
Los asegurables ms importantes son los servidores y las bases de datos, aunque se pueden
establecer permisos discretos en niveles menores. SQL Server regula las acciones de las
entidades de seguridad en los asegurables comprobando que se les han concedido los
permisos adecuados.
En la ilustracin siguiente se muestran las relaciones entre las jerarquas de permisos del
Motor de base de datos.

- 71 -
Trabajar con Permisos
Los permisos se pueden manipular con las conocidas consultas GRANT, DENY y REVOKE de
Transact-SQL. La informacin sobre los permisos est visible en las vistas de catlogo
sys.server_permisions y sys.database_permisions. Tambin hay informacin sobre la
compatibilidad con permisos para consultas mediante el uso de las funciones integradas.

Permisos a Nivel de Servidor


Un servidor ocupa el nivel ms alto en la jerarqua de permisos. En la siguiente tabla se
muestran los permisos ms especficos y limitados que pueden concederse en un servidor.

Permiso de servidor Implicado por el permiso de servidor

ADMINISTER BULK OPERATIONS CONTROL SERVER

ALTER ANY CONNECTION CONTROL SERVER

- 72 -
ALTER ANY CREDENTIAL CONTROL SERVER

ALTER ANY DATABASE CONTROL SERVER

ALTER ANY ENDPOINT CONTROL SERVER

ALTER ANY EVENT NOTIFICATION CONTROL SERVER

ALTER ANY LINKED SERVER CONTROL SERVER

ALTER ANY LOGIN CONTROL SERVER

ALTER RESOURCES CONTROL SERVER

ALTER SERVER STATE CONTROL SERVER

ALTER SETTINGS CONTROL SERVER

ALTER TRACE CONTROL SERVER

AUTHENTICATE SERVER CONTROL SERVER

CONNECT SQL CONTROL SERVER

CONTROL SERVER CONTROL SERVER

CREATE ANY DATABASE ALTER ANY DATABASE

CREATE DDL EVENT NOTIFICATION ALTER ANY EVENT NOTIFICATION

CREATE ENDPOINT ALTER ANY ENDPOINT

CREATE TRACE EVENT NOTIFICATION ALTER ANY EVENT NOTIFICATION

EXTERNAL ACCESS ASSEMBLY CONTROL SERVER

SHUTDOWN CONTROL SERVER

UNSAFE ASSEMBLY CONTROL SERVER

VIEW ANY DATABASE VIEW ANY DEFINITION

VIEW ANY DEFINITION CONTROL SERVER

VIEW SERVER STATE ALTER SERVER STATE

Conceder Permisos
El que concede (o la entidad de seguridad especificada con la opcin AS) debe tener el
permiso con GRANT OPTION o un permiso superior que implique el permiso que se va a
conceder. Los miembros de la funcin fija de servidor sysadmin pueden conceder cualquier
permiso.

Ejemplos:
a. Conceder un permiso a un inicio de sesin
En el siguiente ejemplo se concede el permiso CONTROL SERVER al inicio de sesin Terry de
SQL Server.

USE master;
GRANT CONTROL SERVER TO Terry;
GO

b. Conceder un permiso que dispone del permiso GRANT

- 73 -
En el siguiente ejemplo se concede ALTER ANY EVENT NOTIFICATION al inicio de sesin
Janeth de SQL Server con el derecho a conceder este permiso a otro inicio de sesin.

USE master;
GRANT ALTER ANY EVENT NOTIFICATION TO Janeth WITH GRANT OPTION;
GO

Permisos a Nivel de Base de Datos


Una base de datos es un elemento que puede protegerse, que contiene el servidor, que es su
entidad primaria en la jerarqua de permisos. La mayora de permisos limitados y especficos
que se pueden conceder en una base de datos se muestran en la siguiente tabla, junto con
permisos ms generales que los incluyen por implicacin.

Implicado por el permiso de base de Implicado por el permiso de


Permiso de base de datos
datos servidor

ALTER CONTROL ALTER ANY DATABASE

ALTER ANY APPLICATION ROLE ALTER CONTROL SERVER

ALTER ANY ASSEMBLY ALTER CONTROL SERVER

ALTER ANY ASYMMETRIC KEY ALTER CONTROL SERVER

ALTER ANY CERTIFICATE ALTER CONTROL SERVER

ALTER ANY CONTRACT ALTER CONTROL SERVER

ALTER ANY DATABASE DDL ALTER CONTROL SERVER


TRIGGER

ALTER ANY DATABASE EVENT ALTER ALTER ANY EVENT


NOTIFICATION NOTIFICATION

ALTER ANY DATASPACE ALTER CONTROL SERVER

ALTER ANY FULLTEXT CATALOG ALTER CONTROL SERVER

ALTER ANY MESSAGE TYPE ALTER CONTROL SERVER

ALTER ANY REMOTE SERVICE ALTER CONTROL SERVER


BINDING

ALTER ANY ROLE ALTER CONTROL SERVER

ALTER ANY ROUTE ALTER CONTROL SERVER

ALTER ANY SCHEMA ALTER CONTROL SERVER

ALTER ANY SERVICE ALTER CONTROL SERVER

ALTER ANY SYMMETRIC KEY ALTER CONTROL SERVER

ALTER ANY USER ALTER CONTROL SERVER

AUTHENTICATE CONTROL AUTHENTICATE SERVER

BACKUP DATABASE CONTROL CONTROL SERVER

BACKUP LOG CONTROL CONTROL SERVER

CHECKPOINT CONTROL CONTROL SERVER

CONNECT CONNECT REPLICATION CONTROL SERVER

CONNECT REPLICATION CONTROL CONTROL SERVER

- 74 -
CONTROL CONTROL CONTROL SERVER

CREATE AGGREGATE ALTER CONTROL SERVER

CREATE ASSEMBLY ALTER ANY ASSEMBLY CONTROL SERVER

CREATE ASYMMETRIC KEY ALTER ANY ASYMMETRIC KEY CONTROL SERVER

CREATE CERTIFICATE ALTER ANY CERTIFICATE CONTROL SERVER

CREATE CONTRACT ALTER ANY CONTRACT CONTROL SERVER

CREATE DATABASE CONTROL CREATE ANY DATABASE

CREATE DATABASE DDL EVENT ALTER ANY DATABASE EVENT CREATE DDL EVENT
NOTIFICATION NOTIFICATION NOTIFICATION

CREATE DEFAULT ALTER CONTROL SERVER

CREATE FULLTEXT CATALOG ALTER ANY FULLTEXT CATALOG CONTROL SERVER

CREATE FUNCTION ALTER CONTROL SERVER

CREATE MESSAGE TYPE ALTER ANY MESSAGE TYPE CONTROL SERVER

CREATE PROCEDURE ALTER CONTROL SERVER

CREATE QUEUE ALTER CONTROL SERVER

CREATE REMOTE SERVICE BINDING ALTER ANY REMOTE SERVICE CONTROL SERVER
BINDING

CREATE ROLE ALTER ANY ROLE CONTROL SERVER

CREATE ROUTE ALTER ANY ROUTE CONTROL SERVER

CREATE RULE ALTER CONTROL SERVER

CREATE SCHEMA ALTER ANY SCHEMA CONTROL SERVER

CREATE SERVICE ALTER ANY SERVICE CONTROL SERVER

CREATE SYMMETRIC KEY ALTER ANY SYMMETRIC KEY CONTROL SERVER

CREATE SYNONYM ALTER CONTROL SERVER

CREATE TABLE ALTER CONTROL SERVER

CREATE TYPE ALTER CONTROL SERVER

CREATE VIEW ALTER CONTROL SERVER

CREATE XML SCHEMA COLLECTION ALTER CONTROL SERVER

DELETE CONTROL CONTROL SERVER

EXECUTE CONTROL CONTROL SERVER

INSERT CONTROL CONTROL SERVER

REFERENCES CONTROL CONTROL SERVER

SELECT CONTROL CONTROL SERVER

SHOWPLAN CONTROL ALTER TRACE

SUBSCRIBE QUERY NOTIFICATIONS CONTROL CONTROL SERVER

TAKE OWNERSHIP CONTROL CONTROL SERVER

- 75 -
UPDATE CONTROL CONTROL SERVER

VIEW DATABASE STATE CONTROL VIEW SERVER STATE

VIEW DEFINITION CONTROL VIEW ANY DEFINITION

Si utiliza la opcin AS, se aplican los siguientes requisitos adicionales:

AS granting_principal Permiso adicional necesario

Usuario de la base de datos Permiso IMPERSONATE en el usuario debe pertenecer a la funcin fija de
base de datos db_securityadmin , debe pertenecer a la funcin fija de
base de datos db_owner debe pertenecer a la funcin fija de servidor
sysadmin.

Usuario de la base de datos Permiso IMPERSONATE en el usuario debe pertenecer a la funcin fija de
asignado a un inicio de sesin de base de datos db_securityadmin , debe pertenecer a la funcin fija de
Windows base de datos db_owner debe pertenecer a la funcin fija de servidor
sysadmin.

Usuario de la base de datos Debe pertenecer al grupo de Windows, debe pertenecer a la funcin fija de
asignado a un grupo de Windows base de datos db_securityadmin , debe pertenecer a la funcin fija de
base de datos db_owner debe pertenecer a la funcin fija de servidor
sysadmin.

Usuario de la base de datos Debe pertenecer a la funcin fija de base de datos db_securityadmin ,
asignado a un certificado debe pertenecer a la funcin fija de base de datos db_owner o debe
pertenecer a la funcin fija de servidor sysadmin.

Usuario de la base de datos Debe pertenecer a la funcin fija de base de datos db_securityadmin ,
asignado a una clave asimtrica debe pertenecer a la funcin fija de base de datos db_owner o debe
pertenecer a la funcin fija de servidor sysadmin.

Usuario de la base de datos Permiso IMPERSONATE en el usuario debe pertenecer a la funcin fija de
asignado a cualquier entidad de base de datos db_securityadmin , debe pertenecer a la funcin fija de
seguridad de servidor base de datos db_owner debe pertenecer a la funcin fija de servidor
sysadmin.

Funcin de base de datos Permiso ALTER en la funcin, debe pertenecer a la funcin fija de base de
datos db_securityadmin , debe pertenecer a la funcin fija de base de
datos db_owner debe pertenecer a la funcin fija de servidor sysadmin.

Funcin de aplicacin Permiso ALTER en la funcin, debe pertenecer a la funcin fija de base de
datos db_securityadmin , debe pertenecer a la funcin fija de base de
datos db_owner debe pertenecer a la funcin fija de servidor sysadmin.

Los propietarios de objetos pueden conceder permisos en los objetos que poseen. Las
entidades de seguridad que tienen el permiso CONTROL en un elemento que puede
protegerse pueden conceder permisos en ese elemento.
Los receptores del permiso CONTROL SERVER, como los miembros de la funcin fija de
servidor sysadmin, pueden conceder los permisos en cualquier elemento que puede
protegerse en el servidor.

Ejemplos
a. Conceder el permiso para crear tablas
En el siguiente ejemplo se concede el permiso CREATE TABLE en la base de datos
AdventureWorks para el usuario Melanie.

USE AdventureWorks;
GRANT CREATE TABLE TO Melanie;
GO

- 76 -
b. Conceder el permiso SHOWPLAN para una funcin de aplicacin
En el siguiente ejemplo se concede el permiso SHOWPLAN en la base de datos
AdventureWorks para la funcin de aplicacin AuditMonitor.

USE AdventureWorks;
GRANT SHOWPLAN TO AuditMonitor;
GO

c. Conceder CREATE VIEW con GRANT OPTION


En el siguiente ejemplo se concede el permiso CREATE VIEW en la base de datos
AdventureWorks al usuario Carmine con el derecho para conceder CREATE VIEW a otras
entidades de seguridad.

USE AdventureWorks;
GRANT CREATE VIEW TO Carmine WITH GRANT OPTION;
GO

Permisos a Nivel de Esquema


Un esquema es un elemento que puede protegerse en el nivel de base de datos que contiene
la base de datos que es su entidad primaria en la jerarqua de permisos. La mayora de
permisos limitados y especficos que se pueden conceder en un esquema se muestran a
continuacin, junto con permisos ms generales que los incluyen por implicacin.

Permiso del esquema Implicado por el permiso del esquema Implicado por el permiso de base de datos

CONTROL CONTROL CONTROL

TAKE OWNERSHIP CONTROL CONTROL

ALTER CONTROL ALTER ANY SCHEMA

EXECUTE CONTROL EXECUTE

INSERT CONTROL INSERT

DELETE CONTROL DELETE

UPDATE CONTROL UPDATE

SELECT CONTROL SELECT

REFERENCES CONTROL REFERENCES

VIEW DEFINITION CONTROL VIEW DEFINITION

Advertencia: Un usuario con permiso ALTER en un esquema puede utilizar encadenamiento


de propiedad para tener acceso a asegurables de otros esquemas, incluidos los asegurables
para los que se haya denegado explcitamente el acceso a ese usuario. Esto se debe a que el
encadenamiento de propiedad omite las comprobaciones de permisos en los objetos a los que
se hace referencia cuando pertenecen al servidor principal propietario de los objetos que hacen
referencia a los mismos. Un usuario con permiso ALTER en un esquema puede crear
procedimientos, sinnimos y vistas que son propiedad del propietario del esquema. Esos
objetos tendrn acceso (mediante encadenamiento de propiedad) a informacin de otros
esquemas que son propiedad del propietario del esquema. Si es posible, se debe evitar

- 77 -
conceder permiso ALTER en un esquema si el propietario de dicho esquema tambin es
propietario de otros esquemas.
Por ejemplo, este problema puede suceder en los siguientes escenarios. En ellos se supone
que un usuario, denominado U1, tiene permiso ALTER en el esquema S1. Se deniega al
usuario U1 acceso a un objeto tabla, denominado T1, en el esquema S2. Los esquemas S1 y
S2 son propiedad del mismo propietario.
El usuario U1 tiene permiso CREATE PROCEDURE en la base de datos y permiso EXECUTE
en el esquema S1. Por tanto, el usuario U1 puede crear un procedimiento almacenado y
despus tener acceso al objeto T1 denegado en el procedimiento almacenado.
El usuario U1 tiene permiso CREATE SYNONYM en la base de datos y permiso SELECT en el
esquema S1. Por tanto, el usuario U1 puede crear un sinnimo en el esquema S1 para el
objeto T1 denegado y despus tener acceso a dicho objeto mediante el sinnimo.
El usuario U1 tiene permiso CREATE VIEW en la base de datos y permiso SELECT en el
esquema S1. Por tanto, el usuario U1 puede crear una vista en el esquema S1 para consultar
datos del objeto T1 denegado y despus tener acceso a dicho objeto mediante la vista.

Los propietarios de objetos pueden conceder permisos en los objetos que poseen. Las
entidades de seguridad con el permiso CONTROL en un elemento que puede protegerse
pueden conceder permisos en ese elemento.
Los receptores del permiso CONTROL SERVER, como los miembros de la funcin fija de
servidor sysadmin, pueden conceder los permisos en cualquier elemento que puede
protegerse en el servidor. Los receptores del permiso CONTROL en una base de datos, como
los miembros de la funcin fija de base de datos db_owner, pueden conceder los permisos en
cualquier elemento que puede protegerse en la base de datos. Los receptores del permiso
CONTROL en un esquema pueden conceder los permisos en cualquier objeto del esquema.

Ejemplos
a. Conceder a un invitado permiso INSERT en el esquema HumanResources.

GRANT INSERT ON SCHEMA :: HumanResources TO guest;

b. Conceder al usuario de base de datos WilJo permiso SELECT en el esquema Person.

GRANT SELECT ON SCHEMA :: Person TO WilJo WITH GRANT OPTION;

Cifrado y Certificados
El cifrado no resuelve los problemas de control de acceso. Sin embargo, mejora la seguridad
debido a que limita la prdida de datos, incluso en el caso poco probable de que se superen los
controles de acceso. Por ejemplo, si el equipo host de base de datos no est configurado
correctamente y un pirata informtico obtiene datos confidenciales, como nmeros de tarjetas
de crdito, esa informacin robada resulta inservible si est cifrada.

Jerarqua de Cifrado
SQL Server 2005 cifra los datos con una infraestructura de cifrado jerrquico y administracin
de claves. Cada capa cifra la capa inferior utilizando una combinacin de certificados, claves
asimtricas y claves simtricas.

El cifrado jerrquico est basado en una clave maestra de servicio (Service Master Key), sta
clave es generada automticamente cuando se instala SQL Server 2005.
El motor de base de datos utiliza la clave maestra de servicio para cifrar los siguientes objetos:
Passwords de Servidores Vinculados (Linked Server Passwords)
Cadenas de Conexin (Connection Strings)

- 78 -
Credenciales de Cuentas (Account Credentials)
Todas las Claves maestras de la base de datos
A la llave maestra de servicio se le debe sacar un backup y almacenarla en un sitio seguro y
fuera de lnea. Esto para poder administrar mas fcilmente ya sea hacer copias de seguridad o
restaurar la clave maestra de servicio en caso de que sea necesario.

Llave Maestra de Servicio (Service Master Key)


Es una llave Triple DES en la raz de SQL Server 2005 y es generada automticamente la
primera vez que es necesaria y est asegurada por la API de proteccin de datos de Windows
(DPAPI).

Llave Maestra de Base de Datos (Database Master Key)


Es una llave simtrica Triple DES que puede utilizarse para proteger las llaves privadas de
certificados y llaves asimtricas en una base de datos.
Cuando se crea una llave Maestra de Base de Datos sta es encriptada utilizando el algoritmo
Triple DES y una contrasea provista por el usuario.
SQL Server almacena una copia de la llave maestra de base de datos en la base de datos
master y a su vez es cifrada con la llave maestra de servicio. Otra copia es almacenada en la
base de datos cifrada con una contrasea.
La siguiente ilustracin muestra que cada capa de la jerarqua de cifrado cifra la capa que tiene
debajo. La capa superior, la llave maestra de servicio, se cifra con la API de proteccin de
datos (DPAPI) de Windows.

- 79 -
SQL Server 2005 le ofrece los mecanismos siguientes para el cifrado:
Certificados
Claves asimtricas
Claves simtricas

Certificados
Un certificado de clave pblica, normalmente denominado solo certificado, es una instruccin
firmada digitalmente que enlaza el valor de una clave pblica con la identidad de la persona,
dispositivo o servicio que tiene la clave privada correspondiente. Las entidades emisoras de
certificados (CA) son las encargadas de emitir y firmar los certificados. La entidad que recibe
un certificado de una CA es el sujeto de ese certificado. Por lo general, los certificados
contienen la siguiente informacin.
La clave pblica del sujeto.
La informacin que identifica al sujeto, como el nombre y la direccin de correo
electrnico.
El periodo de validez. Es decir, el periodo de tiempo durante el que el certificado se
considera vlido.
Un certificado slo es vlido durante el periodo de tiempo que se especifica en el
mismo; todos los certificados contienen una fecha Vlido desde y otra Vlido hasta.
Estas fechas establecen los lmites del perodo de validez. Cuando el perodo de
validez de un certificado ha transcurrido, es necesario que el sujeto del certificado
caducado solicite uno nuevo.
Informacin de identificador del emisor.
La firma digital del emisor. Esta firma da fe de la validez de las obligaciones entre la
clave pblica y la informacin de identificador del sujeto. (El proceso de firmar
digitalmente la informacin conlleva a transformar la informacin, as como cierta
informacin privada que conserva el remitente, en una etiqueta denominada firma.)

Una de las principales ventajas de los certificados es que liberan a los hosts de la necesidad de
establecer contraseas para sujetos individuales. En su lugar, el host simplemente establece la
confianza en un emisor de certificados, que a continuacin puede firmar un nmero ilimitado de
certificados.
Cuando un host, por ejemplo, un servidor Web seguro, designa a un emisor como entidad
emisora raz de confianza, el host implcitamente confa en las directivas que el emisor ha
utilizado para establecer las obligaciones de los certificados que emite. En efecto, el host confa
en que el emisor ha comprobado la identidad del sujeto del certificado. Un host designa a un
emisor como entidad emisora raz de confianza presentando el certificado autofirmado del
emisor, que contiene la clave pblica de ste, en el almacn de certificados de la entidad
emisora de certificados raz de confianza del equipo host. Las entidades emisoras de
certificados intermedias o subordinadas slo son de confianza si tienen una ruta vlida de
certificacin procedente de una entidad emisora de certificados raz.
El emisor puede revocar un certificado antes de que caduque. La revocacin cancela las
obligaciones que una clave pblica tiene con una identidad que se exprese en el certificado.
Cada emisor mantiene una lista de revocacin de certificados que los programas pueden
utilizar cuando estn comprobando la validez de un certificado determinado.

Dentro de las posibilidades de los certificados, se puede cargar desde un ensamblado o bien
desde un archivo que contenga el certificado, como as tambin crear uno desde SQL 2005.
Para la creacin de estos certificados SQL dispones de la sentencia TSQL CREATE
CERTIFICATE y su sintaxis es la siguiente:

- 80 -
CREATE CERTIFICATE certificate_name [ AUTHORIZATION user_name ]
{ FROM <existing_keys> | <generate_new_keys> }
[ ACTIVE FOR BEGIN_DIALOG = { ON | OFF } ]

<existing_keys> ::=
ASSEMBLY assembly_name
|{
[ EXECUTABLE ] FILE = 'path_to_file'
[ WITH PRIVATE KEY ( <private_key_options> ) ]
}

<generate_new_keys> ::=
[ ENCRYPTION BY PASSWORD = 'password']
WITH SUBJECT = 'certificate_subject_name'
[ , <date_options> [ ,...n ] ]

<private_key_options> ::=
FILE = 'path_to_private_key'
[ , DECRYPTION BY PASSWORD = password]
[ , ENCRYPTION BY PASSWORD = password]

<date_options> ::=
START_DATE = 'mm/dd/yyyy' | EXPIRY_DATE = 'mm/dd/yyyy'

Ejemplo de creacin de un Certificado con contrasea y fecha de expiracin:

USE AdventureWorks
GO
CREATE CERTIFICATE CERTIFICADO1
ENCRYPTION BY PASSWORD ='COMPLEJO'
EXPIRY_DATE =''10/31/2009'',
SUBJECT = Adventure Works Customers'

Ejemplo de importacin de un certificado existente:

USE AdventureWorks
GO
CREATE CERTIFICATE CERTIFICADO1
FROM FILE = 'c:\Cert\certificado.cer'
GO

Claves Asimtricas
Una clave asimtrica se compone de una clave privada y su correspondiente clave pblica.
Cada clave puede descifrar los datos que cifra la otra. Una clave asimtrica se puede utilizar
para cifrar una clave simtrica para almacenar en una base de datos.
Las claves asimtricas son entidades que pueden protegerse a nivel de la base de datos. Por
defecto, la clave privada es protegida por la Master Key; de no existir esta ltima, es necesario
una contrasea. La clave privada puede ser de 512, 1024 2048 Bits. El cifrado y descifrado
asimtricos consumen una cantidad grande de recursos pero proporcionan un nivel de
seguridad superior al del cifrado simtrico.

- 81 -
Para crear claves asimtricas se utiliza CREATE ASYMMETRIC KEY.

Ejemplo:
USE AdventureWorks
GO
CREATE ASYMMETRIC KEY ClaveAsym
WITH ALGORITHM = RSA_2048
ENCRYPTION BY PASSWORD ='$$PEPE$$'
GO

Claves Simtricas
Una clave simtrica es una clave que se utiliza para el cifrado y el descifrado. El cifrado y el
descifrado con una clave simtrica son ms rpidos y adecuados para usarlos de forma
rutinaria con datos confidenciales de una base de datos.
Al crear una clave simtrica, sta debe ser cifrada utilizando una de 4 opciones: certificado,
contrasea, clave simtrica o clave asimtrica. Esta clave puede tener ms de un cifrado de
cada tipo.
Si se utiliza contrasea (password) para cifrar la clave simtrica, entonces en lugar de utilizar la
clave publica de la base de datos (Master Key) se debe utilizar el algoritmo Triple DES. Para
la creacin de las claves simtricas se utiliza CREATE SIMMETRIC KEY.

Ejemplo:
USE AdventureWorks
GO
CREATE SYMMETRIC KEY SYM_KEY
WITH ALGORITHM = TRIPLE_DES
ENCRYPTION BY PASSWORD ='##JUAN##'

Nota: Es muy importante realizar un backup de los certificados, como as tambin de las
Master Key; para ello, SQL 2005 dispone de las sentencias BACKUP CERTIFICATE, BACKUP
MASTER KEY.

- 82 -
3- Implementacin de Seguridad en SQL Server 2005

Seleccionar un Modo de Autenticacin


Durante la instalacin, debe seleccionar un modo de autenticacin para el Motor de base de
datos. Hay dos modos posibles
Modo de autenticacin de Windows
Modo mixto.
El modo de autenticacin de Windows habilita la autenticacin de Windows y deshabilita la
autenticacin de SQL Server. El modo mixto habilita tanto la autenticacin de Windows como la
de SQL Server. La autenticacin de Windows est disponible siempre y no se puede
deshabilitar.

Configurar el Modo de Autenticacin


Si selecciona la autenticacin de modo mixto durante la instalacin, debe proporcionar una
contrasea segura, y confirmarla despus, para la cuenta de administrador del sistema de SQL
Server integrada denominada sa. La cuenta sa se conecta con la autenticacin de SQL Server.

- 83 -
Si selecciona la autenticacin de Windows durante la instalacin, el programa de instalacin
crea la cuenta sa para la autenticacin de SQL Server pero se deshabilita. Si despus cambia
a la autenticacin de modo mixto y desea utilizar la cuenta sa, debe habilitar la cuenta.
Cualquier cuenta de SQL Server o de Windows se puede configurar como del administrador del
sistema. Dado que la cuenta sa es muy conocida y a menudo es el objetivo de usuarios
malintencionados, no la habilite a menos que la aplicacin lo requiera. Nunca establezca una
contrasea en blanco o con poca seguridad para la cuenta sa.

Conectar a travs de la Autenticacin de Windows


Cuando un usuario se conecta a travs de una cuenta de usuario de Microsoft Windows, SQL
Server valida el nombre de cuenta y la contrasea con el token de la entidad de seguridad de
Windows del sistema operativo. Esto significa que Windows confirma la identidad del usuario.
SQL Server no pide la contrasea y no realiza la validacin de identidad. La autenticacin de
Windows es el modo de autenticacin predeterminado y es mucho ms seguro que la
autenticacin de SQL Server. La autenticacin de Windows usa el protocolo de seguridad de
Kerberos, proporciona la aplicacin de directivas de contraseas en cuanto a la validacin de
la complejidad de las contraseas seguras, ofrece compatibilidad para el bloqueo de cuentas y
admite la expiracin de las contraseas. Una conexin realizada utilizando la autenticacin de
Windows se denomina a veces conexin de confianza, porque SQL Server confa en las
credenciales proporcionadas por Windows.

Conectar a travs de la Autenticacin de SQL Server


Al utilizar la autenticacin de SQL Server, los inicios de sesin se crean en SQL Server, que no
se basa en las cuentas de usuario de Windows. El nombre de usuario y la contrasea se crean
utilizando SQL Server y se almacenan en SQL Server. Los usuarios que se conectan utilizando
la autenticacin de SQL Server deben proporcionar sus credenciales (inicio de sesin y
contrasea) cada vez que se conectan. Al utilizar la autenticacin de SQL Server, debe
establecer contraseas seguras para todas las cuentas de SQL Server.

Hay tres directivas de contraseas opcionales para los inicios de sesin de SQL Server.
El usuario debe cambiar la contrasea en el siguiente inicio de sesin
Exige que el usuario cambie la contrasea la prxima vez que se conecte. SQL Server
Management Studio proporciona la capacidad de cambiar la contrasea. Otros
programadores de software deberan proporcionar esta caracterstica si se utiliza esta
opcin.
Exigir expiracin de contrasea. La directiva de vigencia mxima de la contrasea del
equipo se exige para los inicios de sesin de SQL Server.
Exigir directivas de contraseas. Las directivas de contraseas de Windows del equipo
se exigen para los inicios de sesin de SQL Server. Esto incluye la longitud y
complejidad de las contraseas. Esta funcionalidad depende de la API
NetValidatePasswordPolicy, que slo est disponible en Windows Server 2003 y
versiones posteriores.

Para determinar las directivas de las contraseas del equipo local


En el men Inicio, haga clic en Ejecutar.
En el cuadro de dilogo Ejecutar, escriba secpol.msc y, a continuacin, haga clic en
Aceptar.
En la aplicacin Configuracin de seguridad local, expanda Configuracin de
seguridad, expanda Directivas de cuenta y, a continuacin, haga clic en Directiva de
contraseas.
Las directivas de contraseas se describen en el panel de resultados.

- 84 -
Ventajas de la Autenticacin de SQL Server
Permite a SQL Server admitir las aplicaciones anteriores y las que proporcionan
terceros y requieren la autenticacin de SQL Server.
Permite que SQL Server admita entornos con sistemas operativos mixtos, en los que
un dominio de Windows no autentica a todos los usuarios.
Permite a los usuarios conectarse desde dominios desconocidos o que no son de
confianza. Por ejemplo, una aplicacin en la que los clientes establecidos se conectan
con los inicios de sesin de SQL Server asignados para recibir el estado de sus
pedidos.
Permite que SQL Server admita aplicaciones basadas en WEB en las que los usuarios
crean sus propias identidades.
Permite a los desarrolladores de software distribuir sus aplicaciones utilizando una
jerarqua de permisos compleja basada en los inicios de sesin conocidos y
preestablecidos de SQL Server.

Desventajas de la Autenticacin de SQL Server


Si un usuario del dominio de Windows tiene un inicio de sesin y una contrasea para
Windows, an debe proporcionar otro inicio de sesin y contrasea (SQL Server) para
conectarse. Hacer el seguimiento de varios nombres y contraseas es difcil para
muchos usuarios. Tener que proporcionar las credenciales de SQL Server cada vez
que se conectan a la base de datos puede resultar molesto.
La autenticacin de SQL Server no puede utilizar el protocolo de seguridad de
Kerberos.
Windows proporciona directivas de contraseas adicionales que no estn disponibles
para los inicios de sesin de SQL Server.

SQL Server 2005 puede ser configurado para utilizar unos de estos modos de autenticacin:

Cundo utilizar el Modo de Autenticacin de Windows


Utilice este modo en entornos de red en los cuales los usuarios son autenticados a travs de
cuentas de usuario de Windows.

Ventajas de la Autenticacin Windows


Permite agregar grupos de usuarios a SQL Server agregando una nica cuenta de
usuario
Permite a los usuarios acceder rpidamente a SQL Server sin tener que recordar
cuenta y contrasea.

Cundo utilizar el Modo Mixto


Utilice este modo cuando tenga que permitir conectarse a SQL Server a usuarios o
aplicaciones que no tengan credenciales Windows.

Directiva de Contraseas
Cuando SQL Server 2005 se ejecuta en Windows Server 2003 o versiones posteriores, puede
utilizar mecanismos de directiva de contraseas de Windows.
SQL Server 2005 puede aplicar las mismas directivas de complejidad y caducidad que se usan
en Windows Server 2003 a las contraseas que se usan en SQL Server. Esta funcionalidad

- 85 -
depende de la API NetValidatePasswordPolicy, que slo est disponible en Windows
Server 2003 y versiones posteriores.

Las directivas de complejidad de contraseas estn diseadas para impedir ataques por fuerza
bruta mediante el aumento del nmero de contraseas posibles. Cuando se aplica la directiva
de complejidad de contraseas, se exige que las nuevas contraseas cumplan las siguientes
directrices:
La contrasea no debe contener parte o todo el nombre de la 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, como un
espacio, tabulacin, retorno, etc., o por alguno de los siguientes caracteres: coma (,),
punto (.), guin (-), carcter de subrayado (_) o signo de nmero (#).
La contrasea debe tener una longitud de ocho caracteres como mnimo.
La contrasea debe contener caracteres de tres de las siguientes categoras:
o Letras en maysculas del alfabeto Latn (de la A a la Z)
o Letras en minsculas del alfabeto Latn (de la "a" a la "z")
o Dgitos en base 10 (del 0 al 9)
o Caracteres que no sean alfanumricos, como signo de exclamacin (!), signo de
moneda ($), signo de nmero (#) o porcentaje (%).
Las contraseas pueden tener hasta 128 caracteres. Se recomienda utilizar contraseas lo
ms largas y complejas posible.

Las directivas de caducidad de contraseas se utilizan para administrar la duracin de una


contrasea. Cuando SQL Server 2005 aplica la directiva de caducidad de contraseas, se
recuerda a los usuarios que cambien las contraseas antiguas, y las cuentas con contraseas
que han caducado se deshabilitan.

Aplicacin de las Directivas de Contraseas


La aplicacin de la directiva de contraseas se puede configurar independientemente para
cada inicio de sesin de SQL Server. Utilice ALTER LOGIN para configurar las opciones de la
directiva de contraseas de un inicio de sesin de SQL Server.

Se aplican las siguientes reglas a la configuracin de la aplicacin de directivas de


contraseas:
Cuando el valor de CHECK_POLICY se cambia a ON, ocurre lo siguiente:
o CHECK_EXPIRATION tambin se establece en ON, salvo que se haya establecido
de forma explcita en OFF.
o El historial de contraseas se inicializa con el valor hash de la contrasea actual.
Cuando el valor de CHECK_POLICY se cambia a OFF, ocurre lo siguiente:
o CHECK_EXPIRATION tambin se establece en OFF.
o Se borra el historial de contraseas.
o Se restablece el valor de lockout_time.

Algunas combinaciones de opciones de directiva no se admiten.


Si se especifica MUST_CHANGE, CHECK_EXPIRATION y CHECK_POLICY deben
establecerse en ON. De lo contrario, se producir un error en la instruccin.
Si CHECK_POLICY se establece en OFF, CHECK_EXPIRATION no puede
establecerse en ON. Se producir un error en una instruccin ALTER LOGIN que
combine estas dos opciones.

Importante: CHECK_EXPIRATION y CHECK_POLICY slo se aplican en Windows Server


2003 y versiones posteriores.

- 86 -
Un problema conocido de Windows Server 2003 puede impedir que el recuento de contraseas
errneas se restablezca una vez alcanzado LockoutThreshold. Esto puede provocar un
bloqueo inmediato en posteriores intentos de inicio de sesin errneos. Puede restablecer el
recuento de contraseas errneas de forma manual; para ello, tiene que establecer
simplemente CHECK_POLICY = OFF, seguido de CHECK_POLICY = ON.

Cuando se ejecuta SQL Server en Windows 2000, puede establecer CHECK_POLICY = ON


para evitar la creacin de contraseas que sean:
Nulas o vacas
Iguales al nombre del equipo o el inicio de sesin
Una de las siguientes: "password", "admin", "administrator", "sa", "sysadmin"

Contraseas Seguras
Las contraseas pueden constituir el vnculo ms dbil de una implementacin de seguridad de
servidor. Debe tener siempre mucho cuidado a la hora de elegir una contrasea. Una
contrasea segura presenta las siguientes caractersticas:
Tiene una longitud de 8 caracteres como mnimo.
Contiene una combinacin de letras, nmeros y smbolos.
No es una palabra que pueda encontrarse en el diccionario.
No es el nombre de un comando.
No es el nombre de una persona.
No es el nombre de un usuario.
No es el nombre de un equipo.
Se cambia con frecuencia.
Presenta diferencias notables con respecto a contraseas anteriores.

Las contraseas de SQL Server pueden contener hasta 128 caracteres, entre los que se
pueden incluir letras, smbolos y dgitos. Dado que los inicios de sesin, nombres de usuario,
funciones y contraseas se utilizan con frecuencia en instrucciones Transact-SQL,
determinados smbolos debern estar incluidos entre comillas dobles (") o corchetes ([ ]). Utilice
estos delimitadores en las instrucciones Transact-SQL cuando el inicio de sesin, usuario,
funcin o contrasea de SQL Server presente las siguientes caractersticas:
Contiene o comienza por un carcter de espacio.
Comienza por el carcter $ o @.

Si se utiliza en una cadena de conexin OLE DB u ODBC, el inicio de sesin o la contrasea


no deben contener ninguno de los siguientes caracteres: [] {}() , ; ? * ! @. Estos caracteres se
utilizan para inicializar una conexin o para separar valores de conexin.

Inicios de Sesin en SQL Server (login)


Manejo de Inicios de Sesin
La mayora de usuarios de Windows necesitan un inicio de sesin de SQL Server para
conectarse a SQL Server. A continuacin se describen distintas opciones para crear un inicio
de sesin en SQL Server:

Para crear un inicio de sesin de SQL Server que use la autenticacin de Windows (SQL
Server Management Studio)
En SQL Server Management Studio, abra el Explorador de objetos y expanda la
carpeta de la instancia de servidor en la que se crear el nuevo inicio de sesin.
Haga clic con el botn secundario en la carpeta Seguridad, seleccione Nuevo y, a
continuacin, Inicio de sesin.

- 87 -
En la pgina General, escriba el nombre de un usuario de Windows en el cuadro
Nombre de inicio de sesin.
Seleccione Autenticacin de Windows.
Haga clic en Aceptar.

Para crear un inicio de sesin de SQL Server que use la autenticacin de SQL Server (SQL
Server Management Studio)
En SQL Server Management Studio, abra el Explorador de objetos y expanda la
carpeta de la instancia de servidor en la que se crear el nuevo inicio de sesin.
Haga clic con el botn secundario en la carpeta Seguridad, seleccione Nuevo y, a
continuacin, Inicio de sesin.
En la pgina General, escriba un nombre para el nuevo inicio de sesin en el cuadro
Nombre de inicio de sesin.
Seleccione Autenticacin de SQL Server. La autenticacin de Windows es la opcin
ms segura.
Escriba una contrasea de inicio de sesin.
Seleccione las opciones de la directiva de contraseas que deben aplicarse al nuevo
inicio de sesin. En general, exigir la directiva de contraseas es la opcin ms segura.
Haga clic en Aceptar.

- 88 -
Para crear un inicio de sesin de SQL Server que use la autenticacin de Windows con
Transact-SQL

CREATE LOGIN <nombre de usuario Windows> FROM WINDOWS


GO

Para crear un inicio de sesin de SQL Server que use la autenticacin de SQL Server con
Transact-SQL
El ejemplo siguiente crea un inicio de sesin para un usuario determinado y asigna una
contrasea. La opcin MUST_CHANGE requiere que los usuarios cambien la contrasea la
primera vez que se conectan al servidor.

CREATE LOGIN <nombre login> WITH PASSWORD = '<password>' MUST_CHANGE;


GO

Ejemplos:
a. Para crear un inicio de sesin asociado a una credencial

CREATE LOGIN Mary WITH PASSWORD = '<password>',


CREDENTIAL = <nombre_credenciall>;
GO

b. Para crear un inicio de sesin desde un certificado

USE MASTER;
CREATE CERTIFICATE <Nombre_certificado>
WITH SUBJECT = '<nombre_login> CERTIFICATE IN master database',
EXPIRY_DATE = '02/02/2009';
GO

CREATE LOGIN < nombre_login > FROM CERTIFICATE < Nombre_certificado >;
GO

c. Para crear un inicio de sesin desde una cuenta de dominio de Windows

CREATE LOGIN [Adventure-Works\Mary] FROM WINDOWS;


GO

Modificacin de Inicios de Sesin


Se pueden modificar inicios de sesin desde sus propiedades en el Explorador de Objetos de
SQL Management Studio o bien utilizando ALTER LOGIN.
Una utilizacin comn de ALTER LOGIN es por ejemplo para desbloquear un inicio de sesin
que fue bloqueado porque expir su contrasea como se muestra a continuacin:

ALTER LOGIN Alice WITH PASSWORD = 'NewPa$$w0rd' UNLOCK

Eliminacin de Inicios de Sesin


Se pueden eliminar un inicio de sesin con clic derecho sobre l en el Explorador de Objetos y
luego elegir Delete, o bien utilizando DROP LOGIN, como se muestra en el siguiente ejemplo:

- 89 -
DROP LOGIN Alice

Asignacin de una cuenta de inicio de sesin a una funcin fija de servidor


Usted puede utilizar las propiedades de inicio de sesin en el SQL Management Studio o bien
el procedimiento almacenado de sistema sp_addsrvrolemember para agregar un inicio de
sesin como miembro de una funcin fija de servidor. Solo los miembros de funciones fijas de
servidor pueden ejecutar este procedimiento almacenado.
Cuando usted agrega una cuenta de inicio de sesin a una funcin fija de servidor, la cuenta
adquiere los permisos asociados a esa funcin.

Al realizarlo tenga en cuenta lo siguiente:


Usted no puede agregar, modificar o eliminar las funciones fijas de servidor.
Cualquier miembro de una funcin fija de servidor puede agregar otra cuenta de inicio
de sesin a esa funcin.
El procedimiento almacenado de sistema sp_addsrvrolemember no puede ser
ejecutado dentro de una transaccin definida por el usuario
Usted puede utilizar el procedimiento almacenado de sistema sp_dropsrvrolemember
para eliminar un miembro de una funcin fija de servidor.

Usuarios de SQL Server


Cmo crear un usuario de base de datos
En este tema se explica cmo crear un usuario de base de datos asignado a un inicio de sesin
de SQL Server. En este tema se asume que existe el correspondiente inicio de sesin de SQL
Server.

Para crear un usuario de base de datos mediante SQL Server Management Studio
En SQL Server Management Studio, abra el Explorador de objetos y expanda la
carpeta Bases de datos.
Expanda la base de datos en la que se va a crear el usuario de la misma.
Haga clic con el botn secundario en la carpeta Seguridad, seleccione Nuevo y, a
continuacin, haga clic en Usuario.
En la pgina General, escriba un nombre para el usuario en el cuadro Nombre de
usuario.
En el cuadro Nombre de inicio de sesin, escriba el nombre de un inicio de sesin de
SQL Server para asignarlo al usuario de la base de datos.
Haga clic en Aceptar.

- 90 -
Para crear un usuarios de bases de datos mediante Transact-SQL

USE <nombre_base_datos>
GO

CREATE USER <nombre usuario> FOR LOGIN <nombre login>;


GO

Ejemplos:
a. Crear un usuario de base de datos

CREATE LOGIN John


WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';
USE AdventureWorks;
CREATE USER John FOR LOGIN John

b. Crear un usuario de base de datos con un esquema predeterminado


CREATE LOGIN Mary
WITH PASSWORD = '8fdKJl3$nlNv3049jsKK';

- 91 -
USE AdventureWorks;
CREATE USER Mary FOR LOGIN Mary
WITH DEFAULT_SCHEMA = Marketing;

C. Crear un usuario de base de datos desde un certificado

CREATE CERTIFICATE Produccion50


WITH SUBJECT = 'Carnation Production Facility Supervisors',
EXPIRY_DATE = '11/11/2011';
GO
CREATE USER Peter FOR CERTIFICATE Production50;

Usuarios especiales de SQL Server


Cuenta de usuario dbo: dbo o propietario de base de datos, es una cuenta de
usuario con permisos implcitos para realizar todas las actividades en la base de datos.
Los miembros de la funcin fija del servidor sysadmin se asignan automticamente a
dbo. La cuenta de usuario dbo se confunde a menudo con la funcin fija de base de
datos db_owner. El mbito de db_owner es una base de datos y el mbito de
sysadmin es el servidor completo. La pertenencia a la funcin db_owner no
proporciona privilegios de usuario dbo.
Cuenta de usuario guest: Despus de que un usuario se haya autenticado y se le
haya permitido iniciar sesin en una instancia de SQL Server, debe existir una cuenta
de usuario independiente en cada base de datos a la que tenga acceso el usuario. Si
se exige una cuenta de usuario en cada base de datos, se impide que los usuarios se
conecten a una instancia de SQL Server y puedan tener acceso a todas las bases de
datos de un servidor. La existencia de una cuenta de usuario guest en la base de
datos evita este requisito, ya que permite que un inicio de sesin sin cuenta de usuario
de base de datos tenga acceso a una base de datos. La cuenta guest es una cuenta
integrada en todas las versiones de SQL Server. De forma predeterminada, est
deshabilitada en las bases de datos nuevas. Si est habilitada, se puede deshabilitar
mediante la revocacin de su permiso CONNECT, que se lleva a cabo con la ejecucin
de la instruccin REVOKE CONNECT FROM GUEST de Transact-SQL.

Nota: Se debe evitar el uso de la cuenta guest, ya que todos los inicios de sesin que no
dispongan de permisos de base de datos propios obtendrn los permisos de base de datos
concedidos a esta cuenta. Si debe usar la cuenta guest, concdale los permisos mnimos.

Delegacin
SQL Server y Windows pueden estar configurados para permitir que una instancia de SQL
Server se conecte a otra instancia de SQL Server en el mismo contexto de un usuario
autenticado por Windows. Esta tcnica se denomina delegacin.
Por ejemplo, un procedimiento almacenado en una base de datos en el Servidor1 podra
consultar una tabla en una base de datos en el Servidor2. Cuando se utiliza delegacin, el
procedimiento almacenado utiliza la identidad del usuario que lo llam cuando requiera datos
del Servidor2.

Requerimientos para Delegacin


Para utilizar delegacin, todos los servidores a los cuales usted est conectado deben ejecutar
Windows 2000 o Windows Server 2003 con el soporte Kerberos habilitado, y usted debe
utilizar Active Directory.

- 92 -
Windows Server 2003 permite delegaciones ms especficas que versiones anteriores de
Windows. Windows Server 2003 permite establecer derechos de delegacin a una combinacin
particular de servicios.

Configurando Active Directory para Delegacin


Usted debe establecer las siguientes opciones de cuenta en Active Directory para que funcione
la delegacin:
La cuenta es sensible y no puede ser delegada (Account is sensitive and cannot be
delegated.) Usted no debe elegir esta opcin para un pedido de delegacin de un
usuario
La cuenta es confiable para delegacin (Account is trusted for delegation.). Usted
debe elegir esta opcin para la cuenta de servicio de SQL Server
La computadora es confiable para delegacin (Computer is trusted for delegation.)
Usted debe elegir esta opcin para la computadora donde se ejecuta SQL Server.

Configurando SQL Server para Delegacin


Para utilizar seguridad de delegacin de cuenta, SQL Server debe tener un Nombre Principal
de Servidor (Service Principal Name - SPN) asignado por el administrador de cuenta de
dominio de Windows Server 2003 a la cuenta de servicio de SQL Server y estar utilizando
TCP/IP. Si el servicio de SQL Server se est ejecutando bajo una cuenta de Sistema Local,
automticamente el servicio SQL Server registrar un SPN al iniciar el servicio y lo des-
registrar al cerrar SQL Server.

Credenciales
Una credencial es un registro que contiene la informacin de autenticacin (credenciales)
necesaria para conectarse a un recurso situado fuera de SQL Server. Esta informacin la utiliza
SQL Server internamente. La mayora de las credenciales incluyen un nombre de usuario y una
contrasea de Windows.
La informacin almacenada en una credencial permite al usuario que se ha conectado a SQL
Server mediante la autenticacin de SQL Server obtener acceso a recursos situados fuera de
la instancia del servidor. Cuando el recurso externo es Windows, el usuario se autentica como
el usuario de Windows especificado en la credencial. Se puede asignar una nica credencial a
varios inicios de sesin de SQL Server. Sin embargo, un inicio de sesin de SQL Server slo
se puede asignar a una credencial.
Las credenciales del sistema se crean de forma automtica y se asocian a extremos
especficos. Los nombres de las credenciales del sistema comienzan por dos signos de nmero
(##).
Usted puede crear una credencial desde SQL Management Studio o bien utilizando CREATE
CREDENTIAL.

CREATE CREDENTIAL nombre credencial


WITH IDENTITY = 'nombre_identity'
[ , SECRET = 'secreto' ]

Argumentos:
Nombre credencial: especifica el nombre de la credencial a ser creada. No puede
comenzar con el smbolo #.
Nombre_identity: Especifica el nombre de la cuenta que se utilizar para la conexin
fuera del servidor.
secreto: Especifica una palabra secreta para la autenticacin. Esta clusula es
opcional.

- 93 -
Mdulo 4

Monitoreo de SQL
Server

- 94 -
1- Monitorear la Actividad en Curso
Determinar la actividad de los usuarios
Se puede monitorear la actividad de cada usuario para identificar el tipo y la ubicacin de las
transacciones de bloqueo o el rendimiento lento de Microsoft SQL Server.
La supervisin de la actividad de los usuarios ayuda a identificar tendencias como los tipos de
transacciones ejecutadas por los usuarios, el nmero de consultas ineficaces y ad hoc, y los
tipos de transacciones que requieren la mayor parte de los recursos. Para recopilar informacin
estadstica sobre los usuarios, utilice el Analizador de SQL Server o el Monitor de sistema.
Utilice el Monitor de actividad de SQL Server Management Studio para la supervisin ad hoc de
SQL Server, lo que permite determinar la actividad de los usuarios en el sistema.

El Monitor de actividad (SQL Server Management Studio)


Use el componente Monitor de actividad de Microsoft SQL Server Management Studio para
obtener informacin sobre las conexiones de los usuarios al Motor de base de datos y los
bloqueos que mantienen. El Monitor de actividad tiene tres pginas.
La pgina Informacin del proceso contiene informacin acerca de las conexiones.
En la pgina Bloqueos por proceso se ordenan los bloqueos por conexin.
En la pgina Bloqueos por objeto se ordenan los bloqueos por el nombre del objeto.
Haga clic en el botn Filtrar para aplicar un filtro con el fin de reducir la cantidad de informacin
mostrada.

Utilice el Monitor de actividad al solucionar problemas de bloqueo y para terminar un proceso


en interbloqueo (deadlock) o que no responde.
Para ver el Monitor de actividad el usuario precisa el permiso VIEW SERVER STATE en SQL
Server 2005 y versiones posteriores del servidor SQL Server.
Para ver el Monitor de actividad, el usuario necesita el permiso SELECT en las tablas
sysprocesses y syslocks, en la base de datos maestra, en un servidor SQL Server 2000. El
permiso para ver estas tablas se concede de forma predeterminada a la funcin de base de
datos Public.
De forma predeterminada, los miembros de las funciones fijas de base de datos sysadmin y
processadmin tienen el permiso KILL; este permiso no se puede transferir.

Para abrir el Monitor de actividad en SQL Server Management Studio, conctese al servidor
mediante el Explorador de objetos, expanda Administracin y, a continuacin, haga doble clic
en Monitor de actividad.

- 95 -
Monitor de actividad de trabajo
El Monitor de actividad de trabajo permite ver la tabla sysjobactivity mediante SQL Server
Management Studio. Puede ver todos los trabajos del servidor, o bien puede definir filtros para
limitar el nmero de trabajos mostrados. Tambin puede ordenar la informacin sobre los
trabajos haciendo clic en un encabezado de columna de la cuadrcula Actividad de Trabajo
del Agente. Por ejemplo, al seleccionar el encabezado de columna ltima ejecucin, puede
ver los trabajos en el orden en que se ejecutaron por ltima vez. Al volver a hacer clic en el
encabezado de columna, el orden de los trabajos cambia entre ascendente y descendente
basndose en la fecha en que se ejecutaron por ltima vez.

El Monitor de actividad de trabajo le permite realizar las siguientes tareas:


Iniciar y detener trabajos.
Ver las propiedades del trabajo.
Ver el historial de un determinado trabajo.
Actualizar la informacin de la cuadrcula Actividad de trabajo del agente
manualmente o establecer un intervalo de actualizacin automtico haciendo clic en
Ver configuracin de actualizacin.

- 96 -
Utilice el Monitor de actividad de trabajo cuando desee localizar los trabajos que estn
programados para su ejecucin, el ltimo resultado de los trabajos que se han ejecutado
durante la sesin actual y localizar los trabajos que se estn ejecutando actualmente o que
estn inactivos. Si el servicio del Agente SQL Server tiene un error inesperado, puede
determinar los trabajos que se estaban ejecutando buscando en la sesin anterior del Monitor
de Actividad de Trabajo.

Para Ver la Actividad de Trabajo (SQL Server Management Studio)


Cuando se inicia el servicio del Agente Microsoft SQL Server, se crea una nueva sesin y la
tabla sysjobactivity de la base de datos msdb se llena con todos los trabajos definidos que
existen. En esta tabla se registra la actividad y el estado actuales de los trabajos. Puede utilizar
el Monitor de Actividad de trabajo del Agente SQL Server para ver el estado actual de los
trabajos. Si el servicio del Agente SQL Server finaliza inesperadamente, puede consultar la
tabla sysjobactivity para ver qu trabajos se estaban ejecutando cuando finaliz el servicio.

Para ver la actividad de los trabajos


En el Explorador de objetos, conctese a una instancia del Motor de base de datos
de SQL Server y expndala.
Expanda Agente SQL Server.
Haga clic con el botn secundario en Monitor de Actividad de Trabajo y haga clic en
Ver actividad de trabajo.
En el Monitor de actividad de trabajo, puede ver los detalles de cada trabajo definido
para este servidor.
Haga clic con el botn secundario en un trabajo para iniciarlo, detenerlo, habilitarlo o
deshabilitarlo, actualizar el estado que se muestra en el Monitor de Actividad de
Trabajo, eliminarlo o ver su historial o sus propiedades. Para iniciar, detener, habilitar o
deshabilitar, o actualizar varios trabajos, seleccione varias filas y haga clic con el botn
secundario en la seleccin.
Para actualizar el Monitor de actividad de trabajo, haga clic en Actualizar. Para ver
menos filas, haga clic en Filtro y escriba los parmetros del filtro.
Tambin puede ver la actividad de trabajo de la sesin actual mediante el procedimiento
almacenado sp_help_jobactivity.

- 97 -
Sesiones del Agente SQL Server
El Agente SQL Server crea una sesin cada vez que se inicia el servicio. Al crear una sesin, la
tabla sysjobactivity de la base de datos msdb se rellena con todos los trabajos definidos
existentes. Esta tabla mantiene la ltima actividad para los trabajos cuando se reinicia el
Agente SQL Server. Cada sesin registra la actividad de trabajo normal del Agente SQL Server
desde el inicio del trabajo hasta que se termina. La informacin acerca de estas sesiones se
almacena en la tabla syssessions de la base de datos msdb.

Funciones y Vistas de Administracin Dinmica


Las funciones y vistas de administracin dinmica devuelven informacin sobre el estado del
servidor que se puede utilizar para controlar el estado de una instancia del servidor, para
diagnosticar problemas y para optimizar el rendimiento.

Hay dos tipos de funciones y vistas de administracin dinmica:


Funciones y vistas de administracin dinmica con mbito en el servidor. Se requiere el
permiso VIEW SERVER STATE en el servidor.
Funciones y vistas de administracin dinmica con mbito en la base de datos. Se
requiere el permiso VIEW DATABASE STATE en la base de datos.

Para ejecutar una consulta en una funcin o vista de administracin dinmica, es necesario el
permiso SELECT sobre el objeto y el permiso VIEW SERVER STATE o VIEW DATABASE
STATE. As podr restringir de forma selectiva el acceso de un usuario o inicio de sesin a las

- 98 -
funciones y vistas de administracin dinmica. Para ello, cree primero el usuario en la base de
datos master y, a continuacin, deniguele el permiso SELECT sobre las funciones o vistas de
administracin dinmica a las que no desea que tenga acceso. Despus de esto, el usuario no
podr seleccionar ninguna de estas funciones o vistas de administracin dinmica, sin tener en
cuenta el contexto de la base de datos del usuario.

Nota: Dado que el permiso DENY tiene prioridad, si un usuario tiene concedido el permiso
VIEW SERVER STATE, pero tiene denegado el permiso VIEW DATABASE STATE, el usuario
podr ver la informacin en el servidor, pero no en la base de datos.

Se muestran a continuacin algunas de las vistas de administracin dinmica ms comunes:

Vista de Administracin
Descripcin
Dinmica

sys.dm_db_partition_stats Devuelve informacin de pgina y recuento de filas de cada particin en la


base de datos actual.

sys.dm_exec_sessions Devuelve una fila por cada sesin autenticada en SQL Server.
sys.dm_exec_sessions es una vista de mbito de servidor que muestra
informacin acerca de todas las conexiones de usuario activas y las tareas
internas.

sys.dm_io_pending_io_requests Devuelve una fila para cada peticin de E/S pendiente de SQL Server.

sys.dm_os_memory_pools Devuelve una fila para cada almacn de objetos en la instancia de SQL
Server.

sys.dm_os_threads Devuelve una lista de todos los subprocesos del sistema operativo SQL
Server que se estn ejecutando en el proceso de SQL Server.

sys.dm_broker_queue_monitors Devuelve una fila por cada monitor de cola en la instancia. Un monitor de cola
administra la activacin de una cola.

sys.dm_tran_locks Devuelve informacin acerca de los recursos del administrador de bloqueos


activos actualmente.

Vistas de Catlogo (Transact-SQL)


Las vistas de catlogo devuelven informacin utilizada por el Motor de base de datos de SQL
Server 2005 de Microsoft. Se recomienda utilizar las vistas de catlogo porque son la interfaz
ms general para los metadatos del catlogo y proporcionan el mtodo ms eficaz para
obtener, transformar y presentar formas personalizadas de esta informacin. Todos los
metadatos del catlogo disponibles para el usuario se exponen mediante las vistas de catlogo.

Las vistas de catlogo no contienen informacin sobre los datos de catlogo de rplica, copia
de seguridad, plan de mantenimiento de bases de datos o Agente SQL Server.

Algunas vistas de catlogo heredan filas de otras vistas de catlogo. Por ejemplo, la vista de
catlogo sys.tables hereda de la vista de catlogo sys.objetcs. La vista de catlogo
sys.objects se denomina vista base y la vista sys.tables se denomina vista derivada. La vista
de catlogo sys.tables devuelve las columnas especficas de tablas y todas las columnas que
devuelve la vista de catlogo sys.objects. La vista de catlogo sys.objects devuelve filas de
objetos distintos de tablas, como procedimientos almacenados y vistas. Despus de crear una
tabla, sus metadatos se devuelven en ambas vistas. Si bien las dos vistas de catlogo
devuelven diferentes niveles de informacin sobre la tabla, slo existe una entrada en los
metadatos para esta tabla con un nombre y un object_id. Esto se puede resumir de la manera
siguiente:
La vista base contiene un subconjunto de columnas y un superconjunto de filas.

- 99 -
La vista derivada contiene un superconjunto de columnas y un subconjunto de filas.

Consulta de una Vista de Administracin Dinmica


Todas las funciones y vistas de administracin dinmica existen en el esquema sys y siguen la
convencin de nomenclatura siguiente: dm_*. Cuando utilice una funcin o vista de
administracin dinmica, debe agregar un prefijo al nombre de la funcin o vista mediante el
esquema sys.

Por ejemplo, para consultar la vista de administracin dinmica dm_os_wait_stats, ejecute la


consulta siguiente:

SELECT wait_type, wait_time_ms


FROM sys.dm_os_wait_stats
GO

- 100 -
2- Monitor de Sistemas (Windows)
Utilice el Monitor de sistema para supervisar el uso de los recursos del sistema. Recopile y vea
datos de rendimiento en tiempo real en forma de contadores para recursos de servidor, como el
uso del procesador y la memoria, y para muchos recursos de Microsoft SQL Server, como los
bloqueos y las transacciones.
Para iniciar el Monitor de sistema en Windows en el men Inicio, haga clic en Ejecutar, escriba
perfmon en el cuadro de texto y haga clic en Aceptar. O seleccione la opcin Rendimiento de
las Herramientas Administrativas del Panel de Control.

Usar Objetos de SQL Server


SQL Server incluye objetos y contadores que puede utilizar el Monitor de Sistema para
monitorear la actividad de los equipos en los que se ejecute una instancia de SQL Server. Un
objeto es cualquier recurso de SQL Server como, por ejemplo, un bloqueo de SQL Server o un
proceso de Windows XP. Cada objeto contiene uno o ms contadores que determinan diversos
aspectos de los objetos que se van a Monitorear. Por ejemplo, el objeto Bloqueos de SQL
Server contiene los contadores Nmero de interbloqueos/seg. y Tiempos de espera de
bloqueos/seg.

Algunos objetos tienen varias instancias si existen varios recursos de un determinado tipo en el
equipo. Por ejemplo, el tipo de objeto Procesador tendr varias instancias si un sistema
contiene varios procesadores. El tipo de objeto Bases de datos tiene una instancia para cada
base de datos de SQL Server. Algunos tipos de objetos (por ejemplo, el objeto Administrador
de memoria) tienen slo una instancia. Si un tipo de objeto tiene varias instancias, puede
agregar contadores para realizar un seguimiento de las estadsticas relativas a cada instancia
o, en muchos casos, de todas las instancias a la vez. Los contadores de la instancia
predeterminada aparecen con el formato SQLServer:<object name>. Los contadores de las

- 101 -
instancias con nombre aparecen con el formato MSSQL$<instance name>:<counter name> o
SQLAgent$<instance name>:<counter name>.

Al agregar o quitar contadores en el grfico y guardar la configuracin del grfico, puede


especificar los objetos y contadores de SQL Server que se supervisan al iniciar el Monitor de
sistema.
Puede configurar el Monitor de sistema para que muestre las estadsticas de cualquier
contador de SQL Server. Adems, puede establecer un valor de umbral para cualquier
contador de SQL Server y generar posteriormente una alerta cuando un contador supere dicho
umbral.

Nota: Las estadsticas de SQL Server se muestran slo si se instala una instancia de SQL
Server. Si detiene y reinicia una instancia de SQL Server, se interrumpir la presentacin de
estadsticas y, despus, se reanudar automticamente. Tenga en cuenta tambin que ver
los contadores de SQL Server en el complemento del Monitor de sistema incluso si SQL Server
no se est ejecutando. En una instancia agrupada, los contadores de rendimiento slo
funcionan en el nodo en el que se ejecuta SQL Server.

En la siguiente tabla se describen los objetos de SQL Server.

Objeto de rendimiento Descripcin

SQLServer:Mtodos de Mide y realiza bsquedas mediante objetos de base de datos de SQL Server y su
acceso asignacin (por ejemplo, el nmero de bsquedas de ndices o de pginas
asignadas a ndices y datos).

SQLServer:Backup Device Proporciona informacin acerca de dispositivos de copia de seguridad utilizados para
operaciones de copia de seguridad y restauracin, como el rendimiento del
dispositivo.

SQLServer:Buffer Manager Proporciona informacin acerca de los bferes de memoria que utiliza SQL Server,
como la memoria disponible y la proporcin de aciertos de cach del bfer.

SQLServer:Buffer Manager Proporciona informacin acerca de la frecuencia con que SQL Server solicita
pginas libres y obtiene acceso a las mismas.

SQLServer:CLR Proporciona informacin acerca de CLR.

SQLServer:Cursor Proporciona informacin acerca de los cursores.


Manager by Type

SQLServer:Cursor Proporciona informacin acerca de los cursores.


Manager Total

SQLServer: Database Proporciona informacin acerca de la creacin de reflejos de la base de datos.


Mirroring

SQLServer:Databases Proporciona informacin acerca de una base de datos de SQL Server, como la
cantidad de espacio de registro disponible o el nmero de transacciones activas en
la base de datos. Pueden existir mltiples instancias de este objeto.

SQLServer:Exec Statistics Proporciona informacin acerca de las estadsticas de ejecucin.

SQLServer General Proporciona informacin acerca de la actividad general de todo el servidor, como el
Statistics nmero de usuarios conectados a una instancia de SQL Server.

SQLServer Latches Proporciona informacin acerca de los pestillos de los recursos internos, como las
pginas de las bases de datos que utiliza SQL Server.

SQLServer:Locks Proporciona informacin acerca de las peticiones de bloqueo individuales que realiza
SQL Server, como los tiempos de espera de bloqueos y los interbloqueos. Pueden
existir mltiples instancias de este objeto.

- 102 -
SQLServer:Memory Proporciona informacin acerca de la utilizacin de memoria de SQL Server como,
Manager por ejemplo, el nmero total de estructuras de bloqueo asignadas actualmente.

SQLServer:Cach del plan Proporciona informacin acerca de la cach de SQL Server que se utiliza para
almacenar objetos como procedimientos almacenados, desencadenadores y planes
de consultas.

SQLServer:SQL Errors Proporciona informacin acerca de los errores de SQL Server.

SQLServer:Estadsticas de Proporciona informacin acerca de aspectos de consultas de Transact-SQL, como el


SQL nmero de lotes de instrucciones Transact-SQL que recibe SQL Server.

SQLServer Transactions Proporciona informacin acerca de las transacciones activas de SQL Server, como
el nmero global de transacciones y el nmero de transacciones de instantneas.

SQLServer:User Settable Realiza una supervisin personalizada. Cada contador puede ser un procedimiento
almacenado personalizado o cualquier instruccin Transact-SQL que devuelva un
valor para Monitorear.

SQLServer: Wait Statistics Proporciona informacin acerca de las esperas.

La posibilidad de utilizar los objetos de SQL Server depende de los permisos de Windows,
salvo SQLAgent:Alertas. Los usuarios deben ser miembros de la funcin fija de servidor
sysadmin para poder utilizar SQLAgent:Alertas.

Consideraciones de Monitoreo de SQL Server


Si est ejecutando el sistema operativo de servidor de Microsoft Windows, utilice la herramienta
grfica Monitor de Sistema para medir el rendimiento de SQL Server. Puede ver en los
objetos de SQL Server, los contadores de rendimiento y el comportamiento de otros objetos,
como procesadores, memoria, cach, subprocesos y procesos. Cada uno de estos objetos
tiene asociado un conjunto de contadores que miden el uso de los dispositivos, la longitud de
las colas, las demoras y otros indicadores del rendimiento y la congestin interna.

Al monitorear SQL Server y el sistema operativo Microsoft Windows para investigar problemas
relacionados con el rendimiento, hay tres reas principales en las que debe concentrarse
inicialmente:
Actividad del disco
Uso del procesador
Uso de la memoria

Puede resultar til monitorear el sistema operativo Windows y los contadores de SQL Server al
mismo tiempo para determinar las posibles correlaciones entre el rendimiento de SQL Server y
el de Windows. Por ejemplo, la supervisin simultnea de los contadores de E/S de disco de
Windows y los contadores del Administrador de bfer de SQL Server puede mostrar el
comportamiento del sistema en su totalidad.
La supervisin de un equipo en el que se ejecuta el Monitor de sistema puede afectar un poco
al rendimiento del equipo. Por tanto, registre los datos del Monitor de Sistema en otro disco o
en otro equipo para reducir as el efecto en el equipo que est supervisando, o bien ejecute el
Monitor de Sistema desde un equipo remoto. Supervise slo los contadores en los que est
interesado. Si supervisa demasiados contadores, la sobrecarga de uso de los recursos se
agrega al proceso de supervisin y afecta al rendimiento del equipo que se est supervisando.

El Monitor de sistema permite obtener estadsticas sobre la actividad y el rendimiento actuales


de SQL Server. Con el Monitor de sistema, puede:
Ver simultneamente datos de cualquier nmero de equipos.

- 103 -
Ver y cambiar grficos para reflejar la actividad actual y mostrar valores de contadores
que se actualizan con la frecuencia definida por el usuario.
Exportar datos desde grficos, registros, registros de alertas e informes a aplicaciones
de hoja de clculo o de base de datos para manipularlos e imprimirlos.
Agregar alertas del sistema que muestran un evento en el registro de alertas y que
pueden notificarse mediante una alerta de red.
Ejecutar un programa predefinido la primera vez, o todas las veces, que el valor de un
contador sea superior o inferior a un valor definido por el usuario.
Crear archivos de registro que contengan datos relativos a diversos objetos de equipos
diferentes.
Anexar a un archivo secciones seleccionadas de otros archivos de registro existentes
para crear un archivo de almacenamiento a largo plazo.
Ver informes de la actividad actual o crear informes a partir de archivos de registro
existentes.
Guardar la configuracin de grficos, alertas, registros o informes individuales, o bien
de toda el rea de trabajo, para volverla a utilizar.

Monitorear la Actividad del Disco


Microsoft SQL Server utiliza las llamadas de entrada y salida (E/S) del sistema operativo
Microsoft Windows para realizar operaciones de lectura y escritura en el disco. SQL Server
administra cundo y cmo se realiza la E/S del disco, pero el sistema operativo Windows
realiza las operaciones de E/S subyacentes. El subsistema de E/S incluye el bus del sistema,
tarjetas controladoras de disco, discos, unidades de cinta, la unidad de CD-ROM y muchos
otros dispositivos de E/S. La E/S del disco es una causa frecuente de los atascos en un
sistema.
La supervisin de la actividad del disco implica dos aspectos bsicos:
Monitorear la E/S del disco y detectar la paginacin excesiva
Aislar la actividad del disco creada por SQL Server

Monitorear la E/S del Disco y Detectar la Paginacin Excesiva


Dos de los contadores que se pueden Monitorear para determinar la actividad del disco son:
DiscoFsico: % Tiempo de disco
DiscoFsico: Long. media de la cola de disco

En el Monitor del sistema, el contador DiscoFsico: % Tiempo de disco supervisa el


porcentaje de tiempo que el disco est ocupado con operaciones de lectura y escritura. Si el
valor del contador DiscoFsico: % Tiempo de disco es alto (ms del 90%), compruebe el
contador DiscoFsico: Longitud actual de la cola de disco para ver el nmero de peticiones
del sistema que estn en espera de acceso al disco. El nmero de peticiones de E/S en espera
debe mantenerse en un mximo de 1.5 a 2 veces el nmero de ejes que componen el disco
fsico. La mayor parte de los discos tienen un eje, aunque los dispositivos de matriz redundante
de discos independientes (RAID, Redundant Array of Independent Disks) suelen tener ms. Un
dispositivo RAID de hardware aparece como un disco fsico en el Monitor del Sistema. Los
dispositivos RAID creados mediante software aparecen como varias instancias en el Monitor
del Sistema.

Utilice los valores de los contadores Longitud actual de la cola de disco y % Tiempo de
disco para detectar puntos de congestin en el subsistema de disco. Si los valores de los
contadores Longitud actual de la cola de disco y % Tiempo de disco son altos, considere la
posibilidad de:
Utilizar una unidad de disco ms rpida.

- 104 -
Mover algunos archivos a otro disco o servidor.
Agregar discos a una matriz RAID, si se est utilizando una.

Si utiliza un dispositivo RAID, el contador % Tiempo de disco puede indicar un valor superior
al 100%. En tal caso, utilice el contador DiscoFsico: Long. media de la cola de disco para
determinar el promedio de peticiones del sistema que estn en espera de acceso al disco.
Las aplicaciones y sistemas enlazados a E/S pueden mantener el disco constantemente activo.
Supervise el contador Memoria: Errores de pgina/s. para asegurarse de que la actividad del
disco no est causada por la paginacin. En Windows, la paginacin est causada por lo
siguiente:
Procesos configurados para utilizar demasiada memoria
Actividad del sistema de archivos

Si tiene ms de una particin lgica en el mismo disco duro, utilice los contadores Disco lgico
en lugar de los contadores Disco fsico. Si observa los contadores de disco lgico, podr
determinar los archivos con un acceso frecuente. Una vez que haya encontrado los discos con
mucha actividad de lectura y escritura, observe los contadores especficos de lectura y
escritura para ver el tipo de actividad del disco que causa la carga en cada volumen lgico. Por
ejemplo, Disco lgico: Bytes escritos en disco por segundo.

Aislar la Actividad del Disco creada por SQL Server


Dos de los contadores que se pueden Monitorear para determinar el volumen de actividad de
E/S que generan los componentes de SQL Server son los siguientes:
SQL Server:Buffer Manager:Lecturas de pgina/seg.
SQL Server:Buffer Manager:Escrituras de pgina/seg.

En el Monitor del Sistema, estos contadores supervisan el volumen de actividad de E/S que
generan los componentes de SQL Server examinando las reas de rendimiento siguientes:
Escritura de pginas en disco
Lectura de pginas del disco

Si los valores de estos contadores comienzan a acercarse al lmite de capacidad del


subsistema de E/S de hardware, intente reducirlos, ya sea optimizando la aplicacin o la base
de datos, para reducir las operaciones de E/S (como el alcance de los ndices, mejores ndices
o la normalizacin), aumentando la capacidad de E/S del hardware o agregando memoria. Por
ejemplo, puede utilizar el Asistente para la optimizacin de motor de base de datos para
analizar cargas de trabajo habituales de SQL Server y crear recomendaciones para ndices,
vistas indexadas y particiones con el fin de mejorar el rendimiento del servidor.

Monitorear el Uso de la CPU


Supervise una instancia de Microsoft SQL Server peridicamente para determinar si los ndices
de uso de la CPU son normales. Un ndice de uso de la CPU constantemente alto puede
indicar la necesidad de actualizar la CPU o de agregar varios procesadores. Adems, un uso
alto de la CPU puede indicar que hay una aplicacin mal optimizada o diseada. La
optimizacin de la aplicacin puede reducir el uso de la CPU.
El contador Procesador: % de tiempo de procesador en el Monitor de sistema es la forma
ms eficaz de determinar el uso de la CPU. Este contador supervisa el tiempo que la CPU
dedica a la ejecucin de un subproceso que no est inactivo. Un estado continuado de entre el
80 y el 90 por ciento puede ser indicativo de que es necesario actualizar la CPU o bien agregar
ms procesadores. Para sistemas con mltiples procesadores, es necesario monitorear una
instancia independiente de este contador para cada procesador. Este valor representa la suma

- 105 -
del tiempo de procesador en un procesador especfico. Para determinar el promedio de todos
los procesadores, utilice el contador Sistema: % Tiempo total de procesador.

Para monitorear el uso del procesador tambin puede utilizar los siguientes contadores:
Procesador: % Tiempo privilegiado: Porcentaje de tiempo de procesador dedicado
a la ejecucin de comandos del ncleo de Microsoft Windows, como el procesamiento
de solicitudes de E/S de SQL Server. Si este contador es constantemente alto cuando
los contadores Disco fsico son altos, considere la posibilidad de instalar un
subsistema de disco ms rpido o eficaz.
Procesador: % Tiempo de usuario: Porcentaje de tiempo que el procesador dedica a
la ejecucin de procesos de usuario, como por ejemplo SQL Server.
Sistema: Longitud de la cola del procesador: Nmero de subprocesos en espera del
tiempo del procesador. Se produce un punto de congestin en el procesador cuando
los subprocesos de un proceso requieren ms ciclos de procesador que los
disponibles. Si bastantes procesos intentan utilizar el tiempo de procesador, puede que
sea necesario instalar un procesador ms rpido. Si dispone de una sistema con
mltiples procesadores, puede agregar un procesador.

Nota: Los diversos controladores de disco emplean distintos intervalos de tiempo de proceso
del ncleo. Los controladores eficaces utilizan menos tiempo privilegiado y dejan ms tiempo
de proceso disponible para aplicaciones del usuario, y aumentan as el rendimiento global.

Cuando examine el uso de los procesadores, tenga en cuenta el tipo de trabajo que realiza la
instancia de SQL Server. Si SQL Server realiza muchos clculos, como consultas relativas a
agregados o consultas enlazadas a memoria que no requieren E/S del disco, puede utilizarse el
100% del tiempo del procesador. Si esto afecta negativamente al rendimiento de otras
aplicaciones, pruebe a variar la carga de trabajo. Por ejemplo, dedique el equipo a ejecutar la
instancia de SQL Server.
Los valores de uso en torno al 100%, que indican que se estn procesando muchas peticiones
de clientes, pueden mostrar que los procesos estn en cola, en espera del tiempo del
procesador y estn causando un punto de congestin. Para solucionar este problema, agregue
procesadores de mayor velocidad.
Monitorear el Uso de la Memoria
Monitoree una instancia de SQL Server peridicamente para confirmar que la utilizacin de la
memoria se encuentra dentro de los intervalos normales.
Para Monitorear las condiciones de memoria insuficiente, utilice los contadores de objetos
siguientes:
Memoria: Bytes disponibles
Memoria: Pginas/seg

El contador Bytes disponibles indica en bytes la memoria disponible actualmente para


procesos. El contador Pginas/seg indica el nmero de pginas que se han recuperado del
disco debido a errores de pgina no recuperables o que se han escrito en disco para liberar
espacio en el espacio de trabajo debido a errores de pgina.
Un valor bajo en el contador Bytes disponibles puede indicar una escasez general de
memoria en el equipo o que un programa no est liberando memoria. Un valor alto en el
contador Pginas/seg puede indicar una paginacin excesiva. Supervise el contador Memoria:
Errores de pgina/s. para asegurarse de que la actividad del disco no est causada por la
paginacin.
Una tasa baja de paginacin (y por tanto, de errores de pgina) es normal, incluso si el equipo
tiene mucha memoria disponible. El Administrador de memoria virtual (VMM) de Microsoft
Windows sustrae pginas de SQL Server y otros procesos a medida que recorta los tamaos
del espacio de trabajo para estos procesos, lo que suele provocar errores de pgina. Para

- 106 -
determinar si SQL Server u otro proceso, est causando una paginacin excesiva, supervise el
contador Proceso: Errores de pgina/s. de la instancia del proceso de SQL Server.

Aislar la Memoria que utiliza SQL Server


De forma predeterminada, SQL Server cambia dinmicamente sus necesidades de memoria
segn los recursos del sistema disponibles. Si SQL Server necesita ms memoria, consulta el
sistema operativo para determinar si hay memoria fsica disponible y la utiliza. Si SQL Server
no necesita la memoria que tiene asignada actualmente, la libera para el sistema operativo. Sin
embargo, el uso dinmico de la memoria puede anularse mediante las opciones de
configuracin de servidor min server memory y max server memory
Para Monitorear la cantidad de memoria que utiliza SQL Server, examine los siguientes
contadores de rendimiento:
Proceso: Espacio de trabajo
SQL Server: Buffer Manager: Frecuencia de aciertos de cach del bfer
SQL Server: Buffer Manager: Total de pginas
SQL Server: Memory Manager: Memoria total del servidor (KB)

El contador Espacio de trabajo muestra la cantidad de memoria que utiliza un proceso. Si este
nmero es constantemente inferior a la cantidad de memoria establecida en las opciones del
servidor min server memory y max server memory, SQL Server est configurado para utilizar
ms memoria de la que necesita.
El contador Frecuencia de aciertos de cach del bfer es especfico de la aplicacin. Sin
embargo, es preferible un porcentaje del 90% o superior. Agregue ms memoria hasta que el
valor sea superior al 90%, lo que indica que se ha atendido ms del 90% de todas las
peticiones de informacin de la cach de datos.
Si el valor del contador Memoria total del servidor (KB) es constantemente alto en
comparacin con la cantidad de memoria fsica del equipo, puede que indique que se necesita
ms memoria.

- 107 -
3- Analizador de SQL Server (SQL Server Profiler)
Introduccin
El Analizador de SQL Server de Microsoft es una interfaz grfica de usuario de la Traza de
SQL que se utiliza para supervisar una instancia del Motor de base de datos de SQL Server o
de Analysis Services. Puede capturar y guardar datos acerca de cada evento en un archivo o
en una tabla para analizarlos posteriormente. Por ejemplo, puede supervisar un entorno de
produccin para ver qu procedimientos almacenados afectan negativamente al rendimiento al
ejecutarse demasiado lentamente.
Para ejecutar Analizador de SQL Server, en el men Inicio, elija Todos los programas,
Microsoft SQL Server 2005, Herramientas de rendimiento y, a continuacin, haga clic en
Analizador de SQL Server.

Terminologa del Analizador de SQL Server


Para utilizar el Analizador de SQL Server, debe comprender la terminologa que describe cmo
funciona la herramienta.
Evento: Un evento es una accin generada dentro de una instancia del Motor de base
de datos de SQL Server. Por ejemplo:
o Conexiones, errores y desconexiones de inicio de sesin.
o Instrucciones SELECT, INSERT, UPDATE y DELETE de Transact-SQL.
o Estado de lotes de RPC (llamada a procedimiento remoto).
o Inicio o finalizacin de procedimientos almacenados.
o Inicio o finalizacin de instrucciones incluidas en procedimientos almacenados.
o Inicio o finalizacin de lotes SQL.
o Errores escritos en el registro de errores de SQL Server.
o Bloqueos adquiridos o liberados en objetos de base de datos.
o Cursores abiertos.
o Comprobaciones de permisos de seguridad.

- 108 -
Todos los datos generados por un evento se muestran en la traza en una sola fila. Esta
fila est intersectada por columnas de datos que describen el evento de forma
detallada.
Clase de evento: Una clase de evento es un tipo de evento del cual se puede realizar
un seguimiento. La clase de evento contiene todos los datos que puede comunicar un
evento. Por ejemplo:
o SQL:BatchCompleted
o Audit Login
o Audit Logout
o Lock:Acquired
o Lock:Released
Categora de eventos: Una categora de eventos define cmo se agrupan los eventos
en el Analizador de SQL Server. Por ejemplo, todas las clases de eventos de bloqueo
se agrupan dentro de la categora de eventos Bloqueos. Sin embargo, las categoras
de eventos slo existen en el Analizador de SQL Server. Este trmino no refleja cmo
se agrupan los eventos del motor.
Columna de datos: Una columna de datos es un atributo de una clase de evento
capturada en la traza. Como la clase de evento determina el tipo de datos que se
pueden recopilar, no se aplicarn todas las columnas de datos a todas las clases de
evento. Por ejemplo, en una traza que capture la clase de evento Lock:Acquired, la
columna de datos BinaryData contiene el valor del Id. o la fila de la pgina bloqueada,
pero la columna de datos Integer Data no contiene ningn valor porque no es aplicable
a la clase de evento que se captura.
Plantilla: Una plantilla define la configuracin predeterminada de una traza. En
concreto, incluye las clases de evento que desea supervisar con el Analizador de SQL
Server. Por ejemplo, puede crear una plantilla que especifique los eventos, las
columnas de datos y los filtros que desea utilizar. Las plantillas no se ejecutan, sino
que se guardan como archivos con la extensin .tdf. Una vez guardada, una plantilla
controla los datos de la traza que se capturan cuando se inicia una traza basada en la
plantilla en cuestin.
Traza: Una traza captura datos basndose en clases de evento, columnas de datos y
filtros seleccionados. Por ejemplo, puede crear una traza para supervisar errores de
excepcin. Para ello, seleccione la clase de evento Exception y las columnas de datos
Error, State y Severity. Deben recopilarse los datos de estas tres columnas para que
los resultados de la traza proporcionen datos con significado. Una vez hecho esto,
puede ejecutar una traza configurada de esta forma y recopilar datos de cualquier
evento Exception que se produzca en el servidor. Los datos de traza se pueden
guardar o utilizar inmediatamente para el anlisis. Las trazas se pueden volver a
reproducir posteriormente, aunque ciertos eventos, como los eventos Exception,
nunca se vuelven a reproducir. Tambin puede guardar la traza como plantilla para
crear trazas parecidas en el futuro.
SQL Server ofrece dos formas de incluir en una traza una instancia de SQL Server:
puede hacerlo con el Analizador de SQL Server o con procedimientos almacenados del
sistema.
Filtro: Al crear una traza o una plantilla, puede definir criterios para filtrar los datos
recopilados por el evento. Para que las trazas no sean demasiado grandes, puede
filtrarlas de forma que slo se recopile un subconjunto de los datos del evento. Por
ejemplo, puede limitar los nombres de usuario de Microsoft Windows de la traza a
usuarios especficos, con lo que reducir los datos de salida.
Si no se establece un filtro, se devolvern todos los eventos de las clases de eventos
seleccionadas en el resultado de la traza.

Usar el Analizador de SQL Server

- 109 -
El Analizador de SQL Server muestra el modo en que SQL Server resuelve las consultas
internamente. Esto permite a los administradores ver exactamente las instrucciones Transact-
SQL o las Expresiones multidimensionales que se envan al servidor y como el servidor tiene
acceso a la base de datos o al cubo para devolver los conjuntos de resultados.

Mediante el Analizador de SQL Server puede hacer lo siguiente:


Crear una traza que se base en una plantilla que se puede reutilizar.
Observar el resultado de la traza a medida que se ejecuta la traza
Almacenar el resultado de una traza en una tabla
Iniciar, detener, pausar y modificar el resultado de la traza segn sea necesario
Reproducir el resultado de la traza

Utilice el Analizador de SQL Server para supervisar nicamente los eventos en los que est
interesado. Si las trazas son demasiado grandes, puede filtrarlas a partir de la informacin que
desea, de forma que slo se recopile un subconjunto de los datos del evento. Si se supervisan
demasiados eventos, aumentar la sobrecarga del servidor y el proceso de supervisin, y
podra hacer que el archivo o la tabla de traza crezcan demasiado, especialmente cuando el
proceso de supervisin se realiza durante un perodo prolongado de tiempo.

Plantillas del Analizador de SQL Server


Puede utilizar el Analizador de SQL Server para crear plantillas que definan las clases de
evento y columnas de datos que desea incluir en las trazas. Despus de definir y guardar la
plantilla, ejecute una traza que registre los datos de cada clase de evento que ha seleccionado.
Una sola plantilla puede utilizarse en varias trazas puesto que la plantilla no se ejecuta como
tal.
El Analizador de SQL Server incluye plantillas de traza predefinidas para que pueda configurar
fcilmente las clases de evento que seguramente necesitar para trazas concretas. La plantilla
Standard, por ejemplo, le ayuda a crear una traza genrica para registrar inicios y cierres de
sesin, lotes finalizados e informacin de conexin. Esta plantilla permite ejecutar trazas sin
modificarlas o como punto de inicio para plantillas adicionales con configuraciones de evento
distintas.

Nota: Adems de las trazas de las plantillas predefinidas, el Analizador de SQL Server tambin
permite crearlas a partir de una plantilla en blanco que no contenga ninguna clase de evento
de manera predeterminada. Puede resultar til utilizar la plantilla de traza en blanco cuando
una traza planeada no se parece a la configuracin de ninguna de las plantillas predefinidas.

El Analizador de SQL Server permite realizar un seguimiento de diversos tipos de servidor. Sin
embargo, las clases de evento que pueden incluirse no son las mismas para cada tipo de
servidor. Por lo tanto, el Analizador de SQL Server mantiene plantillas distintas para los
diferentes tipos de servidor y pone a disposicin del usuario la plantilla especfica
correspondiente al tipo de servidor seleccionado.

Plantillas Predefinidas
Adems de la plantilla Standard (predeterminada), el Analizador de SQL Server incluye varias
plantillas predefinidas para supervisar determinados tipos de evento. En la siguiente tabla
figura una lista de las plantillas predefinidas, su finalidad y las clases de eventos sobre las que
capturan informacin.

Nombre de
Finalidad de la plantilla Clases de evento
plantilla

SP_Counts Captura el comportamiento de la ejecucin de procedimientos SP:Starting

- 110 -
almacenados a lo largo del tiempo.

Standard Punto de inicio genrico para crear una traza. Captura todos los Audit Login
procedimientos almacenados y lotes de Transact-SQL que se Audit Logout
ejecutan. Utilice esta plantilla para supervisar la actividad general del ExistingConnection
servidor de base de datos. RPC:Completed
SQL:BatchCompleted
SQL:BatchStarting

TSQL Captura todas las instrucciones Transact-SQL que los clientes envan Audit Login
a SQL Server y el momento en que se han emitido. Utilice esta Audit Logout
plantilla para depurar las aplicaciones cliente. ExistingConnection
RPC:Starting
SQL:BatchStarting

TSQL_Duration Captura todas las instrucciones Transact-SQL que los clientes envan RPC:Completed
a SQL Server, el tiempo de ejecucin (en milisegundos), y las agrupa SQL:BatchCompleted
por duracin. Utilice esta plantilla para identificar consultas de
ejecucin lenta.

TSQL_Grouped Captura todas las instrucciones Transact-SQL enviadas a SQL Server Audit Login
y el momento en que se han emitido. Agrupa la informacin por el Audit Logout
usuario o cliente que ha enviado la instruccin. Utilice esta plantilla ExistingConnection
para investigar consultas de un cliente o usuario determinado. RPC:Starting
SQL:BatchStarting

TSQL_Replay Captura informacin detallada acerca de las instrucciones Transact- CursorClose


SQL necesaria para cuando se reproduzca la traza. Utilice esta CursorExecute
plantilla para ejecutar optimizaciones iterativas tales como pruebas CursorOpen
comparativas. CursorPrepare
CursorUnprepare
Audit Login
Audit Logout
Existing Connection
RPC Output
Parameter
RPC:Completed
RPC:Starting
Exec Prepared SQL
Prepare SQL
SQL:BatchCompleted
SQL:BatchStarting

TSQL_SPs Captura informacin detallada acerca de todos los procedimientos Audit Login
almacenados en ejecucin. Utilice esta plantilla para analizar los Audit Logout
pasos de componente de los procedimientos almacenados. Agregue ExistingConnection
el evento SP:Recompile si sospecha que se estn volviendo a RPC:Starting
compilar los procedimientos. SP:Completed
SP:Starting
SP:StmtStarting
SQL:BatchStarting

Tuning Captura informacin acerca de los procedimientos almacenados y la RPC:Completed


ejecucin de lotes de Transact-SQL. Utilice esta plantilla para crear SP:StmtCompleted
un archivo de salida de la traza que el Asistente para la optimizacin SQL:BatchCompleted
de motor de base de datos pueda utilizar como carga de trabajo para
optimizar las bases de datos.

Plantilla Predeterminada
El Analizador de SQL Server designa de forma automtica la plantilla Standard como plantilla
predeterminada para aplicar a cualquier traza nueva. No obstante, puede cambiar la plantilla
predeterminada por cualquier otra predefinida o definida por el usuario. Para cambiar la plantilla
predeterminada, active la casilla de verificacin Usar como plantilla predeterminada para

- 111 -
tipo de servidor seleccionado cuando cree o edite una plantilla desde la pestaa General del
cuadro de dilogo Propiedades de la plantilla de traza.
Para obtener acceso al cuadro de dilogo Propiedades de la plantilla de traza, en el men
Archivo del Analizador de SQL Server, seleccione Plantillas y haga clic en Nueva plantilla o
Editar plantilla.

Guardar Trazas y Plantillas de Traza


Es importante distinguir entre guardar archivos de traza y guardar plantillas de traza. Guardar
un archivo de traza implica guardar los datos de eventos capturados en un lugar especificado.
Guardar una plantilla de traza implica guardar la definicin de la traza, como las columnas de
datos, las clases de eventos o los filtros especificados.

Guardar Trazas
Guarde los datos de los eventos capturados en un archivo o una tabla de SQL Server cuando
necesite analizar o reproducir los datos capturados ms adelante. Utilice un archivo de traza
para lo siguiente:
Utilice un archivo de traza o una tabla de traza para crear una carga de trabajo a fin de
utilizarla como entrada para el Asistente, para la Optimizacin del Motor de Base de
Datos.
Utilice un archivo de traza para capturar eventos y enviar el archivo de traza a un
proveedor de asistencia tcnica para su anlisis.
Utilice las herramientas de procesamiento de consultas de SQL Server para tener
acceso a los datos o verlos en el Analizador de SQL Server. Slo pueden tener acceso
directo a la tabla de traza los miembros de la funcin fija de servidor sysadmin o el
creador de la tabla.

Nota: La captura de datos de traza en una tabla resulta una operacin ms lenta que la
captura de datos de traza en un archivo. Una alternativa es capturar los datos de traza en un
archivo, abrir el archivo de traza y, despus, guardar la traza como una tabla de traza.
Cuando utilice un archivo de traza, el Analizador de SQL Server guardar los datos de eventos
capturados (no las definiciones de traza) en un archivo de traza (*.trc) del Analizador de SQL
Server. La extensin se agrega automticamente al final del archivo al guardarlo,
independientemente de, si se ha especificado otra extensin. Por ejemplo, si especifica un
archivo de traza llamado Traza.dat, el nombre del archivo creado ser Traza.dat.trc.

Importar y Exportar Plantillas


El Analizador de SQL Server permite importar y exportar plantillas de un servidor a otro. Al
exportar una plantilla se mueve una copia de una plantilla existente al directorio especificado.
Al importar una plantilla se realiza una copia de una plantilla especificada. Cuando stas
plantillas se ven en el Analizador de SQL Server, se pueden distinguir de las plantillas del
sistema por el trmino "(usuario)" que sigue al nombre de la plantilla. Las plantillas del sistema
predefinidas no se pueden sobrescribir ni modificar directamente.

Analizar el Rendimiento con Plantillas


Si supervisa SQL Server con frecuencia, utilice plantillas para analizar el rendimiento. Las
plantillas capturan los mismos datos de eventos cada vez y utilizan la misma definicin de traza
para supervisar los mismos eventos. No tendr que definir las clases de eventos y las
columnas de datos cada vez que cree una traza. Adems, se puede proporcionar una plantilla
a otro usuario para supervisar eventos especficos de SQL Server. Por ejemplo, un proveedor
de asistencia tcnica puede proporcionar una plantilla a un cliente. El cliente puede utilizar la

- 112 -
plantilla para capturar los datos de eventos necesarios, que posteriormente enviar al
proveedor de asistencia tcnica para que los analice.

- 113 -
4- Desencadenadores DLL (DLL Triggers)
Definicin
Los desencadenadores DDL, al igual que los desencadenadores habituales, activan
procedimientos almacenados como respuesta a un evento. Sin embargo, a diferencia de los
desencadenadores DML, no se activan como respuesta a las instrucciones UPDATE, INSERT
o DELETE de una tabla o vista. En cambio, s se activan en respuesta a diversos eventos del
lenguaje de definicin de datos (DDL). Estos eventos corresponden principalmente a
instrucciones Transact-SQL que comienzan por las palabras clave CREATE, ALTER y DROP.
Determinados procedimientos almacenados del sistema que realizan operaciones de estilo
DDL tambin pueden activar desencadenadores DDL.
Los desencadenadores DDL pueden utilizarse para tareas administrativas como auditar y
regular las operaciones de base de datos.

Utilice los desencadenadores DDL cuando:


Desee evitar determinados cambios en el esquema de base de datos.
Desee que ocurra algn evento en la base de datos como respuesta a un cambio
realizado en el esquema de base de datos.
Desee registrar cambios o eventos del esquema de base de datos.

Los desencadenadores DDL slo se activan cuando se ejecutan las instrucciones DDL que los
desencadenan. Los desencadenadores DDL no se pueden utilizar como desencadenadores
INSTEAD OF.

En el siguiente ejemplo se muestra el uso de un desencadenador DDL para evitar que se


modifique o quite una tabla de una base de datos:

CREATE TRIGGER safety


ON DATABASE
FOR DROP_TABLE, ALTER_TABLE
AS
PRINT Debe desactivar los desencadenadores de seguridad antes de modificar o
eliminar bases de datos
ROLLBACK ;

Los desencadenadores DDL pueden activarse en respuesta a un evento de Transact-SQL


procesado en la base de datos actual o en el servidor actual. El mbito del desencadenador
depende del evento.

Para ver un ejemplo de desencadenadores DDL que est disponible en la base de datos de
ejemplo AdventureWorks , en el Explorador de objetos de SQL Server Management Studio,
abra la carpeta Database Triggers, que se encuentra en la carpeta Programmability de la base
de datos AdventureWorks. Haga clic con el botn secundario en ddlDatabaseTriggerLog y
seleccione Incluir desencadenador de base de datos como. De forma predeterminada, el
desencadenador DDL ddlDatabaseTriggerLog est deshabilitado.

Usar Eventos de DDL con Desencadenadores DDL


En las siguientes tablas se enumeran los eventos de DDL que se pueden utilizar para activar
un desencadenador DDL. Tenga en cuenta que cada evento corresponde a una instruccin
Transact-SQL, cuya sintaxis se ha modificado a fin de que incluya caracteres de subrayado ('_')
entre las palabras clave.
Determinados procedimientos almacenados del sistema que realizan operaciones de estilo
DDL tambin pueden activar desencadenadores DDL. Pruebe los desencadenadores DDL para

- 114 -
determinar su respuesta a los procedimientos almacenados del sistema que se ejecutan. Por
ejemplo, la instruccin CREATE TYPE y el procedimiento almacenado sp_addtype activarn
un desencadenador DDL creado en un evento CREATE_TYPE. Sin embargo, el procedimiento
almacenado sp_rename no activa ningn desencadenador DDL.

Para utilizar instrucciones de DDL en el mbito de la base de datos :


CREATE_APPLICATION_ROLE ALTER_APPLICATION_ROLE (se DROP_APPLICATION_ROLE (se
(se aplica a la instruccin CREATE aplica a la instruccin ALTER aplica a la instruccin DROP
APPLICATION ROLE y APPLICATION ROLE y APPLICATION ROLE y
sp_addapprole; si se crea un sp_approlepassword). sp_dropapprole).
esquema, este evento
desencadena tambin un evento
CREATE_SCHEMA).

CREATE_ASSEMBLY ALTER_ASSEMBLY DROP_ASSEMBLY

ALTER_AUTHORIZATION_DATA
BASE (se aplica a la instruccin
ALTER AUTHORIZATION cuando
se especifica ON DATABASE, y
sp_changedbowner).

CREATE_CERTIFICATE ALTER_CERTIFICATE DROP_CERTIFICATE

CREATE_CONTRACT DROP_CONTRACT

GRANT_DATABASE DENY_DATABASE REVOKE_DATABASE

CREATE_EVENT_NOTIFICATION DROP_EVENT_NOTIFICATION

CREATE_FUNCTION ALTER_FUNCTION DROP_FUNCTION

CREATE_INDEX ALTER_INDEX DROP_INDEX

CREATE_MESSAGE_TYPE ALTER_MESSAGE_TYPE DROP_MESSAGE_TYPE

CREATE_PARTITION_FUNCTION ALTER_PARTITION_FUNCTION DROP_PARTITION_FUNCTION

CREATE_PARTITION_SCHEME ALTER_PARTITION_SCHEME DROP_PARTITION_SCHEME

CREATE_PROCEDURE ALTER_PROCEDURE DROP_PROCEDURE

CREATE_QUEUE ALTER_QUEUE DROP_QUEUE

CREATE_REMOTE_SERVICE_BI ALTER_REMOTE_SERVICE_BINDING DROP_REMOTE_SERVICE_BIND


NDING ING

CREATE_ROLE (se aplica a la ALTER_ROLE DROP_ROLE (se aplica a la


instruccin CREATE ROLE, instruccin DROP ROLE,
sp_addrole y sp_addgroup). sp_droprole y sp_dropgroup).

CREATE_ROUTE ALTER_ROUTE DROP_ROUTE

CREATE_SCHEMA (se aplica a la ALTER_SCHEMA (se aplica a la DROP_SCHEMA


instruccin CREATE SCHEMA, instruccin ALTER SCHEMA y
sp_addrole, sp_adduser, sp_changeobjectowner).
sp_addgroup y
sp_grantdbaccess).

CREATE_SERVICE ALTER_SERVICE DROP_SERVICE

CREATE_STATISTICS DROP_STATISTICS UPDATE_STATISTICS

CREATE_SYNONYM DROP_SYNONYM

CREATE_TABLE ALTER_TABLE DROP_TABLE

- 115 -
CREATE_TRIGGER ALTER_TRIGGER DROP_TRIGGER

CREATE_TYPE (se aplica a la DROP_TYPE (se aplica a la instruccin


instruccin CREATE TYPE y DROP TYPE y sp_droptype).
sp_addtype).

CREATE_USER (se aplica a la ALTER_USER DROP_USER (se aplica a la


instruccin CREATE USER, instruccin DROP USER,
sp_adduser y sp_dropuser y
sp_grantdbaccess). sp_revokedbaccess).

CREATE_VIEW ALTER_VIEW DROP_VIEW

CREATE_XML_SCHEMA_COLLE ALTER_XML_SCHEMA_COLLECTION DROP_XML_SCHEMA_COLLECT


CTION ION

Utilizar instrucciones de DDL en el mbito del servidor

ALTER_AUTHORIZATION_SERVER

CREATE_DATABASE ALTER_DATABASE DROP_DATABASE

CREATE_ENDPOINT ALTER_ENDPOINT DROP_ENDPOINT

CREATE_LOGIN (se aplica a la instruccin ALTER_LOGIN (se aplica a la DROP_LOGIN (se aplica
CREATE LOGIN, sp_addlogin, sp_grantlogin, instruccin ALTER LOGIN, a la instruccin DROP
xp_grantlogin y sp_denylogin cuando se utiliza sp_defaultdb, LOGIN, sp_droplogin,
en un inicio de sesin inexistente que debe sp_defaultlanguage, sp_revokelogin y
crearse de forma implcita). sp_password y xp_revokelogin).
sp_change_users_login cuando
se especifica Auto_Fix).

GRANT_SERVER DENY_SERVER REVOKE_SERVER

Usar la Funcin EVENTDATA


La informacin acerca de un evento que activa un desencadenador DDL se captura mediante
la funcin EVENTDATA. Esta funcin devuelve un valor xml. El esquema XML incluye
informacin acerca de lo siguiente:
La hora del evento.
El Id. de proceso del sistema (SPID) de la conexin en la cual se ha ejecutado el
desencadenador.
El tipo de evento que ha activado el desencadenador.

En funcin del tipo de evento, el esquema incluir informacin adicional, como la base de datos
en la que se ha producido el evento, el objeto en el que se ha producido el evento y la
instruccin Transact-SQL del evento.

Por ejemplo, el siguiente desencadenador DDL se crea en la base de datos de ejemplo


AdventureWorks :

CREATE TRIGGER safety


ON DATABASE
FOR CREATE_TABLE
AS
PRINT ' Temas de CREATE TABLE'
SELECT
EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvar
char(max)')

- 116 -
RAISERROR ('No pueden crearse nuevas tablas en esta base de datos', 16, 1)
ROLLBACK;

Se ejecutar la siguiente instruccin CREATE TABLE:

CREATE TABLE NewTable (Column1 int);

La instruccin EVENTDATA() del desencadenador DDL captura el texto de la instruccin


CREATE TABLE que no se admite. Esto se realiza utilizando una instruccin XQuery en los
datos xml generados por EVENTDATA y recuperando el elemento <CommandText>.

Advertencia: EVENTDATA captura los datos de los eventos CREATE_SCHEMA, as como el


<schema_element> de la definicin CREATE SCHEMA correspondiente, si existe. Adems,
EVENTDATA reconoce la definicin <schema_element> como un evento aparte. Por lo tanto,
un desencadenador DDL creado en un evento CREATE_SCHEMA y en un evento
representado por el <schema_element> de la definicin CREATE SCHEMA, puede devolver
los mismos datos de evento dos veces, por ejemplo, datos TSQLCommand. Por ejemplo,
considere un desencadenador DDL creado en los eventos CREATE_SCHEMA y
CREATE_TABLE, y que se ejecute el siguiente lote:

CREATE SCHEMA s
CREATE TABLE t1 (col1 int)

Si la aplicacin recupera los datos TSQLCommand del evento CREATE_TABLE, tenga en


cuenta que estos datos pueden aparecer dos veces: una vez cuando se produce el evento
CREATE_SCHEMA y otra cuando se produce el evento CREATE_TABLE. Evite crear
desencadenadores DDL en los eventos CREATE_SCHEMA y en los textos
<schema_element> de cualquier definicin CREATE SCHEMA correspondiente, o cree la
lgica en su aplicacin para que el mismo evento no se procese dos veces.

Ejemplo:
Puede utilizar la funcin EVENTDATA para crear un registro de eventos. En el siguiente
ejemplo, una tabla se crea para almacenar la informacin del evento. A continuacin, se crea
un desencadenador DDL en la base de datos actual que llena la tabla con la siguiente
informacin siempre que tiene lugar un evento DDL en la base de datos:
La hora del evento (mediante la funcin GETDATE).
El usuario de la base de datos contra cuya sesin se ha producido el evento (mediante
la funcin CURRENT_USER).
El tipo de evento.
La instruccin Transact-SQL que contena el evento.

Una vez ms, los dos ltimos elementos se capturan mediante XQuery con los datos xml
generados por EVENTDATA.

USE AdventureWorks;
GO
CREATE TABLE ddl_log (PostTime datetime, DB_User nvarchar(100),
Event nvarchar(100), TSQL nvarchar(2000));
GO

CREATE TRIGGER log


ON DATABASE
FOR DDL_DATABASE_LEVEL_EVENTS
AS

- 117 -
DECLARE @data XML
SET @data = EVENTDATA()
INSERT ddl_log (PostTime, DB_User, Event, TSQL)
VALUES (GETDATE(), CONVERT(nvarchar(100), CURRENT_USER),
@data.value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(100)'),
@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar(2000)') ) ;
GO

-- Probar el desencadenador
CREATE TABLE TestTable (a int)
DROP TABLE TestTable ;
GO
SELECT * FROM ddl_log ;
GO

- 118 -
5- Notificaciones de Eventos

Introduccin
Las notificaciones de eventos envan informacin acerca de los eventos a un servicio Service
Broker. Se pueden programar notificaciones de eventos para muchos de los eventos
capturados por Traza de SQL, pero dichas notificaciones pueden utilizarse para realizar una
accin en una instancia de SQL Server 2005 como respuesta a eventos, en lugar de utilizarse
para crear trazas. Como las notificaciones de eventos se ejecutan asincrnicamente, no
consumen los recursos definidos por la transaccin inmediata.

Conceptos Bsicos de las Notificaciones de Eventos


Las notificaciones de eventos se ejecutan como respuesta a una variedad de instrucciones del
lenguaje de definicin de datos (DDL) Transact-SQL y eventos de Traza de SQL enviando
informacin acerca de esos eventos a un servicio de Service Broker.
Las notificaciones de eventos se pueden usar para realizar lo siguiente:
Registrar y revisar cambios o actividades que se producen en la base de datos.
Realizar una accin en respuesta a un evento de una forma asincrnica en lugar de
sincrnica.

Las notificaciones de eventos pueden ofrecer una alternativa de programacin a los


desencadenadores DDL y a la Traza SQL.
Las notificaciones de eventos se ejecutan asincrnicamente, fuera del alcance de una
transaccin. Por consiguiente, a diferencia de los desencadenadores DDL, las notificaciones de
eventos se pueden usar dentro de una aplicacin de bases de datos para responder a eventos
sin utilizar los recursos definidos por la transaccin inmediata.
A diferencia de la Traza de SQL, las notificaciones de eventos se pueden utilizar para realizar
una accin en una instancia de SQL Server como respuesta a un evento de Traza de SQL.
Cuando se crea una notificacin de eventos, se abren una o ms conversaciones de Service
Broker entre una instancia de SQL Server y el servicio de destino que se especifica.
Normalmente, las conversaciones permanecen abiertas mientras existe la notificacin de
eventos como objeto de la instancia de servidores. En algunos casos de error, las
conversaciones se pueden cerrar antes de que se quite la notificacin de eventos. Esas
conversaciones nunca se comparten entre notificaciones de eventos. Cada notificacin de
eventos tiene sus propias conversaciones exclusivas. Al finalizar una conversacin
explcitamente se impide que el servicio de destino reciba ms mensajes y la conversacin no
se vuelve a abrir la prxima vez que se activa la notificacin de eventos.
La informacin de eventos se proporciona a Service Broker como una variable de tipo xml que
proporciona informacin acerca de cundo se produce un evento, el objeto de la base de datos
afectado, la instruccin de lote Transact-SQL implicada y otra informacin.
Los datos de eventos pueden ser utilizados por aplicaciones que se ejecutan junto con SQL
Server para realizar un seguimiento del progreso y tomar decisiones. Por ejemplo, la siguiente
notificacin de eventos enva un aviso a un servicio determinado cada vez que se emite una
instruccin ALTER TABLE en la base de datos de ejemplo AdventureWorks :

USE AdventureWorks
GO
CREATE EVENT NOTIFICATION NotifyALTER_T1
ON DATABASE
FOR ALTER_TABLE
TO SERVICE '//Adventure-Works.com/ArchiveService' ,
'8140a771-3c4b-4479-8ac0-81008ab17984';

- 119 -
Descripcin de Notificaciones de Eventos frente a Desencadenadores
En la siguiente tabla, se comparan y se establecen diferencias entre los desencadenadores y
las notificaciones de eventos.

DESENCADENADORES NOTIFICACIONES DE EVENTOS

Los desencadenadores DML responden a eventos Las notificaciones de eventos responden a eventos DDL y a
DML (de lenguaje de manipulacin de datos). Los un subconjunto de eventos de traza de SQL.
desencadenadores DDL responden a eventos
DDL (de lenguaje de definicin de datos).

Los desencadenadores pueden ejecutar un cdigo Las notificaciones de eventos no ejecutan cdigos. En
administrado de Transact-SQL o de Common cambio, envan mensajes xml a un servicio de Service
Language Runtime (CLR). Broker.

Los desencadenadores se procesan de manera Las notificaciones de eventos se pueden procesar de manera
sincrnica, dentro del mbito de las transacciones asincrnica y no se ejecutan en el mbito de las
que los accionan. transacciones que las accionan.

El consumidor de un desencadenador est El consumidor de una notificacin de eventos est


estrechamente unido al evento que acciona el desvinculado del evento que acciona la notificacin.
desencadenador.

Los desencadenadores se deben procesar en el Las notificaciones de eventos se pueden procesar en un


servidor local. servidor remoto.

Los desencadenadores se pueden revertir. Las notificaciones de eventos no se pueden revertir.

Los nombres de los desencadenadores DML Los nombres de las notificaciones de eventos pertenecen al
pertenecen al mbito del esquema. Los nombres mbito del servidor o de la base de datos. Las notificaciones
de los desencadenadores DLL pertenecen al de eventos de un evento QUEUE_ACTIVATION pertenecen
mbito de la base de datos o del servidor. al mbito de una cola especfica.

Los desencadenadores DML pertenecen al mismo El propietario de una notificacin de eventos de una cola
propietario que el de las tablas a las que fueron puede ser diferente del propietario del objeto al que fue
aplicados. aplicada.

Los desencadenadores admiten la clusula Las notificaciones de eventos no admiten la clusula


EXECUTE AS. EXECUTE AS.

La informacin del evento del desencadenador Las notificaciones de eventos envan informacin de evento
DDL se puede capturar con la funcin xml a un servicio de Service Broker. La informacin utiliza el
EVENTDATA, que devuelve un tipo de dato xml. formato del mismo esquema que el de la funcin
EVENTDATA.

Los metadatos acerca de los desencadenadores Los metadatos sobre las notificaciones de eventos se
se encuentran en las vistas de catlogo encuentran en las vistas de catlogo sys.event_notifications
sys.triggers y sys.server_triggers. y sys.server_event_notifications.

Notificaciones de Eventos frente a Traza de SQL


En la siguiente tabla se compara y contrasta el uso de notificaciones de eventos y de la Traza
de SQL para supervisar eventos de servidor.

Traza de SQL Notificaciones de eventos

Traza SQL Trace no genera carga de rendimiento asociada Existe una carga de rendimiento asociada con la
con transacciones. El empaquetado de los datos es eficaz. creacin de datos de eventos con formato XML y
con el envo de notificaciones de eventos.

Traza SQL puede supervisar y realizar un seguimiento de Los notificaciones de eventos pueden supervisar un
cualquier clase de evento. subconjunto de clases de eventos de seguimiento y

- 120 -
tambin todos los eventos del lenguaje de
definicin de datos (DDL).

Puede personalizar qu columnas de datos se crean en un El esquema de datos de eventos con formato XML
evento de seguimiento. devuelto por las notificaciones de eventos es fijo.

Los eventos de traza generador por DDL siempre se genera, Las notificaciones de eventos no se activan si el
independientemente de si la instruccin DDL se revierte. evento de la instruccin DDL correspondiente se
revierte.

La administracin del flujo intermedio de los datos de La administracin intermedia de los datos de
eventos de traza implica llenar y administrar archivos de notificacin de eventos se consigue
traza o tablas de traza. automticamente mediante las colas de Service
Broker.

Las trazas deben reiniciarse cada vez que se reinicia el Despus de registrarse, las notificaciones de
servidor. eventos persisten en ciclos de servidor y participan
en transacciones.

Tras reiniciarse, la activacin de las trazas no se puede Las notificaciones de eventos se pueden controlar
controlar. Las horas de detencin y filtrado se pueden usar utilizando la instruccin WAITFOR sobre la cola que
para especificar cundo se inician. Se obtiene acceso a las recibe el mensaje generado por la notificacin de
trazas sondeando el archivo de trazas correspondiente. eventos. Se puede obtener acceso a ellas
sondeando la cola.

ALTER TRACE es el permiso mnimo necesario para crear El permiso mnimo depende del tipo de notificacin
una traza. Tambin se requiere el permiso para crear un de eventos que se est creando. El permiso
archivo de traza en el equipo correspondiente. RECEIVE tambin es necesario en la cola
correspondiente.

Las trazas se pueden recibir remotamente. Las notificaciones de eventos se pueden recibir
remotamente.

Los eventos de traza se implementan utilizando Las notificaciones de eventos se implementan


procedimientos almacenados del sistema. utilizando una combinacin de Motor de base de
datos de SQL Server y Service Broker, y de
instrucciones Transact-SQL.

Se puede obtener acceso a los datos de eventos de traza Se obtiene acceso a los datos de eventos mediante
mediante programacin consultando la tabla de traza programacin emitiendo XQuery sobre los datos de
correspondiente, analizando el archivo de traza o utilizando eventos con formato XML, o utilizando las clases
la clase TraceReader de los objetos de administracin de SMO Event.
SQL Server (SMO).

Ejemplos:
a. Crear una notificacin de eventos en el mbito de un servidor
En el ejemplo siguiente se crean los objetos necesarios para configurar un servicio de destino
utilizando Service Broker. El servicio de destino hace referencia al contrato y tipo de mensaje
del servicio de inicio especficamente para notificaciones de eventos. Despus, se crea una
notificacin de eventos en el servicio de destino que enva una notificacin cada vez que tiene
lugar un evento de traza Object_Created en la instancia de SQL Server.

--Crea una cola para recibir mensajes.


CREATE QUEUE NotifyQueue ;
GO

--Crea un servicio sobre la cola que referencia la notificacin del evento


CREATE SERVICE NotifyService
ON QUEUE NotifyQueue
([http://schemas.microsoft.com/SQL/Notifications/PostEventNotification]);
GO

- 121 -
--Crea la ruta en el servicio para definir la direccin a donde el Service Broker va a
-- enviar el mensaje para el servicio
CREATE ROUTE NotifyRoute
WITH SERVICE_NAME = 'NotifyService',
ADDRESS = 'LOCAL';
GO

-- Crea la notificacin del evento


CREATE EVENT NOTIFICATION log_ddl1
ON SERVER
FOR Object_Created
TO SERVICE 'NotifyService',
'8140a771-3c4b-4479-8ac0-81008ab17984' ;

b. Crear una notificacin de eventos en el mbito de una base de datos


El ejemplo siguiente crea una notificacin de eventos en el mismo servicio de destino que en el
ejemplo anterior. La notificacin de eventos se activa despus de un evento ALTER_TABLE en
la base de datos de ejemplo AdventureWorks.

CREATE EVENT NOTIFICATION Notify_ALTER_T1


ON DATABASE
FOR ALTER_TABLE
TO SERVICE 'NotifyService',
'8140a771-3c4b-4479-8ac0-81008ab17984';

c. Obtener informacin sobre una notificacin de eventos en el mbito de un servidor


El ejemplo siguiente realiza una consulta en la vista de catlogo
sys.server_event_notifications respecto de metadatos sobre la notificacin de eventos
log_ddl1 creada en el mbito de un servidor.

SELECT * FROM sys.server_event_notifications


WHERE name = 'log_ddl1'

d. Obtener informacin sobre una notificacin de eventos en el mbito de una base de datos
El ejemplo siguiente realiza una consulta en la vista de catlogo sys.event_notifications
respecto de metadatos sobre la notificacin de eventos Notify_ALTER_T1 creada en el mbito
de una base de datos.

SELECT * FROM sys.event_notifications


WHERE name = 'Notify_ALTER_T1'

- 122 -
Mdulo 5

Automatizando Tareas
Administrativas

- 123 -
1- Automatizar las tareas administrativas (Agente SQL Server)

Microsoft SQL Server le permite automatizar las tareas administrativas. Para automatizar la
administracin, se definen las tareas administrativas previsibles y, despus, se especifican las
condiciones en las que se produce cada tarea. El uso de la administracin automatizada para
controlar las tareas y eventos habituales le permite disponer de tiempo para realizar otras
funciones administrativas.

Herramientas para Automatizar la Administracin


SQL Server incluye las siguientes herramientas para ayudarle a automatizar la administracin:
SQL Server Management Studio: Puede utilizar SQL Server Management Studio para
automatizar la administracin mediante la creacin de trabajos, alertas, operadores y
servidores proxy en el nodo Agente SQL Server del Explorador de objetos.
Asistente para planes de mantenimiento: El Asistente para planes de mantenimiento
es una utilidad que puede ayudarle a crear trabajos, alertas y operadores para
automatizar una instancia de SQL Server. Le ayuda a configurar las tareas de
mantenimiento principales para asegurarse de que la base de datos funciona bien, se
realiza una copia de seguridad regular de la misma y no tiene incoherencias. El
Asistente para planes de mantenimiento crea uno o varios trabajos del Agente SQL
Server que realizan estas tareas en servidores locales o en servidores de destino en un
entorno multiservidor. La ejecucin puede tener lugar a intervalos programados o a
peticin.

Planes de Mantenimiento
Para crear o administrar planes de mantenimiento, debe ser miembro de la funcin fija de
servidor sysadmin. Tenga en cuenta que el Explorador de objetos slo muestra planes de
mantenimiento si el usuario es miembro de dicha funcin fija.
Si desea crear o administrar planes de mantenimiento en un entorno de varios servidores,
necesitar una configuracin adicional.

Los planes de mantenimiento se pueden crear para realizar las tareas siguientes:
Reorganizar los datos de las pginas de datos y de ndices mediante una nueva
generacin de los ndices con un nuevo factor de relleno. Al volver a crear ndices con
un nuevo factor de relleno se asegura que las pginas de la base de datos contienen
una cantidad de datos y espacio libre distribuidos por igual. Tambin permite un
crecimiento ms rpido en el futuro.
Comprimir archivos de datos mediante la eliminacin de las pginas de base de datos
que estn vacas.
Actualizar las estadsticas de los ndices para asegurarse de que el optimizador de
consultas dispone de informacin actualizada acerca de la distribucin de los valores
de los datos en las tablas. Esto permite al optimizador de consultas elegir el mtodo
ms adecuado para obtener acceso a los datos, ya que dispone de ms informacin
acerca de los datos almacenados en la base de datos. Aunque SQL Server actualiza

- 124 -
peridicamente las estadsticas de los ndices de forma automtica, esta opcin puede
obligar a que se actualicen inmediatamente.
Realizar comprobaciones de coherencia interna de los datos y de las pginas de datos
de la base de datos para asegurarse de que no se han daado debido a un problema
de software o del sistema.
Realizar copias de seguridad de la base de datos y de los archivos de registro de
transacciones. Las copias de seguridad de la base de datos y del registro pueden
mantenerse durante un perodo especificado. Esto le permite crear un historial de
copias de seguridad para utilizarlo si tiene que restaurar la base de datos a una fecha
anterior a la de la ltima copia de seguridad de la base de datos. Tambin puede
realizar copias de seguridad diferenciales.
Ejecutar trabajos del Agente SQL Server. Esta tarea se puede utilizar para crear
trabajos que realicen una serie de acciones y, tambin, para crear los planes de
mantenimiento para ejecutar los trabajos.

Los resultados generados por las tareas de mantenimiento pueden escribirse en forma de
informe en un archivo de texto, o bien escribirse en las tablas del plan de mantenimiento,
sysmaintplan_log y sysmaintplan_logdetail, en msdb. Para ver los resultados en el visor del
archivo de registros, haga clic con el botn secundario en Planes de mantenimiento y, a
continuacin, haga clic en Ver historial.

- 125 -
Los planes de mantenimiento slo se pueden ejecutar en bases de datos con un nivel de
compatibilidad de 80 o superior. El Asistente para planes de mantenimiento no muestra las
bases de datos cuyo nivel de compatibilidad est establecido en 70 o inferior.

Iniciar el Asistente para Planes de Mantenimiento (SQL Server Management Studio)


Para iniciar el Asistente para planes de mantenimiento:
Expanda el servidor.
Expanda la carpeta Administracin.
Haga clic con el botn secundario en Planes de mantenimiento y seleccione
Asistente para planes de mantenimiento. Esto inicia el asistente y podr seguir los
pasos y crear un plan personalizado para cumplir sus requisitos de mantenimiento.

- 126 -
Editar y crear Planes de Mantenimiento Manualmente
Usted puede editar un plan existente con la herramienta Diseador de Plan de Mantenimiento
disponible dentro de SQL Server Management Studio.
Esta herramienta provee una interfaz grfica permitindole reordenar tareas, agregar nuevas
tareas y definir un flujo de trabajo, indicando cmo manejar el xito o la falla de tareas.

Agente SQL Server (SQL Server Agent)


El Agente SQL Server es un servicio de Microsoft Windows que ejecuta tareas administrativas
programadas, denominadas trabajos (Jobs). El Agente SQL Server utiliza SQL Server para
almacenar informacin de los trabajos. Los trabajos contienen uno o ms pasos. Cada paso
contiene su propia tarea; por ejemplo, realizar una copia de seguridad de una base de datos. El
Agente SQL Server puede ejecutar un trabajo segn una programacin, como respuesta a un
evento especfico o a peticin. Por ejemplo, si desea realizar una copia de seguridad de todos
los servidores de la organizacin todos los das entre semana despus del horario de trabajo,
puede automatizar esta tarea. Programe la copia de seguridad para que se ejecute despus de
las 22:00 h de lunes a viernes; si la copia de seguridad encuentra un problema, el Agente SQL
Server puede registrar el evento y notificrselo.

Nota: De forma predeterminada, el servicio Agente SQL Server est deshabilitado al instalar
SQL Server 2005, a menos que el usuario elija de forma explcita iniciarlo automticamente.

Para automatizar la administracin, siga estos pasos:


Establezca las tareas administrativas o eventos del servidor que se realizan con
regularidad y si estas tareas o eventos se pueden administrar mediante programacin.
Una tarea es una buena candidata a la automatizacin si consta de una secuencia de
pasos predecible y se produce en un momento especfico o en respuesta a un evento
concreto.

- 127 -
Defina un conjunto de trabajos, programaciones, alertas y operadores usando SQL
Server Management Studio, secuencias de comandos Transact-SQL u objetos de
administracin de SQL Server (SMO).
Ejecute los trabajos del Agente SQL Server que haya definido.

Nota: Para la instancia predeterminada de SQL Server, el servicio SQL Server se denomina
SQLSERVERAGENT. Para las instancias con nombre, el servicio Agente SQL Server se
denomina SQLAgent$nombreDeInstancia.

Si ejecuta varias instancias de SQL Server, utilice la administracin multiservidor para


automatizar las tareas comunes a todas las instancias.

Componentes
El Agente SQL Server utiliza los siguientes componentes para definir las tareas que se
realizarn, cundo se llevarn a cabo y como se informar de si se han realizado
correctamente o no. El Agente SQL Server tambin proporciona seguridad para la
administracin automtica.
Trabajos: Un trabajo es una serie especificada de acciones que realiza el Agente SQL
Server. Utilice los trabajos para definir tareas administrativas de manera que se
ejecuten una o ms veces, y se pueda supervisar si se realizan o no correctamente. Un
trabajo se puede ejecutar en un servidor local o en varios servidores remotos. Existen
varias maneras de ejecutar trabajos:
o Conforme a una o ms programaciones.
o Como respuesta a una o varias alertas.
o Ejecutando el procedimiento almacenado sp_start_job.
Cada accin de un trabajo es un paso de trabajo. Por ejemplo, un paso de trabajo
puede consistir en la ejecucin de una instruccin Transact-SQL, la ejecucin de un
paquete SSIS o la emisin de un comando en un servidor de Analysis Services. Los
pasos de trabajo se administran como parte de un trabajo.
Cada paso se ejecuta en un contexto de seguridad especfico. En el caso de los pasos
de trabajo que utilizan Transact-SQL, use la instruccin EXECUTE AS para establecer
el contexto de seguridad para stos. Para los dems tipos de pasos de trabajo, utilice
una cuenta de proxy para establecer el contexto de seguridad.
Programaciones: Una programacin especifica cundo se ejecuta un trabajo. Se
puede ejecutar ms de un trabajo en la misma programacin y se pueden aplicar ms
de una programacin al mismo trabajo. Una programacin puede definir las
condiciones siguientes del momento en el que se ejecuta un trabajo:
o Cuando se inicia el Agente SQL Server.
o Cuando el uso de la CPU del equipo se encuentre en un nivel que se haya definido
como inactivo.
o Una vez, a una hora y una fecha especficas.
o Peridicamente.
Alertas : Una alerta es una respuesta automtica a un evento especfico. Por ejemplo,
un evento puede ser el inicio de un trabajo o que los recursos del sistema alcancen un
umbral especfico. Debe definir las condiciones en las que se genera una alerta. Una
alerta puede responder a una de las condiciones siguientes:
o Eventos de SQL Server
o Condiciones de rendimiento de SQL Server
o Eventos de Instrumental de administracin de Microsoft Windows (WMI) en el
equipo en el que se ejecuta el Agente SQL Server
Una alerta puede realizar las acciones siguientes:
o Notificar a uno o varios operadores
o Ejecutar un trabajo

- 128 -
Operadores: Los operadores definen informacin de contacto para las personas
responsables del mantenimiento de una o varias instancias de SQL Server. En algunas
compaas, las responsabilidades de operador estn asignadas a una sola persona. En
compaas con varios servidores, muchas personas comparten las responsabilidades
de operador. Un operador no contiene informacin de seguridad y no define una
entidad de seguridad.

SQL Server puede notificar a los operadores de alertas mediante una o varias de las opciones
siguientes:
Correo electrnico
Localizador (por correo electrnico)
NET SEND

Nota: Para enviar notificaciones mediante NET SEND, se debe iniciar el servicio Windows
Messenger en el equipo en el que reside el Agente SQL Server.

Para enviar a los operadores notificaciones por correo electrnico o localizador, deber
configurar el Agente SQL Server para utilizar Correo electrnico de base de datos o SQL Mail.
Puede definir un operador como alias de un grupo de personas. De esta manera, todos los
miembros de este alias pueden recibir notificaciones al mismo tiempo.

- 129 -
2- Configurar el Agente SQL Server
Puede especificar algunas opciones de configuracin para el Agente SQL Server durante la
instalacin de SQL Server. El conjunto completo de opciones de configuracin del Agente SQL
Server slo est disponible en SQL Server Management Studio, SMO (objetos de
administracin de SQL Server) o los procedimientos almacenados del Agente SQL Server.

Nota: Haga clic en el Agente SQL Server en el Explorador de objetos de SQL Server
Management Studio para administrar trabajos, operadores, alertas y el servicio del Agente SQL
Server. No obstante, el Explorador de objetos slo muestra el nodo del Agente SQL Server si
tiene permiso para utilizarlo.

El Agente SQL Server almacena la mayor parte de la informacin de configuracin en las


tablas que residen en la base de datos msdb. El Agente SQL Server utiliza los objetos de
credenciales de SQL Server para almacenar la informacin de autenticacin para los
servidores proxy.

Establecer los Permisos Necesarios


Para realizar sus funciones, el Agente SQL Server debe configurarse de modo que utilice las
credenciales de una cuenta que sea miembro de la funcin fija de servidor sysadmin en SQL
Server. La cuenta debe tener los siguientes permisos de Windows:
Ajustar las cuotas de memoria de un proceso
Actuar como parte del sistema operativo
Omitir la comprobacin transversal
Iniciar sesin como proceso por lotes
Iniciar sesin como servicio
Reemplazar un smbolo de nivel de proceso

Para comprobar que todos estos permisos necesarios de Windows estn establecidos
Haga clic en Inicio, Panel de control, Herramientas administrativas y Directiva de
seguridad local.
Expanda la carpeta Directivas locales y, a continuacin, haga clic en la carpeta
Asignacin de derechos de usuario.
Repita los pasos siguientes para cada permiso:
o Haga clic con el botn secundario en un permiso (como Iniciar sesin como
servicio) y, a continuacin, haga clic en Propiedades.
o En el cuadro de dilogo de propiedades (por ejemplo Propiedades de Iniciar
sesin como servicio), compruebe que se muestre la cuenta bajo la que se
ejecuta el Agente SQL Server.
o Si no aparece, haga clic en Agregar usuario o grupo, escriba la cuenta bajo la
que se ejecuta el Agente SQL Server y, a continuacin, haga clic en Aceptar.

Normalmente, la cuenta seleccionada para el Agente SQL Server es una cuenta de dominio
creada para ese propsito cuyos permisos de acceso estn muy controlados. No es necesario
utilizar una cuenta de dominio, pero si utiliza una cuenta en el equipo local, el Agente SQL
Server no tendr permiso para obtener acceso a los recursos de otros equipos. Es muy
habitual que SQL Server necesite permisos en otros equipos, por ejemplo, cuando crea una
copia de seguridad de una base de datos y almacena el archivo en otro equipo.

- 130 -
Correo del Agente SQL Server
El Agente SQL Server incluye la posibilidad de enviar correo electrnico. Puede configurar el
correo del Agente SQL Server para enviar mensajes de correo electrnico a operadores
predefinidos cuando:
Se desencadene una alerta. Las alertas se pueden configurar para enviar una
notificacin por correo electrnico acerca de eventos especficos que se produzcan.
Por ejemplo, es posible configurar alertas para que avisen a un operador acerca de un
determinado evento de la base de datos o una situacin del sistema operativo que
precise una accin inmediata.
Se lleve a cabo o no se complete una tarea programada, como una copia de seguridad
de la base de datos o un evento de rplica. Por ejemplo, puede usar el correo del
Agente SQL Server para notificar a los operadores si se produce un error durante el
procesamiento a fin de mes.

Es posible enviar mensajes de correo electrnico a una lista de destinatarios para informarles
del estado de los trabajos programados, lo que les permitira emprender una accin. Por
ejemplo, puede configurar el correo del Agente SQL Server para enviar mensajes de correo
electrnico cuando termine de hacerse una copia de seguridad.
De forma predeterminada, el correo del Agente SQL Server est desactivado. Para
configurarlo, utilice el panel Sistema de alerta del cuadro de dilogo Propiedades de Agente
SQL Server. Tenga en cuenta que el correo del Agente SQL Server slo es necesario para la
notificacin de alertas y la notificacin automtica cuando se completa un trabajo. Cada paso
de un trabajo puede enviar un mensaje de correo electrnico, independientemente de si el
correo del Agente SQL Server est activado. Por ejemplo, un paso de trabajo de Transact-SQL
puede usar el Correo electrnico de base de datos para enviar el resultado de una consulta a la
lista de destinatarios.

- 131 -
El correo del Agente SQL Server permite usar dos sistemas de correo electrnico. Al configurar
el correo del Agente SQL Server, elija el sistema de correo que se usar:
Si elige el Correo electrnico de base de datos, el Agente SQL Server utilizar el
Correo electrnico de base de datos para enviar el correo electrnico.
Si elige SQL Mail, el Agente SQL Server utilizar la interfaz de MAPI extendida para
enviar el correo electrnico.

Nota: SQL Mail se quitar en una versin futura de SQL Server. Por tanto, evite usar esta
caracterstica en nuevos trabajos de desarrollos y tenga previsto modificar las aplicaciones que
actualmente la utilizan. Para enviar correo electrnico desde Microsoft SQL Server 2005, use el
Correo electrnico de base de datos.
Despus de cambiar el sistema de correo electrnico, debe reiniciar el servicio del Agente SQL
Server para que el cambio entre en vigor.

Correo Electrnico de Base de Datos con el Agente SQL Server


El Agente SQL Server puede utilizar Correo electrnico de base de datos para enviar mensajes
de correo electrnico. Para habilitar y configurar cuentas y perfiles del Correo electrnico de
base de datos, utilice el Asistente para configuracin del Correo electrnico de base de datos.
Si desea utilizar Correo electrnico de base de datos para enviar mensajes de correo
electrnico desde el correo del Agente SQL Server, debe:
Habilitar Correo electrnico de base de datos.
Crear una cuenta de Correo electrnico de base de datos para la cuenta de servicio del
Agente SQL Server que desea usar.
Crear un perfil del Correo electrnico de base de datos para uso de la cuenta de
servicio del Agente SQL Server y agregar el usuario a la funcin
DatabaseMailUserRole de la base de datos msdb.
Establecer el perfil como perfil predeterminado de la base de datos msdb.
Elegir Correo electrnico de base de datos como sistema de correo para el Agente
SQL Server.
Reiniciar el Agente SQL Server.

El Agente SQL Server captura la informacin del perfil especificado. Esto permite al Agente
SQL Server enviar correo electrnico en los casos en los que la instancia de SQL Server no
est disponible. Si la instancia de SQL Server no est disponible, el Agente SQL Server inicia
el programa externo de Correo electrnico de base de datos directamente para notificar al
operador de conmutacin por error que la instancia no est disponible. El Agente SQL Server
captura la informacin del perfil, por lo que el Agente SQL Server no utiliza inmediatamente la
nueva informacin cuando cambia el perfil. Despus de cambiar el sistema de correo
electrnico, debe reiniciar el servicio del Agente SQL Server para que el cambio surta efecto.

Algunas caractersticas de este tipo de correo son:


No se requiere Microsoft Outlook ni MAPI (Interfaz de programacin de aplicaciones
de mensajera) extendida. El Correo electrnico de base de datos utiliza el protocolo
estndar SMTP (Protocolo simple de transferencia de correo) para enviar correo
electrnico. Puede utilizar el Correo electrnico de base de datos sin necesidad de
instalar un cliente con MAPI extendida en el equipo en el que se ejecuta SQL Server.
Aislamiento de procesos. Para minimizar el impacto en SQL Server, el componente
que entrega el correo electrnico se ejecuta fuera de SQL Server, en un proceso
independiente. SQL Server continuar almacenando en cola los mensajes de correo
electrnico incluso si el proceso externo se detiene o genera un error. Los mensajes en
cola se enviarn cuando el proceso externo o el servidor SMTP se encuentren en lnea.

- 132 -
Cuentas de conmutacin por error. Los perfiles del Correo electrnico de base de
datos permiten especificar ms de un servidor SMTP. Si un servidor SMTP no est
disponible, se puede enviar el correo mediante otro.
Compatibilidad con clsteres. El Correo electrnico de base de datos es una
aplicacin para clsteres y es totalmente compatible con stos.
Entrega en segundo plano. El Correo electrnico de base de datos permite realizar
entregas en segundo plano o asincrnicas. Cuando se llama a sp_send_dbmail para
enviar un mensaje, el Correo electrnico de base de datos agrega una solicitud a una
cola de Service Broker. El procedimiento almacenado se devuelve inmediatamente. El
componente de correo electrnico externo recibe la solicitud y entrega el mensaje.
Varios perfiles. El Correo electrnico de base de datos permite crear varios perfiles en
una instancia de SQL Server. Tambin se puede seleccionar el perfil del Correo
electrnico de base de datos para enviar el mensaje.

Varias cuentas. Cada perfil puede incluir varias cuentas de conmutacin por error. Se
pueden configurar varios perfiles con distintas cuentas para distribuir el correo
electrnico entre varios servidores de correo.
Compatibilidad con 64 bits. El Correo electrnico de base de datos es totalmente
compatible con las versiones de 64 bits de SQL Server.
Regulador del tamao de los datos adjuntos. El Correo electrnico de base de datos
fuerza un lmite configurable para el tamao de los datos adjuntos. Puede cambiar este
lmite utilizando el procedimiento almacenado sysmail_configure_sp.
Extensiones de archivo prohibidas. El Correo electrnico de base de datos mantiene
una lista de extensiones de archivo prohibidas. Los usuarios no pueden adjuntar
archivos con las extensiones de la lista.
Configuracin integrada. El Correo electrnico de base de datos mantiene la
informacin para las cuentas de correo electrnico del SQL Server Motor de base de
datos de SQL Server. No es necesario administrar un perfil de correo en una aplicacin
cliente externa. El Asistente para configuracin del Correo electrnico de base de datos
proporciona una interfaz adecuada para configurar el Correo electrnico de base de
datos. Tambin se pueden crear y mantener configuraciones del Correo electrnico de
base de datos mediante Transact-SQL.
Registro. El Correo electrnico de base de datos registra la actividad de correo
electrnico en SQL Server, en el registro de eventos de aplicacin de Microsoft
Windows y en la base de datos msdb.
Auditora. El Correo electrnico de base de datos conserva copias de los mensajes y
datos adjuntos enviados en la base de datos msdb. Puede auditar fcilmente la
utilizacin del Correo electrnico de base de datos y revisar los mensajes conservados.
Compatibilidad con HTML. El Correo electrnico de base de datos permite enviar
mensajes de correo electrnico con el formato HTML.

Nota: Para que el inicio se realice de manera satisfactoria, el Agente SQL Server debe poder
conectarse a SQL Server. Por tanto, el Agente SQL Server puede enviar notificaciones cuando
no hay disponible una instancia de SQL Server en ejecucin, pero no puede enviar
notificaciones si no se inicia una instancia de SQL Server al iniciarse el equipo.

Cmo usar SQL Mail


SQL Mail utiliza componentes de cliente de MAPI extendida de una aplicacin de correo
electrnico externa (por ejemplo, Microsoft Outlook) para enviar y recibir correo electrnico.
Por lo tanto, para utilizar SQL Mail, debe instalar una aplicacin de correo electrnico
compatible con MAPI extendida en el equipo que ejecute SQL Server. SQL Server utiliza los
componentes de MAPI extendida proporcionados por la aplicacin de correo electrnico para
comunicarse con el servidor de correo electrnico.

- 133 -
- 134 -
3- Trabajos y Operadores

Trabajos
Un trabajo es una serie especfica de operaciones que el Agente SQL Server realiza
secuencialmente. Un trabajo puede realizar una amplia variedad de actividades, incluidas
secuencias de comandos Transact-SQL, aplicaciones de smbolo del sistema, secuencias de
comandos de Microsoft 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, y pueden notificar automticamente a los usuarios el estado del trabajo
mediante alertas, lo cual simplifica en gran medida la administracin de SQL Server.

Para crear un trabajo, el usuario debe ser miembro de una de las funciones fijas de base de
datos del Agente SQL Server o de la funcin fija de servidor sysadmin. Slo pueden editar el
trabajo el propietario de ste o los miembros de la funcin sysadmin.

Se puede escribir un trabajo para que se ejecute en la instancia local de SQL Server o en
varias instancias de una empresa. Para ejecutar trabajos en varios servidores, debe configurar
al menos un servidor principal, y uno o ms servidores de destino.

Organizar trabajos
Las categoras de trabajo le ayudan a organizar los trabajos para poder filtrarlos y agruparlos
fcilmente. Por ejemplo, puede organizar todos los trabajos de copia de seguridad de las bases
de datos en la categora Mantenimiento de bases de datos. Tambin puede crear sus propias
categoras.
Las categoras multiservidor existen slo en los servidores principales. Slo hay una categora
de trabajo predeterminada disponible en un servidor principal: [Sin categora (Multiservidor)].
Cuando se descarga un trabajo multiservidor, su categora se cambia a Trabajos del servidor
principal en el servidor de destino.

Propiedad de trabajos
Por razones de seguridad, slo puede cambiar la definicin del trabajo el propietario de ste o
un miembro de la funcin sysadmin. Los miembros de la funcin sysadmin pueden asignar el
valor de propiedad de trabajo a otros usuarios, y pueden ejecutar cualquier trabajo,
independientemente del propietario del trabajo.

Crear un trabajo
En el Explorador de objetos, conctese a una sesin del Motor de base de datos de
SQL Server y expndala.
Expanda Agente SQL Server.
Haga clic con el botn secundario en Trabajos y, a continuacin, haga clic en Nuevo
trabajo.
En la pgina General, en el cuadro Nombre, escriba un nombre para el trabajo.
Desactive la casilla de verificacin Habilitado si no desea que el trabajo se ejecute
inmediatamente despus de su creacin. Por ejemplo, deshabilite un trabajo si desea
probarlo antes de programar su ejecucin.
En el cuadro Descripcin, escriba la descripcin de la accin que realiza el trabajo. El
nmero mximo de caracteres es 512.

- 135 -
Para agregar pasos de trabajo, programas, alertas y notificaciones que puedan enviarse a los
operadores, seleccione las diferentes solapas de esta opcin.

Crear pasos de trabajo


Los pasos de trabajo son acciones que el trabajo realiza en una base de datos o en un
servidor. Cada trabajo debe estar formado por un paso, como mnimo. Los pasos de trabajo
pueden ser:
Programas ejecutables y comandos del sistema operativo.
Instrucciones Transact-SQL, incluidos los procedimientos almacenados y los
procedimientos almacenados extendidos.
Secuencias de comandos Microsoft ActiveX.
Tareas de rplica.
Tareas de Analysis Services.
Paquetes de Integration Services.

Todos los pasos de trabajo se ejecutan en un contexto de seguridad determinado. Si en el paso


de trabajo se especifica un proxy, se ejecuta en el contexto de seguridad de la credencial del
proxy. Si en el paso de trabajo no se especifica un proxy, se ejecuta en el contexto de la cuenta

- 136 -
de servicio del Agente SQL Server. Slo los miembros de la funcin de servidor fija sysadmin
pueden crear trabajos en los que no se especifique un proxy de forma explcita.

Puesto que los pasos de trabajo se ejecutan en el contexto de un usuario especfico de


Microsoft Windows, dicho usuario debe disponer de los permisos y la configuracin necesarios
para que se ejecute el paso de trabajo. Por ejemplo, si crea un trabajo que requiere una letra
de unidad o una ruta de acceso UNC (Convencin de nomenclatura universal), los pasos de
trabajo se pueden ejecutar con la cuenta de usuario de Microsoft Windows durante la
comprobacin de las tareas. Sin embargo, el usuario de Windows para el paso de trabajo debe
tener tambin los permisos y configuraciones de letra de unidad necesarios, o acceso a la
unidad requerida. De lo contrario, se producir un error en el paso de trabajo. Para evitar este
problema, asegrese de que el proxy para cada paso de trabajo dispone de los permisos
necesarios para la tarea que realiza dicho paso.

Registros de Pasos de Trabajo


El Agente SQL Server puede escribir la salida de algunos pasos de trabajo en un archivo del
sistema operativo o en la tabla sysjobstepslogs de la base de datos msdb. Los siguientes
tipos de pasos de trabajo pueden escribir la salida en los siguientes destinos:
Programas ejecutables y comandos del sistema operativo.
Instrucciones Transact-SQL.
Tareas de Analysis Services.

Slo los pasos de trabajo que ejecutan los usuarios que son miembros de la funcin de
servidor fija sysadmin pueden escribir la salida en archivos del sistema operativo. Si los pasos
de trabajo son ejecutados por usuarios que son miembros de las funciones fijas de base de
datos SQLAgentUserRole, SQLAgentReaderRole o SQLAgentOperatorRole de la base de
datos msdb, la salida de dichos pasos slo se puede escribir en la tabla sysjobstepslogs.

Los registros de pasos de trabajo se eliminan automticamente al eliminar los trabajos o pasos
de trabajo.

Nota: El registro de pasos de trabajo de tareas de rplica y paquetes de Integration Services lo


controla el subsistema respectivo. No se puede utilizar el Agente SQL Server para configurar el
registro de pasos de trabajo para estos tipos de pasos.

Programas Ejecutables y Comandos del Sistema Operativo como Pasos de Trabajo


Los programas ejecutables y comandos del sistema operativo se pueden utilizar como pasos
de trabajo. Los archivos pueden tener las extensiones .bat, .cmd, .com o .exe.
Si utiliza un programa ejecutable o un comando del sistema operativo como paso de trabajo,
debe especificar:
El cdigo de salida del proceso que se devuelve si el comando se ha ejecutado
correctamente.
El comando que se debe ejecutar. Para ejecutar un comando del sistema operativo, se
trata simplemente del propio comando.
En un programa externo, es el nombre del programa y los argumentos para el
programa, por ejemplo:
C:\Archivos de programa\Microsoft SQL Server\90\Tools\Binn\sqlcmd.exe -e -q
"sp_who"

Nota: Debe proporcionar la ruta de acceso completa del archivo ejecutable si ste no se
encuentra en un directorio especificado en la ruta de acceso del sistema o la ruta de acceso del
usuario con el que se ejecuta el paso de trabajo.

- 137 -
Pasos de Trabajo Transact-SQL
Al crear un paso de trabajo Transact-SQL, debe:
Identificar la base de datos en la que se ejecutar el trabajo.
Escribir la instruccin Transact-SQL que se debe ejecutar. La instruccin puede llamar
a un procedimiento almacenado o un procedimiento almacenado extendido.
Opcionalmente, puede abrir un archivo Transact-SQL existente que acte como
comando para el paso de trabajo.

Los pasos de trabajo Transact-SQL no utilizan cuentas de proxy del Agente SQL Server. En
lugar de ello, el paso de trabajo se ejecuta como el propietario del paso de trabajo, o con la
cuenta de servicio del Agente SQL Server si el propietario del paso de trabajo es miembro de la
funcin de servidor fija sysadmin. Los miembros de la funcin fija de servidor sysadmin
tambin pueden especificar que los pasos de trabajo Transact-SQL se ejecuten en el contexto
de otro usuario mediante el parmetro database_user_name del procedimiento almacenado
sp_add_jobstep.

Nota: Un nico paso de trabajo Transact-SQL puede contener varios procesos por lotes. Los
pasos de trabajo Transact-SQL pueden contener comandos GO incrustados.

Pasos de Trabajo de Secuencias de Comandos ActiveX


Al crear un paso de trabajo de secuencias de comandos ActiveX, debe realizar las siguientes
acciones:
Identificar el lenguaje de secuencias de comandos en el que se ha escrito el paso de
trabajo
Escribir la secuencia de comandos ActiveX

Tambin puede abrir un archivo de secuencias de comandos ActiveX existente y utilizarlo como
comando para el paso de trabajo. Opcionalmente, los comandos de las secuencias de
comandos ActiveX se pueden compilar externamente (por ejemplo, mediante Microsoft Visual
Basic) y, despus, ejecutarse como programas ejecutables.
Si el comando del paso de trabajo es una secuencia de comandos ActiveX, puede utilizar el
objeto SQLActiveScriptHost para imprimir la salida en el registro de historial del paso de
trabajo o para crear objetos COM. SQLActiveScriptHost es un objeto global que el sistema
host del Agente SQL Server introduce en el espacio de nombres de secuencias de comandos.
El objeto tiene dos mtodos (Print y CreateObject).

Controlar varios Pasos del Trabajo


Si el trabajo est formado por varios pasos, debe especificar el orden de ejecucin de los
pasos del trabajo. Esto se denomina control de flujo. En cualquier momento puede agregar
nuevos pasos del trabajo y reorganizar el flujo de los pasos; los cambios se aplicarn la
prxima vez que se ejecute el trabajo.
Esta ilustracin muestra el control de flujo de un trabajo de copia de seguridad de una base de
datos.

- 138 -
El primer paso es Copia de seguridad de la base de datos. Si este paso genera un error, el
Agente SQL Server informa del error al operador que se ha definido que reciba la notificacin.
Si el paso Copia de seguridad de la base de datos es correcto, el trabajo pasa al siguiente
paso: "Normalizar" los datos del cliente. Si este paso genera un error, el Agente SQL Server
avanza a Restaurar base de datos. Si "Normalizar" los datos del cliente es correcto, el trabajo
avanza al siguiente paso: Actualizar estadsticas y, as sucesivamente, hasta que el paso final
da como resultado un informe correcto o con errores.
Se define una accin de control de flujo para la ejecucin satisfactoria o con errores de cada
paso del trabajo. Debe especificar una accin que se deber realizar cuando un paso del
trabajo se ejecute correctamente y la accin que se llevar a cabo cuando se ejecute con
errores. Tambin puede definir el nmero de reintentos y el intervalo entre ellos para los pasos
del trabajo que no se han ejecutado correctamente.
Los pasos del trabajo deben ser independientes. Es decir, un trabajo no puede pasar datos,
valores booleanos o numricos entre pasos del trabajo. Sin embargo, puede pasar valores de
un paso del trabajo de Transact-SQL a otro si utiliza tablas permanentes o tablas temporales
globales. Tambin puede pasar valores de pasos del trabajo que ejecuten programas
ejecutables de un paso del trabajo a otro mediante archivos. Por ejemplo, el programa
ejecutado mediante un paso del trabajo escribe un archivo y el programa ejecutado por un paso
del trabajo posterior lee el archivo.

Programar la Ejecucin de un Trabajo


La programacin de trabajos del Agente SQL Server consiste en definir las condiciones que
provocan el inicio de la ejecucin de los trabajos sin intervencin del usuario. Puede programar
que un trabajo se ejecute automticamente creando una nueva programacin para el trabajo, o
adjuntando una programacin existente al trabajo.
Hay dos maneras de crear una programacin:
Crear la programacin mientras se est creando un trabajo.
Crear la programacin en el Explorador de objetos.

Una vez creada una programacin, puede adjuntarla a varios trabajos, aun cuando la
programacin se haya creado para un trabajo concreto. Tambin puede separar las
programaciones de los trabajos.

- 139 -
Una programacin puede basarse en tiempo o en un evento. Por ejemplo, puede programar un
trabajo para que se ejecute en los momentos siguientes:
Cuando se inicia el Agente SQL Server.
Cuando el uso de la CPU del equipo se encuentre en un nivel que se haya definido
como inactivo.
Una vez, a una hora y una fecha especficas.
Peridicamente.

Como alternativa a las programaciones de trabajo, tambin puede crear una alerta que
responda a un evento ejecutando un trabajo.

Nota: Slo se puede ejecutar una instancia del trabajo cada vez. Si intenta ejecutar un trabajo
manualmente mientras se est ejecutando en el momento programado, el Agente SQL Server
rechazar la peticin.
Para impedir que un trabajo programado se ejecute, debe realizar una de las siguientes
acciones:
Deshabilitar la programacin.
Deshabilitar el trabajo.
Separar la programacin del trabajo.
Detener el servicio del Agente SQL Server.
Eliminar la programacin.

Aunque no est habilitada la programacin, se puede ejecutar el trabajo en respuesta a una


alerta o cuando un usuario lo ejecute manualmente. Si no est habilitada una programacin de
trabajo, no estar habilitada para ningn trabajo que la utilice.
Las programaciones deshabilitadas se deben volver a habilitar de manera explcita. La
modificacin de una programacin no la vuelve a habilitar automticamente.

- 140 -
Operadores
El servicio Agente SQL Server admite la notificacin de administradores a travs de
operadores. Los operadores son alias para personas o grupos que pueden recibir una
notificacin electrnica cuando los trabajos finalizan o se activa una alerta. Los atributos
principales de un operador son:
Nombre del operador
Informacin de contacto

Se recomienda definir operadores antes de definir alertas.


Cada operador debe tener asignado un nombre. Los nombres de los operadores deben ser
nicos en la instancia de SQL Server y no pueden tener ms de 128 caracteres.

Proporcionar Informacin de Contacto


La informacin de contacto de un operador define cmo se va a notificar a dicho operador. Se
puede notificar a los operadores mediante correo electrnico, localizador o el comando NET
SEND:
Notificacin mediante correo electrnico: La notificacin por correo electrnico
enva un mensaje de correo electrnico al operador. Para la notificacin por correo
electrnico debe proporcionar una direccin de correo electrnico al operador.
Notificacin mediante localizador: Este tipo de notificacin se implementa mediante
el correo electrnico. Para la notificacin por localizador debe proporcionar una

- 141 -
direccin de correo electrnico en la que el operador recibir los mensajes del
localizador. Para establecer la notificacin mediante localizador, debe instalar en el
servidor de correo un software que procese el correo entrante y lo convierta en
mensajes de localizador. El software realizar diversas acciones, entre las que se
incluyen:
o Reenviar el correo a un servidor de correo remoto en el sitio del proveedor del
localizador. El proveedor del localizador debe ofrecer este servicio, aunque el
software necesario generalmente est disponible como parte del sistema de correo
local.
o Enrutar el correo electrnico mediante Internet a un servidor de correo electrnico
en el sitio del proveedor del localizador. Es una variacin del primer planteamiento.
o Procesar el mensaje de correo electrnico de entrada y llamar al nmero del
localizador mediante un mdem conectado.
Este software es propiedad de los proveedores de servicios de localizacin. El software
funciona como un cliente de correo electrnico que procesa peridicamente su bandeja
de entrada mediante la interpretacin de toda o parte de la informacin de la direccin
de correo electrnico como un nmero de localizador o mediante la
correspondencia del nombre de correo electrnico con un nmero de localizador en
una tabla de traduccin.
Si todos los operadores comparten el mismo proveedor de localizador, puede utilizar
SQL Server Management Studio para especificar el formato especial de correo
electrnico necesario para el sistema de conversin del localizador a correo
electrnico. El formato especial puede ser un prefijo o un sufijo y puede incluirse en las
siguientes lneas del mensaje de correo electrnico: Asunto, Cc, Para.
Nota: Si utiliza un sistema de localizacin alfanumrica de baja capacidad, puede
reducir el texto enviado si excluye el texto del error de la notificacin del localizador. Un
sistema de localizacin alfanumrica de baja capacidad es, por ejemplo, uno que est
limitado a 64 caracteres por pgina.
Notificacin mediante NET SEND: Enva un mensaje al operador mediante el
comando NET SEND. Si utiliza este comando, especifique el destinatario (el equipo o
el usuario) de un mensaje de red.
Nota: El comando net send utiliza Microsoft Windows Messenger. Para enviar alertas
correctamente, este servicio debe ejecutarse tanto en el equipo en el que SQL Server
se est ejecutando como en el equipo que utiliza el operador.

Requisitos para Notificar a un Operador


Debe configurar al menos uno de los elementos siguientes para poder notificar a un operador:
Para enviar un mensaje de correo electrnico mediante la funcionalidad Correo
electrnico de base de datos, debe tener acceso a un servidor de correo electrnico
que admita SMTP.
Para enviar un mensaje de correo electrnico mediante la funcionalidad SQL Mail
(MAPI extendido), debe tener acceso a un servidor Microsoft Exchange e instalar el
cliente Microsoft Outlook y Microsoft Exchange en el equipo en el que se ejecuta SQL
Server.
Para notificar mediante un localizador, debe disponer de hardware o software de otros
fabricantes para enviar mensajes de localizador a correo electrnico.
Para utilizar NET SEND, el operador debe haber iniciado sesin en el equipo
especificado y el equipo especificado debe permitir la recepcin de mensajes desde
Windows Messenger.

Designar un Operador a Prueba de Errores

- 142 -
El operador a prueba de errores recibe la notificacin de una alerta despus de que no se haya
recibido respuesta a ninguna de las notificaciones enviadas mediante localizador a los
operadores designados. Por ejemplo, si ha definido tres operadores para las notificaciones
mediante localizador y no se pueden enviar mensajes al localizador de ninguno de ellos,
entonces se notificar al operador a prueba de errores.
Se notifica al operador a prueba de errores cuando:

No se pueden enviar mensajes al localizador de ninguno de los operadores


responsables de la alerta. Entre los motivos que impiden contactar con los operadores
principales se incluyen el uso de direcciones de localizador incorrectas y los
operadores fuera de servicio.
El Agente SQL Server no puede tener acceso a las tablas del sistema en la base de
datos msdb. La tabla del sistema sysnotifications especifica las responsabilidades de
los operadores respecto a las alertas.

El operador a prueba de errores es una caracterstica de seguridad. Para eliminar el operador


asignado al servicio a prueba de errores debe reasignar el servicio a otro operador o eliminar
completamente la asignacin a prueba de errores.

- 143 -
Supervisar la Actividad de Trabajo
Para supervisar la actividad de los trabajos puede usar las siguientes herramientas
Sesiones del Agente SQL Server
Monitor de Actividades de Trabajo

Sesiones del Agente SQL Server


El Agente SQL Server crea una sesin cada vez que se inicia el servicio. Al crear una sesin, la
tabla sysjobactivity de la base de datos msdb se rellena con todos los trabajos definidos
existentes. Esta tabla mantiene la ltima actividad para los trabajos cuando se reinicia el
Agente SQL Server. Cada sesin registra la actividad de trabajo normal del Agente SQL Server
desde el inicio del trabajo hasta que termina. La informacin acerca de estas sesiones se
almacena en la tabla syssessions de la base de datos msdb.

Monitor de Actividad de Trabajo


El Monitor de actividad de trabajo permite ver la tabla sysjobactivity mediante SQL Server
Management Studio. Puede ver todos los trabajos del servidor, o bien puede definir filtros para
limitar el nmero de trabajos mostrados. Tambin puede ordenar la informacin sobre los
trabajos haciendo clic en un encabezado de columna de la cuadrcula Actividad de trabajo del
agente. Por ejemplo, al seleccionar el encabezado de columna ltima ejecucin, puede ver
los trabajos en el orden en que se ejecutaron por ltima vez. Al volver a hacer clic en el
encabezado de columna, el orden de los trabajos cambia entre ascendente y descendente
basndose en la fecha en que se ejecutaron por ltima vez.
El Monitor de actividad de trabajo le permite realizar las siguientes tareas:
Iniciar y detener trabajos.
Ver las propiedades del trabajo.
Ver el historial de un determinado trabajo.
Actualizar la informacin de la cuadrcula Actividad de trabajo del agente manualmente
o establecer un intervalo de actualizacin automtico haciendo clic en Ver
configuracin de actualizacin.

Utilice el Monitor de actividad de trabajo cuando desee localizar los trabajos que estn
programados para su ejecucin, el ltimo resultado de los trabajos que se han ejecutado
durante la sesin actual y localizar los trabajos que se estn ejecutando actualmente o que
estn inactivos. Si el servicio del Agente SQL Server tiene un error inesperado, puede
determinar los trabajos que se estaban ejecutando buscando en la sesin anterior del Monitor
de actividad de trabajo.

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 Monitor de actividad de
trabajo y haga clic en Ver actividad de trabajo.
Tambin puede ver la actividad de trabajo de la sesin actual mediante el procedimiento
almacenado sp_help_jobactivity.

- 144 -
- 145 -
4- Alertas
Alertas
Microsoft SQL Server genera eventos que se incluyen en el registro de aplicacin de Microsoft
Windows. El Agente SQL Server lee el registro de aplicacin y compara los eventos con las
alertas definidas. Cuando el Agente SQL Server encuentra una coincidencia, activa una alerta,
que es 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 de Instrumental de Administracin de Windows (WMI).

Para definir una alerta, debe especificar:


El nombre de la alerta.
El evento o condicin de rendimiento que desencadena la alerta.
La accin que el Agente SQL Server realiza como respuesta al evento o condicin de
rendimiento.

Cada alerta debe tener un nombre. Los nombres de las alertas deben ser exclusivos en la
instancia de SQL Server y no pueden tener ms de 128 caracteres.

Eventos
Una alerta responde a un tipo de evento especfico. Las alertas responden a los siguientes
tipos de evento:
Eventos de SQL Server
Condiciones de rendimiento de SQL Server
Eventos de WMI

El tipo de evento determina los parmetros que se utilizan para especificar el evento preciso.
Puede especificar una alerta para que se produzca en respuesta a uno o ms eventos. Utilice
los siguientes parmetros para especificar los eventos que desencadenan una alerta:
Nmero de error: El Agente SQL Server activa una alerta cuando se produce un error
especfico. Por ejemplo, puede especificar el nmero de error 2571 para responder a
los intentos no autorizados de invocar comandos de consola de base de datos (DBCC).
Nivel de gravedad: El Agente SQL Server activa una alerta cuando se produce un
error de la gravedad especfica. Por ejemplo, puede especificar el nivel de gravedad 15
para responder a errores de sintaxis en instrucciones Transact-SQL.
Base de datos: El Agente SQL Server slo activa una alerta cuando el evento tiene
lugar en una base de datos determinada. Esta opcin se aplica adems del nmero de
error o el nivel de gravedad. Por ejemplo, si una instancia contiene una base de datos
que se utiliza para la produccin y una base de datos que se utiliza para la elaboracin
de informes, puede definir una alerta que responda a los errores de sintaxis slo en la
base de datos de produccin.
Texto del evento: El Agente SQL Server activa una alerta cuando el evento
especificado contiene una cadena de texto determinada en el mensaje de evento. Por
ejemplo, puede definir una alerta que responda a los mensajes que contienen el
nombre de una tabla o restriccin determinada.

- 146 -
Seleccionar una Condicin de Rendimiento
Puede especificar una alerta para que se active en respuesta a una condicin de rendimiento
determinada. En este caso, debe especificar el contador de rendimiento que se supervisa, un
umbral para la alerta y el comportamiento que el contador debe mostrar si la alerta tiene lugar.
Para establecer una condicin de rendimiento, debe definir los siguientes elementos en la
pgina General del cuadro de dilogo Nueva alerta o Propiedades de alerta del Agente SQL
Server:
Objeto: El objeto es el rea de rendimiento que se supervisa.
Contador: Un contador es un atributo del rea que se supervisa.
Instancia: La instancia de SQL Server define la instancia especfica (si la hay) del
atributo que se va a supervisar.
Alertar si el contador y Valor: El umbral de la alerta y el comportamiento que genera
la alerta. El umbral es un nmero. El comportamiento puede ser: est por debajo de, es
igual a o est por encima de un nmero especificado en Valor. El Valor es un nmero
que describe el contador de condicin de rendimiento. Por ejemplo, para establecer
una alerta que tendr lugar para el objeto de rendimiento SQLServer:Locks cuando
pasen 30 minutos del Tiempo de espera de bloqueos, deber elegir est por encima de
y especificar 30 para el valor. En otro ejemplo, puede especificar que una alerta tenga
lugar para el objeto de rendimiento SQLServer:Transactions cuando el espacio libre

- 147 -
en tempdb est por debajo de 1000 KB. Para ello, escoger el contador Espacio libre
en tempdb (KB), est por debajo de y un Valor de 1000.

Nota: Se muestrean peridicamente los datos de rendimiento, lo que puede causar una
pequea demora (unos segundos) entre el momento en que se alcanza el umbral y la
activacin de la alerta relativa al rendimiento.

Seleccionar un Evento de WMI


Puede especificar que una alerta tenga lugar como respuesta a un determinado evento de
WMI. Para seleccionar un evento de WMI, debe definir lo siguiente en la pgina General del
cuadro de dilogo Nueva alerta o Propiedades de alerta del Agente SQL Server:
Espacio de nombres: El Agente SQL Server se registra como un cliente de WMI en el
espacio de nombres de WMI que se proporciona para consultar los eventos.
Consulta: El Agente SQL Server utiliza la instruccin de Lenguaje de consulta de
Instrumental de administracin de Windows (WQL) proporcionada para identificar el
evento especfico.

Alertar a Operadores
Puede elegir a qu operadores notificar en respuesta a una alerta. Por ejemplo, puede asignar
responsabilidades rotativas para notificar a los operadores mediante la programacin de
alertas. Por ejemplo, se notifica a A de las alertas que se producen los lunes, mircoles o
viernes, y a B de las que se producen los martes, jueves y sbados. Si no se puede notificar a
ninguno de los dos operadores, o si la alerta se produce en domingo, se notificar al operador
a prueba de errores.

Los operadores pueden recibir notificaciones mediante uno o varios de los siguientes mtodos:
Notificacin mediante correo electrnico
Notificacin mediante localizador
Notificacin mediante NET SEND

Para enviar correo electrnico, el Agente SQL Server puede usar el Correo electrnico de base
de datos, que utiliza el Protocolo simple de transferencia de correo (SMTP), o bien SQL Mail,
que utiliza MAPI extendida. Los requisitos de configuracin varan en funcin del sistema
utilizado para enviar correo electrnico.
Si utiliza SQL Mail, el servicio del Agente SQL Server utiliza una sesin de correo exclusiva
para las actividades del Agente SQL Server. Si tambin utiliza una sesin de SQL Mail para el
servicio SQL Server, se recomienda que el Agente SQL Server y Microsoft SQL Server utilicen
la misma cuenta de usuario de dominio de Microsoft Windows. Esto permite que ambas
sesiones de correo utilicen el mismo perfil de correo. Si los servicios del Agente SQL Server y
de SQL Server utilizan distintas cuentas de usuario de dominio, deber configurar un perfil de
correo para cada servicio
Si utiliza el Correo electrnico de base de datos para enviar correo electrnico, deber
configurar el Agente SQL Server para utilizar un perfil especfico del Correo electrnico de base
de datos.

- 148 -
5- Manejo de Servidores Mltiples

Administracin multiservidor
La administracin multiservidor requiere que se configure un servidor principal y uno o ms
servidores de destino. Los trabajos que se van a procesar en todos los servidores de destino se
definen primero en el servidor principal y luego se descargan en los servidores de destino.
Para crear un entorno multiservidor, utilice el Asistente para servidor principal.
El cifrado SSL (Capa de sockets seguros) y la validacin de certificados completos se habilitan
para las conexiones entre los servidores principales y los servidores de destino de forma
predeterminada.

El asistente le gua por los siguientes pasos:


Comprobar la configuracin de seguridad del servicio del Agente SQL Server y del
servicio SQL Server en todos los servidores que van a ser servidores de destino.
Se recomienda ejecutar ambos servicios en cuentas de dominio de Microsoft Windows.
Crear un operador de servidor principal (MSXOperator) en el servidor principal.
MSXOperator es el nico operador que puede recibir notificaciones de trabajos
multiservidor.
Iniciar el servicio del Agente SQL Server en el servidor principal.
Dar de alta uno o ms servidores como servidores de destino.

Si tiene un gran nmero de servidores de destino, evite definir el servidor principal en un


servidor de produccin. De lo contrario, el trfico del servidor de destino puede ralentizar el
rendimiento en el servidor de produccin. Si tambin reenva eventos a este servidor principal
dedicado, puede centralizar la administracin en un servidor.

Nota: Para utilizar el procesamiento de trabajos multiservidor, la cuenta de servicio del Agente
SQL Server debe ser miembro de la funcin TargetServersRole de la base de datos msdb del
servidor principal. El Asistente para servidor principal agrega automticamente la cuenta de
servicio a sta funcin como parte del proceso de alta.

Consideraciones para Entornos Multiservidor


Considere lo siguiente cuando cree un entorno multiservidor:
Cada servidor de destino notifica nicamente a un servidor principal. Para dar de alta
un servidor de destino en otro servidor principal, primero debe darlo de baja en el
servidor principal actual.
Si desea cambiar el nombre de un servidor de destino, debe darlo de baja antes de
cambiar el nombre y volver a darlo de alta despus del cambio.
Si desea anular una configuracin multiservidor, debe dar de baja todos los servidores
de destino del servidor principal.
Si desea distribuir planes de mantenimiento, necesitar una configuracin adicional.

Procesar Trabajos Multiservidor


Un trabajo multiservidor es un trabajo que ejecuta un servidor principal en uno o ms
servidores de destino. Cada servidor de destino sondea peridicamente al servidor principal,
descarga una copia de cualquier nuevo trabajo asignado al servidor de destino y, a
continuacin, se desconecta. El servidor de destino ejecuta el trabajo de manera local y, a
continuacin, se vuelve a conectar al servidor principal para cargar el estado del resultado del
trabajo una vez finalizado.

- 149 -
Nota: Si no es posible el acceso al servidor principal cuando el servidor de destino intenta
cargar el estado del trabajo, dicho estado de trabajo se coloca en la cola hasta que vuelva a ser
posible el acceso al servidor principal.

- 150 -
6 Manejando la Seguridad del Agente SQL Server

El Agente SQL Server permite al administrador de la base de datos ejecutar cada paso de
trabajo en un contexto seguro que slo tiene los permisos necesarios para realizar ese paso de
trabajo, que est determinado por un servidor proxy del Agente SQL Server. Para establecer
los permisos para un paso de trabajo concreto, cree un proxy que disponga de los permisos
necesarios y, a continuacin, asigne ese proxy al paso de trabajo. Se puede especificar un
servidor proxy en ms de un paso de trabajo. Para los pasos de trabajo que necesitan los
mismos permisos se utiliza el mismo proxy.

Conceder Acceso al Agente SQL Server


Para utilizar el Agente SQL Server, los usuarios deben ser miembros de una o ms de las
siguientes funciones fijas de base de datos:
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole

Estas funciones se almacenan en la base de datos msdb. De manera predeterminada, ningn


usuario es miembro de estas funciones de base de datos. La pertenencia a estas funciones se
debe conceder explcitamente. Los usuarios que sean miembros de la funcin fija de servidor
sysadmin tienen acceso total al Agente SQL Server, y no necesitan ser miembros de estas
funciones fijas de base de datos para utilizar el Agente SQL Server. Si un usuario no es
miembro de una de estas funciones de base de datos ni de la funcin sysadmin, el nodo del
Agente SQL Server no estar disponible para ellos cuando se conecten con SQL Server
mediante SQL Server Management Studio.
Los miembros de estas funciones de base de datos pueden ver y ejecutar trabajos que les
pertenecen, as como crear pasos de trabajos que se ejecuten como una cuenta de proxy
existente.

Funciones Fijas de Base de Datos del Agente SQL Server


SQL Server 2005 presenta las siguientes funciones fijas de base de datos de base de datos
msdb, que proporcionan a los administradores un control ms preciso a la hora de obtener
acceso al Agente SQL Server. Las funciones enumeradas de menor a mayor privilegio de
acceso son:
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole

Cuando los usuarios que no son miembros de una de estas funciones se conectan con SQL
Server en SQL Server Management Studio, el nodo del Agente SQL Server no est visible en
el Explorador de objetos. Es preciso que los usuarios sean miembros de las funciones fijas de
bases de datos o de la funcin de servidor fija sysadmin para poder utilizar el Agente SQL
Server.

Permisos de las Funciones Fijas de Base de Datos del Agente SQL Server
Los permisos de las funciones de base de datos del Agente SQL Server son concntricos: las
funciones con ms privilegios heredan los permisos de las funciones con menos privilegios en
los objetos del Agente SQL Server (incluidos alertas, operadores, trabajos, programaciones y
servidores proxy). Por ejemplo, si a los miembros de la funcin SQLAgentUserRole con
menos privilegios se les ha concedido el acceso a?l proxy_A, los miembros de las funciones
SQLAgentReaderRole y SQLAgentOperatorRole tendrn automticamente acceso a este

- 151 -
proxy incluso si no se les ha concedido explcitamente el acceso al proxy_A. Esto puede tener
implicaciones de seguridad, que se describen en las siguientes secciones sobre cada funcin.

Permisos de SQLAgentUserRole
Es la funcin con menos privilegios de todas las funciones fijas de base de datos del Agente
SQL Server. Slo dispone de permisos para operadores, trabajos locales y programaciones de
trabajos. Los miembros de SQLAgentUserRole slo tienen permisos en los trabajos locales y
en las programaciones de trabajos que les pertenecen. No pueden utilizar trabajos
multiservidor (trabajos de servidor de destino y de servidor principal), ni pueden cambiar la
propiedad de un trabajo para obtener acceso a trabajos que todava no les pertenecen. Los
miembros de SQLAgentUserRole pueden ver una lista de los servidores proxy disponibles
nicamente en el cuadro de dilogo Propiedades de paso de trabajo de SQL Server
Management Studio. Para los miembros de SQLAgentUserRole slo est visible el nodo
Trabajos del Explorador de objetos de SQL Server Management Studio.

Nota de seguridad: Tenga en cuenta las implicaciones de seguridad antes de conceder


acceso al servidor proxy a los miembros de las funciones de base de datos del Agente SQL
Server. Las funciones SQLAgentReaderRole y SQLAgentOperatorRole se convierten
automticamente en miembros de la funcin SQLAgentUserRole. Esto significa que los
miembros de SQLAgentReaderRole y SQLAgentOperatorRole tienen acceso a todos los
servidores proxy del Agente SQL Server cuyo acceso se ha concedido a SQLAgentUserRole
y, por tanto, pueden utilizar dichos servidores proxy.

En la siguiente tabla encontrar un resumen de los permisos de SQLAgentUserRole para los


objetos del Agente SQL Server.

Trabajos locales (slo Programacin de trabajos (slo


Servidores
Accin Operadores trabajos que les programaciones que les
proxy
pertenecen) pertenecen)

Crear, modificar
No S 1 S No
o eliminar

Ver lista
S 2 S S S 3
(enumerar)

Habilitar o
No S S No aplicable
deshabilitar

Ver propiedades No S S No

Ejecutar, detener No
S No aplicable No aplicable
o iniciar aplicable

Ver historial de No
S No aplicable No aplicable
trabajos aplicable

Eliminar historial No
No 4 No aplicable No aplicable
de trabajos aplicable

Adjuntar o No
No aplicable S No aplicable
separar aplicable

- 152 -
Referencias de la tabla:
1 No se puede cambiar la propiedad de un trabajo.
2 Se puede obtener la lista de operadores disponibles para utilizar en sp_notify_operator y en
el cuadro de dilogo Propiedades del trabajo de Management Studio.
3 Lista de los servidores proxy disponibles solamente en el cuadro de dilogo Propiedades de
paso de trabajo de Management Studio.
4 Es necesario que a los miembros de SQLAgentUserRole se les haya concedido
explcitamente el permiso EXECUTE en sp_purge_jobhistory para eliminar el historial de los
trabajos que les pertenecen. No pueden eliminar el historial de ningn otro trabajo.

Permisos de SQLAgentReaderRole
La funcin SQLAgentReaderRole incluye todos los permisos de SQLAgentUserRole as
como permisos para ver la lista de trabajos multiservidor disponibles, sus propiedades y su
historial. Los miembros de esta funcin tambin pueden ver la lista de trabajos y
programaciones de trabajos disponibles y sus propiedades, y no slo los trabajos y
programaciones de trabajos que les pertenecen. Los miembros de SQLAgentReaderRole no
pueden cambiar la propiedad de un trabajo para obtener acceso a trabajos que no les
pertenezcan ya. Para los miembros de SQLAgentReaderRole slo est visible el nodo
Trabajos del Explorador de objetos de SQL Server Management Studio.

Nota de seguridad: Tenga en cuenta las implicaciones de seguridad antes de conceder


acceso al servidor proxy a los miembros de las funciones de base de datos del Agente SQL
Server. Los miembros de SQLAgentReaderRole se convierten automticamente en miembros
de la funcin SQLAgentUserRole. Esto significa que los miembros de SQLAgentReaderRole
tienen acceso a todos los servidores proxy del Agente SQL Server cuyo acceso se ha
concedido a SQLAgentUserRole y, por tanto, pueden utilizar dichos servidores proxy.
En la siguiente tabla encontrar un resumen de los permisos de SQLAgentReaderRole para
los objetos del Agente SQL Server.

Trabajos Programacin de Servidores


Accin Operadores Trabajos locales
multiservidor trabajos proxy

Crear, modificar S 1 (slo trabajos S (slo


o eliminar No que les No programaciones que les No
pertenecen) pertenecen)

Ver lista
S 2 S S S S 3
(enumerar)

Habilitar o S (slo trabajos S (slo


deshabilitar No que les No programaciones que les No aplicable
pertenecen) pertenecen)

Ver propiedades No S S S No

Modificar S (slo trabajos S (slo


propiedades No que les No programaciones que les No
pertenecen) pertenecen)

- 153 -
Ejecutar, S (slo trabajos
No
detener o iniciar que les No No aplicable No aplicable
aplicable
pertenecen)

Ver historial de No
S S No aplicable No aplicable
trabajos aplicable

Eliminar historial No
No 4 No No aplicable No aplicable
de trabajos aplicable

Adjuntar o S (slo
No
separar No aplicable No aplicable programaciones que les No aplicable
aplicable
pertenecen)

Referencias de la tabla:
1
No se puede cambiar la propiedad de un trabajo.
2
Se puede obtener la lista de operadores disponibles para utilizar en sp_notify_operator y en
el cuadro de dilogo Propiedades del trabajo de Management Studio.
3
Lista de los servidores proxy disponibles solamente en el cuadro de dilogo Propiedades de
paso de trabajo de Management Studio.
4
Es necesario que a los miembros de SQLAgentReaderRole se les haya concedido
explcitamente el permiso EXECUTE en sp_purge_jobhistory para eliminar el historial de los
trabajos que les pertenecen. No pueden eliminar el historial de ningn otro trabajo.

Permisos de SQLAgentOperatorRole
Es la funcin con ms privilegios de todas las funciones fijas de base de datos del Agente SQL
Server. Incluye todos los permisos de SQLAgentUserRole y SQLAgentReaderRole. Los
miembros de esta funcin tambin pueden ver las propiedades de operadores y servidores
proxy, as como enumerar los servidores proxy y alertas disponibles en el servidor.
Los miembros de SQLAgentOperatorRole tienen permisos adicionales en los trabajos locales
y en las programaciones. Pueden ejecutar, detener o iniciar todos los trabajos locales, y
pueden eliminar el historial de trabajos de cualquier trabajo local del servidor. Tambin pueden
habilitar o deshabilitar todos los trabajos locales y programaciones del servidor. Para habilitar o
deshabilitar trabajos locales o programaciones, los miembros de esta funcin deben utilizar los
procedimientos almacenados sp_update_job y sp_update_schedule. Los miembros de
SQLAgentOperatorRole nicamente pueden especificar los parmetros que especifican el
nombre o el identificador del trabajo o la programacin y el parmetro @enabled. Si
especifican cualquier otro parmetro, se producir un error en la ejecucin de estos
procedimientos almacenados. Los miembros de SQLAgentOperatorRole no pueden cambiar
la propiedad de un trabajo para obtener acceso a trabajos que no les pertenezcan ya.
Para los miembros de SQLAgentOperatorRole estn visibles los nodos Trabajos, Alertas,
Operadores y Servidores proxy del Explorador de objetos de SQL Server Management Studio.
El nico nodo que no est visible para los miembros de esta funcin es el nodo Registros de
errores.

Nota de seguridad: Tenga en cuenta las implicaciones de seguridad antes de conceder


acceso al servidor proxy a los miembros de las funciones de base de datos del Agente SQL
Server. Los miembros de SQLAgentOperatorRole se convierten automticamente en
miembros de SQLAgentUserRole y SQLAgentReaderRole. Esto significa que los miembros
de SQLAgentOperatorRole tienen acceso a todos los servidores proxy del Agente SQL Server
cuyo acceso se ha concedido a SQLAgentUserRole o SQLAgentReaderRole y, por tanto,
pueden utilizar dichos servidores proxy.

- 154 -
En la siguiente tabla encontrar un resumen de los permisos de SQLAgentOperatorRole para
los objetos del Agente SQL Server.

Trabajos Trabajos Programacin de Servidores


Accin Alertas Operadores
locales multiservidor trabajos proxy

Crear, S 2 (slo S (slo


modificar o No No trabajos que les No programaciones No
eliminar pertenecen) que les pertenecen)

Ver lista
S S 1 S S S S
(enumerar)

Habilitar o No
No No S 3 No S 4
deshabilitar aplicable

Ver
S S S S S S
propiedades

Modificar S (slo S (slo


propiedades No No trabajos que les No programaciones No
pertenecen) que les pertenecen)

Ejecutar,
No No No
detener o S No No aplicable
aplicable aplicable aplicable
iniciar

Ver historial No No No
S S No aplicable
de trabajos aplicable aplicable aplicable

Eliminar
No No No
historial de S No No aplicable
aplicable aplicable aplicable
trabajos

Adjuntar o S (slo
No No No
separar No aplicable No aplicable programaciones
aplicable aplicable aplicable
que les pertenecen)

Referencias de la tabla:
1
Se puede obtener la lista de operadores disponibles para utilizar en sp_notify_operator y en
el cuadro de dilogo Propiedades del trabajo de Management Studio.
2
No se puede cambiar la propiedad de un trabajo.
3
Los miembros de SQLAgentOperatorRole pueden habilitar o deshabilitar trabajos locales
que no les pertenecen utilizando el procedimiento almacenado sp_update_job y especificando
valores para los parmetros @enabled y @job_id (o @job_name). Si un miembro de sta
funcin especifica cualquier otro parmetro para este procedimiento almacenado, la ejecucin
del procedimiento producir un error.
4
Los miembros de SQLAgentOperatorRole pueden habilitar o deshabilitar programaciones
que no les pertenecen utilizando el procedimiento almacenado sp_update_schedule y
especificando valores para los parmetros @enabled y @schedule_id (o @name). Si un
miembro de esta funcin especifica cualquier otro parmetro para este procedimiento
almacenado, la ejecucin del procedimiento producir un error.

- 155 -
Asignar a los Usuarios varias Funciones
Los miembros de la funcin fija de seguridad sysadmin tienen acceso a toda la funcionalidad
del Agente SQL Server. Si un usuario no es miembro de la funcin sysadmin, pero es miembro
de ms de una funcin fija de base de datos del Agente SQL Server, es importante recordar el
modelo de permisos concntricos de estas funciones. Debido a que las funciones con ms
privilegios siempre contienen todos los permisos de las funciones con menos privilegios, un
usuario que sea miembro de ms de una funcin automticamente tendr los permisos
asociados con la funcin con ms privilegios de la que sea miembro.

Crear Cuentas de Proxy del Agente SQL Server


Un proxy del Agente SQL Server define el contexto de seguridad de un paso de trabajo.
Proporciona al Agente SQL Server acceso a las credenciales de seguridad de un usuario de
Microsoft Windows. Cada proxy se puede asociar a uno o ms subsistemas. Un paso de
trabajo que utilice el proxy puede obtener acceso a los subsistemas especificados usando el
contexto de seguridad del usuario de Windows. Antes de que el Agente SQL Server ejecute un
paso de trabajo que utilice un proxy, suplanta las credenciales definidas en el proxy y, a
continuacin, ejecuta el paso de trabajo usando ste contexto de seguridad.

Nota: Los pasos de trabajo que ejecutan Transact-SQL no utilizan cuentas de proxy del Agente
SQL Server. Los pasos de trabajo Transact-SQL se ejecutan en el contexto de seguridad del
propietario del trabajo. Para establecer el contexto de seguridad de un paso de trabajo
Transact-SQL, utilice el parmetro database_user_name en el procedimiento almacenado
sp_add_jobstep.

Las cuentas de proxy del Agente SQL Server utilizan credenciales para almacenar informacin
acerca de las cuentas de usuario de Windows. El usuario especificado en las credenciales
debe tener el permiso "Iniciar sesin como proceso por lotes" en el equipo en que se ejecuta
SQL Server.
El Agente SQL Server comprueba el acceso al subsistema de un proxy y da acceso al proxy
cada vez que se ejecuta el paso de trabajo. Si el proxy ya no tiene acceso al subsistema, el
paso de trabajo da error. De lo contrario, el Agente SQL Server suplanta al usuario
especificado en el proxy y ejecuta el paso de trabajo.
La creacin de un proxy no cambia los permisos del usuario especificado en las credenciales
del proxy. Por ejemplo, puede crear un proxy para un usuario que no tiene permisos para
conectarse a una instancia de SQL Server. En este caso, los pasos de trabajo que usan el
proxy no pueden conectarse a SQL Server.
Un usuario debe tener acceso a un proxy para utilizarlo en un paso de trabajo. Se puede
conceder acceso a tres tipos de principios de seguridad:
Inicios de sesin de SQL Server
Funciones del servidor
Funciones en la base de datos msdb

Si el inicio de sesin del usuario tiene acceso al proxy o si el usuario pertenece a una funcin
con acceso al proxy, puede usarlo en un paso de trabajo.

Nota: Los miembros de la funcin fija del servidor sysadmin tienen acceso a todas las cuentas
de proxy de la instancia.

- 156 -
Mdulo 6

Implementando
Replicacin

- 157 -
1- Introduccin a Rplica de SQL Server
La rplica es un conjunto de tecnologas destinadas a la copia y distribucin de datos y objetos
de base de datos desde una base de datos a otra, para luego sincronizar ambas bases de
datos y mantener su coherencia. La rplica permite distribuir datos entre diferentes ubicaciones
y entre usuarios remotos o mviles mediante redes locales y de rea extensa, conexiones de
acceso telefnico, conexiones inalmbricas e Internet.

Informacin General sobre los Tipos de Rplica


Microsoft SQL Server 2005 proporciona los siguientes tipos de rplica para utilizar en las
aplicaciones distribuidas:
Rplica transaccional (Transactinal replication).
Rplica de mezcla (Merge replication).
Rplica de instantneas (Snapshot replication).

El tipo de rplica que se elige para una aplicacin depende de muchos factores, como el
entorno fsico de la rplica, el tipo y la cantidad de datos que se desean replicar y si los datos
se actualizan en el suscriptor. El entorno fsico incluye el nmero y la ubicacin de los equipos
que participan en la rplica, y si stos equipos son clientes (estaciones de trabajo, equipos
porttiles o dispositivos de mano) o servidores.

Por lo general, cada tipo de rplica comienza con una sincronizacin inicial de los objetos
publicados entre el publicador y los suscriptores. Esta sincronizacin inicial puede llevarse a
cabo mediante la rplica con una instantnea, que es una copia de todos los objetos y datos
especificados por una publicacin. Una vez creada la instantnea, se enva a los suscriptores.
Para algunas aplicaciones, la rplica de instantneas es lo nico que se necesita. Para otros
tipos de aplicaciones, es importante que los cambios de datos posteriores fluyan al suscriptor
de forma incremental a lo largo del tiempo. Algunas aplicaciones tambin requieren que los
cambios vuelvan del suscriptor al publicador. La rplica transaccional y la rplica de mezcla
proporcionan opciones para estos tipos de aplicaciones.

En la rplica de instantneas, no se realiza un seguimiento de los cambios de datos; cada vez


que se aplica una instantnea, sta sobrescribe completamente los datos existentes. La rplica
transaccional realiza un seguimiento de los cambios a travs del registro de transacciones de
SQL Server y la rplica de mezcla realiza un seguimiento de los cambios a travs de
desencadenadores y tablas de metadatos.

Rplica Transaccional
Normalmente, la rplica transaccional se inicia con una instantnea de los datos y los objetos
de la base de datos de publicaciones. En cuanto se obtiene la instantnea inicial, los
posteriores cambios de datos y modificaciones del esquema realizados en el publicador
habitualmente se entregan en el suscriptor cuando se producen (casi en tiempo real). Los
cambios de datos se aplican al suscriptor en el mismo orden y dentro de los mismos lmites de
la transaccin que cuando se produjeron en el publicador. Por tanto, en una publicacin, se
garantiza la coherencia transaccional.

- 158 -
La rplica transaccional se utiliza normalmente en entornos entre servidores y es la adecuada
en los siguientes casos:
Se desea que se propaguen cambios incrementales a los suscriptores en el momento
en que ocurren.
La aplicacin requiere latencia baja entre el momento en que se realizan los cambios
en el publicador y el momento en que los cambios llegan al suscriptor.
La aplicacin requiere acceso a estados de datos intermedios. Por ejemplo, si una fila
cambia cinco veces, la rplica transaccional permite a una aplicacin responder a cada
cambio (por ejemplo, activando un desencadenador), no simplemente al cambio de
datos neto de la fila.
El publicador tiene un volumen elevado de actividad de insercin, actualizacin y
eliminacin.
El publicador o el suscriptor es una base de datos que no es de SQL Server, como
Oracle.

De forma predeterminada, los suscriptores de publicaciones transaccionales deben tratarse


como de slo lectura, porque los cambios no se propagan del vuelta al publicador. No obstante,
la rplica transaccional ofrece opciones que permiten actualizaciones en el suscriptor. Para
obtener ms informacin, vea Tipos de publicaciones para la rplica transaccional.

Rplica de Mezcla
La rplica de mezcla, como la rplica transaccional, normalmente se inicia con una instantnea
de los objetos y datos de una base de datos de publicaciones. Los cambios de datos y las
modificaciones de esquema posteriores que se lleven a cabo en el publicador y en los
suscriptores se controlan mediante desencadenadores. El suscriptor se sincroniza con el
publicador cuando estn conectados a la red e intercambian todas las filas que han cambiado
entre el publicador y el suscriptor desde la ltima vez que se produjo la sincronizacin.
La rplica de mezcla se suele utilizar en entornos de servidor a cliente. La rplica de mezcla es
adecuada en las siguientes situaciones:
Varios suscriptores actualizan los mismos datos en diferentes ocasiones y propagan
los cambios al publicador y a otros suscriptores.
Los suscriptores necesitan recibir datos, realizar cambios sin conexin y sincronizar
mas adelante los cambios con el publicador y otros suscriptores.
Cada suscriptor requiere una particin de datos diferente.
Se pueden producir conflictos y, cuando ocurren, debe poder detectarlos y resolverlos.
La aplicacin requiere el cambio de datos neto en lugar de acceso a los estados
intermedios de los datos. Por ejemplo, si una fila cambia cinco veces en el suscriptor
antes de que ste se sincronice con el publicador, la fila cambiar slo una vez en el
publicador para reflejar el cambio de datos neto (es decir, el quinto valor).

La rplica de mezcla permite que diferentes sitios funcionen de forma autnoma y, despus,
mezclen las actualizaciones en un solo resultado uniforme. Puesto que las actualizaciones
tienen lugar en ms de un nodo, los mismos datos pueden haber sido actualizados por el
publicador y por ms de un suscriptor. Por tanto, se pueden producir conflictos cuando las
actualizaciones se mezclan y la rplica de mezcla proporciona varias formas de controlar los
conflictos.

Rplica de Instantneas
La rplica de instantneas distribuye los datos exactamente como aparecen en un momento
especfico en el tiempo y no supervisa las actualizaciones de los datos. Cuando se produce la
sincronizacin, se genera la instantnea completa y se enva a los suscriptores.

- 159 -
Utilizar la rplica de instantneas por s sola es lo mas adecuado si se cumplen una o varias de
las siguientes circunstancias:
Los datos cambian con poca frecuencia
Es aceptable disponer de copias de datos que estn anticuadas con respecto al
publicador durante un perodo de tiempo.
Se replican pequeas cantidades de datos.
Se produce un gran nmero de cambios a lo largo de un corto perodo de tiempo.

La rplica de instantneas es lo ms adecuado cuando los cambios en los datos son


sustanciales pero poco frecuentes. Por ejemplo, si una organizacin de ventas mantiene una
lista de precios de productos y todos los precios se actualizan al mismo tiempo una o dos
veces al ao, es recomendable replicar la instantnea completa de los datos una vez que han
cambiado. Para determinados tipos de datos pueden ser adecuadas tambin instantneas mas
frecuentes. Por ejemplo, si una tabla relativamente pequea se actualiza en el publicador
durante el da pero es aceptable cierta latencia, los cambios se pueden entregar por la noche
como una instantnea.
La rplica de instantneas tiene una carga continua mas reducida en el publicador que la
rplica transaccional, ya que no se realiza ningn seguimiento de los cambios incrementales.
No obstante, si el conjunto de datos que se est replicando es muy grande, ser necesaria una
cantidad importante de recursos para generar y aplicar la instantnea. Tenga en cuenta el
tamao del conjunto de datos entero y la frecuencia de los cambios en los datos al evaluar si
utiliza o no la rplica de instantneas.

Informacin General del Modelo de Publicacin de Rplica


La rplica utiliza una metfora del sector editorial para representar los componentes de una
topologa de rplica, que incluyen el publicador, el distribuidor, los suscriptores, las
publicaciones, los artculos y las suscripciones. Resulta til pensar en la rplica de Microsoft
SQL Server como si fuera una revista:
El publicador (editor) de una revista produce una o ms publicaciones.
Una publicacin contiene artculos.
El publicador distribuye la revista directamente o a travs de un distribuidor.
Los suscriptores reciben las publicaciones a las que se han suscrito.

Aunque la metfora de la revista es til para comprender la rplica, es importante sealar que
la rplica de SQL Server incluye funciones que no estn representadas en esta metfora, en
particular, la posibilidad de que un suscriptor realice actualizaciones y de que un publicador
enve cambios incrementales a los artculos de una publicacin.

Una topologa de rplica define la relacin entre los servidores y las copias de los datos, y
aclara la lgica que determina cmo fluyen los datos entre los servidores. Hay varios procesos
de rplica (denominados agentes) que son responsables de copiar y mover los datos entre el
publicador y los suscriptores. En la siguiente ilustracin se muestra informacin general acerca
de los componentes y procesos que participan en la rplica.

- 160 -
Publicador
El publicador es una instancia de base de datos que permite que los datos estn disponibles
para otras ubicaciones a travs de la rplica. El publicador puede tener una o ms
publicaciones, cada una de las cuales representa un conjunto de objetos y datos relacionados
lgicamente para replicar.

Distribuidor
El distribuidor es una instancia de base de datos que funciona como almacn para datos
especficos de rplica asociados con uno o ms publicadores. Cada publicador est asociado
con una sola base de datos (conocida como la base de datos de distribucin) en el distribuidor.
La base de datos de distribucin almacena los datos de estado de la rplica, metadatos acerca
de la publicacin y, en algunos casos, funciona como cola para los datos que se transfieren del
publicador a los suscriptores. En muchos casos, una sola instancia de servidor de bases de
datos funciona como publicador y como distribuidor. Esto se conoce como un distribuidor local.
Cuando el publicador y el distribuidor se configuran en instancias distintas del servidor de
bases de datos, el distribuidor se denomina un distribuidor remoto.

Suscriptores
Un suscriptor es una instancia de base de datos que recibe datos replicados. Un suscriptor
puede recibir datos de varios publicadores y publicaciones. En funcin del tipo de rplica
elegida, el suscriptor tambin puede devolver los datos modificados al publicador o volver a
publicar los datos en otros suscriptores.

Artculo
Un artculo identifica un objeto de base de datos incluido en una publicacin. Una publicacin
puede contener diferentes tipos de artculos, como tablas, vistas, procedimientos almacenados
y otros objetos. Cuando las tablas se publican como artculos, se pueden usar filtros para
restringir las columnas y filas de datos que se envan a los suscriptores.

Publicacin

- 161 -
Una publicacin es un conjunto de uno o ms artculos de una base de datos. La agrupacin de
varios artculos en una publicacin permite especificar mas fcilmente un conjunto de objetos y
datos de bases de datos relacionados lgicamente, que se replican como una unidad.

Suscripcin
Una suscripcin es una solicitud de una copia de una publicacin que se entrega a un
suscriptor. La suscripcin define qu publicacin se recibir, dnde y cundo. Hay dos tipos de
suscripciones: de insercin y de extraccin.

- 162 -
2- Implementar replicacin

Implementacin
El proceso de implementacin de la rplica vara segn el tipo de rplica y las opciones
elegidas pero, en general, la rplica se compone de las fases siguientes:
Configurar la rplica y publicar datos
Crear e inicializar suscripciones
Sincronizar datos

En este tema se proporciona informacin de cada fase, con vnculos a descripciones ms


detalladas. Adems de conocer los pasos necesarios para configurar la rplica, es importante
conocer las consideraciones de:
Implementacin.
Seguridad.
Rendimiento.
Copia de seguridad y restauracin.

Configurar la Rplica y Publicar Datos


La implementacin de la rplica comienza cuando se configura el publicador y el distribuidor. El
distribuidor desempea una funcin principal en la rplica transaccional; en cambio, tiene un
papel ms limitado en la rplica de instantneas y de mezcla, donde se utiliza slo para tareas
del historial del agente y supervisin e informes de errores. Normalmente, la rplica de mezcla
y la rplica de instantneas utilizan un distribuidor que se ejecuta en el mismo equipo que el
publicador, mientras que la rplica transaccional puede utilizar un distribuidor remoto,
especialmente si el publicador es un sistema OLTP de alto rendimiento.

Despus de configurar el publicador y el distribuidor, puede crear publicaciones basadas en los


datos, subconjuntos de datos y objetos de base de datos. Cuando se crea una publicacin,
debe especificar:
Los datos y los objetos de base de datos que desea replicar.
Qu tipo y opciones de rplica utilizar, incluido el filtro.
Dnde se almacenarn los archivos de instantneas y cundo se producir la
sincronizacin inicial, independientemente de que entregue manualmente el conjunto
de datos inicial.
Otras propiedades que se deben establecer para la publicacin.

Segn el tipo de rplica y las opciones elegidas al configurar la publicacin, el suscriptor puede
modificar los datos despus de haber entregado el conjunto de datos inicial y propagar los
cambios al publicador, que puede a su vez propagar los cambios a otros suscriptores. Las
siguientes opciones y tipos de rplica permiten a los suscriptores modificar los datos replicados
y hacer que las modificaciones se propaguen de vuelta al publicador:
Rplica de mezcla.
Rplica transaccional con suscripciones actualizables.
Rplica transaccional de punto a punto.
Rplica transaccional bidireccional.

Filtrar Datos Publicados


Al filtrar artculos de tabla podr crear particiones de los datos que se publicarn. Si filtra los
datos publicados, podr:
Minimizar la cantidad de datos que se envan a travs de la red.

- 163 -
Reducir la cantidad de espacio de almacenamiento necesario en el suscriptor.
Personalizar las publicaciones y las aplicaciones en funcin de los requisitos de cada
suscriptor.
Evitar o reducir los conflictos si los suscriptores actualizan datos, ya que pueden
enviarse particiones de datos diferentes a varios suscriptores (dos suscriptores
distintos no actualizarn los mismos valores de datos).
Evitar la transmisin de datos reservados. Se pueden utilizar filtros de fila y filtros de
columna para restringir el acceso de un suscriptor a los datos. Para la rplica de
mezcla, existen consideraciones de seguridad si utiliza un filtro con parmetros que
incluya HOST_NAME().

La Rplica ofrece cuatro Tipos de Filtros:


Filtros de fila estticos: que estn disponibles con todos los tipos de rplica.
Mediante los filtros de fila estticos, puede especificar un subconjunto de filas para
publicarlo. Todos los suscriptores de una publicacin filtrada reciben el mismo
subconjunto de filas para la tabla filtrada.
En la siguiente ilustracin se muestra una tabla publicada que est filtrada para que
solamente se incluyan las filas 2, 3 y 6 en la publicacin.

Filtros de columna: que estn disponibles con todos los tipos de rplica. Al utilizar los
filtros de columna, puede seleccionar un subconjunto de columnas para publicarlo.
En la siguiente ilustracin se muestra una publicacin que filtra la columna C.

- 164 -
Tambin puede utilizar conjuntamente el filtrado de filas y columnas, como se ilustra a
continuacin.

Filtros de fila con parmetros: que estn disponibles solamente con la rplica de
mezcla. Al utilizar los filtros de fila con parmetros, puede seleccionar un subconjunto
de filas para publicarlo. A diferencia de los filtros estticos que envan el mismo
subconjunto de filas a cada suscriptor, los filtros de fila con parmetros utilizan un valor
de datos suministrado por el suscriptor para enviar a los suscriptores diferentes
subconjuntos de filas.

- 165 -
Filtros de combinacin: que estn disponibles solamente con la rplica de mezcla. Al
utilizar los filtros de combinacin, puede ampliar un filtro de fila de una tabla publicada
a otra.

Procedimientos Almacenados de Rplica


Los procedimientos almacenados del sistema de rplica se documentan y estn disponibles
como un mtodo para realizar tareas nicas como la implementacin de la rplica y el uso de
archivos de proceso por lotes y secuencias de comandos. Si desea agregar un control de
programacin de la rplica para una aplicacin o realizar tareas de rplica repetidas como la
sincronizacin de suscripciones, se recomienda utilizar las interfaces de programacin
suministradas con los objetos de administracin de rplica (RMO).

Importante: Slo se admiten los procedimientos almacenados de rplica documentados en los


Libros en pantalla de SQL Server. Los procedimientos almacenados no documentados slo se
utilizan para los componentes de rplica internos y no se pueden utilizar para administrar la
rplica.
En la tabla siguiente se muestran los principales procedimientos almacenados de rplica:

Procedimiento almacenado Descripcin

sp_replicationdboption Establece una opcin de base de datos de rplica para la base de datos
especificada. Este procedimiento almacenado se ejecuta en el publicador o el
suscriptor de cualquier base de datos.

sp_addlogreader_agent Agrega un Agente de registro del LOG a una base de datos dada. Este
procedimiento almacenado se ejecuta en el publicador de la base de datos de
publicaciones.

sp_addqreader_agent Agrega un Agente de lectura de cola a un distribuidor especfico. Este


procedimiento almacenado se ejecuta en el distribuidor de la base de datos de
distribucin o en el publicador de la base de datos de publicaciones.

sp_addpublication Crea una publicacin de instantneas o transaccional. Este procedimiento


almacenado se ejecuta en el publicador de la base de datos de publicaciones.

sp_addpublication_snapshot Crea el Agente de instantneas en la publicacin especificada. Este


procedimiento almacenado se ejecuta en el publicador de la base de datos de
publicaciones.

sp_grant_publication_access Agrega un inicio de sesin a la lista de acceso de la publicacin. Este


procedimiento almacenado se ejecuta en el publicador de la base de datos de
publicaciones.

sp_addarticle Crea un artculo y lo agrega a una publicacin. Este procedimiento almacenado


se ejecuta en el publicador de la base de datos de publicaciones.

sp_articlefilter Filtra los datos que se publican en funcin de un artculo de tabla. Este
procedimiento almacenado se ejecuta en el publicador de la base de datos de
publicaciones.

sp_articleview Crea la vista que define el artculo publicado cuando una tabla se filtra horizontal
o verticalmente. Esta vista se utiliza como el origen filtrado del esquema y los
datos de las tablas de destino. Con este procedimiento almacenado slo pueden
modificarse artculos sin suscripciones. Este procedimiento almacenado se
ejecuta en el publicador de la base de datos de publicaciones.

- 166 -
Crear e Inicializar Suscripciones
Una suscripcin es una peticin de copia de datos y objetos de base de datos en una
publicacin. Una suscripcin define qu publicacin se recibir, dnde y cundo. Al planear
suscripciones, tenga en cuenta dnde se realizar el proceso del agente. El tipo de suscripcin
que elige controla dnde se ejecuta el agente. Con una suscripcin de insercin, el Agente de
Mezcla o el Agente de Distribucin se ejecutan en el distribuidor, mientras que en una
suscripcin de extraccin los agentes se ejecutan en los suscriptores. Despus de crear una
suscripcin, no se puede cambiar de un tipo a otro.
Despus de crear una publicacin, puede crear suscripciones y configurar opciones
adicionales.

Tanto si utiliza la rplica de instantneas, transaccional o de mezcla, la rplica crea de forma


predeterminada una instantnea inicial del esquema y los datos de la publicacin y, a
continuacin, la guarda en la ubicacin de la carpeta de instantneas que ha especificado.
Despus de crear la suscripcin, la instantnea inicial se aplica en funcin de la programacin
indicada al crear la publicacin. Puede pasar por alto uno o varios pasos de la instantnea si el
suscriptor ya tiene un conjunto de datos inicial o si desea aplicarla manualmente.

Suscripcin Caractersticas Se utiliza si

Suscripcin Con una suscripcin de insercin, el publicador Normalmente, los datos se


de insercin propaga los cambios al suscriptor sin que ste lo
pida. Los cambios pueden insertarse en los sincronizarn de forma continua o
suscriptores a peticin, de manera continua o con una frecuencia determinada.
segn una programacin. De forma
predeterminada, el Agente de distribucin o el Las publicaciones requieren que el
Agente de mezcla se ejecutan en el distribuidor. movimiento de datos sea casi en
tiempo real.

La sobrecarga del procesador en el


distribuidor no afecta al
rendimiento.

Se utiliza frecuentemente en la
rplica de instantneas y
transaccional.

Suscripcin En una suscripcin de extraccin, el suscriptor Los datos se sincronizarn,


de extraccin solicita los cambios efectuados en el publicador.
Las suscripciones de extraccin permiten al generalmente, a peticin o en
usuario del suscriptor determinar cundo se funcin de una programacin, en
sincronizan los cambios en los datos. El Agente
lugar de hacerlo de forma
de distribucin o el Agente de mezcla se ejecutan
en el suscriptor. continuada.

La publicacin dispone de un gran


nmero de suscriptores y/o la
ejecucin de todos los agentes en
el distribuidor supone un uso
demasiado intensivo de recursos.

Los suscriptores son autnomos,

- 167 -
estn desconectados o se
desplazan. Los suscriptores
determinan cundo se conectarn y
sincronizarn los cambios.

Se utiliza frecuentemente en la
rplica de mezcla.

Suscriptores que no son de SQL Server


Oracle e IBM DB2 pueden suscribirse a publicaciones de instantneas y transaccionales con
suscripciones de insercin.

Crear Suscripciones
Para crear una suscripcin, proporcione la siguiente informacin:
El nombre de la publicacin.
El nombre del suscriptor y la base de datos de suscripciones.
Si el Agente de distribucin o el Agente de mezcla se ejecutan en el distribuidor o en el
suscriptor.
Si el Agente de distribucin o el Agente de mezcla se ejecutan de forma continua,
programada o solamente a peticin.
Si el Agente de instantneas debe crear una instantnea inicial para la suscripcin y si
el Agente de distribucin o el Agente de mezcla debe aplicar esa instantnea en el
suscriptor.
Las cuentas con la que se ejecutar el Agente de distribucin o el Agente de mezcla.
En la rplica de mezcla, el tipo de suscripcin: servidor o cliente.

Sincronizar Datos
La sincronizacin es el proceso de propagacin de los datos entre el publicador y los
suscriptores despus de haber aplicado el conjunto de datos inicial en el suscriptor. En la
rplica de instantneas, la sincronizacin significa volver a aplicar la instantnea en el
suscriptor, de modo que los datos y esquemas de la base de datos de suscripciones sean
coherentes con la base de datos de publicaciones. En la rplica transaccional, la sincronizacin
de datos significa que las modificaciones de datos, como las inserciones, actualizaciones y
eliminaciones, se distribuyen entre el publicador y los suscriptores (y desde los suscriptores de
vuelta al publicador en caso de suscripciones de actualizacin). En la rplica de mezcla, la
sincronizacin significa que las modificaciones de datos realizadas en varios sitios se mezclan,
los conflictos se detectan y resuelven, y los datos finalmente adoptan los mismos valores en
todos los sitios.

Asistentes para Rplica


La rplica proporciona asistentes para simplificar la implementacin de la rplica. A travs de la
carpeta Rplica en SQL Server Management Studio puede tener acceso a los asistentes para
rplica.

Asistente para Nueva Publicacin


Use el Asistente para nueva publicacin para especificar lo siguiente:

- 168 -
Que la instancia del publicador tambin actuar como el distribuidor (si va a utilizar un
distribuidor remoto, ste ya debe estar configurado con el Asistente para configurar la
distribucin).
La ubicacin predeterminada de los archivos de instantneas.
La base de datos de publicaciones.
El tipo de publicacin que se va a crear (de instantnea, transaccional, transaccional
con suscripciones actualizables o de mezcla).
Los datos y los objetos de la base de datos (artculos) que se incluirn en la
publicacin.
Los filtros de fila estticos y los filtros de columna para todos los tipos de publicaciones,
y los filtros de fila con parmetros y los filtros de combinacin para publicaciones de
mezcla.
La programacin del Agente de instantneas.
Las cuentas con las que se ejecutarn los siguientes agentes: el Agente de
instantneas para todas las publicaciones, el Agente de registro del LOG para todas las
publicaciones transaccionales, el Agente de lectura de cola para publicaciones
transaccionales que permiten suscripciones de actualizacin.
Un nombre y una descripcin para la publicacin.

Para Crear Publicaciones y Definir Artculos


Conctese al publicador en Microsoft SQL Server Management Studio y expanda el
nodo de servidor.
Expanda la carpeta Rplica y, a continuacin, haga clic con el botn secundario en la
carpeta Publicaciones locales.
Haga clic en Nueva publicacin.
Siga las indicaciones de las pginas del Asistente para la nueva publicacin.
Especifique un distribuidor si la distribucin no se ha configurado en el servidor.
Si en la pgina Distribuidor especifica que el servidor del publicador acte como su
propio distribuidor (un distribuidor local) y el servidor no est configurado como tal, el
Asistente para nueva publicacin configurar el servidor. Especifique una carpeta de
instantneas predeterminada para el distribuidor en la pgina Carpeta de instantneas.
La carpeta de instantneas es simplemente un directorio designado como recurso
compartido; los agentes que leen y escriben en esta carpeta deben tener suficientes
permisos de acceso a la misma.
Si especifica que otro servidor acte como distribuidor, deber escribir una contrasea
en la pgina Contrasea administrativa para las conexiones que se realicen desde el
publicador al distribuidor. Esta contrasea debe coincidir con la contrasea que se
especific al habilitar el publicador en el distribuidor remoto.
Elija una base de datos de publicaciones.
Seleccione un tipo de publicacin.
Especifique los datos y los objetos de base de datos que se van a publicar; de forma
opcional, filtrar columnas de artculos de tablas y establecer las propiedades de los
artculos.
De forma opcional, filtrar filas de artculos de tablas.
Establezca la programacin del Agente de instantneas.
Especifique las credenciales con las que los siguientes agentes de rplica se ejecutan
y efectan conexiones:
-Agente de instantneas para todas las publicaciones.
-Agente de registro del LOG para todas las publicaciones transaccionales.
-Agente de lectura de cola para publicaciones transaccionales que permiten
suscripciones de actualizacin.
Especifique un nombre para la publicacin.

- 169 -
En las siguientes imgenes se pueden observar algunas solapas del Asistente de Nuevas
Publicaciones:

- 170 -
Asistente para Nuevas Suscripciones
Use el Asistente para nuevas suscripciones para especificar lo siguiente:

- 171 -
La publicacin a la que desea suscribirse.
Dnde deben ejecutarse el Agente de distribucin o el Agente de mezcla.
Las cuentas con las que se ejecutarn y realizarn las conexiones el Agente de
distribucin o el Agente de mezcla.
Uno o varios suscriptores que van a recibir datos publicados y la base de datos de
suscripciones que recibir los datos publicados en cada suscriptor.
Si la suscripcin debe inicializarse y, si es as, cundo.
Las programaciones de los agentes para definir la frecuencia con la que se propagarn
las actualizaciones al suscriptor.
Informacin adicional basada en los valores de publicacin.

En las siguientes imgenes se pueden observar algunas solapas del Asistente de Nuevas
Suscripciones:

- 172 -
- 173 -
Asistente para Configurar la Distribucin
Use el Asistente para configurar la distribucin para lo siguiente:
Configurar un distribuidor remoto.

- 174 -
Especificar la ubicacin predeterminada de los archivos de instantneas.

Nota:
Tambin puede utilizar este asistente para configurar un distribuidor local, pero normalmente
esto se realiza mediante el Asistente para nueva publicacin la primera vez que se crea una
publicacin en un publicador.

Asistente para deshabilitar la publicacin y distribucin


Use el Asistente para deshabilitar la publicacin y distribucin para deshabilitar la publicacin y
distribucin en un servidor.

Asistente de configuracin de la topologa punto a punto


Use el Asistente de configuracin de la topologa punto a punto para crear una topologa de
rplica transaccional de punto a punto. Cree una publicacin transaccional en el primer nodo en
el Asistente para nueva publicacin y, a continuacin, utilice el Asistente de configuracin de la
topologa punto a punto para crear publicaciones y suscripciones en otros nodos.

- 175 -
Asistente para la sincronizacin Web
Use el Asistente para la sincronizacin Web para configurar un servidor con Microsoft Internet
Information Services (IIS) para la sincronizacin Web, que permite sincronizar suscripciones a
publicaciones de mezcla a travs de una conexin de Internet o intranet.

- 176 -
3- Monitor de Rplica
Supervisin de la Rplica con el Monitor de Rplica
El Monitor de rplica de Microsoft SQL Server es una herramienta grfica que le permite
supervisar el estado general de una topologa de rplica. El Monitor de rplica proporciona
informacin detallada sobre el estado y rendimiento de las publicaciones y suscripciones, y le
permite responder a preguntas comunes, tales como:
Es correcto el sistema de rplica?
Qu suscripciones son lentas?
Cul es el retraso de la suscripcin transaccional?
Cunto tardar una transaccin confirmada ahora en llegar al suscriptor en la rplica
transaccional?
Por qu es lenta la suscripcin de mezcla?
Por qu no se ejecuta un agente?

Para supervisar la rplica, un usuario debe ser miembro de la funcin fija de servidor sysadmin
en el distribuidor o miembro de la funcin fija de base de datos replmonitor en la base de
datos de distribucin. Un administrador del sistema puede agregar cualquier usuario a la
funcin replmonitor que permite a un usuario ver la actividad de rplica en el Monitor de
rplica; sin embargo, el usuario no puede administrar la rplica.

La interfaz del Monitor de rplica


El Monitor de rplica de Microsoft SQL Server presenta una vista centrada en el publicador de
toda la actividad de rplica en un formato de dos paneles. Se agrega un publicador al monitor
en el panel izquierdo y, en el panel derecho, el monitor muestra informacin sobre el
publicador, sus publicaciones, las suscripciones a esas publicaciones y los diversos agentes de
rplica. Adems de presentar informacin de la topologa de rplica, el Monitor de rplica
permite realizar varias tareas, como iniciar y detener agentes y validar datos.

- 177 -
Ver informacin de toda la topologa
En el panel izquierdo del Monitor de rplica se muestran los grupos de publicadores, los
publicadores y las publicaciones.
El panel izquierdo ayuda a responder a las siguientes preguntas:
Es correcto el estado de mi sistema de rplica?
El estado del sistema de rplica es relativamente correcto si no existen iconos de error
en los nodos del panel izquierdo. Para obtener una vista ms completa del estado del
sistema, tambin debe comprobar la ficha Lista de supervisin de suscripciones, en la
que se muestra informacin sobre las suscripciones que pueden requerir atencin.
Por qu no funciona un agente?
Un agente no funciona en un momento determinado porque no est programado para
ejecutarse o porque se ha producido un error. Si se ha producido un error, se muestra
un icono de error en los nodos correspondientes del panel izquierdo. Por ejemplo, si el
Agente de instantneas de una publicacin se detiene debido a un error, se muestra un
icono de error en el grupo de publicador, el publicador y los nodos de publicacin. En la
ficha Advertencias y agentes de la publicacin se muestra informacin resumida del
Agente de instantneas; haga doble clic en el Agente de instantneas de esta ficha
para obtener informacin detallada del error.

Ver informacin y realizar tareas relacionadas con publicadores


El Monitor de rplica muestra informacin sobre publicadores en tres fichas:
Ficha Publicaciones: Esta ficha proporciona informacin resumida de todas las
publicaciones en un publicador.
Ficha Lista de Supervisin de Suscripciones: Esta ficha est diseada para mostrar
informacin sobre suscripciones de todas las publicaciones disponibles en el publicador

- 178 -
seleccionado. Puede filtrar la lista de suscripciones para ver errores, advertencias y las
suscripciones que tienen un rendimiento bajo. Esta ficha permite tambin: tener acceso
a las propiedades de la suscripcin, tener acceso a informacin detallada sobre el
agente o los agentes asociados con una suscripcin, y reinicializar y validar
suscripciones.
La ficha Lista de supervisin de suscripciones ayuda a responder a las siguientes
preguntas:
o Cules son las suscripciones lentas?
Establezca opciones en esta ficha para que la cuadrcula muestre las suscripciones
ordenadas por su rendimiento relativo.
o Es correcto el estado de mi sistema de rplica?
La cuadrcula de esta ficha muestra iconos de advertencia y error en las
suscripciones que requieren su atencin.
Esta ficha no se muestra en los distribuidores que ejecutan versiones anteriores a
Microsoft SQL Server 2005.
Ficha Trabajos Comunes: En esta ficha se muestra informacin sobre los trabajos
utilizados por todos los tipos de rplica. Esta ficha permite tambin: tener acceso a
informacin detallada sobre los trabajos e iniciar y detener cada trabajo.

El Monitor de rplica tambin proporciona un men contextual para el nodo de publicador. En el


panel izquierdo, haga clic con el botn secundario en un publicador para:
Editar la configuracin del Monitor de rplica para el publicador.
Quitar el publicador del Monitor de rplica.
Ver y editar perfiles de agente.
Conectarse o desconectarse del distribuidor que almacena informacin sobre el
publicador.

El Monitor de rplica tambin proporciona un men contextual para el nodo de publicaciones.


En el panel izquierdo, haga clic con el botn secundario en una publicacin para:
Reinicializar todas las suscripciones en una publicacin.
Validar todas las suscripciones en una publicacin.
Generar una instantnea para una publicacin.
Ver y editar las propiedades de una publicacin.

Ver informacin y realizar tareas relacionadas con suscripciones


El Monitor de rplica muestra informacin sobre suscripciones en varias fichas diferentes. Haga
doble clic en una suscripcin en el Monitor de Rplica para tener acceso a informacin en una
ventana de detalles. Todas estas fichas son tiles para responder a la pregunta "Por qu no
funciona un agente?". Los mensajes de error disponibles proporcionan informacin detallada
sobre por qu no funciona un agente y un punto inicial para solucionar problemas con los
agentes asociados con una suscripcin.

Ficha Todas las suscripciones y ficha Lista de supervisin de suscripciones:


Estas fichas se han descripto anteriormente en este tema.
Ficha Historial de Publicador a distribuidor (slo rplica transaccional): En esta
ficha se muestra informacin sobre el Agente de registro del LOG para una publicacin
(la ficha es idntica a la ventana de detalles del Agente de registro del LOG).
Ficha Historial de Distribuidor a suscriptor (rplica de instantnea y rplica
transaccional). En esta ficha se muestra informacin sobre el Agente de distribucin
para una suscripcin.
Ficha Comandos sin distribuir (slo rplica transaccional): En esta ficha se muestra
informacin sobre el nmero de comandos de la base de datos de distribucin que no

- 179 -
se han entregado al suscriptor seleccionado y el tiempo estimado para entregar esos
comandos. La ficha ayuda a responder a la pregunta, "Qu retraso tiene mi
suscripcin?" Esta ficha no se muestra en los distribuidores que ejecutan versiones
anteriores a SQL Server 2005.
Ficha Historial de sincronizaciones (slo rplica de mezcla): En esta ficha se
muestra informacin sobre el Agente de mezcla para una suscripcin. Esta ficha ayuda
a responder a la siguiente pregunta: Por qu mi suscripcin de mezcla es lenta?
En esta ficha se proporcionan estadsticas detalladas de cada artculo procesado
durante la sincronizacin, incluido el tiempo invertido en cada fase del proceso (carga
de cambios, descarga de cambios, etc.). Puede ayudar a identificar con precisin tablas
especficas que provocan lentitud y el mejor lugar para solucionar problemas de
rendimiento con suscripciones de mezcla.

Ver informacin y realizar tareas relacionadas con perfiles de agente


El Monitor de rplica incluye varios cuadros de dilogo para administrar perfiles de agente. Los
perfiles de agente son conjuntos de parmetros de un agente que determinan su
comportamiento. Los cuadros de dilogo son:
Perfiles de agente: Este cuadro de dilogo permite: cambiar las propiedades de
perfiles, crear y eliminar perfiles, especificar un perfil predeterminado y especificar que
todos los agentes de un tipo especfico (por ejemplo, los Agentes de instantneas)
deben utilizar un perfil determinado.
Propiedades de <nombreDePerfilDeAgente>: Este cuadro de dilogo permite ver y
editar la configuracin de parmetros de un perfil.
Nuevo perfil de agente: Este cuadro de dilogo permite crear un perfil nuevo y,
opcionalmente, incluye los valores de un perfil existente.

Supervisar estado de la suscripcin y la publicacin en el Monitor de rplica


En el Monitor de rplica de Microsoft SQL Server se muestra informacin del estado de las
publicaciones y suscripciones:
El estado de una publicacin est determinado por el estado de prioridad ms alto de sus
suscripciones. Por ejemplo, si una suscripcin a una publicacin tiene un error y otra tiene un
problema de rendimiento se muestra un estado de error para la publicacin.
El estado de una suscripcin se determina por el estado de los agentes que dan servicio a la
suscripcin. En la rplica de mezcla, es el Agente de mezcla. En la rplica transaccional, es el
Agente de registro del LOG o el Agente de distribucin (se muestra el estado de prioridad mas
alto; el estado tambin se puede determinar por el Agente de lectura de cola si se utilizan
suscripciones de actualizacin en cola). En la rplica de instantneas, es el Agente de
instantneas o el Agente de distribucin (se muestra el estado de prioridad ms alto).

En las tablas de las siguientes secciones se enumeran los posibles valores de estado de
publicaciones y suscripciones. Tres de los valores de estado slo se muestran si se cumple o
supera un umbral:
Suscripcin caducada: Este valor de estado se aplica a todos los tipos de rplica.
Rendimiento crtico: Este valor de estado se aplica a la rplica transaccional y a la
rplica de mezcla.
Mezcla de ejecucin prolongada: Este valor de estado se aplica a la rplica de
mezcla.

Adems de los estados de suscripcin y publicacin, la rplica de mezcla proporciona


estadsticas de artculos, que ofrecen informacin detallada sobre cunto tiempo tarda en
completarse la fase de mezcla, cuanto tiempo se invierte en procesar un artculo determinado,
el tipo de conexin de conexin que utiliza un suscriptor y dems informacin importante. Las

- 180 -
estadsticas se muestran en la ventana del Agente de mezcla en el Monitor de rplica. La
rplica de instantneas y transaccional proporciona informacin detallada sobre el proceso del
Agente de distribucin.

Supervisar agentes de rplica


El Monitor de rplica de Microsoft SQL Server proporciona una vista sistmica de la actividad
de rplica, aunque tambin facilita la bsqueda de informacin sobre un agente concreto. En la
siguiente lista se incluye cada agente, las fichas del Monitor de rplica en las que se puede
encontrar y un vnculo a un tema en el que se explica el modo de obtener acceso a las fichas:

Los siguientes agentes estn asociados con publicaciones en el Monitor de rplica:


Agente de instantneas
Agente de registro del LOG
Agente de lectura de cola

Obtenga acceso a la informacin y a las tareas asociadas con estos agentes a travs de las
siguientes fichas de la publicacin: la ficha Advertencias y agentes (para los distribuidores que
se ejecutan en Microsoft SQL Server 2005) o la ficha Agentes (para los distribuidores que se
ejecuten en versiones anteriores de Microsoft SQL Server).

Los siguientes agentes estn asociados con suscripciones en el Monitor de rplica:


Agente de distribucin
Agente de mezcla

Obtenga acceso a la informacin y a las tareas asociadas con estos agentes a travs de las
siguientes fichas: la ficha Lista de supervisin de suscripciones (disponible para todos los
publicadores) o la ficha Todas las suscripciones (disponible para todas las publicaciones).

Para supervisar el Agente de instantneas y el Agente de registro del LOG


Conctese al publicador en Management Studio y, a continuacin, expanda el nodo de
servidor.
Expanda la carpeta Rplica y, a continuacin, expanda la carpeta Publicaciones
locales.
Haga clic con el botn secundario en una publicacin y, a continuacin, en Ver estado
del Agente de registro del LOG o en Ver estado del Agente de instantneas.
En el cuadro de dilogo Ver estado del Agente de registro del LOG o Ver estado del
Agente de instantneas:
o Vea el estado del agente
o Inicie o detenga el agente si fuese necesario.
o Haga clic en Supervisar para iniciar el Monitor de Rplica.
Haga clic en Cerrar.

Para supervisar el Agente de distribucin y el Agente de mezcla (en el publicador)


Conctese al publicador en Management Studio y, a continuacin, expanda el nodo de
servidor.
Expanda la carpeta Rplica y, a continuacin, expanda la carpeta Publicaciones
locales.
Expanda la publicacin de la suscripcin que desea supervisar.
Haga clic con el botn secundario en la suscripcin y, a continuacin, haga clic en Ver
estado de sincronizacin.
En el cuadro de dilogo Ver estado de sincronizacin:

- 181 -
o Vea el estado del agente
o Inicie o detenga el agente si fuese necesario.
o Para las suscripciones de insercin, haga clic en Supervisar para iniciar el Monitor
de rplica.
o Para las suscripciones de extraccin, haga clic en Ver historial de trabajos para
iniciar el Visor del archivo de registros, que muestra informacin sobre el registro
del agente.
Haga clic en Cerrar.

Para supervisar el Agente de distribucin y el Agente de mezcla (en el suscriptor)


Conctese al suscriptor en Management Studio y expanda el nodo de servidor.
Expanda la carpeta Rplica y, a continuacin, expanda la carpeta Suscripciones
locales.
Haga clic con el botn secundario en la suscripcin que desee supervisar y, a
continuacin, haga clic en Ver estado de sincronizacin.
En el cuadro de dilogo Ver estado de sincronizacin:
o Vea el estado del agente
o Inicie o detenga el agente si fuese necesario.
o Haga clic en Ver historial de trabajos para iniciar el Visor del archivo de
registros, que muestra informacin sobre el registro del agente.
Haga clic en Cerrar.

- 182 -
4- Configurar Replicacin en algunos Escenarios Comunes

Replicar Datos en un Entorno de Servidor a Servidor


Resulta til dividir la rplica en dos categoras generales: replicar datos en un entorno de
servidor a servidor y replicar datos entre un servidor y los clientes. Por lo general, los datos se
replican entre servidores para proporcionar compatibilidad con las siguientes aplicaciones y
requisitos:
Mejorar la escalabilidad y la disponibilidad: Mantener copias de los datos que se
actualicen de forma continua permite escalar la actividad de lectura entre varios
servidores. La redundancia que produce el mantener varias copias de los mismos
datos es crucial durante el mantenimiento del sistema (ya sea planeado o no
planeado).
Almacenamiento de datos e informes: Los servidores de almacenamiento de datos e
informes utilizan con frecuencia datos de los servidores de procesamiento de
transacciones en lnea (OLTP). Utilice la rplica para mover datos entre los servidores
OLTP y los sistemas de informes y ayuda para la toma de decisiones.
Integrar datos de varios sitios: Con frecuencia, los datos se transfieren desde las
oficinas remotas y se consolidan en una oficina central. De la misma forma, es posible
replicar los datos en las oficinas remotas.
Integrar datos heterogneos: Algunas aplicaciones dependen de datos que se envan
o se reciben de bases de datos distintas de SQL Server. Utilice la rplica para integrar
datos de bases de datos que no sean de SQL Server.
Descargar procesos por lotes: Las operaciones por lotes consumen con frecuencia
demasiados recursos para ejecutarse en un servidor OLTP. Utilice la rplica para
descargar el procesamiento a un servidor de proceso por lotes dedicado.

Replicar Datos entre un Servidor y los Clientes


Los datos normalmente se replican entre servidores y clientes para admitir las siguientes
aplicaciones:
Intercambiar datos con usuarios mviles: Muchas aplicaciones requieren que los
datos estn disponibles para usuarios remotos, como personal de ventas, repartidores,
etc. Estas aplicaciones incluyen las de administracin de relaciones con los clientes
(CRM), automatizacin del personal de ventas (SFA) y automatizacin del personal de
campo (FFA).
Aplicaciones de punto de venta (POS) para el consumidor: Las aplicaciones POS,
como los terminales de caja de salida y los cajeros automticos, requieren que los
datos se repliquen desde sitios remotos a un sitio central.
Integrar datos de varios sitios: Las aplicaciones a menudo integran datos de varios
sitios. Por ejemplo, una aplicacin de apoyo a oficinas regionales puede requerir que
los datos fluyan en una o en ambas direcciones entre las oficinas regionales y la oficina
central.

Rplica Transaccional de Punto a Punto (Peer to Peer)


La rplica transaccional de punto a punto est diseada para aplicaciones que pueden leer o
modificar los datos en cualquiera de las bases de datos que participan en la rplica. Por
ejemplo, una aplicacin para realizar compras por Internet es muy adecuada para la rplica de
punto a punto: el rendimiento de la aplicacin se puede mejorar distribuyendo entre varias
bases de datos las consultas que leen los datos. Adems, si alguno de los servidores que
alojan las bases de datos no est disponible, se puede programar una aplicacin para dirigir el
trfico a los otros servidores, que contienen copias idnticas de los datos. El rendimiento de

- 183 -
lectura mejora porque la actividad se puede repartir entre todos los nodos. El rendimiento
acumulado de actualizacin, insercin y eliminacin para la topologa es similar al de un solo
nodo, porque al final todos los cambios se propagan a todos los nodos.

Todos los nodos de una topologa de punto a punto son pares: cada nodo publica y suscribe al
mismo esquema y los mismos datos. Los cambios (inserciones, actualizaciones y
eliminaciones) pueden realizarse en todos los nodos. La rplica reconoce cundo un cambio se
ha aplicado a un nodo determinado, lo que evita cambios cclicos en los nodos ms de una vez.

Nota:
Las aplicaciones personalizadas que tienen acceso a los datos y los modifican deben
asegurarse de que las inserciones, actualizaciones y eliminaciones tienen particiones, de forma
que las modificaciones en una fila determinada con origen en un nodo se sincronicen con el
resto de bases de datos de la topologa antes de que la fila se modifique en otro nodo diferente.
Si una aplicacin ejecuta modificaciones simultneas que producen conflictos en una fila
determinada en varios nodos, utilice la rplica de mezcla que se adapta perfectamente para
controlar conflictos.

La rplica transaccional estndar supone suscriptores de slo lectura y tiene una estructura
jerrquica: normalmente un solo publicador publica datos para uno o varios suscriptores. La
rplica transaccional estndar tambin admite una jerarqua de republicacin: las
actualizaciones se entregan desde un publicador a un conjunto de suscriptores de
republicacin, que a su vez entregan las actualizaciones a un conjunto final de suscriptores de
nodo hoja. Las suscripciones de actualizacin ofrecen la posibilidad de que los suscriptores
inserten cambios de nuevo en el publicador, pero la organizacin an es jerrquica porque los
cambios siguen la estructura jerrquica cuando se mueven entre los suscriptores y los
publicadores. Al contrario que la rplica transaccional de slo lectura y la rplica transaccional
con suscripciones de actualizacin, las relaciones entre nodos en una topologa de rplica de
punto a punto son relaciones entre pares en vez de jerrquicas, donde cada nodo contiene un
esquema y datos idnticos.
Aunque las actualizaciones pueden realizarse donde participan varias bases de datos, es
importante comprender que las topologas de punto a punto no necesitan ni permiten las
opciones de publicacin de actualizacin en cola o inmediata.

Topologas de Punto a Punto


En los siguientes escenarios se ilustran los usos tpicos de la rplica de punto a punto.

Topologa en la que participan dos bases de datos:

- 184 -
En las ilustraciones anteriores se muestran dos bases de datos participantes, con trfico de
usuario dirigido a las bases de datos a travs de un servidor de aplicaciones. Esta
configuracin se puede utilizar en varias aplicaciones, desde sitios Web hasta aplicaciones de
grupos de trabajo, y proporciona las siguientes ventajas:
Rendimiento de lectura mejorado, porque las lecturas se reparten en dos servidores.
Alta disponibilidad si se requiere mantenimiento o en caso de error en un nodo.

En ambas ilustraciones, la actividad de lectura tiene equilibrio de carga entre las bases de
datos participantes, pero las actualizaciones se controlan de forma diferente:
A la izquierda, las actualizaciones se particionan entre los dos servidores; si la base de
datos contiene un catlogo de productos, puede, por ejemplo, hacer que una aplicacin
personalizada dirija las actualizaciones al nodo "A" para los nombres de productos que
empiecen con la letra A hasta la M y dirija las actualizaciones al nodo "B" para los
nombres de productos que empiecen con la letra N hasta la Z. Ms tarde, las
actualizaciones se replican en el otro nodo.
A la derecha, todas las actualizaciones se dirigen al nodo "B". Desde ah, las
actualizaciones se replican en el nodo "A". Si "B" est desconectado (por ejemplo, por
motivos de mantenimiento), el servidor de aplicaciones puede dirigir toda la actividad a
"A". Cuando "B" vuelve a conectarse, las actualizaciones pueden pasar a l, y el
servidor de aplicaciones puede mover todas las actualizaciones de vuelta al nodo "B" o
seguir dirigindolas al nodo "A".

La rplica de punto a punto puede admitir este mtodo, pero el ejemplo de actualizacin
centralizada de la derecha tambin se utiliza frecuentemente con la rplica transaccional
estndar.

Topologa en la que participan tres o ms bases de datos

- 185 -
En la ilustracin anterior se muestran tres bases de datos participantes que proporcionan el
sistema de una organizacin de soporte de software internacional, con oficinas en Los ngeles,
Londres y Taipei. Los ingenieros de soporte de cada oficina reciben llamadas de clientes e
incluyen y actualizan la informacin de las llamadas de los clientes. Las zonas horarias de las
tres oficinas tienen una diferencia de ocho horas, por lo que no se superponen en la jornada
laboral: cuando la oficina de Taipei cierra, se abre la oficina de Londres. Si hay una llamada en
curso cuando se cierra una oficina, la llamada se transfiere a un representante de la siguiente
oficina abierta.

Cada ubicacin tiene una base de datos y un servidor de aplicaciones, que los ingenieros de
soporte utilizan para incluir y actualizar la informacin de las llamadas de los clientes. La
topologa se particiona por tiempo, por lo que las actualizaciones slo se producen en el nodo
que est abierto; a continuacin, las actualizaciones pasan al resto de bases de datos
participantes. Esta topologa proporciona las siguientes ventajas:
Independencia sin aislamiento: cada oficina puede insertar, actualizar o eliminar datos
de forma independiente, pero tambin puede compartir los datos porque se replican en
el resto de bases de datos participantes.
Alta disponibilidad en caso de error o para permitir el mantenimiento en cualquiera de
las bases de datos participantes.

- 186 -
En la ilustracin anterior se muestra la adicin de un nodo a la topologa de tres nodos. En este
escenario se podra agregar un nodo:
Porque se abre otra oficina.
Para proporcionar alta disponibilidad al mantenimiento de soporte o aumentar la
tolerancia a errores en caso de un error grave.
Observe que en las dos topologas de tres y cuatro nodos, todas las bases de datos
publican y se suscriben en las otras bases de datos, lo que proporciona la mxima
disponibilidad en caso de necesidades de mantenimiento o error en uno o varios
nodos. Al agregar nodos, se deben equilibrar las necesidades de disponibilidad y
escalabilidad respecto al rendimiento y la complejidad de implementacin y
administracin.

Implementar la Rplica por Internet


La rplica de datos por Internet permite a usuarios desconectados y remotos obtener acceso a
los datos cuando los necesiten, por medio de una conexin a Internet. Puede llevar a cabo la
rplica de datos por Internet mediante:
Una red virtual privada (VPN): La tecnologa de Red privada virtual (VPN) permite a
los usuarios que trabajan en su casa, oficinas subsidiarias, clientes remotos y otras
empresas conectarse a una red corporativa por Internet, al tiempo que se mantiene una
comunicacin segura. Los usuarios pueden utilizar la Autenticacin de Windows como
si estuvieran en una red de rea local (LAN). Todos los tipos de rplica de Microsoft
SQL Server pueden replicar datos a travs de una red privada virtual (VPN), pero se
puede usar la sincronizacin Web si se est usando la rplica de mezcla, porque con la
sincronizacin Web no es necesario usar una VPN.
Una VPN incluye el software cliente para que los equipos se conecten a travs de
Internet (o incluso en una Intranet, en casos especiales) al software de un equipo
dedicado o servidor. Opcionalmente, se utiliza el cifrado en ambos extremos y mtodos
de autenticacin de usuario. La conexin VPN a travs de Internet funciona
lgicamente como un vnculo de red de rea extensa (WAN) entre los sitios.
Una VPN conecta los componentes de una red por medio de otra red. Para la conexin,
el usuario utiliza Internet u otra red pblica mediante un protocolo como el Protocolo de
tnel punto a punto (PPTP) de Microsoft o el Protocolo de tnel de capa 2. Este
proceso garantiza la misma seguridad y caractersticas que anteriormente slo estaban
disponibles en una red privada. El protocolo PPTP est disponible con los sistemas
operativos Microsoft Windows NT versin 4.0 y Microsoft Windows 2000 (y posteriores),
y el protocolo L2TP, con Windows 2000 y posteriores.

- 187 -
El usuario no puede ver la infraestructura intermedia de enrutamiento de Internet y
parece como si los datos se enviaran a travs de un vnculo privado dedicado. Desde el
punto de vista del usuario, una VPN es una conexin de punto a punto entre el equipo
del usuario y un servidor corporativo.
Despus de configurar el cliente remoto para la conexin mediante VPN, y que el
cliente disponga de acceso a Internet y se conecte a la LAN corporativa, podr
configurar la rplica como si el cliente remoto estuviera conectado directamente a la
LAN. Por razones de seguridad, es posible disponer de recursos de red diferentes para
los usuarios conectados a travs de VPN y los conectados directamente a la LAN.
Sincronizacin Web de la rplica de mezcla: La sincronizacin Web para la rplica
de mezcla permite replicar datos utilizando el protocolo HTTPS y es til en los
siguientes escenarios:
o Sincronizar datos de usuarios mviles a travs de Internet
o Sincronizar datos entre bases de datos de Microsoft SQL Server a travs de un
firewall corporativo
Por ejemplo, un representante de ventas puede utilizar la sincronizacin Web durante
sus viajes. El Agente de mezcla de cada equipo porttil tiene una direccin URL de
Internet que apunta a los componentes de rplica instalados en un equipo en el que se
ejecutan los Servicios de Microsoft Internet Information Server (IIS). Estos
componentes sincronizan el suscriptor con el publicador. Ahora cada representante se
puede conectar a travs de cualquier conexin de Internet disponible sin utilizar una
conexin remota de acceso telefnico y puede cargar y descargar los datos que desee.
La conexin de Internet utiliza SSL (Capa de sockets seguros), por lo que no es
necesaria una red privada virtual (VPN).

Todos los tipos de rplica de Microsoft SQL Server pueden replicar datos mediante una VPN,
pero debe considerar la sincronizacin Web si utilizan la rplica de mezcla.

Configurar la Sincronizacin Web


Para utilizar la sincronizacin Web para la rplica, siga estos pasos:
Configure una publicacin para que permita la sincronizacin Web. Si utiliza un
publicador por primera vez, tambin debe configurar un distribuidor y un recurso
compartido de instantneas. El Agente de mezcla de cada suscriptor debe tener
permisos de lectura en el recurso compartido de instantneas.
Configure el equipo en el que se estn ejecutando los Servicios de Microsoft Internet
Information Server (IIS) para sincronizar suscripciones. Las versiones 5.0 y 6.0 de IIS
son compatibles.
Para utilizar la sincronizacin Web, debe configurar IIS mediante los siguientes pasos:
o Configure SSL (Capa de sockets seguros). SSL es necesario para establecer
comunicaciones entre IIS y todos los suscriptores.
o Instale los componentes de conectividad de Microsoft SQL Server en el equipo en
el que se ejecuta IIS mediante el Asistente para la instalacin de SQL Server.
o Configure el equipo en el que se ejecuta IIS para la sincronizacin Web. Puede
configurar el equipo manualmente o usar el Asistente para configurar la
sincronizacin Web. Se recomienda utilizar el asistente.
o Seleccione los permisos adecuados para la Escucha de rplica de SQL Server.
o Ejecute la sincronizacin Web en modo de diagnstico para probar la conexin con
el equipo en el que se ejecuta IIS y para asegurarse de que el certificado SSL est
instalado correctamente.
Configure una o ms suscripciones para utilizar la sincronizacin Web.

- 188 -
Mdulo 7

Mantenimiento de
Alta Disponibilidad

- 189 -
1- Introduccin a Alta Disponibilidad
Factores que afectan la Disponibilidad:
La disponibilidad se ocupa de asegurar que las aplicaciones y servicios de una organizacin
sigan funcionando ante una falla. Para implementar soluciones de alta disponibilidad usted
debe analizar y comprender los diferentes tipos de fallas a los que est expuesto su sistema y
planificar una estrategia de disponibilidad adecuada.
Fallas de Software: Una aplicacin consistir de muchos componentes de software, la
mayora de los cuales sern requeridos para el funcionamiento de la aplicacin.
Adems de las aplicaciones de cliente y servidor, puede haber aplicaciones
intermedias y de servidor Web. Los sistemas operativos en todos los nodos son
cruciales para que una aplicacin funcione debidamente, inclusive servicios y
aplicaciones no relacionadas pueden causar fallas si utilizan demasiados recursos.
Fallas de Componentes de Hardware: Considere los efectos de la falla de cada
componente de hardware en su sistema. Discos duros, procesadores, memoria y
tarjetas de red pueden causar problemas particulares, pero otros componentes como
ventiladores y fuentes de energa pueden ser igualmente esenciales para el correcto
funcionamiento de su sistema.
Falla de Red: Una falla de red puede deberse a un cable defectuoso. Una red basada
en TCP/IP utiliza Servidores Domain Naming System (DNS) y Dynamic Host
Configuration Protocol (DHCP), as como routers y otros elementos. Todos ellos
pueden fallar o tener problemas de configuracin.
Falla de energa o desastre natural: Resulta relativamente sencillo proteger por
perodos cortos contra estas fallas, pero hay eventos naturales que pueden afectar un
sitio entero por largos perodos.

Configurar una Alta Disponibilidad


Una solucin de alta disponibilidad enmascara los efectos de un error de hardware o software y
mantiene la disponibilidad de las aplicaciones a fin de minimizar el tiempo de inactividad que
perciben los usuarios.
SQL Server 2005 ofrece varias opciones para crear una alta disponibilidad para un servidor o
una base de datos. Entre las opciones de alta disponibilidad figuran las siguientes:
Clster de conmutacin por error
Creacin de reflejo de la base de datos
Trasvase de registros
Replicacin

Importante: Es fundamental disponer de una estrategia de copia de seguridad y restauracin


bien diseada e implementada para utilizar una solucin de alta disponibilidad.

Cluster de conmutacin por error


Un cluster de conmutacin proporciona alta disponibilidad a una instancia completa de SQL
Server. Un cluster de conmutacin por error es una combinacin de uno o varios nodos, o
servidores, con dos o ms discos compartidos. Aplicaciones como SQL Server y Notification
Services se instalan cada una en un grupo de clsteres de Servicios de Cluster Server de
Microsoft (MSCS), conocido como grupo de recursos. En todo momento, cada grupo de
recursos es propiedad de un nico nodo del clster. El servicio de aplicacin tiene un nombre
virtual que es independiente de los nombres del nodo y al que nos referimos como nombre de
instancia de clster de conmutacin por error. Una aplicacin puede conectarse con la

- 190 -
instancia de clster de conmutacin por error si hace referencia al nombre de la misma. La
aplicacin no necesita saber qu nodo aloja a la instancia de clster de conmutacin por error.
Una instancia de clster de conmutacin por error de SQL Server aparece en la red como un
equipo individual, pero ofrece funciones para la conmutacin por error entre nodos si el nodo
actual deja de estar disponible. Por ejemplo, durante un error de hardware no relacionado con
el disco, un error del sistema operativo o una actualizacin planeada del mismo, puede
configurar una instancia de SQL Server en un nodo de un clster de conmutacin por error
para que conmute a cualquier otro nodo del grupo de discos.
Un clster de conmutacin por error no implica proteccin ante errores de disco. Puede utilizar
el clster de conmutacin por error para reducir el tiempo de inactividad del sistema y
garantizar una mayor disponibilidad de la aplicacin. El clster de conmutacin por error es
compatible con SQL Server 2005 Enterprise Edition, Developer Edition y, con algunas
restricciones, en la versin Standard Edition.

Creacin de reflejo de la base de datos


La creacin de reflejo de la base de datos es bsicamente una solucin de software para
aumentar la disponibilidad de la base de datos mediante una conmutacin por error casi
inmediata. La creacin de reflejo de la base de datos puede utilizarse para mantener una sola
base de datos en estado de espera, o base de datos reflejada, para una base de datos de
produccin correspondiente a la que se conoce como base de datos principal.
La base de datos reflejada se crea mediante la restauracin (sin recuperacin) de una copia de
seguridad de la base de datos principal. Eso hace que los clientes no dispongan de acceso a la
base de datos reflejada. Sin embargo, es posible utilizarla de forma indirecta para generar
informes creando una instantnea de base de datos en la base de datos reflejada. La
instantnea de la base de datos proporciona a los clientes acceso de slo lectura a la
informacin de la base de datos tal como exista al crearse la instantnea.
Cada configuracin de creacin de reflejo de la base de datos incluye un servidor principal
que contiene la base de datos principal y un servidor reflejado que contiene la base de datos
reflejada. El servidor reflejado actualiza de forma constante la base de datos reflejada con
relacin a la base de datos principal.
La creacin de reflejo de la base de datos se ejecuta con una operacin sincrnica en modo de
alta seguridad o con una operacin asincrnica en modo de alto rendimiento. En modo de alto
rendimiento, las transacciones se confirman sin esperar a que el servidor reflejado escriba el
registro en el disco, lo que maximiza el rendimiento. En modo de alta seguridad, una
transaccin confirmada se confirma en ambos asociados, pero a riesgo de aumentar la latencia
de las transacciones.
En la configuracin ms sencilla, la creacin de reflejo de la base de datos slo implica a los
servidores principal y reflejado. En sta configuracin, si se pierde el servidor principal, el
reflejado se puede utilizar como servidor en espera semiactiva, con posible prdida de datos. El
modo de alta seguridad admite una configuracin alternativa: modo de alta seguridad con
conmutacin por error automtica. Esta configuracin implica a una tercera instancia de
servidor, denominada testigo, que permite al servidor reflejado actuar como servidor en espera
activa. La conmutacin por error de la base de datos principal a la base de datos reflejada
suele tardar unos segundos.
La creacin de reflejo de la base de datos es completamente compatible con SQL Server
Standard Edition y Enterprise Edition, aunque los asociados de conmutacin por error deben
utilizar la misma edicin. Las instancias de servidor que se ejecutan en SQL Server Workgroup
Edition o Express Edition slo son compatibles con la funcin de testigo.

Trasvase de registros
Al igual que la creacin de reflejo de la base de datos, el trasvase de registros se aplica en la
base de datos. El trasvase de registros puede utilizarse para mantener una o ms bases de
datos en espera semiactiva, denominadas bases de datos secundarias, para una base de

- 191 -
datos de produccin correspondiente conocida como base de datos primaria. Cada una de las
bases de datos secundarias se crea al restaurar una copia de seguridad (sin recuperacin) de
la base de datos primaria, o en espera. La restauracin con base de datos en espera permite
que la base de datos secundaria resultante se utilice para la generacin limitada de informes.
La configuracin del trasvase de registros incluye un nico servidor primario que contiene la
base de datos primaria, uno o varios servidores secundarios, cada uno con una base de datos
secundaria, y un servidor de supervisin. Cada servidor secundario actualiza su base de datos
secundaria a intervalos regulares a partir de las copias de seguridad del registro de la base de
datos primaria. El trasvase de registros implica un retraso modificable por el usuario entre el
momento en que el servidor primario crea una copia de seguridad del registro de la base de
datos primaria y el momento en que el servidor secundario restaura la copia de seguridad del
registro. Antes de que se pueda producir una conmutacin por error, debe actualizarse
totalmente una base de datos secundaria al aplicar manualmente las copias de seguridad del
registro no restauradas.
El trasvase de registros ofrece la flexibilidad de admitir varias bases de datos en espera. Si
necesita varias bases de datos en espera, utilice el trasvase de registros por s solo o como
complemento a la creacin de reflejo de la base de datos. Al combinar estas soluciones, la
base de datos primaria actual de la configuracin de la creacin de reflejo de la base de datos
es tambin la base de datos primaria actual de la configuracin del trasvase de registros.
El trasvase de registros es compatible con SQL Server 2005 Enterprise Edition, Standard
Edition y Workgroup Edition.

Replicacin
La rplica utiliza un modelo de publicacin y suscripcin, lo que permite que un servidor
primario, conocido como publicador, distribuya datos a uno o varios servidores secundarios o
suscriptores. Gracias a la rplica se puede obtener una disponibilidad y escalabilidad en tiempo
real entre tales servidores. Esta solucin admite el filtrado para obtener un subconjunto de
datos de los Suscriptores, as como las actualizaciones con particiones. Los suscriptores estn
conectados y disponibles para la generacin de informes y otras funciones, sin recuperacin de
consultas. SQL Server ofrece tres tipos de rplica: rplica de instantneas, rplica
transaccional y rplica de mezcla. La rplica transaccional proporciona la latencia ms baja y
es la que ms se suele utilizar por su alta disponibilidad.
La rplica es compatible con todas las ediciones de SQL Server 2005. La publicacin de
rplicas no est disponible en SQL Server 2005 Express Edition ni en SQL Server Compact
Edition.

Seleccionar una Solucin de Alta Disponibilidad


En la siguiente lista figuran algunas consideraciones que deben tenerse en cuenta para elegir
una solucin de alta disponibilidad.

El cluster de conmutacin por error y la creacin de reflejo de la base de datos ofrecen:


Deteccin y conmutacin por error automticas
Conmutacin por error manual
Redireccionamiento de clientes transparente

El cluster de conmutacin por error presenta las siguientes restricciones:


Funciona en el mbito de la instancia de servidor
Exige hardware certificado
No permite la generacin de informes en espera
Utiliza una sola copia de la base de datos
No protege frente a errores de disco

- 192 -
La creacin de reflejo de la base de datos ofrece las siguientes ventajas:
Se aplica en la base de datos
Utiliza una sola copia duplicada de la base de datos. En caso de necesitarse ms
copias, puede utilizar la solucin de trasvase de registros en la base de datos adems
de la creacin de reflejo de la base de datos.
Utiliza servidores estndar
Proporciona una capacidad de generacin de informes limitada en el servidor reflejado
mediante instantneas de base de datos
Cuando funciona de forma sincrnica, garantiza una prdida de datos cero gracias a la
confirmacin retardada de la base de datos principal

La creacin de reflejo de la base de datos supone un aumento considerable de la disponibilidad


con relacin al nivel que se consegua anteriormente con SQL Server y constituye una
alternativa fcil de administrar al clster de conmutacin por error.

El trasvase de registros puede ser un complemento o una alternativa a la creacin de reflejo


de la base de datos. Aunque son similares conceptualmente, la creacin de reflejo de la base
de datos asincrnica y el trasvase de registros tienen diferencias importantes. El trasvase de
registros ofrece las siguientes capacidades distintivas:

Admite varias bases de datos secundarias en varias instancias de servidor para una
base de datos principal nica.
Permite un retraso especificado por el usuario entre el momento en que el servidor
primario realiza una copia de seguridad del registro de la base de datos primaria y el
momento en que los servidores secundarios deben restaurar la copia de seguridad del
registro. Un retraso ms largo puede ser til, por ejemplo, si los datos se cambian en la
base de datos principal de manera accidental. Si se detecta el cambio accidental
rpidamente, un retraso puede permitirle recuperar datos an sin modificar de una
base de datos secundaria antes de que el cambio se refleje en ella.
Si se compara con el tiempo ms breve necesario para que el trasvase de registros
refleje un cambio en una base de datos secundaria, la creacin de reflejo de la base de
datos asincrnica tiene la ventaja potencial de un tiempo menor entre el momento en
que se realiza un cambio determinado en la base de datos primaria y el momento en
que dicho cambio surte efecto en la base de datos reflejada. Una ventaja de la creacin
de reflejo de la base de datos respecto al trasvase de registros es que el modo de alta
seguridad es una configuracin "sin prdida de datos" compatible como estrategia de
conmutacin por error simple.

La replicacin ofrece las siguientes ventajas:


Permite el filtrado en la base de datos para obtener un subconjunto de datos en las
bases de datos secundarias, dado que funciona en el mbito de la base de datos.
Permite ms de una copia redundante de la base de datos.
Permite la disponibilidad y escalabilidad en tiempo real entre varias bases de datos,
adems de admitir las actualizaciones con particiones.
Asegura una disponibilidad completa de las bases de datos secundarias para las
opciones de informes entre otras, sin recuperacin de consultas.

- 193 -
2- Implementacin de Server Clustering

Que es un Cluster?
Un clster de conmutacin proporciona alta disponibilidad a una instancia completa de SQL
Server. Un clster de conmutacin por error es una combinacin de uno o varios nodos, o
servidores, con dos o ms discos compartidos. Aplicaciones como SQL Server y Notification
Services se instalan cada una en un grupo de clsteres de Servicios de Cluster Server de
Microsoft (MSCS), conocido como grupo de recursos. En todo momento cada grupo de
recursos es propiedad de un nico nodo del clster. El servicio de aplicacin tiene un nombre
virtual que es independiente de los nombres del nodo y al que nos referimos como nombre de
instancia de clster de conmutacin por error. Una aplicacin puede conectarse con la
instancia de clster de conmutacin por error si hace referencia al nombre de la misma. La
aplicacin no necesita saber qu nodo aloja a la instancia de clster de conmutacin por error.

Una instancia de clster de conmutacin por error de SQL Server aparece en la red como un
equipo individual, pero ofrece funciones para la conmutacin por error entre nodos, si el nodo
actual deja de estar disponible. Por ejemplo, durante un error de hardware no relacionado con
el disco, un error del sistema operativo o una actualizacin planeada del mismo, puede
configurar una instancia de SQL Server en un nodo de un clster de conmutacin por error
para que conmute a cualquier otro nodo del grupo de discos.

Un clster de conmutacin por error no implica proteccin ante errores de disco. Puede utilizar
el clster de conmutacin por error para reducir el tiempo de inactividad del sistema y
garantizar una mayor disponibilidad de la aplicacin. El clster de conmutacin por error es
compatible con SQL Server 2005 Enterprise Edition, Developer Edition y, con algunas
restricciones, en la versin Standard Edition.

Consideraciones antes de Instalar un Cluster de Conmutacin por Error


Antes de instalar un clster de conmutacin por error de SQL Server 2005, debe seleccionar el
hardware y el sistema operativo en el que se ejecutar SQL Server 2005. Tambin debe
configurar el Servicio de Cluster Server de Microsoft (MSCS), as como revisar las
consideraciones relativas a la red, la seguridad y el resto del software que se ejecutar en el
clster de conmutacin por error.

- 194 -
Lista de comprobacin previa a la instalacin
Antes de comenzar el proceso de instalacin del clster de conmutacin por error, revise los
siguientes elementos:

Comprobar la Solucin de Hardware


El sistema de hardware debe aparecer en la categora de solucin de clster. La
agrupacin de componentes de clster individuales no representa un sistema aprobado
de clster de conmutacin por error. Slo los sistemas adquiridos como solucin de
clster y que se muestran en el grupo de clsteres estn aprobados.
Es necesario comprobar especialmente la compatibilidad del hardware al implementar
un clster de servidor de conmutacin por error en una red de rea de almacenamiento
(SAN). La solucin de hardware completa debe encontrarse en la categora
Cluster/Multi-cluster Device (Dispositivo de clster/varios clsteres) de Microsoft
Windows Catalog (Catlogo de Microsoft Windows) y Windows Hardware Compatibility
List (Lista de compatibilidad de hardware de Windows).
Si la solucin de clster incluye nodos de clster geogrficamente dispersos, deben
comprobarse elementos adicionales como la latencia de red y la compatibilidad con
discos compartidos. La solucin completa debe figurar en la lista de compatibilidad de
hardware de clsteres geogrficos.
Las configuraciones de SAN tambin se admiten en Microsoft Windows 2000
Advanced Server y Datacenter Edition. El Catlogo de Windows y la lista de
compatibilidad de hardware muestran el conjunto de dispositivos de almacenamiento
habilitados para SAN que se admiten como unidades de almacenamiento de SAN con
varios clsteres de MSCS adjuntos. Puede implementar un conjunto de clsteres y
servidores de Windows en un tejido SAN y tener el soporte tcnico de Microsoft. Puede
hacerlo mediante la correspondencia de los dispositivos de esta lista con las
configuraciones de clster completas definidas en la categora "clster" del Catlogo de
Microsoft Windows y la lista de compatibilidad de hardware de Windows.
Si implementa un clster de conmutacin por error de SQL Server 2005 en
componentes de tecnologa de interfaz para pequeos equipos de Internet (iSCSI), se
recomienda hacerlo con precaucin.
Considere la posibilidad de utilizar el uso compartido de recursos de disco de qurum.
En un clster de servidores, el disco de qurum contiene una copia maestra de la
configuracin del clster de servidores. Tambin como "desempate" si se produce un
error en toda la comunicacin de red entre los nodos del clster. En funcin del tipo de
clster de servidores que se implemente, el disco de qurum puede ser o no un disco
fsico en la matriz de discos del clster compartidos. Aunque es conveniente reservar
un disco del clster completo para su uso como disco de qurum, se puede permitir el
acceso de los recursos distintos del recurso de qurum al disco de qurum. Sin
embargo, al hacer que el recurso de qurum comparta el mismo disco con otros
recursos, debe decidir entre dos alternativas no deseadas. Debe configurar el recurso
para que un potencial error no afecte al grupo, o bien debe permitir que los errores de
otros recursos afecten al grupo. En el primer caso, se pierde compatibilidad con la
conmutacin por error con el recurso; en el segundo, el recurso de qurum realiza la
conmutacin por error junto con el resto del grupo que contiene el recurso de qurum y
el recurso con error. Como consecuencia, todo el clster queda sin conexin durante el
tiempo que el grupo tarde en realizar la conmutacin por error.
Para instalar un clster de conmutacin por error de SQL Server 2005 cuando los
archivos de instalacin de origen y el clster existen en diferentes dominios, copie los
archivos de instalacin en el nodo principal del clster. A continuacin, inicie la
instalacin del nodo principal.

- 195 -
Comprobar la Configuracin del Sistema Operativo
Asegrese de que el sistema operativo est correctamente instalado y diseado para
admitir los clsteres de conmutacin por error.
Habilite el Proveedor de servicios de cifrado de Windows (CSP) en Windows Server
2003. Si el servicio CSP se detiene o deshabilita en cualquier nodo del clster, se
produce un error en la instalacin de SQL Server con un mensaje de error de requisito
del logotipo de Windows.
Habilite el servicio Programador de tareas en todos los sistemas operativos para la
instalacin remota y de clster. Si el Programador de tareas est deshabilitado, la
instalacin de SQL Server producir el error 1058.
SQL Server 2005 admite puntos de montaje; las instalaciones en clster de SQL Server
estn limitadas al nmero de letras de unidad disponibles. Si utiliza slo una letra de
unidad para el sistema operativo, se limita a un mximo de 25 instancias de SQL
Server por cluster de conmutacin por error.
Un volumen montado, o punto de montaje, le permite utilizar una sola letra de unidad
para hacer referencia a muchos discos o volmenes. Si tiene una letra de unidad D:
para un disco o volumen normal, puede conectar o "montar" discos o volmenes
adicionales como directorios en la letra de unidad D: sin que dichos discos o
volmenes adicionales exijan letras de unidad propias.

Configurar el Servicio de Cluster Server de Microsoft


El Servicio de Cluster Server de Microsoft (MSCS) debe configurarse al menos en un
nodo del clster de servidores. MSCS slo se admite si est instalado en una
configuracin de hardware cuya compatibilidad con el software MSCS haya sido
comprobada. Adems, debe ejecutar SQL Server 2005 Enterprise Edition o Standard
Edition junto con MSCS. SQL Server 2005 Enterprise Edition admite clsteres de
conmutacin por error con un mximo de 8 nodos. SQL Server 2005 Standard Edition
admite clsteres de conmutacin por error con 2 nodos.

La DLL de recursos para el servicio SQL Server exporta dos funciones utilizadas por
administrador de clsteres de MSC para comprobar disponibilidad del recurso SQL
Server. Una comprobacin simple, LooksAlive, consulta el estado del Administrador
de control de servicios de Windows NT. Una comprobacin ms rigurosa, IsAlive,
conecta a SQL Server como un sondeo del usuario para realizar una consulta simple.
De forma predeterminada, LooksAlive se activa cada 5 segundos e IsAlive se activa
cada 60 segundos. Los intervalos de sondeo de IsAlive y LooksAlive se pueden
cambiar en el Administrador de clsteres de MSC en la ficha Avanzadas para el
recurso SQL Server o utilizando el comando del smbolo del sistema cluster.exe.
MSCS debe poder comprobar que la instancia agrupada de conmutacin por error est
en ejecucin mediante la comprobacin IsAlive. Esto requiere conectar al servidor
mediante una conexin de confianza. De forma predeterminada, la cuenta que ejecuta
el servicio de clster est configurada como administrador en todos los nodos del
clster y el grupo BUILTIN\Administradores tiene permiso para iniciar sesin en SQL
Server. Esta configuracin slo cambia si se cambian los permisos en los nodos del
clster. Si quita la cuenta BUILTIN\Administradores, asegrese de que la cuenta con
la que se ejecutan los Servicios de Cluster Server puede iniciar una sesin en SQL
Server para la comprobacin de IsAlive. En caso contrario, se producir un error en la
comprobacin de IsAlive. Como mnimo, la cuenta de los Servicios de Cluster Server
(MSCS) debe tener privilegios public en SQL Server para poder ejecutar
@@servername de modo regular.

- 196 -
Al instalar MSCS, es muy importante utilizar cuentas de servicio independientes para
iniciar una sesin en MSCS y SQL Server. De lo contrario, la contrasea del servicio de
clster no se puede cambiar con el comando de clster.
Cuando se utiliza MSCS, un nodo debe tener el control del bus SCSI compartido antes
de conectar el otro nodo. Si no es as, la conmutacin por error de aplicaciones puede
entrar en un estado pendiente de conexin e impedir la conmutacin por error al otro
nodo o producir un error total. Si el sistema de clster tiene un proceso de instalacin
propio, debe utilizarse.

Instalar el Coordinador de Transacciones Distribuidas de Microsoft


Antes de instalar SQL Server 2005 en un clster de conmutacin por error, determine si debe
crearse el recurso de clster del Coordinador de Transacciones Distribuidas de Microsoft
(MSDTC). Si slo instala el Motor de base de datos, no ser necesario el recurso de clster de
MSDTC. Si instala el Motor de base de datos y SSIS, Notification Services o componentes de
la estacin de trabajo, deber instalar MSDTC. Este requisito se aplica a los sistemas
operativos Windows 2000 y Windows Server 2003.
Las herramientas administrativas Servicios de componentes, proxy de MSDTC y administrador
de transacciones de MSDTC se instalan en cada nodo del clster de servidores basados en
Windows. El clster utiliza los Servicios de Cluster Server de Microsoft (MSCS) como parte de
la instalacin del clster de servidores basados en Windows.

Tras instalar el sistema operativo y configurar el clster, debe configurar MSDTC para que
funcione en un clster mediante el Administrador de clsteres. Si no logra crear el clster de
MSDTC, no se bloquear el programa de instalacin de SQL Server, pero la funcionalidad de la
aplicacin SQL Server puede verse afectada si MSDTC no se configura correctamente.
Todos los procesos que se ejecuten en cualquier nodo del clster pueden utilizar MSDTC.
Estos procesos simplemente llaman al proxy de MSDTC y ste reenva automticamente las
llamadas de MSDTC al administrador de transacciones de MSDTC, que controla todo el clster.
Si se produce un error en el nodo que ejecuta el administrador de transacciones de MSDTC,
ste se reinicia automticamente en otro nodo del clster. El administrador de transacciones
recin reiniciado lee el archivo de registro de MSDTC en el disco del clster compartido para
determinar el resultado de las transacciones pendientes y recin completadas.

Los administradores de recursos se vuelven a conectar al administrador de transacciones y


realizan la recuperacin para determinar el resultado de las transacciones pendientes. Las
aplicaciones se vuelven a conectar a MSDTC para poder iniciar las nuevas transacciones. Por
ejemplo, suponga que el administrador de transacciones de MSDTC est activo en el sistema
B. El programa de aplicacin y el administrador de recursos del sistema A llaman al proxy de
MSDTC. El proxy de MSDTC del sistema A reenva todas las llamadas de MSDTC al
administrador de transacciones de MSDTC del sistema B. Si se produce un error en el sistema
B, el administrador de transacciones de MSDTC del sistema A tomar el control. Leer todo el
archivo de registro de MSDTC en el disco del clster compartido, realizar la recuperacin y, a
continuacin, actuar como administrador de transacciones de todo el clster.

Otras Consideraciones de Software


Asegrese de que todos los nodos del cluster estn configurados de forma idntica, lo
que incluye COM+, letras de unidad de disco y usuarios del grupo de administradores.
Compruebe que la interconexin del clster (latido) est configurada correctamente.
Compruebe que ha borrado los registros del sistema en todos los nodos y ha
consultado de nuevo los registros del sistema. Antes de continuar, asegrese de que
los registros no contienen mensajes de error.

- 197 -
Para instalaciones de SQL Server 2005 en configuraciones simultneas con versiones
anteriores de SQL Server, los servicios de SQL Server 2005 deben usar cuentas que
slo se encuentran en el grupo de dominio global. Adems, las cuentas utilizadas por
los servicios de SQL Server 2005 no deben aparecer en el grupo local de
administradores. Si no se sigue sta directriz, se producirn comportamientos
inesperados con respecto a la seguridad.
Si instala SQL Server 2005 en un grupo de clster de Windows 2000 con varias
unidades de disco y decide colocar los datos en una de las unidades, el recurso de
SQL Server se configura para que slo dependa de dicha unidad. Para colocar datos o
registros en recursos de disco adicionales, primero debe agregar una dependencia al
recurso de SQL Server para el disco adicional.
Para utilizar el cifrado, instale el certificado del servidor con el nombre DNS completo
del clster MSCS en todos los nodos del clster de conmutacin por error de SQL
Server. Por ejemplo, si tiene un clster con dos nodos cuyos nombres son
"Test1.DomainName.com" y "Test2.DomainName.com" y una instancia de clster de
conmutacin por error de SQL Server denominada "Virtsql", debe obtener un certificado
para "Virtsql.DomainName.com" e instalarlo en los nodos test1 y test2. A continuacin,
puede activar la casilla de verificacin Forzar cifrado de protocolo en el Administrador
de configuracin de SQL Server para configurar el clster de conmutacin por error
para el cifrado.
Importante: No active la casilla de verificacin Forzar cifrado de protocolo hasta que
haya instalado certificados en todos los nodos participantes de la instancia de clster
de conmutacin por error.
Compruebe que no tiene instalado software antivirus en el clster MSCS.
SQL Server 2005 no se admite en Terminal Server de Windows Server 2003.
Compruebe que el disco en el que se instalar SQL Server no est comprimido. Si
intenta instalar SQL Server en una unidad comprimida, se producir un error en la
instalacin de SQL Server.
Compruebe tambin que los nombres del grupo de clsteres existentes no contienen
caracteres no compatibles. Cuando asigne nombre a un grupo de clsteres de la
instalacin de clster de conmutacin por error, no debe utilizar ninguno de los
caracteres siguientes:
o Operador menor que (<)
o Operador mayor que (>)
o Comillas dobles (")
o Comillas simples (')
o Smbolo de "y" comercial (&)

Consideraciones Relativas a la Red


Antes de iniciar el programa de instalacin de SQL Server, compruebe que ha desactivado
NetBIOS para todas las tarjetas de red privada.
El nombre de red y la direccin IP del servidor SQL Server no deben utilizarse para ningn otro
fin, por ejemplo el uso compartido de archivos. Si desea crear un recurso compartido de
archivos, utilice un nombre de red y una direccin IP diferentes y nicos para el recurso.
Importante: Microsoft recomienda no utilizar recursos compartidos de archivos en unidades de
datos, ya que pueden afectar al comportamiento y el rendimiento de SQL Server.

Aunque SQL Server 2005 admite canalizaciones con nombre y Sockets TCP/IP sobre TCP/IP
en un clster, Microsoft recomienda utilizar Sockets TCP/IP en una configuracin de clster.

Otras Consideraciones

- 198 -
Para crear un clster de conmutacin por error, debe ser un administrador local con
permisos para iniciar una sesin como servicio y para actuar como parte del sistema
operativo en todos los nodos de la instancia de clster de conmutacin por error.
Antes de instalar o actualizar un clster de conmutacin por error de SQL Server,
deshabilite todas las aplicaciones y servicios que podran utilizar componentes de SQL
Server durante la instalacin, pero mantenga los recursos de disco en lnea.
Cree grupos de dominios para los servicios en clster que se instalarn como parte de
su clster de conmutacin por error de SQL Server 2005. El servicio SQL Server, el
servicio del agente SQL Server, el servicio Analysis Services y el servicio Bsqueda de
texto deben ejecutarse como cuentas de dominio que son miembros del grupo de
dominios global o local. Si es necesario, pregunte al administrador del dominio los
nombres de los grupos de dominio existentes, o bien pdale que cree los grupos de
dominio para su clster de conmutacin por error.
Los clsteres de conmutacin por error de SQL Server no se admiten en el caso en
que los nodos del clster son controladores de dominio.
Configure el Servicio de nombres de dominio (DNS) o el Servicio de nombres Internet
de Windows (WINS). En el entorno donde se va a instalar el clster de conmutacin por
error de SQL Server debe estar ejecutndose un servidor DNS o WINS. El programa
de instalacin de SQL Server requiere el registro DDNS (servicio de nombres de
dominio dinmicos) de la referencia virtual de la interfaz IP de SQL Server. Si no se
puede llevar a cabo el registro dinmico, se produce un error en el programa de
instalacin y sta se revierte. Si no est disponible el registro dinmico, debe haber
registrado previamente el servidor en DNS.
Revise el contenido de Consideraciones de seguridad para una instalacin de SQL
Server.
Revise el contenido de Comprobar los parmetros del Comprobador de configuracin
del sistema.
Compruebe si las herramientas, caractersticas y componentes de SQL Server que
desea usar son compatibles con el clster de conmutacin por error.
Considere cmo supervisar y mantendr el clster de conmutacin por error para
lograr los objetivos de alta disponibilidad.
Para reducir el tiempo necesario para instalar un clster de conmutacin por error de
SQL Server 2005, puede preinstalar Microsoft .NET Framework versin 2.0 en todos
los nodos de clster de conmutacin por error antes de ejecutar el programa de
instalacin de SQL Server.

Instalar un Custer de Conmutacin por Error


Para instalar un clster de conmutacin por error de Microsoft SQL Server 2005, debe crear y
configurar una instancia de clster de conmutacin por error mediante la ejecucin del
programa de instalacin de SQL Server.

Elementos de una instancia de clster de conmutacin por error


Una instancia de clster de conmutacin por error puede ejecutarse en uno o varios
equipos que sean nodos participantes de un clster de conmutacin por error. Slo el
sistema operativo puede limitar el nmero de nodos participantes.
Una instancia de clster de conmutacin por error contiene:
Una combinacin de uno o ms discos en un grupo de clsteres de Servicios de
Cluster Server de Microsoft (MSCS), conocido tambin como grupo de recursos. Cada
grupo de recursos puede contener una instancia de SQL Server como mximo.
Un nombre de red para la instancia de clster de conmutacin por error.
Una o ms direcciones IP asignadas a la instancia de clster de conmutacin por error.

- 199 -
Una instancia de SQL Server 2005 que incluya SQL Server, el Agente SQL Server y el
servicio de bsqueda de texto (FTS).

Asignar nombre a una Instancia de Cluster de Conmutacin por Error


Una instancia de cluster de conmutacin por error de SQL Server siempre aparece en la red
como si se tratara de un solo equipo. Debe utilizar el nombre de la instancia de clster de
conmutacin por error de SQL Server para conectarse al clster de conmutacin por error de
SQL Server, no el nombre del equipo del nodo en el que se est ejecutando. De este modo se
garantiza que siempre se pueda conectar a la instancia de clster de conmutacin por error
mediante el mismo nombre, sea cual sea el nodo en el que se ejecute SQL Server.

El nombre de la instancia de clster de conmutacin por error debe ser nico en el dominio.
SQL Server no escucha en la direccin IP de los servidores locales. En realidad, SQL Server
slo escucha en la direccin IP virtual creada durante la instalacin de la instancia de clster de
conmutacin por error de SQL Server.

SQL Server depende de claves del Registro y nombres de servicio diferenciados dentro del
clster de conmutacin por error para garantizar que SQL Server siga funcionando tras una
conmutacin por error. Por tanto, el nombre que proporcione a la instancia de SQL Server,
incluida la instancia predeterminada, debe ser nico en todos los nodos del clster de
conmutacin por error. El uso de nombres de instancia nicos garantiza que las instancias de
SQL Server configuradas para realizar la conmutacin por error en un solo servidor tengan
claves del Registro y nombres de servicio diferenciados.

Tenga en cuenta que la limitacin de discos detectada en versiones anteriores de SQL Server
no afecta a SQL Server 2005. Gracias a la compatibilidad con las unidades montadas en SQL
Server 2005, cada instancia de SQL Server slo necesita un disco de clster para los archivos
de datos.

- 200 -
3- Implementando Reflejo de Base de Datos

Generalidades de la Creacin de Reflejo de la Base de Datos


La creacin de reflejo de la base de datos es una solucin de software usada principalmente
para aumentar la disponibilidad de una base de datos. La creacin de reflejo se implementa en
cada una de las bases de datos y slo funciona con las que utilizan el modelo de recuperacin
completa. Los modelos de recuperacin simple y por medio de registros de operaciones
masivas no admiten la creacin de reflejo de la base de datos. Por lo tanto, todas las
operaciones masivas se registran siempre por completo. La creacin de reflejo de una base de
datos funciona con cualquier nivel de compatibilidad con bases de datos.

Nota: No es posible reflejar las bases de datos master, msdb, tempdb o model.

La creacin de reflejo de la base de datos mantiene dos copias de una sola base de datos que
debe residir en diferentes instancias del Motor de base de datos de SQL Server (instancias de
servidor). Generalmente, estas instancias de servidor residen en equipos de diferentes
ubicaciones. Una instancia de servidor da servicio a la base de datos para los clientes (el
servidor principal), mientras la otra acta como un servidor en espera semiactiva o activa (el
servidor reflejado), en funcin de la configuracin y el estado de la sesin de creacin de
reflejo. Cuando una sesin de creacin de reflejo de la base de datos est sincronizada, la
creacin de reflejo de la base de datos proporciona un servidor en espera activa que admite la
conmutacin por error rpida sin que se produzca ninguna prdida de datos derivada de las
transacciones confirmadas. Cuando la sesin no est sincronizada, el servidor reflejado suele
estar disponible como servidor en espera semiactiva (con posible prdida de datos).

Ventajas de la creacin de reflejo de la base de datos


La creacin de reflejo de la base de datos es una estrategia sencilla que ofrece las siguientes
ventajas:
Aumenta la proteccin de los datos.
La creacin de reflejo de la base de datos proporciona una redundancia completa o
casi completa de los datos, en funcin de si el modo de funcionamiento es el de alta
seguridad o el de alto rendimiento.
Incrementa la disponibilidad de una base de datos.
Si se produce un desastre en el modo de alta seguridad con conmutacin por error
automtica, la conmutacin por error pone en conexin rpidamente la copia en espera
de la base de datos, sin prdida de datos. En los dems modos operativos, el
administrador de bases de datos tiene la alternativa del servicio forzado (con una
posible prdida de datos) para la copia en espera de la base de datos.
Mejora la disponibilidad de la base de datos de produccin durante las actualizaciones.
Para minimizar el tiempo de inactividad de una base de datos reflejada, puede
actualizar secuencialmente las instancias de SQL Server que participan en una sesin
de reflejo de la base de datos, incurriendo slo en el tiempo de inactividad de una nica
conmutacin por error. Este formulario de actualizacin se conoce como actualizacin
sucesiva.

Funcionamiento de la creacin de reflejo de la base de datos


Los dos servidores, principal y reflejado, se comunican y colaboran como asociados en una
sesin de creacin de reflejo de la base de datos. Los dos asociados realizan funciones
complementarias en la sesin: la funcin principal y la funcin de reflejo. En cada momento,
un asociado realiza la funcin principal y el otro realiza la funcin de reflejo. Cada asociado se

- 201 -
describe como poseedor de su funcin actual. El asociado que posee la funcin principal se
denomina servidor principal y su copia de la base de datos es la base de datos principal actual.
El asociado que posee la funcin de reflejo se denomina servidor reflejado y su copia de la
base de datos es la base de datos reflejada actual. Cuando se implementa la creacin de
reflejo de la base de datos en un entorno de produccin, la base de datos principal es la base
de datos de produccin.

La creacin de reflejo de la base de datos implica rehacer cada operacin de insercin,


actualizacin y eliminacin que ocurre desde la base de datos principal a la base de datos
reflejada tan pronto como sea posible. Para rehacer estas operaciones se enva cada entrada
del registro de transacciones activo al servidor reflejado que, en secuencia, aplica las entradas
del registro a la base de datos reflejada lo ms rpido posible. A diferencia de la rplica, que
trabaja en el nivel lgico, la creacin de reflejo de la base de datos trabaja en el registro fsico.

Modos de funcionamiento
Una sesin de creacin de reflejo de la base de datos se ejecuta en modo sincrnico o
asincrnico. Con el funcionamiento asincrnico, las transacciones se confirman sin esperar a
que el servidor reflejado escriba el registro en el disco, lo que maximiza el rendimiento. Con el
funcionamiento sincrnico, una transaccin confirmada se confirma en ambos asociados, pero
a costa de aumentar la latencia de las transacciones.

Existen dos modos de funcionamiento de la creacin de reflejo:


Modo de Alta Seguridad: Admite el funcionamiento sincrnico. En el modo de alta
seguridad, cuando se inicia una sesin, el servidor reflejado sincroniza la base de datos
reflejada con la base de datos principal lo ms rpido posible. Una vez sincronizadas
las bases de datos, una transaccin confirmada se confirma en ambos asociados, pero
a costa de aumentar la latencia de las transacciones.
Modo de Alto Rendimiento: Se ejecuta de forma asincrnica. El servidor reflejado
intenta hacer frente a las entradas de registro enviadas por el servidor principal. La
base de datos reflejada podra ir un poco retrasada con respecto a la base de datos
principal; sin embargo, el espacio entre las bases de datos suele ser pequeo. No
obstante, la diferencia puede ser considerable si el servidor principal soporta una gran
carga de trabajo o el sistema del servidor reflejado se encuentra sobrecargado.

En el modo de alto rendimiento, en cuanto el servidor principal enva una entrada de registro al
servidor reflejado, el servidor principal enva una confirmacin al cliente, sin esperar una
confirmacin del servidor reflejado. Esto significa que las transacciones se confirman sin
esperar a que el servidor reflejado escriba el registro en el disco. Este funcionamiento
asincrnico permite que el servidor principal se ejecute con la mnima latencia de
transacciones, pero a riesgo de una prdida potencial de datos.

Todas las sesiones de creacin de reflejo de la base de datos slo admiten un servidor
principal y un servidor reflejado.

En la siguiente ilustracin se muestra esta configuracin.

- 202 -
El modo de alta seguridad con conmutacin automtica por error requiere una tercera instancia
de servidor denominada testigo. A diferencia de los dos asociados, el testigo no sirve a la base
de datos. El testigo admite la conmutacin automtica por error al comprobar que el servidor
principal se encuentre activo y en funcionamiento. El servidor reflejado inicia la conmutacin
automtica por error slo si ste y el testigo permanecen mutuamente conectados despus de
haberse desconectado del servidor principal.

En la siguiente ilustracin se muestra una configuracin que incluye un testigo.

Seguridad de las Transacciones y Modos de Funcionamiento


Que el modo operativo sea asincrnico o sincrnico depende de la configuracin de seguridad
de las transacciones. Si utiliza exclusivamente SQL Server Management Studio para configurar
la creacin de reflejo de la base de datos, la configuracin de seguridad de las transacciones
se realiza automticamente cuando selecciona el modo operativo.

Si utiliza Transact-SQL para configurar la creacin de reflejo de la base de datos, deber


comprender cmo establecer la seguridad de las transacciones. El control de la seguridad de

- 203 -
las transacciones est a cargo de la propiedad SAFETY de la instruccin ALTER DATABASE.
En la base de datos que se va a reflejar, la opcin SAFETY se establece en FULL o en OFF.
Si la opcin SAFETY se establece en FULL, la operacin de creacin de reflejo de la base de
datos es sincrnica, tras la fase inicial de sincronizacin. Si un testigo se establece en el modo
de alta seguridad, la sesin admite la conmutacin automtica por error.
Si la opcin SAFETY se establece en OFF, la operacin de creacin de reflejo de la base de
datos es asincrnica. La sesin se ejecuta en modo de alto rendimiento y la opcin WITNESS
tambin debe establecerse en OFF.

Extremo de Creacin de Reflejo de Base de Datos


La administracin de conexiones en Microsoft SQL Server 2005 se basa en extremos. Un
extremo es un objeto de SQL Server que permite a SQL Server comunicarse por la red. En la
creacin de un reflejo de una base de datos, una instancia de servidor requiere su propio
extremo de creacin de reflejo de la base de datos dedicado. Todas las conexiones de creacin
de reflejo en una instancia de servidor utilizan un nico extremo de reflejo de la base de datos.
Se trata de un extremo especial que se utiliza exclusivamente para recibir conexiones de
creacin de reflejo de la base de datos procedentes de otras instancias de servidor.

Nota: Las conexiones de cliente al servidor principal no usan el extremo de creacin de reflejo
de la base de datos.

Los extremos de creacin de reflejo de la base de datos utilizan el Protocolo de control de


transporte (TCP, Transmission Control Protocol) para enviar y recibir mensajes entre instancias
de servidor en sesiones de creacin de reflejo de la base de datos. Cada extremo de creacin
de reflejo de la base de datos se escucha en un nmero de puerto TCP diferente. El extremo
de creacin de reflejo de la base de datos de una instancia de servidor controla el puerto en el
que dicha instancia escucha los mensajes de creacin de reflejo de la base de datos de otras
instancias de servidor.

Cmo Crear un Extremo de Reflejo para la Autenticacin de Windows


Cada instancia de servidor de creacin de reflejo de base de datos requiere un puerto de
escucha nico asignado al extremo de creacin de reflejo de base de datos de la instancia.
Una instancia de servidor slo puede tener un extremo de creacin de reflejo de base de datos,
que tiene un puerto nico. Un extremo de creacin de reflejo de base de datos puede utilizar
cualquier puerto disponible en el sistema local cuando se crea el extremo. Todas las sesiones
de creacin de reflejo de base de datos de una instancia de servidor escuchan en dicho puerto
y todas las conexiones entrantes para la creacin de reflejo de base de datos utilizan dicho
puerto.

Roles de servidor
Los argumentos que aparecen a continuacin son especficos de la opcin
DATABASE_MIRRORING.

ROLE = { WITNESS | PARTNER | ALL }

Especifica la funcin o funciones de creacin de reflejo de la base de datos que admite el


extremo.

Argumentos:
WITNESS: Permite al extremo realizar la funcin de un testigo en el proceso de
creacin del reflejo.

- 204 -
Nota: Para SQL Server 2005 Express Edition, WITNESS es la nica opcin disponible.
PARTNER: Permite al extremo realizar la funcin de un asociado en el proceso de
creacin del reflejo.
ALL: Permite al extremo realizar la funcin de un testigo y un asociado en el proceso
de creacin del reflejo.

Para Crear un Extremo de Reflejo utilizando la Autenticacin de Windows


Conecte con la instancia del servidor para la que desea crear un extremo de reflejo de
la base de datos.
Determine si ya existe un extremo de reflejo de la base de datos utilizando la siguiente
instruccin:

SELECT name, role_desc, state_desc FROM sys.database_mirroring_endpoints

Importante: Si ya existe un extremo de reflejo para la instancia del servidor, utilice ese extremo
para todas las otras sesiones que establezca en la instancia del servidor.

Para usar Transact-SQL para crear un extremo que se utilice con la autenticacin de
Windows, utilice la instruccin CREATE ENDPOINT. La instruccin toma la siguiente
forma general:

CREATE ENDPOINT <Nombre_endpoint>


STATE=STARTED
AS TCP ( LISTENER_PORT = <Lista_Puertos_Escucha> )
FOR DATABASE_MIRRORING
(
[ AUTHENTICATION = WINDOWS [ <Metodo_Autorizacin> ]
]
[ [,] ENCRYPTION = REQUIRED
[ ALGORITHM { <algoritmo> } ]
]
[,] ROLE = <rol> )
Argumentos:
<Nombre_endpoint>: Es un nombre exclusivo para el extremo de reflejo de la base de
datos de la instancia del servidor.
STARTED: Especifica que el extremo debe iniciarse y que debe empezar a escuchar
las conexiones. Un extremo de reflejo de base de datos normalmente se crea en el
estado STARTED. Opcionalmente, puede iniciar una sesin en el estado STOPPED
(valor predeterminado) o DISABLED.
<Lista_Puertos_Escucha>: Es un nmero de puerto nico en el que desea que el
servidor escuche los mensajes de creacin de reflejo de base de datos. Slo se
permite TCP; si se especifica cualquier otro protocolo se provoca un error. Un nmero
de puerto slo se puede usar una vez por sistema. Un extremo de creacin de reflejo
de base de datos puede utilizar cualquier puerto disponible en el sistema local cuando
se crea el extremo. Para identificar los puertos que estn usando los extremos TCP del
sistema, utilice la siguiente instruccin Transact-SQL:

SELECT name, port FROM sys.tcp_endpoints

Importante: Cada instancia del servidor requiere slo un puerto de escucha nico.
AUTHENTICATION: Para la autenticacin de Windows es opcional, a menos que
desee que el extremo utilice slo NTLM o Kerberos para autenticar conexiones.

- 205 -
<Metodo_Autorizacin>: Especifica el mtodo que se utiliza para autenticar
conexiones como uno de los siguientes: NTLM, KERBEROS o NEGOTIATE. El valor
predeterminado, NEGOTIATE, hace que el extremo utilice el protocolo de negociacin
de Windows para elegir NTLM o Kerberos. La negociacin habilita conexiones con o
sin autenticacin, dependiendo del nivel de autenticacin del extremo opuesto.
ENCRYPTION se establece en REQUIRED de forma predeterminada. Esto significa
que todas las conexiones con este punto final deben usar cifrado. No obstante, puede
deshabilitar el cifrado o hacer que sea opcional en un extremo. Las alternativas son las
siguientes:

Valor Definicin

DISABLED Especifica que los datos enviados en una conexin no estn cifrados.

SUPPORTED Especifica que los datos estn cifrados slo si el extremo opuesto especifica
SUPPORTED o REQUIRED.

REQUIRED Especifica que los datos enviados en una conexin deben estar cifrados.

<algoritmo>: Proporciona la opcin de especificar estndares de cifrado para el


extremo. El valor de <algoritmo> puede ser uno de los siguientes algoritmos o
combinaciones de algoritmos: RC4, AES, AES RC4 o RC4 AES.
AES RC4 especifica que este extremo negociar el algoritmo de cifrado, dando
preferencia al algoritmo AES. RC4 AES especifica que este extremo negociar el
algoritmo de cifrado, dando preferencia al algoritmo RC4. Si ambos extremos
especifican ambos algoritmos pero en rdenes diferentes, el extremo que acepta la
conexin gana.
<rol>: Define la funcin o las funciones que el servidor puede llevar a cabo. Se tiene
que especificar ROLE. Para permitir que una instancia de servidor sirva como una
funcin para una sesin de reflejo de base de datos y una funcin diferente para otra
sesin, especifique ROLE=ALL. Para hacer que la instancia de un servidor slo sea un
asociado o un testigo, especifique ROLE=PARTNER o ROLE=WITNESS,
respectivamente.

Direccin de Red de Servidor


La direccin de red de una instancia de servidor (su direccin de red de servidor) contiene el
nmero de puerto de su extremo, as como el nombre de sistema y de dominio del equipo host.
Dado que cada servidor cuenta con un extremo para la creacin de reflejo distinto que utiliza un
puerto exclusivo, el nmero de puerto identifica de forma exclusiva una instancia de servidor
especfica. Esto permite que varias instancias de servidor en un mismo servidor participen en la
creacin del reflejo de la base de datos (que slo se suele realizar con fines de pruebas).

En la siguiente ilustracin se muestra cmo dos instancias de servidor en el mismo servidor se


identifican de forma exclusiva. Las direcciones de red de las dos instancias de servidor
contienen el mismo nombre de sistema, MYSYSTEM, y el mismo nombre de dominio,
Adventure-Works.MyDomain.com. Para habilitar el sistema de forma que enrute conexiones a
una instancia de servidor, una direccin de red de servidor incluye el nmero de puerto
asociado al extremo para la creacin de reflejo de una instancia de servidor en particular.

- 206 -
Sesiones de Creacin de Reflejo de la Base de Datos
La creacin de reflejo de la base de datos se produce en el contexto de una sesin de creacin
de reflejo de la base de datos.
Cuando la base de datos reflejada est preparada y las instancias del servidor estn
configuradas, el propietario de la base de datos podr iniciar la creacin de reflejo de la base
de datos. En cuanto se inicia la creacin de reflejo, cada asociado comienza a mantener
informacin de estado en su base de datos sobre esa base de datos y sobre el otro asociado y
el testigo, si existen. Esta informacin de estado permite que las instancias de servidor
mantengan una relacin conocida como sesin de creacin de reflejo de la base de datos.
Durante una sesin de creacin de reflejo de una base de datos, las instancias de servidor se
supervisan entre s. La informacin de estado se mantiene hasta que el propietario de la base
de datos detiene la sesin.
Al inicio de una sesin de creacin de reflejo de la base de datos, el servidor reflejado identifica
el nmero de secuencia de registro (LSN) del ltimo registro de transacciones aplicado en la
base de datos reflejada y solicita al servidor principal el registro de transacciones de todas las
transacciones posteriores, si las hay. En respuesta, el servidor principal enva al servidor
reflejado las entradas del registro activo acumuladas desde el ltimo registro restaurado en la
base de datos reflejada o enviado al servidor reflejado. El registro sin enviar que se ha
acumulado en el disco lgico de la base de datos principal se conoce como cola de envo.

El servidor reflejado escribe inmediatamente el registro entrante en el disco, donde se mantiene


hasta que se aplica a la base de datos reflejada. El registro que permanece en espera en el
disco del reflejo se conoce como la cola rehecha. La parte del registro sin restaurar que espera

- 207 -
en la cola rehecha es un indicador del tiempo necesario para conmutar por error a la base de
datos reflejada.

El servidor principal contina poniendo la base de datos principal a disposicin de los clientes y
de las conexiones de cliente. Tras el inicio de la creacin de reflejo, cada vez que un cliente
actualiza la base de datos principal, al escribir la transaccin en el registro de la base de datos
principal, el servidor principal tambin enva esa entrada del registro al servidor reflejado. Ah,
el servidor reflejado escribe inmediatamente la entrada del registro en el disco como la ltima
entrada de la cola rehecha.

En segundo plano, el servidor reflejado rehace el registro en la base de datos reflejada, entrada
por entrada, empezando por la entrada del registro ms antigua, tan pronto como sea posible.
Al rehacer el registro, se aplican secuencialmente las entradas del registro en cola a la base de
datos reflejada, comenzando por la entrada ms antigua. Cada entrada del registro slo se
rehace una vez. A medida que el servidor reflejado rehace el registro, la base de datos
reflejada se pone al da de forma continua. Si el servidor principal trunca o reduce el registro de
la base de datos principal, el servidor reflejado tambin reduce el registro en el mismo punto de
la secuencia.

Generalmente, al rehacer el registro, la base de datos reflejada se pone inmediatamente al


nivel de la base de datos principal. El modo operativo de la sesin determina si la base de
datos reflejada alcanza totalmente el nivel de la base de datos principal. En el modo de alta
seguridad sincrnico, el servidor principal espera para confirmar las transacciones nuevas
hasta que se graban en el disco del registro del servidor reflejado. Cuando las entradas del
registro acumuladas se han enviado al servidor reflejado, la base de datos reflejada se
sincroniza con la principal.

Durante una sesin, si el servidor principal no puede enviar todas las entradas del registro
inmediatamente, las entradas del registro sin enviar se acumulan en la cola de envo. En el
modo de alta seguridad sincrnico, despus de la sincronizacin, las nuevas entradas del
registro sin enviar se acumulan slo cuando la creacin del reflejo se pone en pausa o se
suspende. Por el contrario, en el modo de alto rendimiento asincrnico, el registro sin enviar se
acumula siempre que el servidor reflejado se retrasa durante la creacin del reflejo, adems de
cuando el reflejo se pone en pausa o se suspende. La cantidad del registro sin enviar es un
indicador de la posible prdida de datos en el caso de que el servidor principal no funcione.

Nota: Si se producen errores al rehacer, el servidor reflejado pausa la sesin poniendo la base
de datos en el estado SUSPENDED. Para poder reanudar la sesin, el propietario de la base
de datos debe resolver la causa del error.

Sesiones Simultneas
Una determinada instancia de servidor puede participar en varias sesiones simultneas de
creacin de reflejo de base de datos (una por cada base de datos reflejada) con la misma
instancia o con instancias de servidor distintas. Con frecuencia, una instancia de servidor sirve
exclusivamente como asociado o como testigo en todas las sesiones de creacin de reflejo de
la base de datos. Sin embargo, puesto que cada sesin depende de las dems, una instancia
de servidor puede actuar como asociado en algunas sesiones y como testigo en otras. Por
ejemplo, considere las siguientes cuatro sesiones entre tres instancias de servidor
(SSInstance_1, SSInstance_2 y SSInstance_3). Cada estancia de servidor sirve como
asociado en algunas sesiones y como testigo en otras:

Instancia de Sesin para la base Sesin para la base Sesin para la base Sesin para la base
servidor de datos A de datos B de datos C de datos D

- 208 -
SSInstance_1 Testigo Asociado Asociado Asociado

SSInstance_2 Asociado Testigo Asociado Asociado

SSInstance_3 Asociado Asociado Testigo Testigo

En la siguiente ilustracin se muestran dos instancias de servidor que participan como


asociados en dos sesiones de creacin de reflejo. Una sesin es para una base de datos
llamada Db_1 y la otra sesin es para una base de datos llamada Db_2.

Cada una de las bases de datos es independiente de las dems. Por ejemplo, una instancia de
servidor puede ser inicialmente el servidor reflejado de dos bases de datos. Si en una de esas
bases de datos se produce una conmutacin por error, la instancia de servidor se convierte en
el servidor principal de la base de datos en la que se ha realizado la conmutacin por error y, a
la vez, sigue siendo el servidor reflejado de la otra base de datos.

Requisitos Previos para una Sesin de Creacin de Reflejo de la Base de Datos


Para que pueda comenzar una sesin de creacin de reflejo, el propietario de la base de datos
o el administrador del sistema deben crear la base de datos reflejada, configurar los extremos e
inicios de sesin, y en algunos casos, crear y configurar certificados.
La creacin de una base de datos reflejada requiere como mnimo que se realice una copia de
seguridad completa de la base de datos principal y una siguiente copia de seguridad del
registro, y que ambas se restauren en la instancia de servidor reflejado mediante WITH
NORECOVERY. Adems, antes de que pueda iniciar la creacin de reflejo, si se realizan
copias de seguridad del registro, adicionales posteriores a la copia de seguridad del registro
requerida, tambin debe aplicar manualmente cada copia de seguridad del registro adicional
(siempre usando WITH NORECOVERY). Tras aplicar la copia de seguridad del registro ms
reciente, puede iniciar la creacin de reflejo.

- 209 -
Conmutacin de Funciones durante una Sesin de Creacin de Reflejo de la Base de
Datos
En el contexto de una sesin de creacin de reflejo de la base de datos, las funciones principal
y reflejo suelen ser intercambiables en un proceso conocido como conmutacin de funciones.
En la conmutacin de funciones, el servidor reflejado acta como el asociado de conmutacin
por error para el servidor principal al asumir la funcin principal, y al recuperar su copia de la
base de datos y ponerla en conexin como la nueva base de datos principal. El servidor
principal anterior, cuando est disponible, asumir la funcin reflejo y su base de datos se
convertir en la nueva base de datos reflejada. Potencialmente, las funciones pueden
conmutarse como respuesta a varios errores o con fines administrativos.

Hay tres tipos de conmutacin de funciones: conmutacin por error automtica, conmutacin
por error manual y servicio forzado (con posible prdida de datos). La compatibilidad con
cada forma depende del modo operativo de la sesin.

Conmutacin por Error Manual


El modo de alta seguridad admite la conmutacin por error manual. Al sincronizar la base de
datos, su propietario puede iniciar una conmutacin por error manual.
La conmutacin por error manual se proporciona con fines administrativos.

Para realizar manualmente una conmutacin por error de la creacin de reflejo de la base de
datos (SQL Management Studio):
Conctese a 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 seleccione la base de datos de la que se va a realizar la
conmutacin por error.
Haga clic con el botn secundario en la base de datos, seleccione Tareas y, a
continuacin, haga clic en Reflejado.
Se abre la pgina Creacin de reflejo del cuadro de dilogo Propiedades de la base
de datos.
Haga clic en Conmutacin por error (Failover).

- 210 -
Para realizar una conmutacin por error manual en una sesin de creacin de reflejo de base
de datos (Transac-SQL):
Conctese al servidor principal.
Establezca el contexto de la base de datos en la base de datos master:
Emita la siguiente instruccin en el servidor principal:

ALTER DATABASE nombre_basedatos SET PARTNER FAILOVER

donde database_name es la base de datos reflejada.

Esto inicia una transicin inmediata del servidor reflejado hacia la funcin principal.
En el principal antiguo, los clientes se desconectan de la base de datos y las transacciones en
curso se revierten.

Nota: Las transacciones que se han preparado mediante el Coordinador de Transacciones


Distribuidas de Microsoft pero que an no estn confirmadas en el momento de la conmutacin
por error, se consideran anuladas tras la conmutacin por error de la base de datos.

Aparece un cuadro de confirmacin. Si confirma que desea realizar una conmutacin por error
en la base de datos reflejada, la operacin contina y las funciones de servidor principal y

- 211 -
reflejado se intercambian. La base de datos reflejada se convierte en la base de datos principal,
y la base de datos principal se convierte en la reflejada.

Conmutacin por Error Automtica


En presencia de un testigo, el modo de alta seguridad admite la conmutacin por error
automtica. La conmutacin por error automtica slo se produce con la prdida del servidor
principal cuando el testigo y el servidor reflejado siguen conectados entre s y la base de datos
ya est sincronizada.

Forzar Servicio (con posible prdida de datos)


Se permite forzar el servicio en modo de alta seguridad si no hay ningn testigo definido y en
modo de alto rendimiento. Al perderse el servidor principal, el propietario de la base de datos
puede hacer que sta est disponible forzando el servicio en el servidor reflejado (con posible
prdida de datos).

Para forzar el servicio en una sesin de creacin de reflejo de la base de datos:


Conctese al servidor reflejado.
Emita la instruccin siguiente:

ALTER DATABASE <database_name> SET PARTNER


FORCE_SERVICE_ALLOW_DATA_LOSS

donde <database_name> es la base de datos reflejada.

El servidor reflejado pasa inmediatamente al servidor principal y la creacin del reflejo se


suspende.

En la siguiente tabla se resumen las formas de conmutacin por error admitidas en cada uno
de los modos operativos.

Alto Modo de alta seguridad sin Modo de alta seguridad con


rendimiento ningn testigo un testigo

Conmutacin por error


No No S
automtica

Conmutacin por error


No S S
manual

Servicio forzado S S No

4- Trasvase de Registros (Log Shipping)

Definicin
El trasvase de registros permite enviar automticamente copias de seguridad del registro de
transacciones desde una base de datos primaria de una instancia del servidor primario a una o
varias bases de datos secundarias en instancias independientes del servidor secundario. Las
copias de seguridad del registro de transacciones se aplican a cada una de las bases de datos
secundarias de forma individual. En una tercera instancia de servidor opcional, denominado
servidor de supervisin, se registra el historial y el estado de las operaciones de copia de
seguridad y restauracin y, opcionalmente, se activan alertas si estas operaciones no se
producen segn lo programado.

- 212 -
Operaciones del Trasvase de Registros
El trasvase de registros consta de tres operaciones:
Realizar una copia de seguridad del registro de transacciones en la instancia del
servidor primario.
Copiar el archivo de registro de transacciones en la instancia del servidor secundario.
Restaurar la copia de seguridad de registros en la instancia del servidor secundario.

El registro se puede trasvasar a varias instancias del servidor secundario En ese caso, las
operaciones 2 y 3 se repiten para cada instancia del servidor secundario.
En una configuracin de trasvase de registros no se realiza automticamente la conmutacin
por error del servidor primario al servidor secundario. Si la base de datos primaria deja de estar
disponible, cualquiera de las bases de datos secundarias se puede poner en conexin
manualmente.
Puede utilizar una base de datos secundaria para la generacin de informes.

Configurar el Trasvase de Registros


El trasvase de registros puede configurarse utilizando SQL Server Management Studio o
ejecutando manualmente una serie de procedimientos almacenados. Para la configuracin del
trasvase de registros es necesario realizar los siguientes pasos bsicos:
Elegir el servidor primario, el servidor secundario y un servidor de supervisin opcional.
Crear un recurso compartido de archivos para las copias de seguridad del registro de
transacciones, preferiblemente en un servidor tolerante a errores que no forme parte de
la configuracin del trasvase de registros. Para maximizar la disponibilidad del servidor
primario, Microsoft recomienda ubicar el recurso compartido de copia de seguridad en
un equipo host separado.
Elegir una programacin de copia de seguridad para la base de datos primaria.
Crear una carpeta para cada servidor secundario en la que se copiarn los archivos de
la copia de seguridad del registro de transacciones. Estas carpetas suelen residir en los
servidores secundarios.
Configurar una o ms bases de datos secundarias.
Opcionalmente, configurar un servidor de supervisin.

Al configurar un servidor secundario para el trasvase de registros, puede elegir las siguientes
opciones en el cuadro de dilogo Configuracin de base de datos secundaria del trasvase de
registros de Management Studio para configurar la base de datos secundaria:
Crear automticamente una copia de seguridad en la base de datos primaria y
restaurarla en el servidor secundario y, si es necesario, crear una base de datos
secundaria.
Restaurar una copia de seguridad existente de la base de datos primaria en el servidor
secundario y, si es necesario, crear la base de datos secundaria.

Tambin puede inicializar la base de datos secundaria restaurando manualmente una copia de
seguridad de la base de datos.

Importante: La herramienta de trasvase de registros de Management Studio est diseada


slo para hacer frente a casos simples de copia de seguridad y restauracin. Para los casos
ms complejos, como las bases de datos con muchos archivos u opciones que no son las
predeterminadas, debe realizar una copia de seguridad y restaurar toda la base de datos
manualmente. Por lo general, utilice la copia de seguridad y restauracin manuales para los
casos que requieran un comando BACKUP o RESTORE complejo. Una vez que la base de

- 213 -
datos secundaria se ha restaurado, utilice la herramienta de trasvase de registros de
Management Studio para finalizar la configuracin del trasvase de registros.

Cuando configure el servidor primario para el trasvase de registros, puede especificar la


frecuencia con la que se crean las copias de seguridad del registro de transacciones en el
servidor primario. Si el volumen de transacciones es alto, puede ser til hacer una copia de
seguridad frecuente del registro de transacciones para minimizar la prdida potencial de datos.

Cmo habilitar el trasvase de registros (SQL Server Management Studio):


Haga clic con el botn secundario en la base de datos que desea usar como base de
datos primaria en la configuracin del trasvase de registros y, a continuacin, haga clic
en Propiedades.
En Seleccionar una pgina, haga clic en Trasvase de registro de transacciones.
Active la casilla de verificacin Habilitar sta como base de datos primaria en una
configuracin de trasvase de registros.
En Copias de seguridad de registros de transacciones, haga clic en Configuracin
de copia de seguridad.
En el cuadro Ruta de red a esta carpeta de copia de seguridad, escriba la ruta de
acceso de red al recurso compartido que cre para la carpeta de copias de seguridad
de los registros de transacciones.
Si la carpeta de copias de seguridad se encuentra en el servidor primario, escriba la
ruta de acceso local a la carpeta de copias de seguridad en el cuadro Si la carpeta de
copia de seguridad est ubicada en el servidor primario, escriba una ruta local a
la carpeta (si la carpeta de copias de seguridad no est situada en el servidor primario,
puede dejar este cuadro vaco).
Importante: Si la cuenta de servicio de SQL Server en el servidor primario se ejecuta
bajo una cuenta del sistema local, debe crear la carpeta de copias de seguridad en el
servidor primario y especificar una ruta de acceso local a esa carpeta.
Configure los parmetros Eliminar archivos con ms de y Mostrar una alerta si no
se produce una copia de seguridad tras.
Tenga presente la programacin de copia de seguridad que aparece en el cuadro
Programacin bajo Trabajo de copia de seguridad. Si desea personalizar la
programacin de su instalacin, a continuacin, haga clic en Programar y ajuste la
programacin del Agente SQL Server segn sus necesidades.
Haga clic en Aceptar.
En Instancias de servidores secundarios y bases de datos, haga clic en Agregar.
Haga clic en Conectar y conctese a la instancia de SQL Server que desea utilizar
como servidor secundario.
En el cuadro Base de datos secundaria, elija una base de datos de la lista o escriba
el nombre de la base de datos que desea crear.
En la ficha Inicializar base de datos secundaria, elija la opcin que desea utilizar
para inicializar la base de datos secundaria.
Nota: Si elige que Management Studio inicialice la base de datos secundaria desde la
copia de seguridad de una base de datos, los archivos de datos creados en el servidor
secundario tendrn los mismos nombres que los del servidor primario, y se crear una
estructura de directorios idntica, incluida la letra de la unidad.
En la ficha Copiar archivos, en el cuadro Carpeta de destino de los archivos
copiados, escriba la ruta de acceso de la carpeta en la que deben copiarse las copias
de seguridad de los registros de transacciones. Esta carpeta normalmente est situada
en el servidor secundario.
Tenga presente la programacin de copia que aparece en el cuadro Programacin
bajo Trabajo de copia. Si desea personalizar la programacin de su instalacin, haga
clic en Programar y, a continuacin, ajuste la programacin del Agente SQL Server

- 214 -
segn sus necesidades. Esta programacin debe aproximarse a la programacin de las
copias de seguridad.
En la ficha Restaurar, en Estado de la base de datos al restaurar copias de
seguridad, elija la opcin Modo sin recuperacin o Modo de espera.
Si elige la opcin Modo de espera, seleccione si desea desconectar a los usuarios de
la base de datos secundaria mientras se realiza la operacin de restauracin.
Si desea retrasar el proceso de restauracin en el servidor secundario, elija un tiempo
de retraso en Retrasar la restauracin de las copias de seguridad al menos.
Elija un umbral de alerta en Mostrar una alerta si no se produce una restauracin
tras.
Tenga presente la programacin de la restauracin que aparece en el cuadro
Programacin bajo Trabajo de restauracin. Si desea personalizar la programacin
de su instalacin, haga clic en Programar y, a continuacin, ajuste la programacin del
Agente SQL Server segn sus necesidades. Esta programacin debe aproximarse a la
programacin de las copias de seguridad.
Haga clic en Aceptar.
En Instancia del servidor de supervisin, active la casilla de verificacin Utilizar una
instancia del servidor de supervisin y, a continuacin, haga clic en Configuracin.
Importante: Para supervisar esta configuracin de trasvase de registros, debe agregar
ahora el servidor de supervisin. Para agregar un servidor de supervisin ms
adelante, deber quitar esta configuracin de trasvase de registros y reemplazarla por
una configuracin nueva que incluya un servidor de supervisin.
Haga clic en Conectar y conctese a la instancia de SQL Server que desea utilizar
como servidor de supervisin.
En Supervisar conexiones, elija el mtodo de conexin que utilizarn los trabajos de
copia de seguridad, copia y restauracin para conectarse al servidor de supervisin.
En Retencin de historial, elija el perodo de tiempo que desea retener un registro del
historial de trasvase de registros.
Haga clic en Aceptar.
En el cuadro de dilogo Propiedades de la base de datos, haga clic en Aceptar para
comenzar el proceso de configuracin.

- 215 -
Cmo habilitar el trasvase de registros (Transact-SQL):
Inicialice la base de datos secundaria restaurando una copia de seguridad completa de
la base de datos primaria en el servidor secundario.
En el servidor primario, ejecute sp_add_log_shipping_primary_database para
agregar una base de datos primaria. El procedimiento almacenado devuelve el Id. de
trabajo de la copia de seguridad y el Id. principal.
En el servidor primario, ejecute sp_add_jobschedule para agregar un esquema para
el trabajo de copia de seguridad.
En el servidor de supervisin, ejecute sp_add_log_shipping_alert_job para agregar
el trabajo de alerta.
En el servidor primario, habilite el trabajo de copia de seguridad.
En el servidor secundario, ejecute sp_add_log_shipping_secondary_primary
proporcionando los detalles del servidor y la base de datos primarios. Este
procedimiento almacenado devuelve el Id. secundario y los Id. de trabajo de copia y
restauracin.
En el servidor secundario, ejecute sp_add_jobschedule para establecer el esquema
para los trabajos de copia y restauracin.
En el servidor secundario, ejecute sp_add_log_shipping_secondary_database para
agregar una base de datos secundaria.

- 216 -
En el servidor primario, ejecute sp_add_log_shipping_primary_secondary para
agregar la informacin necesaria acerca de la nueva base de datos secundaria al
servidor primario.
En el servidor secundario, habilite los trabajos de copia y restauracin.

Cambiar las funciones entre el servidor primario y secundario


Despus de haber realizado la conmutacin por error al servidor secundario, puede configurar
la base de datos secundaria para que acte como base de datos primaria. De este modo,
podr intercambiar la base de datos primaria y la secundaria cuando sea necesario.

La primera vez que desee conmutar por error a una base de datos secundaria para convertirla
en su nueva base de datos primaria, debe realizar una serie de pasos. Una vez realizados,
podr intercambiar fcilmente las funciones entre la base de datos primaria y la base de datos
secundaria.
Realice manualmente la conmutacin por error de la base de datos primaria a la secundaria.
Asegrese de realizar una copia de seguridad del registro de transacciones activo en su
servidor primario mediante NORECOVERY.
Deshabilite el trabajo de copia de seguridad de trasvase de registros en el servidor primario, as
como los trabajos de copia y restauracin en el servidor secundario original.
En la base de datos secundaria (la que desea convertir en principal), configure el trasvase de
registros mediante SQL Server Management Studio.
Siga estos pasos:
Utilice el mismo recurso compartido para crear copias de seguridad que el utilizado
para el servidor primario original.
Cuando agregue la base de datos secundaria, en el cuadro de dilogo Configuracin
de base de datos secundaria, escriba el nombre de la base de datos primaria original
en el cuadro Base de datos secundaria.
En el cuadro de dilogo Configuracin de base de datos secundaria, seleccione
No, la base de datos secundaria est inicializada.

Una vez realizados los pasos anteriores para realizar el cambio inicial de funciones, ya puede
cambiar las funciones entre la base de datos primaria y la secundaria. A tal efecto, siga los
pasos descritos a continuacin. Para realizar el cambio de una funcin, realice estos pasos
generales:
Conecte la base de datos secundaria y realice una copia de seguridad del registro de
transacciones en el servidor primario mediante NORECOVERY.
Deshabilite el trabajo de copia de seguridad de trasvase de registros en el servidor
primario, as como los trabajos de copia y restauracin en el servidor secundario
original.
Habilite el trabajo de copia de seguridad de trasvase de registros en el servidor
secundario (el nuevo servidor primario), as como los trabajos de copia y restauracin
en el servidor primario (el nuevo servidor secundario).

- 217 -

You might also like