SQL Server 2005 - Curso 5 Estrellas
SQL Server 2005 - Curso 5 Estrellas
Contenidos:
• Modulo 1
o Introducción a la arquitectura de SQL Server 2005
Descripción de SQL Server 2005
Mejoras para Administradores
• Modulo 2
o Instalación de SQL Server 2005
Instalación y Performing de SQL Server 2005
Mantenimiento de la Instalación de SQL Server 2005
Coexistencia con SQL Server 2000 y SQL 7.0
Migracion desde SQL Server 2000
• Modulo 3
o Herramientas Administrativas de SQL Server 2005
Usando Management Studio de SQL Server
Usando Computer Manager de SQL
Usando el Utilitario para sqlcmd
Usando Management Objects de SQL
• Modulo 4
o Monitoreo de SQL Server 2005
Uso de SQL Profiler
Uso de DDL Triggers
Uso de Event Notification
Uso de Metadata Views
• Modulo 5
o Mantenimiento de Bases de Datos e Indices
Manejo de Indices
Uso del Tuning Advisor de la Base de Datos
• Modulo 6
o Seguridad
Overview de Seguridad de SQL Server 2005
Administración de Seguridad de SQL Server 2005
Administración de Permisos
Administración de Certificados
• Modulo 7
o Recuperación de Desastres
Recupero de Desastres en SQL Server 2005
Uso de Snapshots de la Base de Datos
Backup y Recuperación
Curso 5 estrellas SQL Server 2005
• Modulo 8
o Disponibilidad de Datos y Replicación en SQL Server 2005
Introducción a la Disponibilidad de Datos
Failover Clustering
Database Mirroring
Mejoras en Replicación
• Modulo 9
o Replicación en SQL Server 2005
Introducción a la Replicación de Datos
Mejoras en Replicación
Curso 5 estrellas SQL Server 2005
Modulo 1
Introducción
Este modulo contiene una descripción de varios componentes de SQL Server 2005. Se
incluyen puntos sobre cada componente; si el componente del producto existía en
versiones anteriores de SQL Server, se concentra la información sobre las mejoras en
SQL Server 2005.
Objetivos
Introducción
SQL Server 2005 es más que un sistema de administración de base de datos. Incluye
componentes múltiples y servicios los cuales la hacen una plataforma comprensiva
para programas de la empresa.
Curso 5 estrellas SQL Server 2005
Componente Descripción
El motor de base de datos relacional de SQL Server es el corazón de SQL Server 2005
Motor de Base de y proporciona un ambiente de alto rendimiento, scalable, seguro para almacenar y
datos Relacional recuperar dator de modificación relacional o formato Extensible Markup Language
(XML)
Analysis Services Proporciona la base de una solucion business intelligence para soporte de Online
Analytical processing (OLAP) aplicaciones y data mining.
SQL Server
Un motor para importar y exportar datos soluciones y transformaciones de datos
Integration Services
mientras que se transfieren.
(SSIS)
Un framework para las soluciones en las cuales se envían a los suscriptores las
Notification Services notificaciones cuando ocurren los acontecimientos específicos. Las notificaciones se
pueden generar eficientemente y enviar a dispositivo múltiples de diferentes tipos.
Reporting Services Se utiliza para extraer datos desde SQL Server y generar reportes.
Service Broker Un mecanismo confiable de queuing, y comunicación transaccional basada en
mensajes entre los servicios de software.
.NET common Incluido adentro de SQL Server, permitiendo poner soluciones de base de datos en
language ejecución usando el código manejado escrito en .NET language por ejemplo Microsoft
runtime(CLR) Visual C#® .NET o Microsoft Visual Basic® .NET.
Native HTTP Permite a programas de cliente conectarse con HTTP endpoints dentro de SQL Server
Support sin requerir Internet Information Services (IIS).
Full-text search Permite la indexación rápida y flexible basada en keyword queries de texto sobre datos
almacenados en un base de datos en SQL Server.
DDL triggers pueden ser utilizados para ejecutar stored procedures cuando DDL
DDL triggers y event statements (por ejemplo CREATE) se ejecutan. Event notifications pueden ser
notifications utilizados para disparar eventos para el servicio Service Broker cuando se
modifica la base de datos.
New data types Un número de nuevos tipos de datos se han incluido en esta version, por ejemplo
xml y un max modificante para nvarchar, varchar, y varbinary types.
Multiple Active Result
MARS permite que los clientes tengan más de una petición por conexión.
Sets (MARS)
Transact-SQL Transact-SQL ahora incluye palabras claves estructuradas de dirección de
excepción (por ejemplo, TRY y CATCH), soporte para expresiones comunes de
tabla, y nuevas funciones de graduación y operadores relacionales. Los DDL
statements se han mejorado.
The .NET Framework El .NET Framework CLR es integrado en el motor de SQL Server, hacienda
posible construir soluciones de base de datos con codigo administrado.
Mantenimiento de base de Las tareas de mantenimiento fueron mejoradas, con online restore y
datos online index operations.
Analysis Services
Introducción
Algunas de las mejoras de Analysis Services en SQL Server 2005 se describen en la tabla
siguiente.
Analysis Services engine Usted puede ahora instalar múltiples instancias de Analysis Services en una sola
computadora.
Cubos Los cubos se pueden ahora basar en las tablas múltiples de hecho. Características
por ejemplo en Key Performance Indicators (KPI) y Business Intelligence las
mejoras proporcionan la major manera de mejorar la toma de decisión, y el soporte
para los procedimientos almacenados amplía la funcionalidad de los cubos.
Curso 5 estrellas SQL Server 2005
Introducción
SSIS mejoras
Característica Descripción
/Mejora
SSIS arquitectura La arquitectura de SSIS se ha reajustado para separar flujo de paquete-control de
flujo de datos. Dos motores se han introducido para manejar estos aspectos de la
transformación de los datos: el SSIS Run-time engine y el SSIS Data-Flow engine.
Notification Services
Introducción
Nota
Notification Services 2.0 está disponible en forma separada para SQL Server 2000. SQL
Server 2005 Notification Services incluye un número de mejoras sobre Notification
Services 2.0.
Curso 5 estrellas SQL Server 2005
Característica Descripción
Subscription Management Objects Una API para construir la administracion de susscripcion de aplicaciones
a través de la qué usuarios pueden suscribir a eventos.
Event APIs Cuatro maneras para que origenes de eventos incorporen la información
del evento en el sistema.
Reporting Services
Curso 5 estrellas SQL Server 2005
Introducción
Nota
Reporting Services está disponible para descargar en forma directa separada para SQL
Server 2000.
Característica Descripción
Report authoring Usted puede utilizar Report Designer en Business Intelligence Development Studio para
crear un informe.
Report Reporting Services incluye la herramienta Report Manager, la cuál puede utilizar para
management administrar la seguridad del informe, generación y distribución de informe segun agenda,
y administrar la historia del informe.
Report execution Los reportes son ejecutados en forma conjunta, aprovechando procesos de consultas
paralelas para mejoras. Los reportes son compilados mientras .NET los ensambla para
realizar mayores mejoras aun.
Report access Los usuarios pueden acceder a los reportes por un IIS Web Site especial, del cual los
reportes pueden ser exportados en los formatos mas comunes como HTML y PDF.
También los reportes pueden ser enviados a los usuarios vía e-mail a través de una
suscripción.
Service Broker
Curso 5 estrellas SQL Server 2005
Introducción
Las principales mejoras del Service Broker son descriptas en la siguiente tabla:
Mejora Descripción
Service Broker asegura que los mensajes sean recibidos en el orden correcto y sean
Coordinación y orden enviados solo una vez. Utiliza un único identificador para rastrear mensajes que
de Mensajes pertenecen a la misma conversación, haciendo mas fácil implementar operaciones
distribuidas, desincronizadas y de largo proceso.
Disponibilidad Service Broker usa colas para enviar mensajes desincronizados; los mensajes
desincronizada pueden ser enviados a un servicio incluso cuando este no esta disponible.
Flexibilidad de Trabajo El conjunto que desincroniza la comunicación message-based hace posible para los
sistemas distribuir sus procesos de trabajo mas continuamente.
Mensajes de Bloqueo Cuando hay en cola muchos mensajes relacionados a la misma tarea, Service Broker
Relacionados asegura que los mensajes sean procesados como una unidad bloqueando todos los
mensajes relacionados cuando el primero de la cola es leído.
Programa de activacion Service Broker puede activar automáticamente una instancia de un servicio de
automatica de Servicio programa cuando un mensaje llega a su cola. Mientras aumenta el volumen de los
mensajes recibidos, Service Broker puede activar mas de una instancia de servicio
de programa hasta un número máximo configurado, y desactivarlos cuando el
trabajo disminuye.
Integración de Base de Service Broker esta totalmente integrado con el motor de la base de datos de SQL
Datos Server, dando soporte para procesamiento de mensaje transaccional y simplificando
la administración. Por ejemplo, las colas de Service Broker están implementadas
como tablas de base de datos, y por lo tanto se les puede hacer back up durante el
proceso normal de back up de la base de datos.
Curso 5 estrellas SQL Server 2005
Introducción
Introducción
Cuando usamos Microsoft Windows Server™ 2003, SQL Server 2005 responde de
manera innata a los requerimientos HTTP sin la ayuda de software Web Server como IIS.
Esto hace mas fácil implementar Web Services basados en una base de datos SQL Server.
Para habilitar que los requerimientos HTTP sean manejados innatamente por SQL Server,
debes crear uno o mas HTTP endpoints usando los documentos CREATE ENDPOINT.
El documento CREATE ENDPOINT es usado para:
! Registrar una URL con http.sys asi los requerimientos a esa URL es redireccionado al
SQL Server.
! Especificar los puertos TCP en los cuales los requerimientos van a ser aceptados.
! Especificar un mecanismo de autenticación para el endpoint. Se puede autenticar un
cliente usando métodos de autenticación básicos, integrados o resumidos.
La autenticación anónima ha sido borrada.
! Setear el estado inicial (stopped o started) del endpoint. Por defecto, los endpoint son
creados en un estado stopped. Para iniciar un endpoint luego de que este ha sido creado,
debes usar el documento ALTER ENDPOINT para cambiar al estado a started.
! Especificar las limitaciones del protocolo de Internet (IP) para controlar el acceso al
endpoint.
! Crear uno o más métodos Web que los usuarios puedan llamar a través del endpoint.
Métodos Web pueden ser procesos almacenados o funciones user-defined.
Curso 5 estrellas SQL Server 2005
Luego que un endpoint HTTP ha sido creado, puedes dar, revocar o negar permisos de
conexión para controlar el acceso al endpoint.
Replicación
Introducción
La replicación permite copiar y distribuir datos y objetos de las bases de datos, de una
base de datos o servidor a otro, y luego opcionalmente sincronizar entre las bases de
datos para asegurar consistencia.
Perfeccionamientos de Replicación
Perfeccionamiento Descripción
Seguridad El modelo de replicación de seguridad ha sido actualizado para permitir mas
control sobre las cuentas bajo las cuales corre la replicación.
Administración La interface de replicación de usuario ha sido mejorada e incluye un nuevo
Replication Monitor.
Disponibilidad Cambios en las schema pueden ser realizados a tablas publicadas.
Programabilidad Un nuevo modelo de administración de programación, Replication Management
Objects (RMO), te permite incluir lógicas de trabajo dentro de los procesos de
sincronización.
Replicación La Replicación Transaccional ahora puede ser iniciada desde un backup
Transaccional
Replicación Heterogénea Los datos pueden ser publicados desde una base de datos Oracle a una base de
datos SQL Server usando replicación transaccional o instantánea.
Replicación Peer-to-peer Los datos pueden ser replicados entre múltiples peer servers. Datos a todos los
servidores pueden ser actualizados y todos los servidores reciben los cambios
hechos a los otros servidores.
Replicación HTTP Para simplificar las replicaciones a través de un firewall o para mobile users, ha
sido introducida la replicación sobre HTTP o HTTPS. Esto transmite datos en
formato XML entre un suscriptor y el IIS, y usa formato binario sobre TCP/IP
entre IIS y el publicador.
Curso 5 estrellas SQL Server 2005
Búsqueda de Full-Text
Introducción
Perfeccionamiento Descripción
Servidores enlazados Puedes ejecutar consultas full-text contra servidores enlazados.
Columnas Múltiples Ya no estas limitado a usar una o todas las columnas en una tabla, ahora podes
especificar que columnas queres en el argumento column_list.
Especificar LocaleID Podes ejecutar consultas full-text usando un idioma diferente del idioma por defecto.
Backup y Los catálogos Full-text ahora pueden ser backapeados y restaurados con o sin los
Restauración datos de la base de datos.
Attach y Detach
Los catálogos Full-text están incluidos en las operaciones de attach y detach.
Introducción
Soporte AWE permite 32-bit aplicaciones para direccionar memoria física mas allá de los
límites de su memoria virtual configurada. La edición Windows Server 2003 puede
soportar el máximo de cantidades mostrados en la siguiente tabla:
Se puede configurar SQL Server 2005 para usar AWE, usando la opción de configuración
awe enabled. Después podes setear las opciones min server memory y max server
memory para que el SQL Server use memoria AWE dinámicamente según lo requerido.
El siguiente ejemplo, muestra como usar la memoria AWE:
**************************************************
Curso 5 estrellas SQL Server 2005
Memoria Hot-add
Cuando se usa la memoria AWE, el SQL Server 2005 también puede sacar provecho del
soporte de Windows Server 2003.s para memoria hot-add. Si el hardware del Server
soporta memoria hot-add, los administradores pueden agregar memoria física sin reiniciar
el servicio SQL Server. El SQL Server usara la memoria física adicional si es requerido.
Para aprovechar las memorias hot-add, el SQL Server debe estar corriendo en Windows
Server 2003 Enterprise o la edición Datacenter con la opción configurada awe
habilitada.
En SQL Server 2005, puedes reconfigurar la opción affinity mask sin tener que reiniciar
el servicio. El SQL Server automáticamente ajusta el numero de CPUs schedulers usadas
para juntar las conversaciones.
El SQL Server 2005 incluye los nuevos y mejores almacenamientos de datos descriptos
en la siguiente tabla:
En las ediciones previas de SQL Server, el máximo de un row table era 8 KB.
Mientras que este es aun el máximo físico de una pagina, el SQL Server 2005
puede mover el reflujo de datos varchar, nvarchar, varbinary, o sql_variant
a otra pagina manteniendo 24-byte puntero en la pagina original, haciendo posible
almacenar una row que contenga mas de 8 KB de datos.
Para acomodar el reflujo de esta manera, cada columna en la row debe tener un
maximo de 8 KB. Cuando la combinación de todas las columnas es mayor a 8
KB, SQL Server va automáticamente a mover la columna mas larga a una pagina
de reflujo.
Nota
El limite 8 KB aplica solo para las columnas varchar, nvarchar, o varbinary
definidos sin el max keyword. Cuando el max keyword es usado, los datos son
implementados como un gran objeto usando un puntero a las paginas donde los datos
estan fisicamente almacenados.
Puedes particionar una tabla horizontalmente así los rows son expandidos
a través de múltiples Grupos de Archivos. Implemente esta partición para
obtener los siguientes resultados:
! Mejorar la performance en sistemas de multiprocesadores
Tablas particionadas puede aumentar la performance cuando estas
consultando grandes tablas en un sistema con 8 o mas procesadores. El
optimizador de consultas de SQL Server 2005 puede ejecutar consultas
sobre múltiples particiones en paralelo, reduciendo el tiempo requerido
del proceso.
! Administración mas fácil de grandes tablas.
Una tabla particionada hace la administración mas fácil de data subsets,
las cuales se pueden agrupar lógicamente por un rango de datos. por ejemplo:
Un requerimiento común de datos es trabajar solo con los datos del mes en
curso. Puedes especificar la columna particionada, numero de particiones y
el rango de valores de las columnas particionadas para cada partición.
Un beneficio de particionar es que se pueden mover datos entre las tablas
particionadas muy rápido con relación a tener que hacer un INSERT INTO
SELECT FROM statement. Esto es porque los datos no están siendo movidos
físicamente; solo la metadata concerniente al lugar de almacenamiento es
movido.
Curso 5 estrellas SQL Server 2005
El SQL Server 2005 incluye una nueva transacción de isolation level llamada snapshot.
Snapshot isolation permite a los usuarios leer previamente valores de datos usando una
vista consistente transaccionalemente de la base de datos. En este isolation level, los
lectores no bloquean otros lectores y escritores que están accediendo al mismo dato.
Similarmente, los escritores no bloquean a los lectores. La operación de escritura en el
snapshot isolation level esta basada en un mecanismo de bloqueo con detector de
conflicto aumamatico. El mecanismo de detección de conflictos evita que un usuario
haga cambios basados en datos que otro usuario haya cambiado.
Cuando la snapshot isolation esta habilitada, las aplicaciones que quieran usarla deben
setear el isolation level transaccional a SNAPSHOT para conectarse, según se indica en
el siguiente ejemplo:
SET TRANSACTION ISOLATION LEVEL SNAPSHOT
SQLiMail
Feature Descripción
No Extended MAPI
SQLiMail usa SMTP, no Extended MAPI.
requirement
Process isolation El componente que envía e-mails corre en un proceso separado para minimizar el
impacto en el SQL Server.
Failover accounts Puedes especificar mas de un servidor SMTP por perfil, así si el servidor SMTP no
esta disponible, los mails aun pueden ser enviados.
Envío Desincronizado SQLiMail usa Service Broker para enviar mensajes para evitar el bloqueo de un
proceso almacenado.
Perfil de Seguridad SQL Server ayuda a asegurar la seguridad dándote la posibilidad de especificar que
usuarios en una base de datos pueden acceder al perfil de SQLiMail.
Usar SQLiMail
EXECUTE sendimail_sp
@profile_name='SQLServer',
@recipients='[email protected]',
@subject='Test',
@body=@QueryResult
************************************************************************
Curso 5 estrellas SQL Server 2005
Modulo 2
Introducción
Esta sección describe los requerimientos que hay que tener en cuenta antes de instalar
SQL Server 2005. El entendimiento de los requisitos del setup y las opciones te ayudaran
para una instalación exitosa.
Objetivos
Introducción
El SQL Server 2005 esta disponible en un gran numero de ediciones, cada una
adecuada para un entorno o tarea en particular. Es importante entender las diferencias
entre las ediciones disponibles para poder elegir la mas apropiada para tus necesidades.
Ediciones Disponibles
Las ediciones disponibles de SQL Server 2005 están descriptas en el siguiente cuadro:
Standard Edition (Disponible en versiones 32-bit y Diseñado para aplicaciones de trabajo de grupo y
64-bit versions) departamentales. Use esta edición si no necesita los
niveles de performance y disponibilidad ofrecidos por la
Enterprise Edition.
Express Edition (Disponible en 32-bit) Una versión de SQL Server 2005 para clientes que no
están conectados o aplicaciones que corren solas.
Developer Edition (Available in 32-bit and 64-bit Incluye todas las funcionalidades de la Enterprise
versions) Edition, pero esta licenciado para ser usado como un
sistema de testeo y desarrollo, no como un servidor de
producción. Use esta edición para desarrollar y testear
soluciones para base de datos.
Adicionalmente, una evaluación de 120 días de ambas versiones de SQL Server 2005
Enterprise Edition esta disponible.
Curso 5 estrellas SQL Server 2005
Requerimientos de la Memoria
Una instalacion de SQL Server 2005 Enterprise Edition o SQL Server 2005 Developer
Edition debe tener un mínimo de memoria de 256 megabytes (MB), adicionalmente de la
requerida por el sistema operativo. Microsoft recomienda que se use al menos una
memoria de 512 MB.
El SQL Server 2005 Standard Edition requiere un mínimo de memoria de 64 MB. La
Express Edition requiere una memoria de 64 MB cuando es instalado en un Microsoft
Windows® 2000 o Windows Server™ 2003, y 32 MB en Windows XP.
Nota: Los requerimientos de memoria indicados en este documento son solo para
el SQL Server 2005. Estos no incluyen los necesitados para los sistemas operativos
y cualquier otro software instalado en la computadora.
Los componentes de la base de datos SQL Server 2005 requieren entre 95 y 300
MB de espacio en disco, Dependiendo de las opciones elegidas. Una instalacion
típica requiere 250 MB de espacio en disco. Si elige instalar un SQL Server 2005
Analysis Services, necesitara un adicional de 50 MB de espacio en disco para una
instalacion base, o 130 MB para una instalacion típica. Si elige instalar SQL Server
2005 Reporting Services, necesitara un adicional de 50 MB de espacio en
discoReport Server, y 30 MB para Report Designer.
Hardware Adicional
Requerimientos de hardware adicional para escenarios de instalaciones tipicas incluyen:
¢ Monitor (Las herramientas de administración de SQL Server
estan optimizadas para una resolucion de 1024 x 786)
¢ Mouse
¢ Adaptador
para Redes
¢ CD / DVD drive (para instalación desde el CD)
Curso 5 estrellas SQL Server 2005
Requerimientos de Software
Introducción
Antes de instalar SQL Server 2005, debes asegurarte de instalar el software pre-requerido necesario.
Sistema Operativo
Nota: Las ediciones 32-bit de SQL Server 2005 deben ser instaladas en versiones
de Windows 32-bit. Las ediciones 64-bit de SQL Server 2005 deben ser instaladas
en versiones de Windows 64-bit.
Introducción
Actualización de Componentes
Introducción
Curso 5 estrellas SQL Server 2005
El System Consistency Checker (SCC) es un feature del proceso de setup de SQL Server.
El SCC realiza una serie de chequeos del sistema y compara los setings que detecta, con
los requeridos para una instalacion exitosa de SQL Server 2005. Si algunas
incompatibilidades son detectadas, el SCC sugiere acciones para remediar los problemas.
Los chequeos de SCC están divididos en 5 categorías: configuración del sistema,
disponibilidad del sistema, configuración de seguridad, configuración de la versión, y
configuración remota y de cluster.
Entender que chquea el SCC durante la instalación te ayudara a preparar tu computadora
para la instalacion.
La siguiente tabla muestra los chequeos de configuración del sistema que realiza el SCC.
.
Curso 5 estrellas SQL Server 2005
Exclusive Mutex Object Asegúrese que no haya otras Informe al usuario que debe
instancias corriendo o debe salir del completar el proceso y reiniciar el
Setup Setup.
Requerimiento por defecto de los Chequee que el drive este Informe al usuario del problema y
permisos en el Path de instalacion formateado, que no este en, read- salga del Setup.
only, o que no este comprimido.
El siguiente cuadro muestra los chequeos de configuración de seguridad que el SCC realiza.
Privilegios del Administrador del Asegúrese que el setup de usuario Informe al usuario que debe
Sistema tiene privilegios de administrador loggearse como Administrador del
del sistema. Sistema.
Curso 5 estrellas SQL Server 2005
versión de SQL Server Chequee las versiones instaladas de Refiera el usuario a los
SQL Server para tener las archivos de instalacion
condiciones necesarias cuando del service pack
actualiza.
El siguiente cuadro muestra los chequeos de configuración remota y de Cluster que el SCC realiza.
El SCC Report
Luego de completar estos chequeos, el SCC genera un reporte que puede ser visto o guardado.
Este reporte incluye información y soluciones recomendadas en cualquiera de los ítems que pueden
no permitir la instalacion. también incluye advertencias y recomendaciones en ítems que permitirán la
instalacion pero que pueden causar problemas, como configuraciones de seguridad.
Curso 5 estrellas SQL Server 2005
Introduccion
Cuando instala SQL Server 2005, usa un programa interactivo para el setup.
Es importante entender los pasos que debe seguir cuando usa el programa para
el setup para que haga las selecciones adecuadas de instalacion de acuerdo a
Curso 5 estrellas SQL Server 2005
su necesidades particulares.
Introduccion
Puedes realizar una instalacion desatendida de SQL Server 2005 creando un archivo
.ini que contenta la información de setup requerido y ejecute setup.exe en una linea de
comando.
Entender como realizar una instalacion desatendida te ayudara a realizar instalaciones
múltiples e idénticas de SQL Server en una empresa o delegar la instalacion a otro técnico.
Curso 5 estrellas SQL Server 2005
Puedes crear un archivo .ini para la instalacion desatendida usando cualquier editor de texto, como
el Notepad. El CD del SQL Server contiene un archivo llamado template.ini en el cual puedes usar
tu archivo .ini.
El archivo .ini esta compuesto de una sección simple [Options] que contiene parámetros, cada uno
relacionado a una feature diferente o seting de configuración.
Para empezar una instalacion desatendida, use la siguiente sintaxis en una linea de
comando:
Por ejemplo, para realizar una instalacion desatendida sin un archivo .ini llamado
installsettings.ini en el C:\setup folder, use el siguiente comando:
Adicionalmente, puede especificar el /qn switch para realizar una instalacion silenciosa
(sin cuadros de diálogos) o el /qb switch para especificar que solo sean mostrados los cuadros
de progreso.
Curso 5 estrellas SQL Server 2005
Introduccion
Puedes instalar SQL Server 2005 en una computadora a trabes de una red. Poder
realizar esto es útil cuando se necesita instalar SQL Server en múltiples computadoras
en distintos lugares, o cuando no es necesario acceder físicamente a la computadora en
la que se quiere instalar SQL Server.
La instalacion remota debe ser efectuada desde una linea de comando usando un archivo .ini.
Curso 5 estrellas SQL Server 2005
Parámetro Descripción
La instalacion remota es soportada solo en un entorno de dominio, no puede ser usada para instalar
SQL Server en una computadora remota en un grupo de trabajo.
Introducción
Curso 5 estrellas SQL Server 2005
Antes de instalar SQL Server 2005 en un cluster, considere los ítems descriptos en la
siguiente tabla:
Consideración Descripción
Soporte de SQL Server component clustering Asegúrese que los componentes de SQL Server que
planea usar están soportados en un cluster. Lea la
documentación del Setup de SQL Server 2005 para
información acerca de los componentes soportados en
un closter.
Luego de configurar el clustering en Windows 2000 o Windows Server 2003, siga las siguientes
instrucciones para instalar SQL Server 2005 en el cluster:
Considere los siguientes items cuando actualice de un SQL Server cluster existente a un SQL Server
2005:
Cuando actualiza a un SQL Server 2005 cluster, solo la instancia por defecto es permitida:
! Ediciones previas de SQL Server no pueden coexistir con un failover cluster SQL
Server 2005.
! Debe usar un cuenta dominio para todos los servicios de SQL Server.
! Si ha configurado replicacion en el cluster, debe borrar todas las publicaciones,
remover la replicacion, y luego reconfigurar despues que el proceso de actualizacion
haya finalizado.
Curso 5 estrellas SQL Server 2005
Introduccion
Esta seccion describe los procesos para administrar la instalacion existente de SQL Server 2005.
Objetivos
Introduction
Poder usar la aplicacion Add or Remove Programs para administrar una instalacion de
SQL Server es una gran mejora sobre las ediciones previas de SQL Server, las cuales
requerian que el administrador re-ejecute el programa del setup para cambiar features
instaladas.
Curso 5 estrellas SQL Server 2005
Las aplicacion Add or Remove Program lista una entrada para cada instancia instalada de
SQL Server en la computadora. Adicionalmente, si ha instalado alguno de los samples
que provee SQL Server 2005, cada sample sera listado por separado.
Introduccion
Si necesita remover SQL Server 2005 de una computadora, use las aplicaciones Add
or Remove Programs del Panel de Control.
Curso 5 estrellas SQL Server 2005
Puede usar uno de los dos metodos para iniciar el programa de setup de SQL Server
Y remover SQL Server:
Introduccion
If you are using a previous version of SQL Server, you can either upgrade to
SQL Server 2005 or use SQL Server 2005 side by side with your existing
installation.
Running SQL Server 2005 in conjunction with your existing installation can
simplify the migration process by making it possible to test your existing
applications without committing to an upgrade.
Podes usar el programa de setup de SQL Server 2005 para actualizar un SQL Server 2000
Service Pack 3 a SQL Server 2005. Si estas usando versions anteriores de SQL Server, primero debes
actualizar a SQL Server 2000 y después actualizar a SQL Server 2005.
Podes actualizar las bases de datos desde versions previas de SQL Server usando el
Copy Database Wizard.
Compatibilidad Backward
Si necesitas mantener compatibilidad con aplicaciones contruidas con versiones anteriores de SQL
Server, considera los siguientes puntos:
! Modo de compatibilidad
SQL Server 2005 provee del sp_dbcmptlevel stored procedure para habilitar compatibilidad con
versions previas de SQL Server.
! Opciones de collation
Durante el setup, generalmente usted selecciona el default Windows collation. Podes cambiar esta
configuración si necesitas que sea compatible con otra instalacion de SQL Server 2005 o un SQL
Server 2000
Existente. Asegurate de seleccionar el collation apropiado cuando estes actualizando de versions
anteriores.
Curso 5 estrellas SQL Server 2005
Modulo 3
Introducción
Objetivos
! Navegar el SQL Server Management Studio.
! Registrar un servidor en SQL Server Management Studio.
! Explorar los objetos en la base de datos en SQL Server Management Studio.
! Ejecute consultas Transact-SQL usando SQL Server Management Studio.
! Describir soluciones de SQL Server Management Studio.
! Crear una solución de SQL Server Management Studio.
! Usar SQL Server Management Studio para administrar bases de datos.
Introducción
La mayor parte de las tareas de administración de base de datos SQL Server 2005 se realizan con SQL
Server Management Studio. Debe familiarizarse con esta herramienta para administrar sistemas de
SQL Server 2005.
Definición
El SQL Server Management Studio es un entorno integrado para acceder, configurar, administrar y
manejar todos los componentes de SQL Server 2005.
Combina las capacidades de Enterprise Manager, Query Analyzer, y Analysis Manager,
las cuales eran provistas por las versiones previas de SQL Server.
Features
Curso 5 estrellas SQL Server 2005
El SQL Server Management Studio provee las siguientes features para administradores:
Nota
Contrariamente a las herramientas provistas por las versiones previas de SQL Server,
el SQL Server Management Studio no requiere una conexión activa a la base de datos
cuando escribe scripts o consultas.
Locación
Introducción
Registrar un servidor le permitirá almacenar la información de una conexión para conexiones futuras.
Introducción
Definición
Object Explorer, es una feature de SQL Server Management Studio, es una ventana que te permite
navegar y administrar objetos. Al usa Object Explorer, puede realizar las siguientes tareas:
! Construir y manejar bases de datos y objetos.
! Ver y modificar propiedades de la base de datos.
! Generar scripts para reconstruir los contenidos de la base de datos.
! Crear fuentes de datos.
! Controlar privilegios y permisos.
! Configurar replicación.
! Crear paquetes de Data Transformation Services (DTS).
! Ver archivos logs de SQL Server.
Curso 5 estrellas SQL Server 2005
Junto con el control de vista, Object Explorer incluye seis botones que puede usar
para controlar su operación:
! Connect. Este botón muestra el cuadro de Connect to Server que le permite
conectarse a una instancia de SQL Server.
! Disconnect. Este botón cierra la conexión al servidor seleccionado.
! Stop. El control de vista tipo árbol expande carpetas dinámicamente mientras
son seleccionadas; una carpeta que contiene un gran número de objetos puede
tomar un tiempo en ser mostrada. Puede presionar este botón para que el Object
Explorer detenga una operación que esta tomando mucho tiempo.
! Refresh. Este botón refresca la información mostrada en Object Explorer,
reemplazándola con la información más recientemente disponible.
! Filter. Este botón permite seleccionar objetos filtrados que el Object Explorer
muestra, por ejemplo, mostrar solo tablas dentro de un schema específico.
! Schema. Este botón te permite agrupar objetos, como tablas, por su shema
pre-fijo o por tipo de objeto.
Curso 5 estrellas SQL Server 2005
Introducción
Una feature clave de SQL Server Management Studio es la habilidad para crear,
editar, y ejecutar consultas Transact-SQL. Esta funcionalidad reemplaza el Query
Analyzer, que fue suplido con SQL Server 2000.
El menú Query en SQL Server Management Studio provee varias opciones para
usar las consultas Transact-SQL. Por ejemplo, puede analizar una consulta para
verificar que es sintacticamente correcta sin tener que correrla y generar información
de plan de ejecución de consulta.
Siga los siguientes pasos para ejecutar una consulta en SQL Server.
1. En el menú File, posicionese sobre New, y luego haga clic en New SQL Server Query.
2. En el cuadro de dialogo Connect to SQL Server, haga clic en Cancel.
3. En el editor de SQL, tipee un statement Transact-SQL.
Curso 5 estrellas SQL Server 2005
Nota
La primera vez que corra una consulta. será llevado a conectarse a SQL Server.
También será llevado a conectarse si su conexión se ha cortado.
5. Navegue por los resultados en la parte inferior del panel de la ventana de la consulta.
Introducción
Es útil para agrupar juntas consultas e información de conexión y almacenarlas para poder acceder a
ellas y ejecutarlas fácilmente mas tarde.
Definición
Una SQL Server Management Studio solution es una colección de uno o más
proyectos de SQL Server Management Studio. Un SQL Server Management Studio
proyecto es un set de definiciones de conexiones y consultas que provee
una forma de organización conveniente de consultas relacionadas e información de
conexión. Puede ubicar proyectos bajo un código de control.
Los objetos que hacen a una SQL Server Management Studio project son almacenados
como archivos en una carpeta que es especificada cuando creas el proyecto.
Curso 5 estrellas SQL Server 2005
Introducción
Cuando crea una SQL Server Management Studio solution, puede usar el
Solution Explorer para definir conexiones y consultas y setear sus propiedades.
Siga estos pasos para crear una SQL Server Management Studio solution usando
Solution Explorer:
Nota
Si tiene un SQL Server Management Studio project ya abierto, puede seleccionar
agregar el proyecto a esta solución o puede cerrarlo y crear un nuevo proyecto.
• En el menú File, posicionese sobre Add, y luego haga clic en New Project.
• En el menú File, posicionese sobre New, y luego haga clic en Project. seleccione
la opción Add to Solution cuando cree el nuevo proyecto.
Puede crear soluciones que incluyan proyectos múltiples, haciendo más fácil agregar
proyectos relacionados que hayan sido desarrollados de manera independiente uno del otro.
9. Cierre SQL Server Management Studio.
Introducción
El SQL Computer Manager agrupa las tareas que pude realizar bajo tres iconos:
! SQL Server 2005 Services
Este icono provee acceso a los servicios de SQL Server 2005, permitiéndole iniciarlos,
pararlos o detenerlos, y setear sus propiedades.
! SQL Server 2005 Network Configuration
Este icono le permite configurar los protocolos de red que la instancia de SQL Server
2005 usara para los requerimientos de los clientes aceptados.
Curso 5 estrellas SQL Server 2005
Introducción
Los servicios de SQL Server 2005 son configurados cuando se instala SQL Server 2005.
Sin embargo, es importante entender como controlar estos servicios manualmente, en
caso que surja la necesidad.
Introducción
El SQL Server 2005 services tiene una serie de propiedades que se pueden ver
y cambiar según lo necesario. Las propiedades de los servicios están divididas en
dos paginas:
Las propiedades comunes del servicio, que incluye el modo de inicio del servicio y la
cuenta de seguridad que el servicio debe usar.
! Propiedades especificas de SQL Server 2005, que incluye el numero de versión de
SQL Server, el path de instalación, y el idioma usado.
Introducción
Nota
Debe reiniciar una instancia luego de reconfigurar los parámetros de su protocolo de red, o habilitar o
deshabilitar protocolos.
Introducción
Los clientes deben ser configurados para usar protocolos y direcciones que coinciden
con los de los servicios de SQL Server 2005. Puede usar la utilidad Client Network
Configuration en la consola del SQL Computer Manager en cada cliente para que cumpla con esta
tarea.
Nota
Los protocolos del cliente incluyen parámetros adicionales que no son aplicables a servidores,
incluyendo seteos de conexión inactiva.
Introducción
Esta lección describe como usar la utilidad sqlcmd para ejecutar consultas Transact-SQL
desde la línea de comandos.
Objetivos de la lección
Introducción
No es siempre posible o deseable usar una herramienta grafica como SQL Server Management Studio
para ejecutar una Transact-SQL statements. Por ejemplo,
un grupo de scheduleados para una ejecución unattended normalmente no operan en un entorno
grafico. El SQL Server 2005 incluye una utilidad llamada sqlcmd para facilitar este requerimiento.
Definición
Importante
Aunque el SQL Server 2005 provee ambos sqlcmd y osql, osql no será soportado en
las futuras versiones de SQL Server. Debe usar sqlcmd para todos los nuevos desarrollos.
Perfeccionamientos de sqlcmd
La utilidad sqlcmd extiende las features encontradas en osql, incluyendo la habilidad de usar
variables, conectarse a servidores dinámicamente consultar información del servidor y enviar
información de error al entorno que esta llamando. también provee una Dedicated Administrator
Connection (DAC) que le permite al administrador de una base de datos conectarse al servidor y
resolver problemas.
Curso 5 estrellas SQL Server 2005
Comandos de sqlcmd
La utilidad sqlcmd soporta los siguientes comandos junto con statements Transact-
SQL.
Comando Descripción
:Out filename | STDOUT | STDERR Redirecciona todos los resutados de una consulta al
archivo especificado, la salida stream standard, o la
salida stream standard de error.
:On Error [exit | ignore] Especifica una acción a ser realizada cuando ocurre un
error durante la ejecución del comando. La opción exit
sale de la utilidad sqlcmd con un error. La opción
ignore mostrara un mensaje de error pero el script
continuara.
:SetVar variable value Crea o setea una variable scripting con el valor
especificado.
Introducción
La utilidad sqlcmd se invoca desde la línea de comando. La utilidad sqlcmd puede realizar una
cantidad de switches de línea de comando. Algunos de estos switches son similares a los usados por
osql.
Switches
El siguiente cuadro describe los switches de línea de comando de sqlcmd. Algunas de estas opciones
son principalmente usadas cuando se corre un sqlcmd como parte de un trabajo agrupado no
interactivo.
Switch Description
-e Echo input.
-A Usa un DAC.
Introducción
Cualquier usuario que tenga una cuenta valida de SQL Server 2005 puede invocar la
utilidad sqlcmd interactivamente, realizar comandos y mostrar los resultados.
Introducción
Ejecutar un script
Nota
Asegúrese que no incluye el statement GO para de hecho correr los comandos.
Tip
esperados.
Introducción
Usar variables con sqlcmd permite crear cripts generalizados que pueden ser ejecutados
contra diferentes bases de datos y servidores. Aparte de las variables de entorno de sqlcmd, puede
definir variables dentro de los scripts usando el comando :setvar. también puede pasar variables
dentro de scripts sqlcmd desde el entorno, o usar el switch -v desde la línea de comando.
Uso de Variables
$(variable)
Por ejemplo:
SELECT $(colname)
FROM $(tabname)
GO
2. Ejecute el script usando el switch .v para especificar los valores de las variables. Por ejemplo:
Introducción
SQLCMD .A
Tip
Introducción
Objetivos de la Lección
Introducción
Definición
Introducción
Nota
Aunque el SQL-DMO es entregado con SQL Server 2005, es provisto solo por
compatibilidad retrazada. SQL-DMO no opera de manera óptima con el SQL Server
2005. Debe usar SMO para los nuevos desarrollos.
SMO y WMI
El SQL-DMO fue creado para ser una interfase programmer-centric para SQL Server.
El SMO extiende su programabilidad, y provee una vista más administrator-centric
a través de su interfase simplificada para Windows Management Instrumentation
(WMI). Puede hacer uso de WMI con SMO para monitorear y configurar los servidores
e instancias de SQL Server 2005.
SMO Scripting
El SMO provee una feature de scripting perfeccionada a través de la clase Scripter. Por ejemplo,
puede usar esta clase para automáticamente script una dependencia completa
basada en árbol en un objeto simple.
Introducción
Puede usar Visual Studio 2005 para desarrollar aplicaciones SMO. Pueden ser
diseñadas como aplicaciones Windows Forms, aplicaciones ASP.NET Web, o
aplicaciones de consolas, dependiendo en sus requerimientos específicos. Por
ejemplo, si necesita administrar bases de datos desde muchas locaciones dentro
de su compañía, una aplicación ASP.NET corriendo en la intranet de la corporación
quita la necesidad de instalar en computadoras clientes.
Introducción
Puede usar SMO para recuperar información acerca de la computadora que corre SQL Server. Por
ejemplo, puede consultar la edición, lenguaje, y versión de un servidor.
Recuperar Información
Luego de conectarse a una computadora corriendo SQL Server, puede usar el objeto
Server para recuperar información server-specific. El objeto Server tiene Información propia que
expone varios de las propiedades del servidor no configurables.
La siguiente tabla lista las propiedades del objeto Información que puede usar para
devolver información del servidor a su aplicación.
Propiedad Descripción
Introducción
Puede usar SMO para realizar tareas administrativas regulares, tal como hacer
backups de bases de datos.
Puede usar las propiedades del objeto Backup para customizar sus backups y
llegar a sus requerimientos. La información en el siguiente cuadro describe las propiedades claves del
objeto Backup.
Property Description
Siga el siguiente procedimiento para escribir un código SMO para hacer backup
de una base de datos:
1. Conéctese a la computadora corriendo SQL Server.
2. Declare y instancie un objeto de Backup.
3. Setee las siguientes propiedades del objeto de Backup:
a. Action
b. BackupSetName
c. Database
d. DeviceType
e. Alguna otra propiedad customizada, como Incremental y NoRewind
4. Llame al método Devices.Add del objeto del Backup, pasando el path al dispositivo. Llame al
método SqlBackup del objeto Backup, pasando el objeto Server.
Curso 5 estrellas SQL Server 2005
Modulo 4
Introduction
Los Administradores necesitan monitorear un servidor de base de datos para resolver problemas de
performance o identificar problemas. En este modulo, aprenderas acerca de varias herramientas y
tecnicas para monitorear un Microsoft® SQL Server. 2005.
Introducción
El SQL Server 2005 provee una versión actualizada del SQL Server Profiler encontrada
en SQL Server 2000. Esta nueva versión incluye muchas mejoras especialmente para
SQL Server 2005. Ya debe estar familiarizado con las funcionalidades provistas por el
SQL Profiler; esta lección se concentra en las nuevas features implementadas con SQL Server 2005.
Objetivos
Introducción
El SQL Profiler en SQL Server 2005 provee información adicional para realizar
procesos de base de datos que en las versiones anteriores estaban disponibles.
Introducción
El XML es un formato de datos portátil, entendido por cada vez mas herramientas.
Guardando información rastreada como archivos XML, en vez de en el formato nativo
de SQL Profiler, permite al administrador usar una variedad de herramientas para
analizar los datos. Por ejemplo, puede importar los datos XML a aplicaciones como
Microsoft Office Excel, o puede escribir una aplicación customizada para realizar su
análisis.
Introducción
Los DDL triggers son unas nuevas features en SQL Server 2005 que pueden ser
usadas para responder a acciones en objetos en una base de datos, en cambio,
triggers standard, solo pueden responder a cambios en datos. Por ejemplo, una DDL
puede ser usada para auditar operaciones como crear tablas. Los DDL triggers son
entonces una herramienta muy útil para monitorear acciones que ocurren dentro de una
base de datos.
Curso 5 estrellas SQL Server 2005
Objetivos
Introducción
Definición
Ejemplo
El DDL triggers puede ser útil para registrar acciones de administración al sistema. Por
ejemplo, puede crear un trigger en el statement UPDATE STATISTICS para registrar
detalles acerca de la tabla en la cual las estadísticas fueron actualizadas, el usuario
que las actualizó, y la hora y fecha que la actualización fue hecha.
Al contrario de los triggers ordinarios que están asociados con tablas, un DDL
trigger se ejecuta cuando una statement particular es ejecutada, sin importar el
destino de la statement. Por ejemplo, un DDL trigger DROP_TABLE se disparará
cuando cualquier tabla se caiga. Algunos DDL triggers operan a nivel de base de
datos y solo se disparan cuando el evento correspondiente ocurre en una base de
datos especifica. Estos triggers predominantemente conciernen con un objeto en
una sola base de datos, como tablas, indexes, usuarios, procedimientos, vistas, y
demás. Un ejemplo de una DDL trigger que opera con un alcance de base de
datos es CREATE_TABLE.
Otras DDL triggers operan a nivel de servidor y se disparan sin importar la base de
datos en uso. Estos triggers están asociados con objetos a nivel de servidor, como
logins y certificados de seguridad. El CREATE_LOGIN DDL trigger es un ejemplo
que opera con alcance de servidor. Para información de cuales DDL triggers operan
en alcance de base de datos y servidor, vea la sección Event Groups for Use with DDL Triggers en
SQL Server 2005 Books Online.
Los DDL triggers se disparan para completar la acción de triggering. Por ejemplo,
un DROP_TABLE trigger se dispara cuando la tabla destino ha sido borrada
exitosamente. No hay ningun equivalente a EN VEZ DE triggers para operaciones.
Puede usar el statement ROLLBACK TRANSACTION para abortar la transacción
en curso y deshacer cualquier trabajo que ha sido realizado, incluyendo las
operaciones DDL que hicieron disparar el trigger.
Un sola operación DDL puede disparar múltiples DDL triggers. El orden en el cual
los triggers disparan no es documentado; no se debería confiar de los DDL triggers
para ejecutar alguna secuencia en especial.
Curso 5 estrellas SQL Server 2005
Introducción
Cuando crea una DDL trigger, debe especificar el alcance y tipo de la operacion DDL.
El siguiente ejemplo crea un trigger que se dispara cuando un usuario ejecuta el
comando UPDATE STATISTICS en la base de datos en curso:
Nota
Tambien puede especificar el evento DDL_DATABASE_LEVEL_EVENTS
para responder a cualquier operación DDL en una base de datos.
El Standard Data Manipulation Language (DML) triggers crea las tablas inserted
y deleted, permitiendo al desarrollador examinar los datos originales mientras son
cambiados y los nuevos valores a los cuales están siendo cambiados. El DDL
triggers no crea estas tablas. En su lugar, puede usar la función eventdata para
obtener información acerca del evento disparando el trigger.
La función eventdata recupera un documento EVENT_INSTANCE XML del que los
contenidos variaron acorde al destino del DDL trigger. Todos los DDL triggers
recuperan un documento que incluye los siguientes elementos:
! <PostTime>
• El tiempo en el cual el trigger fue disparado
! <SPID>
• El numero de ID del proceso de la base de datos que causa el disparo del trigger.
! <EventType>
• El tipo de evento que causo el disparo del trigger, como CREATE_TABLE o
UPDATE_STATISTICS
El resto del documento XML contiene información que depende del comando que
disparo el trigger. Por ejemplo, el siguiente documento fue rdevuelto por un DDL
trigger disparado por el comando UPDATE STATISTICS:
<EVENT_INSTANCE>
<PostTime>2004-06-18T02:14:20.640</PostTime>
<SPID>58</SPID>
<EventType>UPDATE_STATISTICS</EventType>
<ServerName>SQL2005PC</ServerName>
<LoginName>SQL2005PC\Administrator</LoginName>
<UserName>SQL2005PC\Administrator</UserName>
<DatabaseName>AdventureWorks</DatabaseName>
<SchemaName>Production</SchemaName>
<ObjectType>STATISTICS</ObjectType>
<TargetObjectName>Product</TargetObjectName>
<TargetObjectType>TABLE</TargetObjectType>
<TSQLCommand>
<SetOptions ANSI_NULLS="ON" ANSI_NULL_DEFAULT="ON"
ANSI_PADDING="ON" QUOTED_IDENTIFIER="ON"
ENCRYPTED="FALSE"/>
<CommandText>
UPDATE STATISTICS Production.Product
</CommandText>
</TSQLCommand>
</EVENT_INSTANCE>
Para descripción detallada del documento devuelto por la función eventdata, vea
la referencia Transact-SQL Reference en SQL Server 2005 Books Online.
Use el método de query del documento devuelto por al funcion eventdata para
extraer información del evento. Por ejemplo, El siguiente codigo, es un ejemplo que
devuelve los elementos PostTime, Database, y TargetObject elements en una UPDATE_STATISTICS
DDL trigger y los muestra:
Curso 5 estrellas SQL Server 2005
Introducción
El SQL Server 2005 ha extendido la sintaxis de los comandos usados para administrar triggers con
extenciones específicamente para DDL triggers.
Curso 5 estrellas SQL Server 2005
Ver triggers
Puede obtener una lista de trigger disponibles en una base de datos, incluyendo DDL triggers,
consultando la vista del catalogo del sys.triggers, como muestra el siguiente código:
SELECT name
FROM sys.triggers
Puede obtener información de un trigger consultando la vista del catalogo sys.sql_modules, como
muestra el siguiente código:
SELECT definition
FROM sys.sql_modules
WHERE [object_id] =
(SELECT [object_id]
FROM sys.triggers
WHERE name='trigger_name')
Alternativamente, puede ver los triggers de la base de datos usando Object Explorer en
SQL Server Management Studio.
Modificar un Trigger
Borrar un Trigger
Use el comando DROP TRIGGER para borrar una trigger. Por ejemplo:
Importante
Cuando se modifica o borra un trigger, debe especificar la cláusula ON DATABASE o ON ALL
SERVER como sea apropiado para el trigger. Si omite esta cláusula, el SQL Server 2005 asumirá que
se esta refiriendo al trigger Standard y reportara un error porque no lo encontrara.
Curso 5 estrellas SQL Server 2005
Introducción
Eventos de Notificación son una nueva feature en SQL Server 2005 que provee un
alto mecanismo scalable para monitorear las actividades de SQL Server. Son una
herramienta util para grabar actividades de la base de datos con el minimo impacto
en la performance de SQL Server.
Objetivos
Introducción
Definición
Capturar Eventos
usando el Service Broker framework que monitorea una cola para mensajes
entrantes. Un servicio Service Broker puede ser escrito usando Transact-SQL o uno
de los lenguajes CLR. Los mensajes son enviados al servicio por Service Broker, que
usa una cola para información de mensajes persistentes hasta que el servicio esta
listo para aceptarlos. El servicio también puede usar una cola para retener
requerimientos hasta que pueda procesarlos. Para simplificar el proceso de creación
de notificación de eventos, SQL Server 2005 incluye un tipo de mensaje y contacto
diseñado para notificación de eventos. Los únicos objetos de Service Broker objects
que tiene que crear son colas, un servicio y una ruta.
Introducción
Use el statement CREATE EVENT NOTIFICATION para crear un nuevo objeto de notificación de
eventos.
Ejemplo
Especificar Rango
Para un lista completa de eventos de rastreo, vea SQL Trace Events for Use with Event
Notifications en SQL Server 2005 Books Online.
Introducción
Curso 5 estrellas SQL Server 2005
La forma mas sencilla de crear un servicio Service Broker para manejar eventos de SQL Server es
usar un proceso almacenado que es activado cada vez que un mensaje aparece en una cola, enviado
por una notificación de eventos. Usted debe especificar que proceso almacenado debería ser ejecutado
cuando creas una cola. El siguiente código muestra como especificar correr un proceso almacenado
llamado EventProc cuando un mensaje es recibido en la cola NotifyQueue.
Recibir Mensajes
El proceso almacenado deberia prime recuperar el mensaje de la cola usando el comando RECEIVE
y almacenar la información en variables. El comando WAITFOR es usado para suspender un proceso
hasta que un mensaje es recibido o han pasado dos segundos. Si no se reciben mensajes, no hace falta
realizar ninguna accion mas. El siguiente ejemplo muestra como recibir mensajes desde la cola
llamada NotifyQueue:
IF @@ROWCOUNT = 0
RETURN
Procesar Mensajes
<EVENT_INSTANCE>
Curso 5 estrellas SQL Server 2005
<SPID>58</SPID>
<EventType>ALTER_TABLE</EventType>
<ServerName>SQL2005PC</ServerName>
<LoginName>SQL2005PC\Administrator</LoginName>
<UserName>SQL2005PC\Administrator</UserName>
<DatabaseName>AdventureWorks</DatabaseName>
<SchemaName>dbo</SchemaName>
<ObjectName>T1</ObjectName>
<ObjectType>TABLE</ObjectType>
<TSQLCommand>
<SetOptions ANSI_NULLS="ON" ANSI_NULL_DEFAULT="ON"
ANSI_PADDING="ON" QUOTED_IDENTIFIER="ON"
ENCRYPTED="FALSE"/>
<CommandText>ALTER TABLE T1 ADD col13 int</CommandText>
</TSQLCommand>
</EVENT_INSTANCE>
Puede usar el método query de la documentación para recuperar una información de evento, como
muestra el siguiente ejemplo:
Introducción
El SQL Server 2005 provee nuevos statements Transact-SQL para manejar notificaciones de eventos.
Estos statements hacen posible ver, modificar y borrar notificaciones de eventos.
Puede obtene una lista de notificaciones de eventos consultando la vista del catalogo
sys.event_notifications:
SELECT name
FROM sys.event_notifications
Puede ver una lista de colas, incluyendo las usadas por el notificador de eventos, consultando la vista
del catalogo sys.service_queues:
SELECT name
FROM sys.service_queues
Use el comando DROP EVENT NOTIFICATION para borrar pernamentemente una notificación de
eventos de una base de datos:
Para mas información del comando DROP EVENT NOTIFICATION, vea el Transact-SQL
Reference en SQL Server 2005 Books Online.
Nota
Las notificaciones de eventos están en la funcionalidad SQL Server 2005 Service Broker.
Para usar una notificación de eventos, debe habilitar el Service Broker habilitando el setting
ENABLE_BROKER de la base de datos en la cual reside su código de notificador de eventos.
Introducción
El SQL Server 2005 provee dos formas de consultas de metadatos: vistas de catálogos para metadatos
estáticos y vistas de administración dinámica para metadatos dinámicos. Estos dos tipos de vistas
deberían ser usados en preferencia a consultar tablas de sistema porque muestran datos directamente
del SQL Server y algunos contienen mas información que su correspondiente tabla de sistema.
Objetivos
Introducción
Puede usar las vistas de catalogo de SQL Server 2005 para consultar metadatos
estáticos. Estos proveen información acerca de los objetos en la base de datos de
SQL Server, como tablas, procesos almacenados, y constraints, y son el medio
mas efectivo de acceder a metadatos del sistema. Algunas de las vistas de
catálogos listan información server-wide, pero la mayoría son database-specific.
Las vistas de catálogos están listadas en la carpeta <Database name>\Views\System
Views en Object Explorer en SQL Server Management Studio. Sin embargo, no
están aun implementadas como vistas tradicionales bajo las tablas, si no como
metadato del sistema consultado directamente. Están definidas en el espacio de
nombre sys.
datos.
Puede consultar una vista de catalogo de la misma manera que consulta otras
vistas y tablas en una base de datos SQL Server:
1. Ejecute una statement USE para cada base de datos con la que quiera trabajar.
2. Ejecute statement SELECT contra la vista de catalogo que quiere consultar.
Por ejemplo, El siguiente código devuelve una lista de tablas dentro de la base de
datos AdventureWorks:
USE AdventureWorks
SELECT * FROM sys.tables
Nota
Vistas de catalogos no proveen replicación, SQL Agent, o información de backup.
Introducción
La información en la siguiente tabla, lista algunas de las vistas de administración dinámica mas
comúnmente usada.
Modulo 5
Administración de Indices
Introducción
Una index es una estructura vital en una base de datos que provee acceso rápido
a los datos. Sin embargo, los indexes se pueden deteriorar con el tiempo y requerir
reorganización como datos en una base de datos que es modificada. Es entonces,
importante para los administradores de bases de datos entender como crear, alterar,
y hacer caer indexes, como así también saber como administrar la fragmentación
que pude resultar cuando las indexes son usadas. La administración Index ha sido
altamente mejorada en SQL Server 2005 a través de las nuevas funcionalidades
statements y de definición de lenguaje (DDL) de index.
Objetivos
Introducción
El SQL Server 2005 provee indexes clustered y nonclustered, como lo hace SQL
Server 2000. El SQL Server 2005 también soporta indexes en columnas computadas
como muestras. Sin embargo, SQL Server 2005 extiende la forma en la cual los indexes
son estructurados y procesados, así como también son agregadas y escriben las nuevas
indexes.
Una nueva index feature en SQL Server 2005 es la statement Transact- SQL ALTER
INDEX, que le permite reconstruir, reorganizar, deshabilitar, o modificar opciones para
una index. Este comando remueve la necesidad de borrar y crear una index para
defragmentarla, y reemplaza algunos de los comando Database Consistency Checker
(DBCC) usados en la versión anterior de SQL Server.
Curso 5 estrellas SQL Server 2005
Para mas información acerca de operaciones index online, vea How Online Index
Operations Work en SQL Server 2005 Books Online.
Sin embargo, crear, reconstruir y borrar indices puede ser una tarea que use
muchos recursos. Permitir una operación index monopolizar procesadores puede
dañar otros trabajos que se estén realizando en la base de datos al mismo tiempo.
Por lo tanto, puede limitar el numero de procesadores usado especificando en el
aviso de la consulta MAXDOP cuando ejecute los comandos CREATE INDEX,
ALTER INDEX, y DROP INDEX Transact-SQL.
Nota
Si no especifica el parámetro MAXDOP, la configuración en max degree of
parallelism especifica el numero máximo de procesadores que una operación
utilizara. Sin embargo, el motor de la base de datos puede decidir usar menos
procesadores si el servidor esta bajo mucha presión y asignar todos los
procesadores a la operación index haría sufrir mucho la performance de las
tareas concurrentes.
Curso 5 estrellas SQL Server 2005
Opciones Locking
El SQL Server 2005 introduce dos nuevas opciones locking cuando se usan
indicess:
! ALLOW_PAGE_LOCKS
Cuando esta habilitado, esta opción provee acceso al index using table and
page-level locks. Cuando deshabilitado, los page-level locks no son usados.
! ALLOW_ROW_LOCKS
Cuando esta habilitado, esta opción provee acceso al the index using table and
row-level locks. Cuando deshabilitado, row-level locks no son usados.
Ambas opciones pueden ser habilitadas simultáneamente.
Indicess nonclustered ahora pueden contener datos nonkey en sus leaf nodes.
Esta feature puede mejorar la performance de consultas que acceden a las
columnas incluidas, al costo del almacenamiento adicional para sostener estos
valores. Las indexes con columnas incluidas pueden ser usadas para reemplazar
las covering indexes usadas en las versiones anteriores de SQL Server.
Un beneficio adicional de las indexes con columnas incluidas tiene que ver con
el limite de las indexes key. En SQL Server 2000, el tamaño de la index key era
limitado a 900 bytes. El leaf node dato en un index con columnas incluidas puede
ser hasta 8060 bytes de tamaño, que es igual al máximo de tamaño de row.
Indices Particionados
Indexes XML
El tipo de dato xml es una nueva feature en SQL Server 2005. Puede crear una
index XML sobre columnas xml usando los Transact-SQL comandos CREATE
PRIMARY XML INDEX y CREATE XML INDEX. Indexes XML pueden mejorar la
performance de operaciones XQuery sobre datos XML, aunque pueden incurrir
algunos costos significantes cuando los datos son modificados. Indexes XML tienen
un número de features y limitaciones. Para mas información acerca de indexes XML,
vea Indexes on xml Type Columns en SQL Server 2005 Books Online.
Curso 5 estrellas SQL Server 2005
Introducción
Usted usa el statement CREATE INDEX para hacer una index. El SQL Server 2005
ha extendido la sintaxis de este statement para soportar las nuevas index features.
Adicionalmente, el cuadro de dialogo the New Index en Object Explorer in SQL Server
Management Studio provee acceso completo a estas nuevas features.
El siguiente código muestra la sintaxis completa para crear un statement CREATE INDEX:
<relation_index_option> ::=
{ PAD_INDEX = {ON | OFF}
| FILLFACTOR = fillfactor
| SORT_IN_TEMPDB = {ON | OFF}
| IGNORE_DUP_KEY = {ON | OFF}
| STATISTICS_NO_RECOMPUTE = {ON | OFF}
| DROP_EXISTING = {ON | OFF}
| ONLINE = {ON | OFF}
| ALLOW_ROW_LOCKS = {ON | OFF}
| ALLOW_PAGE_LOCKS = {ON | OFF}
| MAXDOP = number_of_processors }
Para detalles adicionales, revea el statement CREATE INDEX en Transact-SQL Reference en SQL
Server 2005 Books Online.
Nota
Ahora puede especificar usar las opciones PAD_INDEX, SORT_IN_TEMPdb,
IGNORE_DUP_KEY y ONLINE cuando usa el Maintenance Plan Wizard.
Nota
Las tablas con columnas xml, text, ntext, image, varchar(max), nvarchar(max),
varbinary(max), o filestream no permiten operaciones online.
Por defecto, el motor de la base de datos usa la configuración del parámetro con el
valor de max degree of parallelism para determinar el numero máximo de CPUs
que puede usar cuando crea una index. Como esta operación puede dejar recursos
insuficientes para otras operaciones concurrente, usted puede limitar los recursos
de la CUP usados especificando la opción MAXDOP, según muestra el siguiente
ejemplo:
Nota
Como con la opción ONLINE, la opción MAXDOP solo afecta al statement que esta
siendo usado para crear, alterar, o borrar el index. El optimizador de consulta usa la opción
de configuración max degree of parallelism para determinar la mejor manera de optimizar
consultas que hacen referencia al index.
Puede indicar las opciones locking disponibles para acceder la index en la cláusula WITH, como se
muestra en el siguiente ejemplo:
Puede especificar que el index debería contener columnas en los leaf nodes.
Por ejemplo, El siguiente index esta basado en la columna AddressID en la
tabla Address, pero los leaf nodes incluyes las columnas adicionales
AddressLine1 y AddressLine2:
Esta index es útil para cubrir consultas que devuelven los valores en las
columnas AddressLine1 o AddressLine2 basadas en valores en
AddressID. Sin embargo, las operaciones, INSERT, UPDATE, y DELETE
en la tabla incurrirán sobre todo en el mantenimiento de duplicar datos en
el index. No puede incluir las columnas text, ntext, o image.
Indexes Particionadas
Si no especifica que una index esta perticionada, pero la tabla que esta siendo indexada
esta particionada, el index es creado usando la misma partición scheme que la tabla.
Puedes crear una index XML con el statement CREATE [PRIMARY] XML INDEX
que tiene la siguiente sintaxis:
<xml_index_option> ::=
{ PAD_INDEX = {ON | OFF}
| FILLFACTOR = fillfactor
| SORT_IN_TEMPDB = {ON | OFF}
| STATISTICS_NO_RECOMPUTE = {ON | OFF}
| DROP_EXISTING = {ON | OFF}
| ALLOW_ROW_LOCKS = {ON | OFF}
| ALLOW_PAGE_LOCKS = {ON | OFF}
Curso 5 estrellas SQL Server 2005
| MAXDOP = number_of_processors }
Una tabla debe tener un index clustered antes de crear un index XML. Un index XML
primario en una columna xml debe existir antes que una index XML secundaria sea
creada en la columna. No puede usar la opción ONLINE o cuando una index XML
esta siendo creada.
Introducción
<rebuild_index_option> ::=
{ PAD_INDEX = {ON | OFF}
| FILLFACTOR = fillfactor
| SORT_IN_TEMPDB = {ON | OFF}
| IGNORE_DUP_KEY = {ON | OFF}
| STATISTICS_NO_RECOMPUTE = {ON | OFF}
| ONLINE = {ON | OFF}
| ALLOW_ROW_LOCKS = {ON | OFF}
| ALLOW_PAGE_LOCKS = {ON | OFF}
| MAXDOP = number_of_processors }
<set_index_option> ::=
{ IGNORE_DUP_KEY = {ON | OFF}
| STATISTICS_NO_RECOMPUTE = {ON | OFF}
| ALLOW_ROW_LOCKS = {ON | OFF}
| ALLOW_PAGE_LOCKS = {ON | OFF} }
Curso 5 estrellas SQL Server 2005
La siguiente tabla describe las palabras claves para cada tarea que puede realizar
usando la statement ALTER INDEX:
Para mas detalles acerca del statement ALTER INDEX, vea la Transact-SQL
Reference en SQL Server 2005 Books Online.
Si reconstruye una index larga (una index con más de 128 extents) mientras
le permite operaciones online, el motor de la base de datos copia y reorganiza
los datos usando almacenamiento nuevo desalojando el espacio existente usado
por la index. Debe asegurarse que tiene suficiente espacio de almacenamiento
antes de reconstruir.
Nota
Reconstruir una index clustered no reconstruye automáticamente todas las indexes
nonclustered. Sin embargo, puede ejecutar el comando ALTER INDEX ALL .
REBUILD . para borrar y recrear todas las indexes en una tabla en una operación
simple.
Curso 5 estrellas SQL Server 2005
Nota
Si deshabilita una index clustered para una tabla, La tabla será marcada OFFLINE.
Todas las modificaciones a la tabla serán prohibidas hasta que el index sea rehabilitado. Tampoco
podrá realizar consultas SELECT.
Introducción
Use el statement DROP INDEX para borrar un index de una tabla. Este statement
aplica para todas las formas de indexes, incluyendo indexes XML. También puede
borrar una index usando la opción Delete en menú acceso directo en SQL Server Management Studio
Object Explorer.
<drop_index_option> ::=
{ ONLINE = {ON | OFF}
| MAXDOP = number_of_processors
| MOVETO { partition_scheme_name(column_name[,...n])] |
filegroup_name | DEFAULT }
Curso 5 estrellas SQL Server 2005
Las opciones DROP INDEX son disponibles solo cuando esta borrando una index
clustered. La opción MOVETO permite especificar donde ubicar los datos luego que
una index haya sido borrada.
Para mas información acerca del la statement DROP INDEX, vea the Transact-
SQL Reference en SQL Server 2005 Books Online.
La vieja sintaxis es aun soportada en varios casos (pero no para indexes XML), pero
no debería ser usada para nuevos desarrollos.
El statement DROP INDEX soporta las opciones MAXDOP y ONLINE solo cuando se
borra una index clustered. El siguiente ejemplo borra una index mientras permite a actividades
concurrentes el acceso a tablas subyacentes y limitando el numero de
procesadores realizando la operación a tres:
No puede borrar una index clustered que esta deshabilitada, y no puede usar la opción
ONLINE para una index clustered que contiene datos Large Object (LOB).
Cuando borra una index clustered, usted puede especificar donde las rows de datos
en la leaf pages deben ser almacenadas usando la opción MOVE TO. Los datos
serán reconstituidos como una tabla en el lugar especificado. Puede especificar el
destino usando una partición scheme o un grupo de archivos. El siguiente ejemplo
mueve los datos a una partición scheme definida por el NewCustomerScheme:
Introducción
Inicialmente, los datos en una index eran publicados y ordenados de acuerdo a las
rows en la tabla subyacente. El motor de la base de datos de SQL Server 2005
automáticamente actualiza las indexes a medida que las rows son insertadas,
actualizadas, o borradas en una tabla. Sin embargo, mientras los datos en una tabla
van cambiando, puede ser relocalizada físicamente en los archivos de la base de
datos. Estas modificaciones puede desalinear las indexes con sus datos
correspondientes, haciendo decaer la performance.
Reorganizar una index clustered o nonclustered defragmenta el los leaf nodes del
index y compacta la información en los nodes internos de acuerdo al setting fill factor
que afecta a la index. El resultado es una index que es mas pequeña, tanto como el
espacio vació causado por borrar una row y las actualizaciones habrán sido borradas,
mientras que los leaf nodes estarán en el mismo orden que la tabla.
Reorganizar una index también puede compactar cualquier objeto grande de columna
en la tabla. Si una index es altamente fragmentada, es mejor reconstruirla. Reconstruir
una index la borra y recrea. También puede cambiar cualquier setting de index, como
el fill factor, cuando reconstruye una index; no puede cambiar estos settings cuando
simplemente esta reorganizando la index.
Reconstruir o reorganizar una index puede ser una tarea muy cara que utilice muchos recursos.
Reconstruir es significantemente más costoso que reorganizar. Por lo tanto, es
útil determinar cuanto se ha defragmentado index, y solo reconstruir la index si es
absolutamente necesario. Puede usar la función sys.dm_db_index_physical_stats
para asignar el grado de fragmentación de una index.
Nota
Debe correr la función sys.dm_db_index_physical_stats en vez de la statement
DBCC SHOWCONTIG usada con versiones anteriores de SQL Server.
Curso 5 estrellas SQL Server 2005
SELECT
TableName, IndexName, AvgFragmentation
FROM sys.dm_db_index_physical_stats(DEFAULT, '*', DEFAULT,
'DETAILED')
! @Mode. El nivel de scan a usar para obtener la información requerida. Los valores
soportados son LIMITED, que solo leen paginas parent-level pero es muy rápido, SAMPLED, que
lee solo paginas parent-level y sample leaf pages, y DETAILED, que
lee páginas parent-level y todas las leaf pages.
Use el comando ALTER INDEX con la cláusula REORGANIZE para reorganizar una
index.
Nota
Debe utilizar la cláusula REORGANIZE del comando ALTER INDEX preferentemente al statement
DBCC INDEXDEFRAG usado en versiones anteriores de SQL Server.
Esta cláusula también estaba disponible en versiones anteriores de SQL Server. Use
este statement si no tiene que agregar o remover columnas en una index, reparticionar
una index reparticionada, o mover una index a un grupo de archivos diferente.
! Ejecute el comando ALTER INDEX con la cláusula REBUILD. (Use este comando
preferentemente al statement al DBCC REINDEX.) Use el comando ALTER INDEX si no necesita
reconstruir múltiples indexes, o si quiere evitar cualquier reconstrucción
innecesaria de indexes nonclustered mientras que reconstruye una indexes clustered.
Tip
Aunque puede reconstruir una index simplemente borrando y recreándola, este acercamiento no es
recomendado. es altamente ineficiente y no puede hacer uso de las optimizaciones disponibles para el
statement CREATE INDEX con la cláusula DROP_EXISTING o el statement ALTER INDEX con
la cláusula REBUILD.
Introducción
El punto de crear indexes y datos particionados en una base de datos es para producir
buena performance para los usuarios. Sin embargo, crear las indexes equivocadas o particiones de
datos de mala manera puede terminar en una performance pobre. El
tuning requiere entendimiento de cómo los datos son usados y accedidos en la base de datos, y luego
crear estructuras que soporten estas operaciones en lugar de limitarlas.
Objetivos
! Describir el DTA.
! Usar el DTA para analizar cargas de trabajos.
! Obtener resultados del DTA como XML.
! Use el DTA para asistir en el diseño de la base de datos.
Curso 5 estrellas SQL Server 2005
Introducción
Nuevas Features
! Timebound tuning. Puede especificar durante cuanto tiempo el DTA debería estar
analizando una carga de trabajo. Generalmente, cuanto más tiempo empleado,
más alta la calidad de las recomendaciones que producirá
! Cross-database tuning. Puede poner a punto una carga de trabajo que ocupa múltiples
bases de datos. El DTA generara recomendaciones para cualquiera de las bases
de datos referidas.
!XML output. El DTA puede generar reportes y resultados en XML, para análisis
usando cualquier aplicación que pueda leer XML.
El DTA puede tomar sus cargas de trabajo de cualquiera de los siguientes recursos:
Puede especificar cual o cuales bases de datos el DTA debe analizar cuando se usa
la carga de trabajo, como así también limitar el rango a las tablas seleccionadas.
Resultados de DTA
Las recomendaciones toman la forma de una lista que puede ser cubierta por un
script XML o por una serie scripts de Transact-SQL. Puede evaluar las
recomendaciones o aplicarlas. Las recomendaciones por separado, son generadas
para particionamiento e indexing schemes.
Cada vez que corre el DTA para realizar un análisis, crea una nueva sesión.
Una sesión contiene información acerca de los recursos de carga de trabajo, las
opciones tuning usadas, y los resultados del análisis. Las sesiones aparecen
en la ventana Sesión Monitor del DTA. Puede retener los detalles de sesiones
anteriores o borrarlas. Para crear una nueva sesión, posiciónese sobre el menú
File y haga click en New Session. Luego puede darle un nombre a la sesión.
Antes de comenzar análisis DTA de una carga de trabajo, debe especificar las
opciones de tuning a utilizar. Esto afectara la manera en que el DTA realiza su
análisis y las recomendaciones que genera.
Realizar un Análisis
Se realiza un análisis haciendo click en botón Start Analysis en la toolbar del DTA.
Una pantalla de progreso aparecerá, mostrando los pasos del análisis a medida que
van realizándose. Cualquier error o advertencias serán mostrados en esta pantalla
de progreso. La información acerca del progreso de la operación puede ser guardada
en el Tuning log.
El tab Recommendations muestra una lista de objetos que deben ser creados o
descartados. Puede filtrar esta lista para mostrar recomendaciones para las bases
de datos y objetos seleccionados. Haciendo click en el link en la columna Definition
mostrara los comandos Transact-SQL que implementaran cada recomendación.
trabajo.
! Index detail report (en curso)
Este reporte lista alas indexes en curso y sus detalles.
! View-Table relations report
Este reporte muestra información acerca de las tablas de referencia por las vistas
usadas en la carga de trabajo.
! Workload analysis report
Este reporte resume los resultados del análisis, agrupado por tipo de statement
(SELECT, INSERT, UPDATE, DELETE), y muestra cuantos statements habrán
mejorado la performance, cuantos no tendrán cambios en performance, y cuantos
habrán bajado su performance si las recomendaciones son implementadas.
! Database access report
Este reporte lista las bases de datos de referencia en una carga de trabajo y el
numero de veces que cada una fue usada.
! Table access report
Este reporte lista las tablas de referencia en una carga de trabajo y el numero de
veces que cada una fue usada.
El tab Reports también incluye una sección Tuning Summary, la cual muestra
todas las estadísticas y las mejoras en la performance si se implementan las recomendaciones.
Introducción
El DTA permite exportar sus recomendaciones y reportes como archivos XML. Esto
permite usar otras herramientas que pueden separar XML para analizar más
profundamente los scripts si es necesario.
Para guardar recomendaciones como XML, en el menú del DTA File, haga click en
Export Session Results y tipee el nombre del Nuevo archivo XML. puede usar
cualquier utilidad que pueda separar XML, tal como Microsoft Internet Explorer, para
ver el archive, puede usar cualquier aplicación customizada basada en XML para
procesar los resultados.
Curso 5 estrellas SQL Server 2005
El archive XML contiene un elemento de Configuration que lista todas las recomendaciones hechas.
El siguiente cuadro muestra parte de un elemento de Configuration:
<Configuration>
<Server>
<Name>localhost</Name>
<Database>
<Name>AdventureWorks</Name>
<Schema>
<Name>Production</Name>
<View>
<Name>vProductAndDescription</Name>
<Recommendation>
<Drop>
<Index Clustered="true">
<Name>
IX_vProductAndDescription
</Name>
</Index>
</Drop>
</Recommendation>
</View>
<Table>
<Name>TransactionHistory</Name>
<Recommendation>
<Drop>
<Index>
<Name>
IX_TransactionHistory_RefOrdID_RefOrdLineNumber
</Name>
</Index>
</Drop>
<Drop>
<Index>
<Name>
IX_TransactionHistory_ProductID
</Name>
</Index>
</Drop>
</Recommendation>
</Table>
...
</Configuration>
Para guardar reportes como XML, haga click con el botón derecho en cualquier parte del reporte, haga
click en Export to file en el menú de acceso directo, y luego tipee el nombre del nuevo archivo XML.
Curso 5 estrellas SQL Server 2005
Modulo 6
Seguridad
○ Overview de Seguridad de SQL Server 2005
○ Administración de Seguridad de SQL Server 2005
○ Administración de Permisos
○ Administración de Certificados
Introducción
Esta seccion describe la arquitectura de SQL Server 2005, incluyendo las mejoras que
que se han hecho en esta versión. El SQL Server 2005 introduce un numero de cambios
a la manera en la cual la aplicación de la base de datos es segura. Esta lección lo ayudara
a preparar para diseñar y administrar seguridad de soluciones SQL Server 2005.
Objetivos
Luego de completar esta lección, usted podrá:
! Describir las mejoras de seguridad de SQL Server 2005.
! Describir principales.
! Describir permisos.
! Describir la arquitectura de seguridad de SQL Server 2005.
Curso 5 estrellas SQL Server 2005
Introducción
El SQL Server 2005 implementa mejoras en la arquitectura de seguridad que usa un sistema de
jerarquías de objetos asegurables. Debe entender absolutamente las nuevas
Features de seguridad en SQL Server 2005 antes de planificar las soluciones de
seguridad para su base de datos.
Puede proveer accesos al sistema SQL Server 2005 a través de Microsoft Windows®
logins o SQL Server logins, de la misma manera usada en las versiones anteriores de
SQL Server. En esta versión de SQL Server, también puede aplicar políticas de seguridad
Para SQL Server logins. Estas políticas actúan similarmente a como Windows permite restricciones de
claves para Windows logins.
El SQL Server 2005 provee un modelo consistente para asegurar objetos en diferente
Rangos usando un arreglo jerárquico de principios, seguridad, y permisos. Este nuevo
acercamiento ayuda a hacer la seguridad mas administrable que en las ediciones
anteriores.
Curso 5 estrellas SQL Server 2005
En ediciones previas de SQL Server, los espacios de nombres de objetos eran dictados
por el propietario del objeto. En SQL Server 2005, los espacios de nombres de objetos
son determinados usando schemas, independientemente del propietario del objeto. Esta
separación del propietario del espacio de nombres del objeto provee una administración
de la framework más flexible.
La introducción de la vista de catálogos en SQL Server 2005 resulta en visibilidad limitada de los
metadatos. Por defecto, los usuarios pueden ver los metadatos solo para objetos para los cuales ellos
tienen permiso.
Introducción
La documentación de SQL Server 2005 usa el termino principal para referirse a identidades
autenticadas en un sistema de SQL Server. Entender como los diferentes principales pueden existir en
un sistema de SQL Server le ayudara a planificar su modelo se seguridad.
Definición
Un principal es cualquier identidad autenticada que puede tener permisos de acceso a un objeto en un
sistema de base de dato. La documentación de SQL Server distinguen entre principales indivisibles,
que son identidades simples (como logins), y grupo de principales, que es un grupo de identidades
(como roles fijos de servidor).
Nieveles de Principals
Los principales existen en tres niveles: Windows, SQL Server, y base de datos. Los tipos de
principales posibles en cada uno de estos tres niveles son mostrados en la siguiente tabla:
Nivel Principales
Nota
Grupos de base de datos son primariamente soportados para compatibilidad retrazada. Debe usar roles
de base de datos para crear grupo de principales al nivel de base de datos.
Curso 5 estrellas SQL Server 2005
Introducción
Los objetos en el sistema de autorización del SQL Server 2005 que regulan los accesos son llamados
securables. Como con los principales, debe entender la diferencia de los rangos de securable en SQL
Server para planificar su modelo de seguridad.
Definición
Los Securables son recursos a los cuales el sistema de autorización de SQL Server controla el acceso.
Los securables están arreglados en jerarquías seteadas llamadas scopes, que también pueden ser
aseguras. Estos tres scopes asegurables son servidor, base de datos, y schema. Asegurables a nivel de
Windows incluye archivos y registry keys.
El Rango Servidor
Rango de Schema
Introducción
El SQL Server 2005 usa permisos para controlar el acceso a asegurables por principales. Para
planificar el modelo se seguridad de su base de datos, en importante que entienda como son
implementados los permisos en los rangos asegurables.
Definición
Los Permisos son las reglas que gobiernan el nivel de accesos que los principals tienen para los
asegurables. Los permisos de sistema en SQL Server pueden ser concedidos, revocados o denegados.
Cada uno de los asegurables del SQL Server tiene permisos asociados que pueden ser concedidos a
cada principal.
Nota
El SQL Server 2005 introduce la habilidad de conceder permisos al rango de servidor. En ediciones
anteriores de SQL Server, los permisos a nivel servidor eran administrados usando roles fijos de
servidor.
Curso 5 estrellas SQL Server 2005
Ejemplos de Permisos
Los permisos específicos asociados con asegurables individuales varían dependiendo en la clase de
acciones que un asegurable soporta. La siguiente tabla lista algunos ejemplos de permisos en varios
rangos. Para una lista completa de permisos, vea SQL Server 2005 Books Online.
Permisos Hereditarios
Curso 5 estrellas SQL Server 2005
El SQL Server 2005 soporta permisos hereditarios para asegurables contenidos en un rango dado. Por
ejemplo, un permiso principal concedido CONTROL en un objeto de base de datos, automáticamente
heredara permiso CONTROL en todos los asegurables contenidos en esa base de datos y en todos los
asegurables contenidos en los schemas dentro de esa base de dato.
Introducción
Esta sección le enseña como administrar principales, asegurables y permisos. Entender como
administrar estos componentes claves del modelo de seguridad de SQL Server 2005 es esencial y le
ayudará a implementar exitosamente seguridad en su sistema de SQL Server 2005.
Objetivos
! Administrar logins.
! Administrar usuarios.
! Describir schemas
! Administrar schemas.
! Setear un schema por defecto para un usuario
! Controlar ejecución de contexto.
! Administrar asegurables y principales.
Curso 5 estrellas SQL Server 2005
Introducción
Como en ediciones previas de SQL Server, el SQL Server 2005 soporta ambos Windows y SQL
Server logins. Puede crear un login usando Object Explorer en SQL Server Management Studio o
ejecutando el statement CREATE LOGIN Transact-SQL.
Nota
Por defecto, el SQL Server soporta solo autenticación de Windows. Cuando el servidor es
configurado para autenticación Windows, aun puede crear logins para SQL Server, pero no podrán
conectarse con el servidor. Para habilitar a los usuarios a conectarse usando login para SQL Server,
debe configurar el servidor para ambas autenticaciones, SQL Server y Windows.
El siguiente procedimiento describe como crear un login de Windows o SQL Server usando Object
Explorer en SQL Server Management Studio:
1. Conéctese con el servidor en el cual quiera crear el login.
2. Expanda los nodos del servidor y Security.
3. Haga click con el botón derecho en Logins, y luego haga clic en New Login.
4. Use la interfase de usuario para especificar el tipo de login que quiere crear, e ingrese los detalles
del login.
5. Haga click en el botón Execute on Server, o genere un script para ser ejecutado mas tarde.
También puede usar el statement CREATE LOGIN para crear logins para Windows o
SQL Server.
Nota el statement CREATE LOGIN reemplaza los procesos almacenados del sistema, sp_addlogin
y sp_grantlogin en las versiones previas de SQL Server. Estos procesos almacenados son provistos en
SQL Server 2005 para compatibilidad de retrazo pero serán removidos en una edición futura.
option_list1 ::=
PASSWORD = ’password’ [ HASHED ]
[ MUST_CHANGE ] [ , option_list2 [,...]]
option_list2 ::=
SID = sid
| DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
| CHECK_EXPIRATION = { ON | OFF }
| CHECK_POLICY = { ON | OFF }
[ CREDENTIAL = credential_name ]
windows_options ::=
DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
La opción especificada que puede usar dentro del statement CREATE LOGIN dependiendo en si esta
creando un login para Windows o para SQL Server. Las cláusulas FROM WINDOWS y windows
options son usadas cuando se crean logias para Windows, mientras que option_list1 y option_list2
solo son aplicables para logins de SQL Server.
Las cuentas de usuarios de Windows están sujetas a políticas reforzadas por Windows. El
SQL Server 2005 provee políticas de restricción similares para logins de SQL Server, usando las
opciones mostradas en la siguiente tabla en el statement CREATE LOGIN.
Opción Descripción
Ejemplos
El siguiente ejemplo muestra la statement CREATE LOGIN que crea un login de Windows:
El siguiente ejemplo muestra la statement CREATE LOGIN que crea un login de SQL Server:
Alterar logins
Puede modificar un login viendo las propiedades en Object Explorer o ejecutando la statement
ALTER LOGIN. Un uso común de la statement ALTER LOGIN es desbloquear un login que ha
sido bloqueada por una clave vencida. El siguiente ejemplo muestra como desbloquear una cuenta
bloqueada:
Remover logins
Puede remover un login haciendo botón derecho sobre el mismo en Object Explorer y luego hacer
click en Delete, o ejecutando una statement DROP LOGIN como nuestra el siguiente ejemplo:
Nota
La statement DROP LOGIN reemplaza los procesos almacenados de sistema sp_droplogin y
sp_revokelogin en versiones previas de SQL Server. Estos procesos almacenados son provistos en
SQL Server 2005 para compatibilidad retrazada pero serán removidas en versiones futuras.
Introducción
Los logins son usados para permitir acceso al sistema SQL Server. Sin embargo, acceso a bases de
datos individuales es logrado creando usuarios en esas bases de datos. Puede crear usuarios usando el
Curso 5 estrellas SQL Server 2005
Object Explorer en SQL Server Management Studio o ejecutando la statement CREATE USER en la
base de datos apropiada.
En la mayoría de los casos, los usuarios de las base de datos son mapeados para loguearse. Por
ejemplo, debe crear un usuario llamado Bill en la base de datos AdventureWorks para hacer esa base
de datos accesible por un login llamado SERVERX\Bill. Por defecto, todos los logins con membresía
del rol fijo de servidor sysadmin es mapeado al usuario dbo en todas las bases.
Algunos usuarios de bases de datos no son mapeados para logins. Por ejemplo, crear un usuario
llamado guest en una base de datos permite acceso para cualquiera con un nombre de login valido
pero sin una cuenta de usuario. Otros usuarios no mapeados incluyen sys y
INFORMATION_SCHEMA.
El siguiente procedimiento describe como usar Object Explorer para crear un usuario en una base de
datos SQL Server:
1. Conéctese al servidor.
2. Expanda el nodo del servidor, y luego expanda el nodo Databases.
3. Expanda la base de datos en la cual quiere crear el usuario, y luego expanda su nodo de Security.
4. Haga click con el botón derecho sobre el nodo Users, y luego haga click en New User.
5. Seleccione el login al cual quiera mapear el usuario, y luego tipee un nombre para un usuario.
6. Especifique cualquier rol de base de datos al cual quiera agregar el usuario.
7. Haga click en OK.
Puede también usar la statement CREATE USER para crear un usuario en una base de datos SQL
Server.
Nota
El statement CREATE USER reemplaza los procesos almacenados del sistema sp_adduser y
sp_grantdbaccess en versiones previas de SQL Server. Estos procesos almacenados son provistos en
SQL Server 2005 para compatibilidad atasada pero serán removidas en ediciones futuras.
Nota
La creación de usuarios para certificados de la base de datos será discutida mas tarde en este modulo.
Curso 5 estrellas SQL Server 2005
Los parámetros clave para el statement CREATE USER son descriptos en la siguiente tabla:
Parámetro Descripción
Alterar un Usuario
Puede modificar un usuario cambiando sus propiedades en Object Explorer o ejecutando la statement
ALTER USER.
Remover un Usuario
Puede remover un usuario borrándolo en Object Explorer o ejecutando el statement DROP USER.
Usuarios que poseen objetos no pueden ser borrados, así que debe transferir la propiedad de esos
usuarios antes de borrarlos.
Nota
El statement DROP USER reemplaza los procesos almacenados del sistema sp_dropuser y
sp_revokedbaccess. Estos procesos almacenados son provistos en SQL Server 2005 para
compatibilidad retrazada pero en el futuro serán removidos.
Introducción
Los objetos en una base de datos, (como tablas, vistas y procesos almacenados) son creados dentro de
un schema. Es esencial que entienda que es un schema antes de planificar y administrar una base de
datos de SQL Server 2005.
Definición
Un schema es un espacio de nombre para objetos en una base de datos. El nombre completo calificado
de un objeto en una base de datos tiene la forma server.database.schema.object. Dentro de una base
de datos, esto puede ser acortado a schema.object. En las ediciones anteriores de SQL Server, un
espacio de nombre en un objeto era determinado por el nombre de usuario dueño del objeto. EI SQL
Server 2005, los schemas son separados de la titularidad, proveyendo los siguiente beneficios:
! Mayor flexibilidad cuando organiza objetos de base de datos dentro de nombres de espacios, porque
el agrupamiento de objetos dentro de schemas no depende de la titularidad del objeto.
! Permisos de administración mas simples, porque los permisos pueden ser otorgados al rango de
schema tal como en los objetos individuales.
! Administración mejorada, porque borrar un usuario no necesita renombrar todos los objetos que el
usuario posee.
Nota
Los Schemas existieron en una forma limitada en versiones anteriores de SQL Server. Su función ha
sido enormemente expandida en SQL Server 2005.
Curso 5 estrellas SQL Server 2005
Ejemplo de un Schema
La base de datos AdventureWorks usa los siguiente schemas para organizar los objetos en la base de
datos dentro de espacios de nombres:
! HumanResources
! Person
! Production
! Purchasing
! Sales
Por ejemplo, Employee hace referencia a una tabla en el schema HumanResources como
HumanResources.Employee.
El Schema dbo
Cada base de datos contiene un schema llamado dbo. El schema dbo es el schema por defecto para
todos los usuarios que no tienen un schema definido por defecto explicito.
Introducción
Puede crear, alterar o borrar schemas usando el Object Explorer en SQL Server Management Studio o
ejecutando los statements apropiados CREATE SCHEMA, ALTER SCHEMA, o DROP
SCHEMA.
El siguiente procedimiento para crear un schema con Object Explorer en SQL Server Management
Studio:
1. Conéctese con el servidor que contiene la base de datos en la que quiera crear el schema.
2. Expanda el nodo del servidor y luego expanda el nodo de la Databases.
3. Expanda el nodo de la base de datos en la cual quiera crear el schema, y luego expanda el nodo de
Security.
4. Haga click con el botón derecho sobre el nodo Schemas, y luego haga clic en New Schema.
5. Especifique un nombre, y, opcionalmente, un propietario para el schema.
6. Haga clic en OK.
Use el statement CREATE SCHEMA para crear un nuevo, y opcionalmente para crear objetos en el
schema en una statement simple. La sintaxis del stament CREATE SCHEMA es mostrada aquí:
Parámetro Descripción
Nota
La forma CREATE SCHEMA AUTHORIZATION owner_name de la statement CREATE
SCHEMA (sin nombre de schema) es provisto por compatibilidad retrazada. Es usado
preferentemente como un modo conveniente para crear múltiples objetos y asignar permisos en una
statement simple.
El siguiente ejemplo muestra como crear un schema que contenga una tabla y otorgar permisos en la
tabla de un usuario:
Alterar un Schema
Puede modificar un schema usando Object Explorer o ejecutando la statement ALTER SCHEMA. La
razón principal para hacer esto es para cambiar los titulares de la schema, como muestra el siguiente
ejemplo:
Curso 5 estrellas SQL Server 2005
Nota
Cambiar las titularidades de un schema borra todos los permisos de ese schema y los objetos que este
contiene.
Borrar un Schema
Puede borrar un schema usando Object Explorer o ejecutar el statement DROP SCHEMA como
muestra el siguiente esquema:
Nota
No puede borrar un schema que contiene objetos. Primero debe borrar los objetos en el schema.
Introducción
Cuando una base de datos contiene schemas múltiples, la resolución para el nombre del objeto puede
volverse confusa. Por ejemplo, una base de datos puede contener dos tablas llamadas orders en dos
schemas diferentes, sales y dbo. Los nombres calificados de los objetos en la base de datos no son
ambiguos: sales.orders y dbo.orders, respectivamente. Sin embargo, el uso de orders de nombres no
calificados puede producir resultados inesperados. Puede asignar un schema por defecto para controlar
como los objetos no calificados son resueltos.
El SQL Server 2005 usa el siguiente procedimiento para resolver nombres de objetos no calificados:
1. Si el usuario tiene un schema por defecto, el SQL Server intenta encontrar el objeto en el schema
por defecto.
2. Si el objeto no es encontrado en el schema por defecto del usuario, o si el usuario no tiene un
schema por defecto, el SQL Server intenta encontrar el objeto en el schema dbo.
Por ejemplo, un usuario con un schema por defecto sales ejecuta la siguiente statement
Transact-SQL:
El SQL Server 2005 primero intentara resolver el nombre del objeto en sales.orders. Si el schema
sales no contiene un objeto llamado orders, el SQL Server intentara resolver el nombre del objeto en
dbo.orders.
Curso 5 estrellas SQL Server 2005
Puede asignar un schema por defecto a un usuario usando el cuadro de dialogo Database User
properties o especificando el nombre del schema con la cláusula DEFAULT_SCHEMA de los
statement CREATE USER o ALTER USER. Por ejemplo, el siguiente codigo Transact-SQL asigna
sales como el schema por defecto para el usuario Ted:
Introducción
Puede usar la cláusula EXECUTE AS en un proceso almacenado o la función para setear la identidad
usada en esta ejecución de contexto. Entender como usar la cláusula EXECUTE AS puede ayudarle a
implementar escenarios de seguridad en los cuales necesita acceder a objetos dependientes pero no
quiere confiarse de cadenas de propiedad sin roturas.
Uso de EXECUTE AS
Opción Descripción
Ejemplo
El siguiente ejemplo muestra la statement CREATE PROCEDURE que específica que in proceso
almacenado es ejecutado usando la identificación del usuario que lo creo:
Administración de Permisos
Introducción
Para acceder a objetos y datos dentro de SQL Server, los principales deben ser concedidos con
permisos. En esta sección, aprenderá como conceder esos permisos en asegurables en diferentes
rangos.
Objetivos
Introducción
La única manera en la que un principal puede acceder a un asegurable en el sistema de SQL Server
system es si sus permisos concedidos se lo permiten, o directa o indirectamente a través de una
membresía de un principal segundario, como rol o grupo. Puede administrar los permisos usando el
Object Explorer en SQL Server Management Studio o ejecutando las statements GRANT, REVOKE,
o DENY. Entender como administrar permisos para cada uno de los tres rangos del sistema, le
ayudara a implementar un modelo de seguridad efectivo en las aplicaciones de su base de datos.
Permisos Efectivos
Los permisos efectivos para un principal son evaluados de la misma manera que en las versiones
anteriores de SQL Server. Un principal puede realizar una acción en particular si:
Curso 5 estrellas SQL Server 2005
! Los permisos pueden ser concedidos explícitamente al principal o a un grupo del cual el principal es
miembro.
! Los permisos que no han sido negados explícitamente al principal o al grupo del cual el principal es
miembro.
Nota
Un statement DENY explicito siempre sobrescribe un statement GRANT. Por ejemplo, si un usuario
ha sido explícitamente concedido con el permiso en SELECT en una tabla en particular pero es
miembro de un rol que ha sido explícitamente denegado en SELECT en la tabla, el usuario no podrá
ejecutar una statement SELECT contra la tabla.
Adicionalmente, algunos permisos en SQL Server 2005 pueden ser heredados a través de un permiso
concedido a un nivel mas alto en la jerarquía del rango de asegurables. Por ejemplo, un principal que
ha sido concedido con un permiso SELECT en un schema automáticamente hereda permisos SELECT
en todos los objetos en la schema.
Introducción
En las ediciones anteriores de SQL Server, los permisos a nivel de servidor eran roles fijos del
servidor. El SQL Server 2005 agrega la capacidad de conceder expresamente permisos a nivel de
servidor a principales.
Puede conceder permisos en un servidor usando Object Explorer en SQL Server Management Studio.
Las cláusulas y parámetros de nivel de servidor de la statement GRANT son descriptas a continuación
en la siguiente tabla.
El siguiente ejemplo muestra como conceder el permiso a nivel de servidor ALTER ANY
DATABASE:
USE master
GRANT ALTER ANY DATABASE TO [SERVERX\Bill]
Nota
Para permisos a nivel de servidor, el statement GRANT debe ser ejecutado en la base de datos
master.
Introducción
Los asegurables en el rango del servidor incluyen objetos como HTTP endpoints y certificados.
Para conceder permisos en asegurables en el rango del servidor, use la siguiente sintaxis:
Las cláusulas y parámetros del statement GRANT para los asegurables en el rango del servidor son
descriptos en la siguiente tabla.
WITH GRANT OPTION Una opción que permite al que concede, conceder los
mismos permisos a otros.
El siguiente ejemplo muestra como conceder permisos CONNECT en un HTTP endpoint llamado
AWWebService:
USE master
GRANT CONNECT
ON HTTP ENDPOINT :: AWWebService
TO [SERVERX\Bill]
Curso 5 estrellas SQL Server 2005
Nota
Para asegurables a rango de servidor, la statement GRANT debe ser ejecutada en la base de datos
master.
Introducción
Los permisos de bases de datos son permisos que permiten al principal a ejecutar ciertas tareas dentro
de una base de datos. Por ejemplo, el permiso ALTER ANY USER permite al principal crear, alterar
y borrar usuarios en la base de datos.
Puede conceder permisos en una base de datos usando Object Explorer en SQL Server
Management Studio.
1. Conéctese con el servidor al cual quiere aplicar los permisos.
2. Expanda los nodos del servidor y Databases.
3. Haga click con el botón derecho en database, y luego en Properties.
4. En la pagina de permisos, en la sección Permissions for <principal>, conceda los permisos
requeridos al principal requerido.
Las cláusulas y parámetros del nivel de base de datos de la statement GRANT son descriptos en la
siguiente tabla.
WITH GRANT OPTION Una opción que permite al que concede, conceder los
Curso 5 estrellas SQL Server 2005
USE AdventureWorks
GRANT ALTER ANY USER
TO Ted
Nota
Para permisos de base de datos, la statement GRANT debe ser ejecutada en la base de datos a la cual
quieren aplicarse los permisos.
Introducción
Los asegurables en el rango de la base de datos incluyen objetos como usuarios, schemas,
ensambles, y objetos service broker.
Puede conceder permisos a alguien en los asegurables de la base de datos usando Object Explorer en
SQL Server Management Studio.
1. Conéctese al servidor en el cual quiera aplicar los permisos.
2. Expanda los siguientes nodos: server, Databases, y el tipo de objetos que quiere usar.
3. Haga doble click sobre el objeto específico, y luego haga click en Properties.
4. En la página de permisos, en la sección Permissions for <object>, conceda el permiso requerido al
principal requerido.
Para conceder permisos en asegurables de rango de base de datos use la siguiente sintaxis:
La cláusula y parámetros de los asegurables de rango de base de datos del statement GRANT son
descriptos en la siguiente tabla.
WITH GRANT OPTION Una opción que permite al concedido, conceder los
mismos permisos a otros.
El siguiente ejemplo muestra como conceder permisos SELECT en un schema llamado sales:
USE AdventureWorks
GRANT SELECT
ON SCHEMA :: sales
TO Ted
Nota
Para permisos de rango de base de datos, el statement GRANT debe ser ejecutado en la base de datos
que contiene el asegurable al cual el permiso es aplicado.
Curso 5 estrellas SQL Server 2005
Introducción
Los asegurables en un rango de base de datos incluyen objetos como tablas, vistas, procesos
almacenados y tipos.
Las cláusulas y parámetros de la statement GRANT para un tipo son descriptas en la siguiente tabla.
WITH GRANT OPTION Una opción que habilita a quien le fueron concedidos
los permisos, condecer los mismos a otros.
El siguiente ejemplo muestra como conceder permisos EXECUTE en un tipo llamado addressType:
USE AdventureWorks
GRANT EXECUTE
ON TYPE :: addressType
TO Ted
Para otros asegurables schema-scope (como tablas, vistas y procesos almacenados) use la siguiente
sintaxis:
GRANT
{ ALL [ PRIVILEGES ] | object_permission [ ,...n ] }
{
[ ( column [ ,...n ] ) ]
ON { table | view | table_valued_function }
| ON { table | view | table_valued_function}
[ ( column [ ,...n ] ) ]
| ON { stored_procedure | extended_procedure }
| ON { scalar_function | aggregate_function }
| ON { service_queue }
| ON { synonym }
}
TO security_account [ ,...n ]
[ WITH GRANT OPTION ]
[ AS { group | role } ]
Las cláusulas y parámetros del asegurable schema-scope de la statement GRANT son descriptos en la
siguiente tabla:
El siguiente ejemplo muestra como conceder permisos SELECT en una tabla llamada orders en el
schema sales:
USE AdventureWorks
GRANT SELECT
ON sales.orders
TO Ted
Administración de Certificados
Curso 5 estrellas SQL Server 2005
Introducción
Los certificados digitales son usados por SQL Server para crear conexiones SSL y para el Service
Broker. El SQL Server puede crear certificados X.509v3-compliant.
Objetivos
! Describir certificados.
! Describir el uso de certificados en SQL Server.
! Administrar Certificados.
! Usar certificados en SQL Server 2005.
Introducción
Los certificados digitales pueden ser usados para autenticar y/o encriptar mensajes entre dos partes.
Ellos contienen información que puede verificar al que envía un mensaje o pueden ser usados para
encriptar o desencriptar algoritmos.
Definición
Obtener Certificados
Autenticación
Curso 5 estrellas SQL Server 2005
Los mensajes firmados con su llave privada lo identifican como el que envió el mensaje. Una tercera
parte puede usar su llave pública para asegurarse que el mensaje ha sido firmado por una persona u
organización nombrada en el certificado y no por alguien haciéndose pasar por usted.
Encriptación
Los certificados también pueden ser usados para encriptar y desencriptar información. Si un mensaje
es encriptado usando una llave pública, solo puede ser desencriptado usando la llave privada
correspondiente. Similarmente, si los datos son encriptados usando una llave privada, solo puede ser
desencriptada usando una llave pública.
Este mecanismo puede ser usado para asegurarse que solo los servicios a los cuales usted hace
disponible su llave pública puede desencriptar los mensajes que usted envía. por ejemplo, si manda
información por una red pública como Internet, esa información puede ser desencriptada solo por la
organización que tiene una copia de su llave pública. Si ellos luego quieren enviarle información
segura, pueden ecriptarlo usando su llave pública, y usted, el que tiene la llave privada puede
desencriptarla.
Introducción
El SQL Server usa certificados como un mecanismo de autenticación y encriptamiento entre instancias
remotas del Service Broker, y para proveer una conexión segura de comunicación para sincronizacion
Web para juntar replicación.
Puede usar SQL Server para dar certificados a usuarios dentro del servidor para propósitos de
autenticación y encriptación. El SQL Server 2005 incluye nuevas statements Transact-SQL para la
creación y administración de certificados.
Los certificados creados por SQL Server adhieren al certificado standard X.509v3. Cuando usted crea
un certificado, es almacenado en la base de datos del usuario en curso, por lo tanto, si mueve una base
de datos, cualquier certificado que la misma usa es movida con ella.
El Service Broker puede asegurar, comunicación autenticada entre dos servicios en una conversación.
El HTTP endpoint al cual los mensajes son enviados en el servidor remoto puede ser configurado para
requerir autenticación, y si el usuario dbo en la base de datos master tiene asociado un certificado
digital, es usada la autenticación basada en certificado.
El Service Broker también puede usar dialogo de seguridad completo, que usa certificados digitales
para encriptar mensajes entre usuarios remotos.
Autenticación de Código
Curso 5 estrellas SQL Server 2005
Puede usar un certificado en una base de datos de SQL Server para agregar una firma digital a
un objeto de base de datos como un proceso almacenado o función. Esta es una forma común de
garantizar la autenticidad de un modulo de código.
Encriptación de Datos
Puede usar certificados para encriptar o desencriptar datos. Sin embargo, debe tener en cuenta
que la criptografía basada en certificados incurre en una mayor performance por encima de la
criptografía con una llave simétrica.
Introducción
Puede crear, importar, exportar, y borrar certificados de SQL Server usando statements Transact-SQL.
Crear Certificados
USE AdventureWorks
CREATE CERTIFICATE AWCert
WITH SUBJECT = ’CertificateForAdventureWorks’
, ENCRYPTION_PASSWORD = ’P@ssw0rd’
El siguiente ejemplo muestra como crear un certificado y hacerlo disponible al iniciador del dialogo
del Server Broker:
USE AdventureWorks
CREATE CERTIFICATE AWCertSB
WITH SUBJECT =
Curso 5 estrellas SQL Server 2005
’CertificateForAdventureWorksServiceBrokerApp’
, ENCRYPTION_PASSWORD = ’P@ssw0rd’
ACTIVE FOR BEGIN_DIALOG = ON
Puede usar la statement ALTER CERTIFICATE para agregar una llave pública a un certificado o
para alterar el dueño del certificado.
Exportar Certificados
Use el statement DUMP CERTIFICATE para exportar certificados a un archivo, como muestra el
siguiente ejemplo:
Borrar Certificados
Use el statement DROP CERTIFCATE para borrar certificados, como es mostrado en el siguiente
ejemplo:
Modulo 7
Recuperación de Desastres
○ Recupero de Desastres en SQL Server 2005
○ Uso de Snapshots de la Base de Datos
○ Backup y Recuperación
Introducción
El recupero de Desastres un proceso de restauración del sistema y recupero luego que ha sucedido un
desastre. Un desastre puede ser cualquier cosa causada por un error de un usuario (como un
administrador que borra una tabla) o una falla de hardware (como la falla de un disco) todo el camino
a un colapso catastrófico de la infraestructura y el hardware donde se aloja la base de datos, quizás
como resultado de un terremoto, incendio o acto de terrorismo.
El SQL Server 2005 continua soportando clustering, backup y restauración, y log shipping como
mecanismo de desastre-recupero. También suma un número de mejoras a las features disponibles en
las versiones anteriores.
! Snapshots de Base de Datos. Un snapshot de base de datos es una copia de solo lectura de la base de
datos hecha en un momento en particular. Los usuarios pueden consultar el snapshot de la base de
datos en la misma manera en la que consultarían la base de datos. Una snapshot de la base de datos
puede ser usada para restaurar los datos y agregarla devuelta en la base de datos original rápida y
fácilmente. Para una descripción mas detallada de snapshots de bases de datos, vea Using Database
Snapshots mas tarde en este modulo.
!Operaciones Online. En SQL Server 2005, puede restaurar paginas dañadas y archivos
comprimiendo una base de datos mientras que la base de datos esta online y otro usuario esta
accediendo a partes de la base de datos no dañada. Para un descripción mas detallada de cómo realizar
una restauración online, vea Backup and Restore Operations mas tarde en este modulo.
!Backup media mirroring. El SQL Server 2005 permite hacer mirror backup media, incrementando la
confiabilidad reduciendo los efectos de una mala función de los dispositivos de backup. Backup
mirroring puede ser usado con dispositivos de disco o cinta (todos los dispositivos formando un mirror
set deben ser del mismo tipo) El backup fallara si algún dispositivo en el mirror set no esta disponible
o no se encuentra. Sin embargo, las operaciones de restauración solo requieren de un solo dispositivo
en cada mirror set para tener éxito. Para una descripción mas detallada de backup media mirroring,
vea .Backup
and Restore Operations mas tarde en este modulo.
Introducción
Los snapshots de la base de datos proveen la capacidad para los administradores de generar y usar una
base de datos de solo lectura y vista estable. Una snapshot de la base de datos puede ser usada para
recuperar datos perdidos por un cambio accidental hecho a la base de datos.
Esta sección describe los snapshots de la base de datos y discute su uso como un herramienta para
asistir en un recupero de desastre.
Curso 5 estrellas SQL Server 2005
Objetivos
Introducción
Mientras que el mirroring provee soporte continuo, hay muchos escenarios en los cuales un simple
snapshot de la base de datos es útil como una base de datos en standby, como un test o una base de
datos en desarrollo o simplemente como una base de datos de reporte.
Definición
Un snapshot de base de datos es una vista de la base de datos como solo lectura, consistente en un
punto especifico de tiempo.
Modificar Datos
SQL Server 2005 usa tecnología copy-on-write para implementar los snapshots de la base de datos sin
incurrir en crear una copia completa de la base de datos. Una snapshot de la base de datos, empleando
archivos separados NTFS para alojar espacio físico en el disco solo cuando es requerido. Cuando una
página en la fuente de la base de datos es actualizada por primera vez, la imagen original de esa
página es copiada a la snapshot de la base de datos. (Actualizaciones subsiguientes de la misma página
no incurren en copias adicionales sobre la misma.) Si una página no es nunca modificada, no es nunca
copiada.
Nota
Si borra un archivo de la fuente de la base de datos, el contenido completo de la base de datos será
copiado al snapshot de la base de datos.
Lectura de Datos
un usuario que accede a la snapshot de la base de datos vera una copia de la página en la snapshot solo
si la pagina ha sido modificada desde que la snapshot ha sido creada. De todas formas, el usuario es
redireccionado a la página correspondiente en la fuente de la base de datos. Esta redirección es
transparente para el usuario.
Curso 5 estrellas SQL Server 2005
Crear un Snapshot
Crea una snapshot de base de datos usando el comando CREATE DATABASE con la cláusula AS
SNAPSHOT, como muestra el siguiente ejemplo:
El siguiente código muestra como crear una snapshot de la base de datos AdventureWorks
en la carpeta C:\SnapshotData:
La snapshot debe ser creada en la misma instancia de SQL Server que la de la fuente de la base de
datos, y la carpeta de destino debe existir. Adicionalmente, la cláusula ON debe incluir un archivo
para cada fila de datos usado en la fuente de la base de datos, Aunque no debería especificar los
parámetros SIZE, MAXSIZE, o FILEGROWTH.
Nota
La cláusula filespec no puede incluir la palabra clave PRIMARY o especificar una lista de grupos de
archivo.
Crear una snapshot crea una vista de la base de datos en el tiempo en curso. Puede usar el SQL Server
Agent para agendar tareas que crean snapshots en un tiempo determinado. Una base de datos puede
tener múltiples snapshots. Por lo tanto es recomendado que usted adopte una conversión de nombre
para una snapshots de base de datos que incluye el tiempo en que la snapshot fue creada. Por ejemplo,
AdventureWorks_dbsnapshot_1800 indica que una snapshot fue creada a las t 6:00 P.M.
En una base de datos que cambia frecuentemente, los archivos snapshot pueden agrandarse
rápidamente, así que es recomendado que si agenda la creación de snapshot, también agende trabajos
de borrado de las versiones anteriores de la snapshot.
Tip
Curso 5 estrellas SQL Server 2005
Puede descubrir la fuente de la base de datos para una consulta de la snapshot de base de datos
consultando la vista de catálogos sys.databases y examinar la columna source_database_id.
Use el comando DROP DATABASE para borrar una snapshot y tener el espacio en disco que esta
ocupo:
Restricciones
Introducción
Puede usar una snapshot de base de datos para recuperar datos de un cambio accidental a la base de
datos aplicando los datos de la snapshot de base de datos a la fuente de la base de datos. Sin embargo,
debe tener en cuenta que la snapshot de la base de datos provee un mecanismo de recuperación de
peso pequeño que no debería ser usado como un sustituto para implementar un backup comprensivo y
recuperación estratégica.
Escenarios Aplicables
Una variedad de situaciones puede terminar en la pérdida de datos, desde borrar algo por accidente de
una tabla o modificación de una simple row hasta corrupción o pérdida del archivo de la base de datos.
La naturaleza de la snapshot de la base de datos la hace ideal para recuperar desde una aplicación
hasta un error de un usuario que pueden borrar una row o una actualización por accidente, o borrar una
tabla. Restaurar datos de una snapshot de base de datos es más rápido y fácil que realizar una
operación de restauración desde una base de datos de backup. Sin embargo, el mecanismo copy-on-
write previene la snapshots de la base de datos de recuperar una base de datos sospechosa de
comprimir archivos corruptos de base de datos, esto requiere restaurar los archivos faltantes de la base
de datos desde un backup. También debe notar que solo puede recuperar cambios hechos al punto en
el cual la snapshot fue tomada. Recuperar los cambio subsecuentes requiere restaurar la base de datos
desde un y luego ir hacia delante usando las transacciones mas recientes de log backups. Los
siguientes escenarios son ejemplos de cuando usar una snapshot de base de datos para propósitos de
recuperación.
Importante
Debe recordad que estos tipos de statement de recuperación, solo recuperan los datos que usted
especifica explícitamente, y cuando restaura datos usando estos métodos, cualquier otra modificación
hecha a los datos en el periodo subsecuentes era perdido.
Puede recuperar rows borradas de una tabla copiándolas desde la snapshot correspondiente. Por
ejemplo, un nombre de usuario Fred ha reportado que todas las rows en la tabla
Production.WorkOrderRouting en la base de datos AdventureWorks han desaparecido. Puede
restaurar las rows perdidas de la base de datos AdventureWorks_dbsnapshot_1800 usando la
statements como muestra el siguiente ejemplo:
Es de práctica común desafiliar cualquier restricción cuando se copia un número grande de rows
dentro de una tabla, para propósitos de performance. En otros casos, puede ser necesario deshabilitar
restricciones temporalmente para prevenir que los datos sean rechazados cuando son reaplicados.
Puede usar técnicas similares para copiar datos de una snapshot para deshacer cambios hechos a las
rows seleccionadas. Fred ahora ha reportado que por error cambio el nombre del departamento 1 en la
tabla HumanResources.Department, pero no puede recordar que valor tenía antes, así que no pudo
chequearlo otra vez. Puede corregir el error usando el siguiente statement:
UPDATE HumanResources.Department
SET Name = (
SELECT Name
FROM
AdventureWorks_dbsnapshot_1800.HumanResources.Department
WHERE DepartmentID = 1)
WHERE DepartmentID = 1
Introducción
Las tareas de backup y restauración de una base de datos, son temas fundamentales con los cuales un
administrador debe estar familiarizado para implementar una estrategia de recupero de desastre. Esta
sección describe como realizar las operaciones de backup y restauración usando las nuevas features en
SQL Server 2005.
Objetivos
Introducción
El SQL Server 2005 introduce cambios a la statement BACKUP. Ya no soporta las opciones
BACKUP LOG WITH NO_LOG y BACKUP LOG WITH TRUNCATE_ONLY, que antes te
permitían remover y truncar una porción inactiva de un log sin tener que hacer una copia de el.
El siguiente código muestra la sintaxis básica de las statements BACKUP DATABASE y BACKUP
LOG, sin cambios desde SQL Server 2000:
Nota
Los llamados dispositivos pipe backup no son soportados en SQL Server 2005; solo puede crear un
dispositivo de disco o cinta.
Curso 5 estrellas SQL Server 2005
Puede realizar un backups de una base de datos usando el cuadro de dialogo Backup Database en
SQL Server Management Studio.
1. Conéctese a una instancia de SQL Server.
2. En Object Explorer, expanda la instancia relevante, luego expanda System Databases o User
Databases, dependiendo el tipo de base de datos de la quería hacer el backup.
3. Haga botón derecho sobre la base de datos, posiciones sobre Tasks, y luego haga click en Back
Up.
4. Especifique los requerimientos en las paginas General y Options, y luego haga click en OK.
Backups completes de la base de datos y backups diferenciales en SQL Server 2005 contienen una
imagen full de los datos como también suficiente información de logs para asegurar una recuperación
consistente luego del proceso de restauración. Si algunas transacciones están en proceso cuando el
backup es hecho, el backup incluye pasos de log para alcanzar un estado consistente.
Backup Parcial
Backups completos y diferenciales también soportan un nuevo tipo de backup, el backup parcial. Esto
es diseñado para primariamente para permitir restaurar de un modelo simple de base de datos, pero
puede ser usado para recuperacion completa o bulk-logged de modelos de base de datos, también. Un
backup parcial también incluye todos los datos en cualquier grupo de archivos lectura/escrituray en
cualquier grupo de archivos específicamente mencionado. Para una base de datos de solo lectura, esto
es igual que solo para el grupo de archivos principal. Un backup parcial diferencial hace relación a un
backup parcial en el mismo modo que un backup completo diferencial hace referencia a un backup
completo de la base de datos.
Use la opción READ_WRITE_FILEGROUPS de la statement BACKUP para crear un backup
parcial, como muestra el siguiente ejemplo:
Backups Copy-only
El SQL Server 2005 incluye una nueva opción de statement BACKUP que le permite hacer una copia
de la base de datos para un propósito especifico, por ejemplo, testear sin alterar la secuencia normal
de sus log backups diferencial y transaccional.
Use la opción COPY_ONLY para crear datos o log backup que es independiente de los otros backups
de una base de datos específica, como muestra el siguiente ejemplo de código:
TO AWBackup
WITH COPY_ONLY
Si usa la opción COPY_ONLY en una statement BACKUP LOG, el log no es truncado y el backup
no es incluido en la secuencia de logs para ser aplicada a la base de datos durante el proceso de
restauración.
Introducción
Puede implementar operaciones de restauración offline en SQL Server 2005 usando la statement
RESTORE en casi la misma forma que en las versiones anteriores. Puede usar también el SQL Server
Management Studio para restaurar la base de datos y logs. La statement RESTORE contiene una
nueva opción, RESTRICTED_USER. Esta restringe el acceso a la base de datos recuperada a los
miembros de los roles db_owner, dbcreator, o sysadmin. Esto reemplaza la opción DBO_ONLY
del SQL Server 2000, que solo esta disponible para compatibilidad retrazada. Puede restaurar solo
backups de bases de datos creadas en SQL Server 7.0, SQL Server 2000, y SQL Server 2005.
Nota
No puede restaurar una base de datos que tiene un snapshot basada en ella.
Recuperacion Point-in-time
En versiones anteriores de SQL Server, puede usar la opción STOPAT para restaurar un log en un
punto específico en el tiempo. En SQL Server 2005, esta funcionalidad también ha sido agregada a la
statement RESTORE DATABASE. Por ejemplo, el siguiente código restaura la base de datos
AdventureWorks a su estado a las 2:00 p.m. del 1ro de Marzo del dispositivo de backup AWBackup.
Mientras ejecuta una operación de backup parcial para hacer backup del grupo de archivos principal,
otros grupos de archivos read/write, y otros grupos read-only específicos, también puede ejecutar una
restauración parcial de los mismos ítems. Usualmente, un proceso de restauración es requerido por un
Curso 5 estrellas SQL Server 2005
error en una parte aislada de la base de datos; por ejemplo, una tabla que se borro por accidente. En
este escenario, puede ejecutar una restauración parcial del grupo de archivos primarios y los grupos de
archivos que contienen la tabla especifica a una locacion secundaria, y luego copiar la tabla y sus
contenidos a la locacion original de la cual fueron borradas. Las restauraciones parciales también
pueden ser útiles para crear subsets de datos con servidores no conectados. El siguiente código
muestra como ejecutará una restauración parcial de AWBackup a una nueva base de datos llamada
AWTemp:
Aparte de poder restaurar una base de datos completa, uno o mas grupos de archivos, o uno o mas
archivos, ahora puede restaurar paginas individuales cuando usa los modelos de recuperacion
completa o bulk-logged. Esto puede reducir ampliamente el tiempo requerido para una operación de
restauración, por lo tanto reduce el tiempo que la base de datos esta offline. Restauración Page-level
es también una técnica particular para restaurar páginas dañadas aisladas. Si tiene que restaurar
múltiples paginas en el mismo archivo, debería usar restaurar el archivo. Use la opción PAGE en la
cláusula file_or_filegroup para la statement RESTORE DATABASE para realizar una restauración
page-level:
Esto requiere que especifique el nombre de un archivo y el offset de una pagina dentro del archivo.
Puede identificar offsets de una página que contienen errores usando información hexadecimal del log
de error del suspect_page_table en msdb. Por ejemplo, el siguiente código restaurara la página
número 832 en el archivo AdventureWorks_data_1 del dispositivo de backup AWBackup:
Operaciones de Restauración
La edición de SQL Server 2005 Enterprise Edition soporta el concepto de restauración piecemeal, que
le permite restaurar grupos de archivos en stages, trayendo a cada grupo online mientras avanza.
Puede usar este método para reducir en gran medida el tiempo total en el cual la base de datos esta
siendo restaurada, solo restaurando los archivos dañados,
Curso 5 estrellas SQL Server 2005
restáurelos por orden de importancia, y ponga cada grupo de archivos online lo antes posible. El
comportamiento de la restauración piecemeal varía dependiendo del modelo de recuperacion de su
base de datos:
! Modelos de recuperacion completa y bulk-logged.
Restauración piecemeal es valida para cualquier grupo de archivos secundario.
! Modelo de recuperacion simple.
Puedo restaurar solo grupos de archivos secundarios si ellos son de solo lectura cuando el backup fue
ejecutado y han permanecido así desde entonces. Restauración Piecemeal comienza con una
restauración parcial de algunos de los grupos de archivos primarios, y en el caso de un modelo de
recuperacion simple, los grupos de archivos read/write. Una vez que están online, puede restaurar
cualquier otro archivo dañado disponible en la base de datos.
Introducción
El SQL Server 2005 Enterprise Edition introduce un nuevo concepto de restauración online de
backups debe SQL Server 2005. Por defecto, en esta edición, una base de datos queda online mientras
que se restauran archivos o paginas individuales a una base de datos. Esto puede mejorar el tiempo de
restauración en los modelos completos y bulk-logged . (No soporta modelos de restauración simples.)
Durante la restauración de cualquier archivo o grupo de archivos, el grupo completo esta offline. Por
lo tanto, cuando esta restaurando un archivo en el grupo de archivos primarios, toda la base de datos
debe estar offline. Sin embargo, luego que el primer grupo de archivos es restaurado, la base de datos
es puesta otra vez online, y mientras los grupos de archivos secundarios son restaurados, el grupo de
archivos es puesto automáticamente online.
La restauración online asegura que la restauración de páginas dañadas aisladas tiene poco impacto
sobre el sistema completo de la base de datos. Generalmente, las páginas dañadas serán listadas en el
log de error de la base de datos. Por ejemplo, si trata de acceder a una pagina dañada, un error ocurrirá
y se hará una entrada en el log de error. Puede usar esta información para localizar la página
individual y restaurarla de un backup valido.
Confiabilidad Media
Introducción
Más allá de su estrategia de restauración, sus datos aun pueden estar en peligro por errores que pueden
ocurrir en su backup media. El SQL Server 2005 incluye funcionalidades que lo alertan de errores
Curso 5 estrellas SQL Server 2005
durante los procesos de backup y restauración, permitiéndole restaurar los datos mas allá de los
errores que pueden ocurrir y reduciendo la posibilidad de errores de media impactando sus trabajos.
Puede usar la opción CHECKSUM de la statement BACKUP para calcular una checksum en cada
página de datos y verificar esta checksum antes de escribir la información a su backup media. Esto le
ayudara a asegurarse que solo datos validos serán escritos cuando haga el backup de archivos. El
siguiente ejemplo de código muestra como usar la opción CHECKSUM:
Por defecto, si ocurre un error durante la creación del proceso checksum, el backup falla. Este
comportamiento puede ser evitado usando la opción CONTINUE_AFTER_ERROR escrita abajo.
Los checksums computados son escritos en el backup media. Pueden ser usados durante el proceso de
restauración para una vez mas, verificar los datos cuando son leídos del backup, antes que sea
finalizado a la base de datos restaurada. Use la opción CHECKSUM del statement RESTORE para
instruir al SQL Server a verificar los datos antes de restaurarlos, como muestra el siguiente ejemplo de
código:
Puede forzar al SQL Server a log, pero no fallar, cuando encuentra errores de checksum usando la
opción CONTINUE_AFTER_ERROR. La statement RESTOREVERIFYONLY ha sido mejorada
para incluir la opción CHECKSUM y permitirle verificar los datos antes de intentar restaurarlos.
Nota
Debe usar la opción CHECKSUM con cuidado, puede producir efectos adversos a su sistema de base
de datos.
El SQL Server 2005 incrementa el potencial de restauración de sus datos a través del uso de un
backup media mirroring. Este método resulta en dos locaciones del mismo tipo de media almacenando
sus datos del backup, lo cual reduce el peligro que la media falle causando perdida de datos. El
siguiente ejemplo de código muestra como usar la opción MIRROR TO en el statement BACKUP:
Nota
Cuando usa la opción MIRROR TO, también debe incluir la opción WITH FORMAT de la
statement del BACKUP.
Cuando esta haciendo backup de datos, todos los miembros del mirror deben ser accesibles. Sin
embargo, cuando esta restaurando datos, solo un miembro necesita se accesible, haciendo una
restauración posible aunque el otro miembro este dañado.
El statement RESTORE en SQL Server 2005 incluye un nuevo punto que le permite completar una
operación de restauración completa aunque un error aparezca durante el procesos. Usando la opción
CONTINUE_AFTER_ERROR cauda al SQL Server simplemente intentar log el error y continuar
con su trabajo, como muestra el siguiente código:
Dependiendo en la naturaleza del error, este intento puede tener éxito, o fallar. Por ejemplo, si una
verificación de checksum falla, es posible que el remanente de los datos sea restaurado y sea valido y
el proceso pueda continuar. Sin embargo, si ocurre un error en una cinta, puede ser imposible que
continuara la operación de restauración, la cual entonces fallara. Si los errores ocurren, la base de
datos es marcada SUSPECT al final del proceso de restauración, permitiéndole chequear
manualmente que errores ocurrieron y que impacto habrán tenido en su base de datos.
Introducción
Si su base de datos master es dañada, puede necesitar o simplemente restaurar la base de datos o
reconstruirla completamente.
Su la base de datos master es aun accesible, podrá iniciar una instancia de SQL Server. En este
escenario, debe iniciar SQL Server en modo singleuser y luego restaurar su copia de la base de datos
master desde su más reciente backup completo de la base de datos en la manera habitual, como
describe en los siguientes pasos.
sqlservr.exe -c .m
Si hizo algún cambio a la base de datos master desde que fue hecho el backup, necesitara rehacer
manualmente esos cambios una vez que la base de datos esta restaurada y online. Por esta razón,
cuando realiza un cambio a master (por ejemplo, cambiar una configuración server-wide, o agregar o
remover bases de datos), es recomendado que ejecute un backup completo de la base de datos. Una
vez que el proceso de restauración es completado, el SQL Server es parado automáticamente. En este
punto, puede empezar SQL Server en modo single-user para hacer los cambios manuales antes de
ponerla online, o puede iniciar SQL Server para uso inmediato de clientes
Si la base de datos master es dañada severamente, puede ser que no pueda iniciar una instancia de
SQL Server. En esta situación, debería reconstruir una versión nueva entera de su base de datos
master.
Para reconstruir una base de datos master, debe correr el programa del setup de SQL Server con las
siguientes opciones:
! /qn cambia a suprimir la interfase de usuario.
! REINSTALLMODE = AMUS propiedad para reconstruir un sistema de base de datos.
! REINSTALL = ALL propiedad de setear un servidor con las features instaladas previamente. Esta
debe ser usada cuando se especifica la propiedadREINSTALLMODE.
Una vez que la reconstrucción esta completa, puede restaurar su versión original del servidor si tiene
un backup disponible siguiendo los pasos descriptos arriba. Si no tiene un backup disponible,
necesitara recrear y reconfigurar su sistema. Reconstruir el sistema de base de datos incluye
reconstruir las bases de datos msdb y model, asi que debe asegurarse que tiene copias de backup de
sus versiones para restaurar luego de reconstruir.
Curso 5 estrellas SQL Server 2005
Modulo 8
Introducción
Idealmente, un sistema de base de datos debería estar disponible las 24 horas del día, cada día. En
realidad, esto no es siempre posible, hay técnicas que puede usar para incrementar la disponibilidad de
Curso 5 estrellas SQL Server 2005
sus aplicaciones. El SQL Server 2005 provee tres tecnologías que pueden ayudarlo a crear sistemas de
base de datos altamente disponibles: clustering, log shipping, y database mirroring.
Clustering
Clustering provee soporte de servidor completo y alta disponibilidad en caso de tener una falla de
hardware o mantenimiento agendado. En caso de falla, el sistema operativo y SQL Server trabajan
juntos para proveer un sistema automatizado para fallas. En el caso de agendar que la computadora no
funcione, puede configurar un nodo para que falle sobre otro para asegurarse que las aplicaciones aun
están disponibles para los usuarios. Ha sido posible tomar ventaja del clustering de Microsoft
Windows® en las ediciones previas de SQL Server, pero SQL Server 2005 Enterprise Edition mejora y
extiende estas capacidades:
!El SQL Server 2005 soporta hasta ocho nodos cuando esta corriendo en Microsoft Windows Server.
2003 Datacenter Edition, incrementando la capacidad de failover.
!El SQL Server 2005 también extiende la funcionalidad de clustering para permitirle ver el clustering
en conjunción con Analysis Services, Notification Services, y SQL Server Replication.
Log shipping
Log shipping provee un calido standby de sus datos que puede ser traído online en caso de falla del
sistema. Una base de datos completa es restaurada a un servidor secundario, y luego los logs de
transacción de la base de datos primaria son aplicados constantemente a la base de datos secundaria.
Este es un costo relativamente bajo a la solución de la disponibilidad de datos.
Log shipping esta disponible solo para usuarios de bases de datos, no sistemas de bases de datos. Esto
significa que debe tener un régimen estricto de backup las bases de datos master y msdb en el
servidor primario y restaurarlos en el secundario. Sin este régimen, cualquier metadato cambiado será
perdido en la falla del sistema, resultando potencialmente en logins, trabajos y alertas perdidos.
Database mirroring
Database mirroring es una nueva técnica disponible en SQL Server 2005 Enterprise Edition que
provee una versión mejorada de log shipping para un failover mas rápido. En lugar de shipping
transaction logs e una constante, intervalos configurados, cada transacción es shipped mientras que es
aplicada al servidor primario. No puede configurar un mirror set para automáticamente fail over en el
caso en que el servidor primario falle, y puede programar aplicaciones de cliente para
automáticamente reconectarse con el nuevo servidor primario.
Como log shipping, el mirroring de la base de datos esta disponible solo a usuarios de base de datos, y
requiere que asegure manualmente la disponibilidad y corrección de su sistema de base de datos.
Es importante entender que ninguna de las soluciones de alta disponibilidad en SQL Server 2005 es
una opción aislada. Puede combinar dos o más técnicas dentro del mismo sistema para cubrir todas las
eventualidades.
La siguiente tabla compara y contrasta tres de las tecnologías de alta disponibilidad en SQL Server
2005.
Curso 5 estrellas SQL Server 2005
Detección de Falla Si No Si
Failover Automático Si No Si
Requerimientos Almacenamiento y No No
especiales de hardware servidores certificados
Rango Base de datos de sistema Base de datos de usuario Base de datos de Usuario
y usuario
Puede usar replicación en combinación con soluciones de alta disponibilidad para dar mayor
protección de datos de su sistema.
Introducción
Curso 5 estrellas SQL Server 2005
Mirroring de base de datos puede proveer una solución failover casi instantánea para las bases de
datos SQL Server 2005. En esta edición, mirroring de base de datos le permite mantener una copia
actualizada de su base de datos en un servidor aparte para eventos de failover durante una falla del
servidor. Esta sección le enseña el concepto de mirroring una base de datos.
Objetivos de la sección
Introducción
Mirroring de base de datos es una solución de software para incrementar la disponibilidad de la base
de dato. Mirroring de base de datos en SQL Server 2005 mejora el nivel de disponibilidad que tenían
las versiones anteriores de SQL Server y provee una alternativa fácil al clustering failover.
Definición
Curso 5 estrellas SQL Server 2005
Mirroring de base de datos funciones manteniendo un servidor en standby que tiene un copia de la
base de datos. Si el servidor de producción falla, las aplicaciones pueden ser redireccionadas al
servidor en standby. El failover puede ser la mas instantánea, típicamente necesita de menos de tres
segundos si es realizada automáticamente.
La base de datos sobre la cual se hace el mirror es usualmente referida como la base de datos
principal; el mirror es llamado la base de datos mirror. (Debe entender que estos términos son
puramente relativo, ya que es posible para las bases de datos cambiar los roles como resultados de
failover.) Los servidores que tienen estas bases de datos se los llama partner servers.
Su las aplicaciones de su cliente usan el SQL Native Client Library (SNAC) provisto con SQL Server
2005, pueden tomar ventaja de la redirección transparente para el cliente. SNAC es conciente que el
servidor al que esta conectado es el mirror y cacheara el nombre del servidor mirror. En el caso de
falla del servidor principal, la sesión del cliente será perdida. El cliente intentara reconectarse al
servidor principal, pero si falla, automáticamente redireccionara la conexión al servidor mirror.
Hacer un mirror de una base de datos envuelve algunos pasos, durante los cuales la base de datos pasa
por algunos estados:
" Estado de sincronización. Para permitir hacer el mirror, la base de datos mirror debe ser creada, y
todos los cambios realizados a la base de datos principal también deben ser aplicados a la base de
datos mirror. Mientras que esto sucede, la base de datos principal y la mirror están en estado de
sincronización.
" Estado de sincronización. Una vez que la base de datos mirror se actualizo con la base de datos
principal, ambas están en estado de sincronización. Todos los cambios hechos a la base de datos
principal serán automáticamente hechos en la base de datos mirror para asegurarse que permanecen
sincronizadas.
" Estado desconectado. Si un servidor pierde conexión con su servidor/es partner como un falla de la
red, la base de datos pasa a estado desconectado.
" Estado Suspnedido. El mirror puede ser detenido temporalmente, usualmente como resultado de
acciones hechas por administrador de la base de datos. Una vez que la base de datos no esta siendo
espejada, entra en estado suspendido.
Los pasos para configurar un mirror y la transición que realiza cada base de datos son descriptas en
mas detalle en esta lección.
Modos de Operación
Los mirror de las bases de datos pueden operar en dos modos, que determinan el grado de exposición
a la perdida de datos y la naturaleza del failover que pueda realizarse:
" Modo sincronizado. En modo sincronizado, los registros de transaction log son transmitidos de la
base de datos principal a la base de datos mirror, y aplicados a la base de datos mirror antes de ser
hechos en la base de datos principal. Este mecanismo garantiza que no habrá transacciones perdidas, a
Curso 5 estrellas SQL Server 2005
expensas del tiempo adicional que requiere completar una transacción. Este modo soporta failover
manual y automático.
" Modo desincronizado. En modo desincronizado, las transacciones son hechas primero en el servidor
principal antes de enviar registros log a la base de datos mirror. La base de datos mirror esta en estado
de desincronizacion perpetuo. Las aplicaciones no son demoradas mientras la comunicación con el
servidor mirror se produce. Esto incrementa el trabajo al peligro de perder la sincronizacion con la
base de datos mirror si la comunicaron falla. El modo desincronizado no soporta failover, aunque un
administrador de base de datos puede realizar pasos para forzar el uso de una base de datos mirror en
caso que la base de datos principal este no disponible. Sin embargo, la base de datos mirror puede no
haber sido actualizada con los mas recientes cambios.
Nota
En SQL Server 2005 Beta 3, ambas bases de datos envueltas en el mirror deben operar en modo de
recuperacion completa.
Curso 5 estrellas SQL Server 2005
Introducción
El mirror de la base de datos envuelve por lo menos dos partner servers que tienen la base de datos
principal y la mirror. Adicionalmente, otro servidor testigo puede ser usado para monitorear el mirror,
proteger la base de datos mirror, e implementar failover automático.
El servidor servidor de base de datos principal tiene la base de datos principal. Este es el servidor al
cual los usuarios y aplicaciones se conectan normalmente para realizar sus tareas.
El servidor de la base de datos mirror tiene la base de datos mirror. Los usuarios y aplicaciones no se
conectan a este usualmente a menos que ocurra un failover y este servidor es hecho el servidor de base
de datos principal. En este caso, luego que la comunicaron ha sido establecida con el servidor
principal, el servidor principal original puede tomar el rol de servidor mirror.
Los servidores de base de datos principal y mirror deben poder comunicarse entre ellos usando una
conexión confiable. Idealmente, ambos servidores deben pertenecer al mismo dominio.
Servidor Testigo
Curso 5 estrellas SQL Server 2005
Un Servidor Testigo monitorea los servidores de base de datos principal y mirror y verifica que ambos
servidores estén disponibles. Como esto no es un trabajo intensivo, una computadora corriendo SQL
Server puede actuar como servidor testigo para cualquier set de mirrors.
Si el servidor de la base de datos principal o mirror fallan, el servidor testigo puede trabajar con el
servidor que sobreviva para reconectarse o reaccionar apropiadamente. Las acciones que se realizan,
que dependen de la configuración en curso de set de mirrors, son descriptas mas tarde en esta sección.
Sesiones de Mirror
Introducción
El mirror de la base de datos se realiza en el contexto de una sesion mirror. Una secion mirror
mantiene la infotmacion acerca del estado de las bases de datos, las mirror partners y el servidor
testigo.
Cuando un administrador de base de datos inicia un una sesión mirror, el servidor de la base de datos
mirror identifica los registros log de las transacciones mas recientes que fueron aplicadas a la base de
datos mirror, y luego requiere cualquier registro log de transacciones subsiguiente del servidor
principal. Esta es la fase de sincronización de la sesión mirror.
Durante la sesión
Luego que la base de datos mirror esta sincronizada con la base de datos principal, el servidor de la
base de datos principal transmitirá todos los registros log de transacciones para la base de datos
principal a la base de datos mirror. Los registros log son transmitidos como cambios son hechos,
efectiva y continuamente rodando la base de datos mirror hacia la base de datos principal. El modo de
operación de la sesión mirror (sincronizada o desincronizada) determina si los registros de log de
transacciones serán aplicados a la base de datos mirror antes o después que las transacciones se
completen en la base de datos principal.
Una sesión mirror mantiene la información acerca del estado de cualquiera de los servidores testigo,
asegurándose que el servidor testigo esta visible y puede monitorear a los partner servers.
Una sesión puede ser terminada por una variedad de causas, las mas comunes son:
Nota
Luego que una sesión mirror ha comenzado, los usuarios no podrán conectarse a la base de datos
mirror. Este es un mecanismo de seguridad que previene a la base de datos de cambios accidentales.
La base de datos mirror permitirá el acceso solo luego de un failover (cuando toma el rol de base de
datos principal), o si el administrador de la base de datos lo permite.
Los comandos ALTER DATABASE usados para controlar una sesión mirror son descriptos mas
detalladamente en esta sección.
Introducción
Hay varias maneras de configurar un set de mirrors. El comportamiento de los sets depende de un
numero de factores, incluyendo la presencia de un servidor testigo y el modo de operación
(sincronizado o desincronizado).
Para establecer cualquier tipo de sesión mirror, primero debe restaurar la base de datos desde el
servidor principal dentro del servidor mirror, y luego aplicar los logs de transacción al servidor mirror.
Luego puede establecer la sesión usando las statement ALTER DATABASE con la cláusula SET
PARTNER en cada servidor. tiene la opción de crear un servidor testigo usando la stament ALTER
DATABASE con la cláusula SET WITNESS. Una vez que la sesión es iniciada, las transacciones
que ocurran en el servidor principal serán mirrored en el servidor mirror.
Mirror sincronizado con un servidor testigo provee la mas alta disponibilidad de mirror de base de
datos porque soporta failover automático sin perdida de datos. Sin embargo, como es requisito que las
transacciones sean entradas en el log en el servidor mirror antes de serlo en el servidor principal, la
performance puede verse afectada.
! Servidor Principal. Si el servidor principal se vuelve no disponible por cualquier razón, el servidor
testigo instruirá al servidor mirror a tomar el rol de servidor principal. El servidor mirror traerá la base
de datos mirror online y a los usuarios y aplicaciones que son servidas. A este punto, la sesión mirror
Curso 5 estrellas SQL Server 2005
es suspendida porque no hay mirror disponible para el nuevo servidor principal. Cuando el servidor
principal original es recuperado, tomara el rol de servidor mirror del nuevo servidor principal. Si es
Nazario, puede iniciar un failover manual para revertir estos roles a la configuración inicial.
Mirroring desincronizado con un servidor testigo provee una alta disponibilidad con buena
performance porque las transacciones pueden ser comprometidas en el servidor principal
inmediatamente. Esta configuración es particularmente útil cuando hay una larga distancia o tardanza
entre los servidores principal y mirror.
El mirroring sincronizado sin un servidor testigo le permite garantizar que los datos en ambos
servidores son siempre concurrentes. Esta configuración es útil cuando necesita garantizar la
integridad de los datos y puede tolerar que el servidor no este disponible e issues de performance
potenciales.
La ausencia de un servidor testigo impacta los efectos de la falla de un servidor mirror en el modo
sincronizado. Failover automático no puede ocurrir porque no hay suficientes servidores para formar
una decisión quórum de cual servidor debe tomar el rol de servidor principal y cual el de servidor
mirror. El comportamiento resultante cuando un servidor no esta disponible y no hay servidor testigo
es descrito a continuación:
!Servidor Principal. Si el servidor principal se vuelve no disponible, la base de datos también se
vuelve no disponible. Forzar manualmente al servidor mirror a servir y resumir la sesión mirror una
vez que el servidor principal esta otra vez online.
!Servidor Mirror. Si el servidor mirror se vuelve no disponible, el servidor principal pondrá la base de
datos offline. Esta acción es para maximizar la protección de la base de datos y asegurar la integridad
de sus contenidos. Una vez que el servidor mirror es reiniciado, el servidor principal se vuelve
disponible automáticamente otra vez.
Curso 5 estrellas SQL Server 2005
Introducción
Crear una sesión mirror envuelve configurar un Server mirror, estableciendo una sesión, y ,
opcionalmente, establecer un servidor testigo. Otras tareas de administración incluyen inicializar
failovers manualmente para propósitos de mantenimiento y terminar sesiones. Esta sección le mostrara
como configurar y usar mirroring de una base de datos.
Objetivos de la sección
Introducción
Antes de configurar un mirroring de base de datos y establecer una sesión mirror debe configurar el
servidor mirror y la base de datos.
Servidor Mirror
El servidor que tiene la base de datos, debe ser accesible y confiable por el servidor principal de base
de datos. Idealmente, el servidor principal y el servidor mirror deben pertenecer al mismo dominio.
Nota
El servidor mirror puede ser una instancia en la misma computadora que le servidor principal de base
de datos. Sin embargo esto no es recomendable, porque impactara la performance y la recuperabilidad
de la base de datos en caso de una falla seria de hardware. Para que ocurra un failover automatico
confiable, la base de datos mirror y la base de datos principal debem estar en computadoras diferentes.
Debe crear una base de datos mirror manualmente. Por simplicidad, la estructura de archivos de la
base de datos mirror debe coincidir con la base de datos principal. Ambas bases de datos deben
implementar el modelo de recuperación completa. Luego que la base de datos mirror ha sido creada,
debe aplicar el backup mas reciente de la base de datos completa de la base de datos principal a la
base de datos mirror usando el comando RESTORE DATABASE con la cláusula WITH
NORECOVERY.
Nota
Es importante que use la opción WITH NORECOVERY, porque la base de datos mirror debe
permanecer en el estado de restauración para que los registros de transacción log sean aplicados
durante el mirroring.
Introducción
Antes de establecer una sesión mirror, debe configurar el mecanismo de configuración por el cual el
mirroring ocurrirá. Esto envuelve asegurarse que los endpoints apropiados son creados en cada
instancia de servidor que practicaran en las operaciones mirroring. Un endpoint simplemente controla
el puerto Transmission Control Protocol (TCP) en el cual una instancia de servidor escucha los
mensajes para una base de datos mirroring. Un endpoint también define el rol que ese endpoint debe
realizar.
Una instancia de servidor requiere solo un endpoint en el cual escuchar, sin importar en cuantas
sesiones de mirroring participa. Sin embargo, cada instancia requiere un único puerto en el cual
escuchar, por lo tanto, si su servidor tiene instancias múltiples de SQL Server participando en una
sesión mirror, cada instancia requiere su propio endpoint, configurado con un único puerto TCP.
Un servidor mirror requiere un partner endpoint para que pueda comunicarse con los servidores
principales para actividades de mirroring. El siguiente código crea partners endpoint llamados
mirroring_ep y especifica que debe volverse activo inmediatamente seteando el parámetro STATE a
STARTED. También especifica que el puerto TCP 5022 debe ser usado para escuchar las operaciones
de mirroring . El puerto 5022 es el puerto TCP por defecto para operaciones de mirroring de SQL
Server 2005. el ejemplo también muestra como setear el rol del endpoint a PARTNER.
Como antes, si otra instancia de SQL Server en la misma computadora ya esta usando el endpoints
para sesiones mirroring, deberá elegir un puerto único para la instancia de SQL Server que esta
actuando como testigo.
Curso 5 estrellas SQL Server 2005
Introducción
Luego de haber preparado el servidor y base de datos mirror y crear el endpoint apropiado, debe
iniciar una sesión mirror estableciendo el servidor de base de datos principal y mirror como partners.
Los siguientes ejemplos están basados asumiendo que quiere hacer un mirror de la base de datos
AdventureWorks en el servidor London al servidor Manchester. El ejemplo también asume que el
puerto TCP por defecto 5022 es usado por el mirroring endpoints en cada servidor.
Corra el comando ALTER DATABASE con la cláusula SET PARTNER para crear una relación de
partners entre los servidores:
Cuando la base de datos mirror esta lista para comenzar la sincronización, corra el comando ALTER
DATABASE en el servidor principal, especificando el servidor mirror como el parámetro
server_network_address. Para especificar que el servidor Manchester esta configurado para actuar
como el mirror del servidor London, corra el siguiente comando en el servidor London:
Por defecto, una sesión de mirror opera en modo sincronizado. puede cambiar el modo de operación
de una sesión mirror usando el comando ALTER DATABASE con la cláusula SET PARTNER
SAFETY en cualquier servidor partner:
El parámetro safety_mode puede estar en OFF (para modo desincronizado), o FULL (para modo
sincronizado). Por ejemplo, especificar el modo sincronizado para la sesión mirror configurada antes,
ejecute el siguiente comando en cualquier servidor, el London o el Manchester:
Puede consultar la vista del catalogo sys.databases para examinar la relación de partners mirror entre
bases de datos. La siguiente tabla describe las columnas conteniendo información de mirroring útil.
Columna Descripción
Nota
Si una base de datos no participa en una sesión mirror, todas las columnas mirror en sys.databases
para esa base de datos, contendrán valores null.
También puede usar los contadores de performance del set mirror en el objeto de base de datos del
servidor para monitorear la actividad dentro de su set mirror.
Introducción
Si quiere implementar el failover automático, debe establecer un servidor testigo en su set mirror. El
servidor testigo debe estar en una computadora diferente del servidor principal y el mirror, Sin
embargo, un servidor puede actuar como testigo mirror para varias relaciones de partners.
Crear un Testigo
Use el comando ALTER DATABASE con la cláusula SET WITNESS en el servidor principal para
crear un servidor testigo:
Especifique la dirección del servidor testigo y el punto endpoint para actuar como el testigo para el
parametro server_network_address Por ejemplo, para crear un testigo en un servidor llamado
Birmingham para la sesión de mirror entre los servidores London y Manchester discutidos antes, corra
el siguiente comando en el servidor London:
Nota
Failover automático correrá si la sesión mirror es establecida usando el modo de operación
sincronizado, un servidor testigo ha sido creado, y las bases de datos principales y mirror están
corriendo en computadoras separadas.
Curso 5 estrellas SQL Server 2005
Remover un Testigo
Puede deshabilitar un testigo de una sesión mirror usando el siguiente comando en cualquiera de los
servidores partner:
Con el servidor testigo deshabilitado, la sesión mirror continuara, pero el failover automático no será
posible y el failover deberá ser realizado manualmente.
Nota
El failover manual solo es posible si la sesión mirror es usada en el modo de operación sincronizado.
Columna Descripción
Introducción
También puede suspender y resumir una sesión mirror para aliviar temporalmente issues de una
performance y terminar sesiones permanentemente.
Puede realizar un failover manual para hacer actualizaciones de hardware u otras operaciones de
mantenimiento en el servidor principal. Failing over asegura que la base de datos este disponible
cuando el servidor principal esta offline.
Si nenecita poner el servidor principal offline, ejecute el comando ALTER DATABASE con la
cláusula SET PARTNER FAILOVER en el servidor principal para iniciar un failover manual:
El servidor mirror completara cualquier recuperación y se pondrá en online. La base de datos mirror y
la principal intercambiaran los roles. Puede llevar el servidor principal original (ahora el mirror)
offline y realizar cualquier mantenimiento requerido. Cuando ponga el servidor otra vez online, puede
poner las bases de datos en sus roles originales y repetir este proceso en el nuevo servidor principal.
Forzar el Servicio
El failover es solo posible cuando la sesión mirror usa el modo de operación sincronizado. Para
sesiones que corren desincronizadas, debe forzar el servicio en el servidor mirror para ponerlo online.
Sin embargo, hay peligro que no todos los registros de transacciones log se hayan propagado en la
base de datos mirror; algunos cambios recientes pueden ser perdidos.
Para forzar el servicio en el servidor mirror, use el comando ALTER DATABASE con la cláusula
SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS en el servidor mirror:
La mirror de la base de datos será recuperada tan pronto como sea posible y será puesta online. la base
de datos mirror entrara en estado suspendido. cuando el servidor principal se haya recuperado,
también será marcado como suspendido.
Puede suspender temporalmente las sesiones mirror y luego resumirlas y sincronizar las bases de
datos. Por ejemplo, si se forma un bottleneck, debe querer permitir a todos las transacciones
simplemente completarse en el servidor principal y luego aplicarlos a la base de datos mirror.
Suspender una sesión causa que todas las logs de transacción en el servidor principal crezcan mientras
que cada transacción es logged y almacenada. Hasta que la sesión mirror es resumida o terminada, el
log de transacción del servidor principal no puede ser truncado porque la transacción aun tiene que ser
aplicada al servidor mirror.
Use el comando ALTER DATABASE con la cláusula SET PARTNER SUSPEND en cualquier
servidor para suspender la sesión:
Para resumir la sesión, use el comando ALTER DATABASE y con la cláusula SET PARTNER
RESUME:
Puede terminar manualmente la sesión mirror y terminar la relación entre los servidores. Terminar la
sesión borra toda la información acerca de la sesión desde todos los servidores y deja ambos
servidores el principal y el mirror con una copia independiente de la base de datos. La base de datos
mirror permanecerá en un estado de restauración hasta que sea recuperada o borrada manualmente.
Use el comando ALTER DATABASE con la cláusula SET PARTNER OFF en cualquier servidor
para terminar la sesión:
Modulo 9
Introducción
Introducción
• Otras mejoras
Introducción
Los asistentes que se utilizan para controlar la replicación en SQL Server 2005 incluyen
las siguientes mejoras:
Como con otros asistentes en SQL Server 2005, puede usar los asistentes de replicación
para implementar o simplificar la generación de scripts de su implementación para
ejecutarlos mas adelante en otra instancia de SQL Server.
Administración de la replicación
• Inicialización de subscriber
Backup y restore
Copiando una base de datos
Snapshots dinámicos
• Resumiendo trasferencias snapshot
• Replicando DDL statements
• Habilitando anonymous subscriptions para todas las
publicaciones
Introducción
Inicialización de subscriber
En versiones previas de SQL Server, se inicializa la base de datos del subscriber usando
una replicación snapshot. Cuando usted trabaja con bases de datos grandes, esto consume
demasiado tiempo. SQL Server 2005 introduce nuevas características para inicializar a
los subscribers en menor tiempo:
• Backup y restore
Se pueden utilizar procedimientos de backup y restore para inicializar la base de datos en
el subscriber para replicación.
• Copia de base de datos
Se puede también inicializar la base de datos del subscriber usando métodos Standard de
copia de base de datos, como attach DB en el suscriber o usar un DTS package. Cuando
use alguno de estos métodos, usted debe asegurarse que los datos y schema correctos
estén presentes en el distribution agent para copiar la metadata y system procedures al
subscriber.
• Snapshots dinámicos
Usted puede usar snapshots dinámicos como snapshots iniciales para filtrar merge
Curso 5 estrellas SQL Server 2005
replication subscriber.
En SQL Server 2000, usted puede agregar o eliminar columnas en una tabla
publicada usando stored procedures especiales sin necesidad de detener la
replicación. Estos tipos de cambios son replicados una vez que los cambios en
los datos están hechos durante el próximo periodo de replicación.
En SQL Server 2005, los cambios al schema usando los siguientes data
definition language (DDL) statements son replicados automáticamente:
• ALTER TABLE
• ALTER VIEW
• ALTER PROCEDURE
• ALTER FUNCTION
• ALTER TRIGGER
Usted puede deshabilitar esta funcionalidad en SQL Server Management Studio
configurando la propiedad Replicate Schema Changes en las Subscription Options de
la publicación a False. Cuando desarrolle scripts, usted puede llamar al stored procedure
sp_changepublication usando la parámetro replicate_ddl habilitado y deshabilitado de
replicación de DDL statements.
En SQL Server 2000, las anonymous pull subscriptions pueden ser creadas para evitar
preconfigurar subscribers en el publisher. Esta funcionalidad ayuda a simplificar la
administración de publicaciones con múltiples subscribers. En SQL Server 2005, todas
las suscripciones pueden ser creadas sin predefinir en el publisher. Esto puede reducir las
tareas asociadas a la administración con la creación de suscripciones para publicaciones
populares.
Performance y escalabilidad
Curso 5 estrellas SQL Server 2005
Introducción
Particiones Precomputadas
Cuando usa dynamic filtering en una replicación merge, los cambios en una row
pueden solo ser necesarios como una replicación de un subset de subscribers.
En versiones previas de SQL Server, las rows a ser replicadas a cada subscriber
son evaluadas cuando se ejecuta una sincronización con dicho subscriber. Para
publicaciones grandes o con cambios de datos regulares, esto puede ocasionar
un cuello de botella de performance en el proceso de sincronización.
SQL Server 2005 introduce el concepto de “precomputed partitions” que evalúa
si los miembros de una partición han generado cambios en los datos; entonces,
el proceso de transferencia de datos se inicia inmediatamente.
En SQL Server 2000, los updates de campos unique key son replicados como
DELETE statement seguidos por un INSERT statement. En SQL Server 2005,
Estos cambios son replicados como UPDATE statements, dando como resultado
una mejora en la performance de datos que cambian regularmente.
Transactional parallelism
Reducción de contención
Usted puede usar algunas de las nuevas características en SQL Server 2005
para reducir la contención en los subscribers creados con el propósito de
reporting. Si una publicación con gran numero de subscribers require up-to-the-
minute data, usted puede usar snapshot isolation level para reducir la
contención.
Replication Monitor
Introducción
SQL Server 2005 incluye una nueva herramienta de Replication Monitor que
permite el monitoreo de la replicación en un server. Esta herramienta es
independiente de SQL Server Management Studio y permite delegar las tareas
de monitoreo a usuarios no administradores. (Puede ser ejecutada desde el SQL
Server Management Studio.)
Porque es una aplicación separada, el Replication Monitor puede trabajar en
modo pasivo sin afectar el trabajo del server.
Otras mejoras
Introducción
Usted puede buscar issues de concurrencia que ocurren cuando una replicación
merge falla en el proceso. Si la publicación incluye rows en diferentes tablas que
fueron actualizadas, todas las tablas fueron actualizadas ó ninguna fue
actualizada. SQL Server 2005 introduce el concepto de logical records, que
permite definir relaciones entre merge de tablas y artículos. Esto garantiza que
las rows sean entregadas juntas, asegurando que no ocurran issues de
concurrencia.
• Replicación heterogénea
• Replicación transaccional Peer-to-Peer
• Replicación HTTP
Introducción
SQL Server 2005 incluye tres nuevos tipos de replicación: publicación de datos
desde una base de datos Oracle, replicación peer-level, y sincronización Web.
En esta sección, usted aprenderá acerca de estos nuevos tipos de replicación y
le pueden ayudar en la mejora de funcionalidad y escalabilidad.
Replicación heterogénea
Introducción
Introducción
Replicación HTTP
Introducción
Configurando replicación