Académique Documents
Professionnel Documents
Culture Documents
C API TULO 1
Instalacin y configuracin del SQL Server 2008 Ediciones del SQL Server 2008 Requerimientos de Hardware y Software
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 1
I N S TA L A C I O N Y C O N F I G U R A C I O N S Q L S E R V E R 2 0 0 8
D E L
Una de las primeras responsabilidades que asume un DBA (Data Base Administrador), es la eleccin del software ms adecuado a las necesidades que presente la empresa. Es por esta razn que, Microsoft corp., pone a nuestra disposicin, de diferentes ediciones de su Sistema Administrador de Base de Datos SQL Server 2008.
Pg. 2
danielramoscastaneda@hotmail.com
SQL Administracin
Facultad de Ingeniera Industrial y de Sistemas Analysis Services. Capacidades de procesamiento analtico en lnea (OLAP) para el anlisis rpido y sofisticado de conjuntos de datos grandes y complejos, utilizando almacenamiento multidimensional. Reporting Services. Una solucin global para crear, administrar y proporcionar tanto informes tradicionales orientados al papel como informes interactivos basados en la Web. Herramientas de administracin. SQL Server incluye herramientas integradas de administracin para administracin y optimizacin avanzadas de bases de datos, as como tambin integracin directa con herramientas tales como Microsoft Operations Manager (MOM) y Microsoft Systems Management Server (SMS). Los protocolos de acceso de datos estndar reducen drsticamente el tiempo que demanda integrar los datos en SQL Server con los sistemas existentes. Asimismo, el soporte del servicio Web nativo est incorporado en SQL Server para garantizar la interoperabilidad con otras aplicaciones y plataformas. Herramientas de desarrollo. SQL Server ofrece herramientas integradas de desarrollo para el motor de base de datos, extraccin, transformacin y carga de datos, minera de datos, OLAP e informes que estn directamente integrados con Microsoft Visual Studio para ofrecer capacidades de desarrollo de aplicacin de extremo a extremo. Cada subsistema principal en SQL Server se entrega con su propio modelo de objeto y conjunto de interfaces del programa de aplicacin (API) para ampliar el sistema de datos en cualquier direccin que sea especfica de su negocio.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 3
Universidad Nacional de Ingeniera Ahorro en espacio en disco, mediante la tcnica de comprensin, ahorrando costos en compra de discos si es que el volumen de la informacin de Base de Datos empieza a crecer en forma rpida. Datos Geoespaciales Poder manejar informacin geogrfica, la que hoy en da es de alta importancia en las organizaciones, con todo el tema de globalizacin Acceder a la Informacin desde cualquier lugar en cualquier momento Con SQL 2008 podre crear rpidamente aplicaciones conectadas a la base de datos con la funcionalidad de funcionar en forma desconectada y despus sincronizarlos con la base de datos central sin perder la lnea de negocio y manteniendo los datos validados Reportes Poder acceder a reportes directamente desde Word, mejoras en los tipos de grficos en los reportes, hacindolos ms entendibles y poder editar los reportes de Microsoft Office, sin saber donde fue diseado el reporte.
EDICIONES DE SERVIDOR
Trmino Definicin
Enterprise SQL Server Enterprise es una completa plataforma de datos que proporciona (x86, x64 e escalabilidad empresarial, rendimiento, alta disponibilidad y capacidades avanzadas de IA64)1 inteligencia empresarial para ejecutar aplicaciones seguras y esenciales para la empresa. Para obtener ms informacin, vea http://msdn.microsoft.com/eses/library/cc645993(v=SQL.100).aspx . Standard (x86 y x64) SQL Server Standard es una completa plataforma de datos que proporciona facilidad de uso y capacidad de administracin. Esto incluye capacidades integradas de inteligencia empresarial para ejecutar aplicaciones de departamentos. Para obtener ms informacin, vea http://msdn.microsoft.com/eses/library/cc645993(v=SQL.100).aspx . SQL Server Standard for Small Business contiene todos los componentes tcnicos y capacidades tcnicas de SQL Server Standard y su uso est autorizado en un entorno de pequea empresa con 75 equipos o menos.
EDICIONES ESPECIALIZADAS
Trmino Definicin
SQL Server 2008 SQL Server 2008 Developer permite a los desarrolladores crear cualquier tipo de Developer (x86, aplicacin basada en SQL Server. Incluye toda la funcionalidad de SQL Server x64 e IA64) 2008 Enterprise, pero su uso est autorizado como sistema de desarrollo y pruebas, no como servidor de produccin. SQL Server 2008 Developer es una opcin ideal para las personas que crean y prueban aplicaciones. Puede actualizar SQL Server 2008 Developer para utilizarlo en produccin. Workgroup (x86 y SQL Server Workgroup es ideal para ejecutar bases de datos ubicadas en x64) sucursales y proporciona una administracin de datos confiable y una
Pg. 4
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Server Express (x86 y x64) SQL Server Express with Tools (x86 y x64) SQL Server Express con Advanced Services (x86 y x64)
Compact 3.5 SP1 SQL Server Compact 3.5 es una base de datos gratuita e incrustada, ideal para (x86) crear aplicaciones independientes que se conectan ocasionalmente para Compact 3.1 (x86) dispositivos mviles, escritorios y clientes web en todas las plataformas de Windows.
SQL Server Database SQL Server Database Engine (Motor de base de datos de SQL Server) Engine (Motor de base de incluye Database Engine (Motor de base de datos), el servicio principal datos de SQL Server) para almacenar, procesar y proteger datos; tambin incluye replicacin, bsqueda de texto completo y herramientas para administrar datos XML y relacionales. Analysis Services Analysis Services incluye las herramientas para crear y administrar aplicaciones de procesamiento analtico en lnea (OLAP) y de minera de datos. Reporting Services incluye componentes de servidor y de cliente para crear, administrar e implementar informes tabulares, matriciales, grficos y de forma libre. Reporting Services tambin es una plataforma extensible que puede utilizarse para desarrollar aplicaciones de informes. Integration Services es un conjunto de herramientas grficas y objetos programables para mover, copiar y transformar datos.
Reporting Services
Integration Services
Herramientas administracin
de Descripcin
SQL Server Management SQL Server Management Studio es un entorno integrado para tener Studio acceso, configurar, administrar y desarrollar componentes de SQL Server.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 5
Asistente para la El Asistente para la optimizacin de Database Engine (Motor de base de optimizacin de Database datos) crea conjuntos ptimos de ndices, vistas indizadas y particiones. Engine (Motor de base de datos) Business Intelligence Business Intelligence Development Studio es un IDE para las soluciones Development Studio Analysis Services, Reporting Services y Integration Services. Para la instalacin de BI Development Studio, se requiere Internet Explorer 6 Service Pack 1 o una versin posterior. Componentes conectividad de Instala componentes para la comunicacin entre clientes y servidores, y bibliotecas de red para DB-Library, ODBC y OLE DB.
Pg. 6
danielramoscastaneda@hotmail.com
SQL Administracin
Requisito
de El programa de instalacin de SQL Server instala los siguientes componentes de software requeridos por el producto: .NET Framework 3.5 SP11 SQL Server Native Client Archivos auxiliares para la instalacin de SQL Server El programa de instalacin de SQL Server requiere Microsoft Windows Installer 4.5 o una versin posterior Una vez instalados los componentes requeridos, el programa de instalacin de SQL Server comprobar que el equipo en el que se ha instalado SQL Server 2008 tambin cumple los dems requisitos para su correcta instalacin. Para obtener ms informacin, vea Comprobar los parmetros del Comprobador de configuracin del sistema. de Los requisitos de software de red para las versiones de 64 bits de SQL Server 2008 son los mismos que para las versiones de 32 bits. Los sistemas operativos compatibles tienen el software de red integrado. Las instancias predeterminadas y con nombre independientes admiten los siguientes protocolos de red: Memoria compartida Canalizaciones con nombre TCP/IP VIA Nota La memoria compartida y VIA no se admiten en clsteres de conmutacin por error. SQL Server 2008 es compatible con entornos de mquina virtual que se ejecutan en la funcin Hyper-V de las ediciones Standard, Enterprise y Datacenter de Windows Server 2008 R2 y Windows Server 2008. La mquina virtual debe ejecutarse en un sistema operativo compatible con la edicin de SQL Server 2008 concreta que se cita ms adelante en este tema. Adems de los recursos requeridos por la particin primaria, a cada mquina virtual (particin secundaria) se debe proporcionar suficientes recursos de procesador, memoria y recursos de disco para su instancia de SQL Server 2008. Los requisitos se enumeran ms adelante en este tema.3 Dentro de la funcin Hyper-V de Windows Server 2008, se puede asignar un mximo de cuatro procesadores virtuales a mquinas virtuales que ejecuten las ediciones de 32 o 64 bits de Windows Server 2008. Se pueden asignar como mximo 2 procesadores virtuales a equipos virtuales que ejecuten ediciones de 32 bits de Windows Server 2003. Para equipos virtuales que alojan otros sistemas operativos, se puede asignar como mximo un procesador virtual a equipos
Software2
Software red
Virtualizacin
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 7
Disco duro
Nota: Las versiones de 64 bits de SQL Server 2008 incluyen soporte para sistemas extendidos, tambin conocidos como Windows on Windows (WOW64). WOW64 es una caracterstica de las ediciones de 64 bits de Microsoft Windows que permite que las aplicaciones de 32 bits se ejecuten de forma nativa en modo de 32 bits. Las aplicaciones funcionan en modo de 32 bits aunque el sistema operativo subyacente se ejecute en la plataforma de 64 bits.
Componente
Procesador
Requisito
Tipo de procesador: Mnimo: AMD Opteron, AMD Athlon 64, Intel Xeon compatible con Intel EM64T, Intel Pentium IV compatible con EM64T Velocidad de procesador: Mnimo: 1,4 GHz Recomendado: 2,0 GHz o ms Windows Server 2003 SP2 de 64 bits x64 Standard1 Windows Server 2003 SP2 de 64 bits x64 Datacenter1 Windows Server 2003 SP2 de 64 bits x64 Enterprise1 Windows Server 2008 de 64 bits x64 Standard Windows Server 2008 de 64 bits x64 Standard sin Hyper-V Windows Server 2008 de 64 bits x64 Datacenter
Sistema operativo
Pg. 8
danielramoscastaneda@hotmail.com
SQL Administracin
Si fuera necesario, se podra dar a conocer caractersticas especiales sobre la conexin, para ello, hay que hacer clic sobre el botn Options, luego, aparecer la siguiente pantalla.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 9
En el combo de base de datos, se podr seleccionar la Base de Datos con la cual deseamos conectarnos, esto depender del servidor con el cual nos enlacemos. En el rea de detalles de la red, veremos el modo de conexin que tenemos con el SQL Server, dicho sea de paso, no es necesario cambiar esta opcin. En conexiones, podemos especificar el tiempo de espera para la conexin, en tiempo de ejecucin, se determina el tiempo de espera para la ejecucin de las sentencias en T-SQL. Una vez que hayamos dado a conocer, todas las caractersticas necesarias para la conexin, haremos clic sobre el botn Connect. Seguidamente, veremos la pantalla del Management Studio.
Pg. 10
danielramoscastaneda@hotmail.com
SQL Administracin
Instalando el SQL Server 2008 Una vez que hayan decidido la Edicin a utilizar del SQL Server 2008, procederemos a instalar el software.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 11
Pg. 12
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 13
Si tuvieran que crear una nueva instancia, aqu debern de dar el nombre de esta:
Pg. 14
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 15
Tener en cuenta que la instalacin se debe de hacer con el usuario que tenga mximos privilegios, adems de tener una contrasea.
Pg. 16
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 17
Pg. 18
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 19
Pg. 20
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 21
Pg. 22
danielramoscastaneda@hotmail.com
SQL Administracin
C API TULO 2
Administracin de la Base de Datos y Archivos Planificacin de la BD. Creacin de la BD. Administracin de la BD. Uso de Schemas y FileGroups.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 23
R E A C I N
D E
L A
B D
Para crear la base de datos, podemos hacer uso del management Studio, o a travs de sentencias T-SQL, en ambos casos, tendremos los mismos resultados. El proceso de definicin de una base de datos crea tambin un registro de transacciones para esa base de datos.
Utilizando el management Studio, el procedimiento sera el siguiente, primero nos ubicamos sobre el objeto Databases, luego clic derecho.
Del men contextual, seleccionar la alternativa New Database, para que se muestre la ventana de propiedades de la nueva base de datos.
Desde esta ventana, podremos darle nombre a la nueva base de datos, tambin se puede especificar el propietario, as como los nombres fsicos y lgicos de la base de datos.
Si fuera necesario agregar nuevos grupos de archivos, hacer clic sobre el botn Add, luego aparecer la siguiente pantalla.
Pg. 24
danielramoscastaneda@hotmail.com
SQL Administracin
Desde aqu podremos crear los nuevos grupos de archivo, con los cuales trabajar nuestra base de datos. Para crear la base de datos desde T-SQL, podemos escribir lo siguiente: Creando la base de datos sin dar mayores especificaciones sobre los archivos a crear:
USE master; GO IF DB_ID (N'sistemasUNI') IS NOT NULL DROP DATABASE miproyecto; GO CREATE DATABASE sistemasUNI; GO Verificando los archivos y tamaos de la BD SELECT name, size, size*1.0/128 AS [Size in MBs] FROM sys.master_files WHERE name = N' sistemasUNI '; GO
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 25
Creando una base de datos con mltiples archivos, los archivos con extensiones mdf contienen los archivos primarios, los ndf contienen los archivos secundarios y los ldf contienen las transacciones.
USE master; GO IF DB_ID (N'Archivo') IS NOT NULL DROP DATABASE Archivo; GO obteniendo la ruta del SQL Server DECLARE @data_path nvarchar(256); SET @data_path =(SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1) FROM master.sys.master_files WHERE database_id = 1 AND file_id = 1); -- ejecutar la sentencia CREATE DATABASE EXECUTE ('CREATE DATABASE Archivo ON PRIMARY ( NAME = Arch1, FILENAME = '''+ @data_path + 'archdat1.mdf'', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Arch2, FILENAME = '''+ @data_path + 'archdat2.ndf'', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Arch3, FILENAME = '''+ @data_path + 'archdat3.ndf'', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20) LOG ON ( NAME = Archlog1, FILENAME = '''+ @data_path + 'archlog1.ldf'', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = Archlog2, FILENAME = '''+ @data_path + 'archlog2.ldf'', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20)' ); GO
La informacin acerca de las bases de datos de SQL Server est almacenada en la tabla sysdatabases de la base de datos master. Por tanto, debe utilizar la base de datos master para definir una base de datos cuando utilice instrucciones TransactSQL. La definicin de una base de datos consiste en especificar el nombre de la base de datos, y disear el tamao y la ubicacin de los archivos de la base de datos. Cuando se crea la nueva base de datos, sta es un duplicado de la base de datos model. Las opciones o configuraciones de la base de datos model se copian en la nueva base de datos. Importante, se recomienda hacer una copia de seguridad de la base de datos master cada vez que cree, modifique o elimine una base de datos. Al crear una base de datos se pueden establecer los siguientes parmetros:
PRIMARY
Pg. 26
danielramoscastaneda@hotmail.com
SQL Administracin
Facultad de Ingeniera Industrial y de Sistemas Este parmetro especifica los archivos del grupo de archivos principal. El grupo de archivos principal contiene todas las tablas del sistema de la base de datos. Tambin contiene todos los objetos no asignados a grupos de archivos del usuario. Todas las bases de datos tienen un archivo de datos principal. El archivo de datos principal es el punto de inicio de la base de datos y seala a los dems archivos de la base de datos. La extensin de nombre de archivo recomendada para los archivos de datos principales es mdf. Si no se especifica la palabra clave PRIMARY, el primer archivo enumerado en la instruccin es el archivo principal.
FILENAME
Este parmetro especifica el nombre del archivo del sistema operativo y la ruta de acceso al archivo. La ruta acceso de archivo debe especificar una carpeta del servidor en el que est instalado SQL Server.
SIZE
Este parmetro especifica el tamao de los archivos de datos o de registro. Puede especificar los tamaos en megabytes (MB), que es el valor predeterminado, o en kilobytes (KB). El tamao mnimo es de 512 KB, tanto para los archivos de datos como para los archivos de registro. El tamao especificado para el archivo de datos principal debe ser, al menos, como el tamao del archivo principal de la base de datos model. Cuando se agrega un archivo de datos o un archivo de registro, el valor predeterminado es 1 MB.
MAXSIZE
Este parmetro especifica el tamao mximo hasta el que puede crecer el archivo. Puede especificar el tamao en megabytes (valor predeterminado) o en kilobytes. Si no se especifica el tamao, el archivo crece hasta que el disco est lleno.
FILEGROWTH Este parmetro especifica el incremento de crecimiento del archivo. El valor de FILEGROWTH de un archivo no puede sobrepasar el valor de MAXSIZE. Un valor de 0 indica que no hay crecimiento. El valor se puede especificar en megabytes (el valor predeterminado), en kilobytes o como porcentaje (%). Si no se especifica FILEGROWTH, el valor predeterminado es el 10 por ciento y el valor mnimo es 64 KB (una extensin). El tamao especificado se redondea al mltiplo de 64 KB ms prximo.
COLLATION
Este parmetro especifica la intercalacin predeterminada para la base de datos. La intercalacin incluye las reglas que gobiernan el uso de caracteres de un lenguaje o un alfabeto.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 27
Registro de Transacciones
1
Modificaciones de datos es enviada por la aplicacin
3
Buffer Cache
Disk
SQL Server graba todas las transacciones en un registro de transacciones para mantener la coherencia de la base de datos y facilitar la recuperacin. El registro es un rea de almacenamiento que efecta automticamente el seguimiento de todos los cambios en la base de datos. SQL Server graba las modificaciones al registro en disco cuando se ejecutan, antes de que se escriban en la base de datos. El proceso de registro es el siguiente: La aplicacin enva una modificacin de datos. Cuando la modificacin se ejecuta, las pginas de datos afectadas se cargan en la cach del bfer desde el disco si no estn ya cargadas en la cach del bfer por una consulta anterior. Cada instruccin de modificacin de datos se graba en el registro mientras se ejecuta. El cambio siempre se graba en el registro y se escribe en disco antes de hacer la modificacin en la base de datos. Este tipo de registro se denomina registro de preescritura. De forma repetitiva, el proceso de punto de comprobacin escribe en disco todas las transacciones completadas en la base de datos. Si se produce un error del sistema, el proceso automtico de recuperacin utiliza el registro de transacciones para aplicar todas las transacciones confirmadas y deshacer las transacciones incompletas. Los marcadores de transaccin del registro se utilizan durante la recuperacin automtica para determinar los puntos de inicio y fin de cada transaccin. Una transaccin se considera completa cuando el marcador BEGIN TRANSACTION tiene
Pg. 28
danielramoscastaneda@hotmail.com
SQL Administracin
Facultad de Ingeniera Industrial y de Sistemas un marcador COMMIT TRANSACTION asociado. Las pginas de datos se escriben en disco cuando existe un punto de comprobacin.
Administracin de la BD.
Despus de haber creado una base de datos, se puede definir opciones de base de datos con el Management Studio del SQL Server o por medio de la instruccin ALTER DATABASE. Puede configurar varias opciones de base de datos, pero slo se puede hacer en una sola base de datos al mismo tiempo. Para que las opciones afecten a todas las bases de datos nuevas, cambie la base de datos model. La tabla siguiente enumera algunas de las opciones de uso ms frecuente.
Propiedad Opciones automticas
Descripcin AUTO_CREATE_STATISTICS
AUTO_UPDATE_STATISTICS
Opciones cursor
de
CURSOR_CLOSE_ON_COMMIT
CURSOR_DEFAULT GLOBAL
LOCAL
Opciones recuperacin
de
TORN_PAGE_DETECTION
Valor Retornado Crea automticamente las estadsticas que faltan que son necesarias para la optimizacin de consultas. El valor predeterminado es ON. Actualiza automticamente las estadsticas desfasadas necesarias para la optimizacin de consultas. El valor predeterminado es ON. Cierra automticamente los cursores abiertos cuando se confirma una transaccin. El valor predeterminado es OFF y los cursores permanecen abiertos. CURSOR_DEFAULT_LOCAL limita el mbito del cursor. Es local al lote, procedimiento almacenado o desencadenador en el que se cre el cursor. CURSOR_DEFAULT_GLOBAL es el valor predeterminado; el mbito del cursor es global respecto a la conexin. FULL proporciona recuperabilidad completa ante errores del medio; es el valor predeterminado. BULK_LOGGED utiliza menos espacio de registro porque el registro es mnimo, pero tiene un riesgo mayor de exposicin. SIMPLE recupera la base de datos slo hasta la ltima copia de seguridad completa de la base de datos o hasta la ltima copia de seguridad diferencial. Permite a SQL Server detectar
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 29
Descripcin
Opciones de SQL
ANSI_NULL_DEFAULT
ANSI_NULLS
Opciones estado
de
READ_ONLY | READ_WRITE
| |
Valor Retornado operaciones de E/S incompletas causadas por cortes de energa u otros apagones del sistema. El valor predeterminado es ON. Permite al usuario controlar la capacidad de asignacin predeterminada de valores NULL de la base de datos. Si est activada, todas las comparaciones con un valor nulo se evalan como NULL (desconocido). Si est desactivada, todas las comparaciones de valores no Unicode con un valor nulo se evalan como verdaderas (TRUE) si ambos valores son NULL. De manera predeterminada, la opcin de base de datos ANSI_NULLS es OFF. Define la base de datos como de slo lectura (se utiliza para establecer la seguridad en las bases de datos de ayuda a la toma de decisiones) o devuelve la base de datos a operaciones de lectura y escritura. SINGLE_USER permite que los usuarios se conecten a la base de datos de uno en uno. Todas las dems conexiones se interrumpen. RESTRICTED_USER permite que slo los miembros de la funcin fija de base de datos db_owner y de las funciones fijas de servidor dbcreator y sysadmin se conecten a la base de datos. MULTI_USER permite que todos los usuarios con los permisos adecuados se conecten a la base de datos. MULTI_USER es la opcin predeterminada.
Pg. 30
danielramoscastaneda@hotmail.com
SQL Administracin
Facultad de Ingeniera Industrial y de Sistemas La siguiente tabla enumera algunas de las propiedades de la base de datos. Propiedad Collation Descripcin
nombre por defecto para la base de datos.
Valor retornado
Collation name NULL = Database is not started. Base data type: nvarchar(128) Returns the comparison style. Returns 0 for all binary collations. Base data type: int
ComparisonStyle
The Windows comparison style of the collation. ComparisonStyle is a bitmap that is calculated by using the following values. Style Value Ignore 1 case Ignore 2 accent Ignore 65536 Kana Ignore 131072 width For example, the default of 196609 is the result of combining the Ignore case, Ignore Kana, and Ignore width options. Base de datos sigue normas ISO para permitir valores nulos. Todas las comparaciones a nulo para evaluar desconocidos. Cadenas son rellenadas con la misma longitud antes de comparacin o insercin. Mensajes de error o de advertencia se emiten cuando un error estndar se produce. Las consultas se terminan cuando un error por desbordamiento o divisin por cero se produce durante la ejecucin de las consultas. Base de Datos se cierra limpiando y liberando recursos a partir de la
IsAnsiNullDefault
IsAnsiNullsEnabled
IsAnsiPaddingEnabled
1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int
IsAnsiWarningsEnabled
IsArithmeticAbortEnabled
IsAutoClose
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 31
Valor retornado
Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int
IsAutoShrink
1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int
IsAutoUpdateStatistics
IsCloseCursorsOnCommitEnabled
1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int
IsFulltextEnabled
IsInStandBy
IsLocalCursorsDefault
Base de Datos esta online como read-only, con restauracin del log permitido. Declaracin del Cursor por defecto como LOCAL
IsMergePublished
IsNullConcat
Las tablas de una Base de Datos pueden ser publicadas para una replicacin, si la replicacin est instalada. Concatenacin de operaciones Null rinden con NULL. Los errores se generan cuando la prdida de precisin se produce en las expresiones PARAMETERIZATION de la base de datos con la opcin SET es FORCED.
1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid
IsNumericRoundAbortEnabled
IsParameterizationForced
Pg. 32
danielramoscastaneda@hotmail.com
SQL Administracin
Valor retornado
1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int
IsPublished
IsRecursiveTriggersEnabled
Las tablas de la base de datos pueden ser publicados por la instantnea o la replicacin transaccional, si se instala la replicacin. Recursivo disparo de factores desencadenantes est activado Base de datos est suscrito a una publicacin
IsSubscribed
IsSyncWithBackup
IsTornPageDetectionEnabled
LCID
La base de datos es una base de datos de publicacin o una base de datos de distribucin, y puede ser restaurada sin interrumpir la replicacin transaccional. El SQL Server Database Engine Engine detecta operaciones incompletas de E/S causados por fallos de energa o cortes de otro sistema. El identificador de Windows local (LCID) de la colacin.
1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int 1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int
1 = TRUE 0 = FALSE NULL = Input not valid Base data type: int
Recovery
SQLSortOrder
SQL Server sort order ID supported in earlier versions of SQL Server SQL Server ordenanimiento, apoya ordenamiento por ID en las versiones anteriores de SQL Server Estado de la Base de
LCID value (in decimal format). Base data type: int For a list of LCID values (in hexadecimal format), see Collation Settings in Setup. FULL = Full recovery model BULK_LOGGED = Bulk logged model SIMPLE = Simple recovery model Base data type: nvarchar(128) 0 = Database is using Windows collation >0 = SQL Server sort order ID NULL = Input not valid or database is not started Base data type: tinyint
Status
ONLINE = Database is
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 33
Valor retornado
available for query. OFFLINE = Database was explicitly taken offline. RESTORING = Database is being restored. RECOVERING = Database is recovering and not yet ready for queries. SUSPECT = Database did not recover. EMERGENCY = Database is in an emergency, read-only state. Access is restricted to sysadmin members Base data type: nvarchar(128) READ_ONLY = Data can be read but not modified. READ_WRITE = Data can be read and modified. Base data type: nvarchar(128) SINGLE_USER = Only one db_owner, dbcreator, or sysadmin user at a time RESTRICTED_USER = Only members of db_owner, dbcreator, and sysadmin roles MULTI_USER = All users Base data type: nvarchar(128) Version number = Database is open. NULL = Database is not started. Base data type: int
Updateability
UserAccess
Version
Nmero de versin interna del cdigo SQL Server con el que la base de datos se ha creado. Identificado slo con fines informativos. No soportado. La compatibilidad en el futuro no est garantizada.
La siguiente tabla enumera los procedimientos almacenados del sistema de uso comn que presentan informacin acerca de las bases de datos y sus parmetros. Procedimiento sistema sp_helpdb almacenado de Descripcin Informa acerca de todas las bases de datos de un servidor. Proporciona el nombre, tamao, propietario, Id., fecha de creacin y opciones
Pg. 34
danielramoscastaneda@hotmail.com
SQL Administracin
Facultad de Ingeniera Industrial y de Sistemas Procedimiento sistema almacenado de Descripcin de la base de datos. Informa slo acerca de la base de datos especificada. Proporciona el nombre, tamao, propietario, Id., fecha de creacin y opciones de la base de datos. Tambin enumera los archivos de datos y de registro. Resume el espacio de almacenamiento que utiliza una base de datos o un objeto de base de datos.
sp_helpdb baseDeDatos
sp_spaceused [nombreObjeto]
Componentes fsicos: archivos y grupos de archivos de bases de datos (FileGroup). Un grupo de archivos es un conjunto lgico de archivos de datos que permite a los administradores controlar todos los archivos del grupo como un nico elemento. La posibilidad de controlar la posicin fsica de los objetos individuales de la base de datos puede proporcionar diversas ventajas en cuanto a facilidad de administracin y rendimiento. Por ejemplo, puede utilizar varios grupos de archivos para controlar cmo se almacenan fsicamente los datos de una base de datos en dispositivos de almacenamiento, y para separar los datos de lectura y escritura de los datos de slo lectura.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 35
Universidad Nacional de Ingeniera El grupo de archivos principal contiene el archivo principal de datos con las tablas del sistema. El archivo principal de datos utiliza normalmente la extensin .mdf. Un grupo de archivos definido por el usuario consta de archivos de datos agrupados con fines de asignacin y administrativos. Estos otros archivos de datos se conocen como archivos secundarios de datos y suelen utilizar la extensin .ndf.
Pg. 36
danielramoscastaneda@hotmail.com
SQL Administracin
Uso de varios archivos en un nico grupo de archivos para mejorar el rendimiento Si bien Matriz redundante de discos independientes (RAID) es la manera preferida de mejorar el rendimiento de una base de datos, puede asignar varios archivos de discos distintos a un nico grupo de archivos para mejorar el rendimiento implementando una forma de seccionamiento de datos dentro de SQL Server. Puesto que SQL Server utiliza una estrategia de relleno proporcional al escribir datos en un grupo de archivos, los datos se reparten entre los archivos y, por tanto, en las particiones fsicas del disco. Este mtodo permite tener un control ms fino sobre el seccionamiento de datos del que se puede lograr al crear un conjunto de volmenes seccionados en el sistema operativo Windows, o utilizando una controladora de matriz RAID. Nota: En la mayora de los casos, el uso de las funciones de seccionamiento de RAID Proporciona la misma ganancia de rendimiento que podra lograr utilizando grupos de archivos definidos por el usuario, sin la carga administrativa agregada que supone definir y administrar los grupos de archivos.
USO
DE VARIOS GRUPOS DE ARCHIVOS PARA CONTROLAR LA COLOCACIN FSICA DE LOS DATOS Para utilizar grupos de archivos con el fin de simplificar el mantenimiento o lograr objetivos de diseo, puede: Almacenar los datos de lectura y escritura separados de los datos de slo lectura para mantener separados los diferentes tipos de actividad de E/S de disco. Almacenar los ndices en discos diferentes que las tablas, lo que puede conducir a un mayor rendimiento. Hacer copia de seguridad o restaurar archivos individuales o grupos de archivos en lugar de hacer copia de seguridad o restaurar una base de datos entera. Puede ser
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 37
Universidad Nacional de Ingeniera necesario hacer copia de seguridad de archivos o de grupos de archivos para las bases de datos grandes con el fin de tener una estrategia eficaz de copia de seguridad y restauracin. Agrupar en los mismos grupos de archivos las tablas y los ndices que tienen unos requisitos de mantenimiento similares. Quizs desee realizar tareas de mantenimiento en algunos objetos con ms frecuencia que en otros. Por ejemplo, si crea dos grupos de archivos y les asigna tablas, puede ejecutar las tareas diarias de mantenimiento en las tablas de un grupo diario y las tareas de mantenimiento semanales en las tablas de un grupo semanal. Esto limita la contencin de disco entre los dos grupos de archivos. Separar las tablas de usuario y otros objetos de base de datos de las tablas del sistema en el grupo de archivos principal. Tambin debe cambiar el grupo de archivos predeterminado para evitar que el crecimiento inesperado de las tablas restrinja las tablas del sistema del grupo de archivos principal. Almacenar las particiones de una tabla con particiones en varios grupos de archivos. sta es una buena forma de separar fsicamente los datos que tienen necesidades de acceso diferentes dentro de una nica tabla, y tambin puede proporcionar ventajas de facilidad de administracin y rendimiento.
Creacin de esquemas
Los desarrolladores que hayan trabajado con Microsoft .NET Framework o con XML estarn familiarizados con el concepto de espacios de nombres. Un espacio de nombres ayuda a agrupar los objetos relacionados, haciendo que las listas de objetos complejas sean ms fciles de administrar. SQL Server 2008 utiliza esquemas para implementar un concepto similar para los objetos de base de datos. Los objetos de una base de datos (como tablas, vistas y procedimientos almacenados) se crean dentro de un esquema. Es esencial comprender lo que es un esquema antes de planear e implementar una base de datos de SQL Server 2008.
Pg. 38
danielramoscastaneda@hotmail.com
SQL Administracin
ESQUEMAS DE EJEMPLO
La base de datos AdventureWorks utiliza los esquemas siguientes para organizar sus objetos de base de datos en espacios de nombres: HumanResources Person Production Purchasing Sales Por ejemplo, para hacer referencia a la tabla HumanResources se utiliza HumanResources.Employee. Employee del esquema
El esquema dbo Todas las bases de datos contienen un esquema denominado dbo. dbo es el esquema predeterminado para todos los usuarios que no tienen ningn otro esquema predeterminado definido explcitamente. Creacin de un esquema Para crear un esquema, utilice el Explorador de objetos de SQL Server Management Studio o utilice la instruccin CREATE SCHEMA, como se muestra en el ejemplo siguiente. Use AdventureWorks
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 39
Pg. 40
danielramoscastaneda@hotmail.com
SQL Administracin
Facultad de Ingeniera Industrial y de Sistemas Por ejemplo, un usuario que tiene el esquema predeterminado Person ejecuta la siguiente instruccin Transact-SQL: SELECT * FROM Contact SQL Server 2008 intentar resolver primero el nombre de objeto como Person.Contact. Si el esquema Person no contiene un objeto denominado Contact, SQL Server intentar resolver el nombre de objeto como dbo.Contact. Si un usuario que no tiene ningn esquema predeterminado definido ejecuta la misma instruccin, SQL Server resolver inmediatamente el nombre de objeto como dbo.Contact. Asignacin de un esquema predeterminado Puede asignar un esquema predeterminado a un usuario utilizando el cuadro de dilogo Propiedades de Usuario de la base de datos o especificando el nombre del esquema en la clusula DEFAULT_SCHEMA de la instruccin CREATE USER o ALTER USER. Por ejemplo, el siguiente cdigo Transact-SQL asigna Sales como el esquema predeterminado para el usuario Angello: ALTER USER Angello WITH DEFAULT_SCHEMA = Sales
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 41
C A PI TULO 3
Planificacin de una Estrategia de Backups Realizando el Backup de la BD Restaurando una BD Recuperacin de datos desde Snapshots
Pg. 42
danielramoscastaneda@hotmail.com
SQL Administracin
P B
L A N I F I C A C I N A C K U P S
D E
U N A
S T R A T E G I A
D E
Con frecuencia, los datos en una base de datos confirman las operaciones de una organizacin. Sin la base de datos, la organizacin no puede funcionar adecuadamente. Es importante que cada misin crtica sistema de base de datos haya sido adecuadamente definida en procedimientos de recuperacin de desastres. Las operaciones de Copia de seguridad y Restauracin, son una parte vital de la gestin de datos y son esenciales para la recuperacin ante fallas y desastres. Por lo tanto, una parte importante del papel de un administrador de bases de datos, es garantizar que los datos sean respaldados y puedan ser restaurados rpidamente en caso de un desastre.
Descripcin Todos los archivos de la Base de Datos, datos (MDF y NDF) y de transacciones (LDF).
Transaction Log
Tail-Log Differential
La porcin activa del archivo de transacciones. Las partes de la Base de Datos que han cambiado desde el ltimo backup completo a la Base de Datos.
Archivos especficos o grupos de archivos. El grupo de archivos primario, cada grupo de archivos de lectura/escritura, y cualquier grupo de archivos especificado como lectura/escritura.
Copy-only
Realizando el Backup de la BD
Uso de la Instruccin BACKUP DATABASE
Realiza una copia de seguridad completa de la base de datos o de uno o varios archivos o grupos de archivos (BACKUP DATABASE). Adems, con el modelo de recuperacin completa o el modelo de recuperacin optimizado para cargas masivas de registros, realiza la copia de seguridad del registro de transacciones (BACKUP LOG). Sintaxis
--creando un backup BACKUP DATABASE { database_name | @database_name_var } TO <backup_device> [ ,...n ]
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 43
Argumentos
DATABASE Especifica una copia de seguridad completa de la base de datos. Si se especifica una lista de archivos y grupos de archivos, slo se realiza la copia de seguridad de esos archivos o grupos de archivos. Durante una copia de seguridad completa o diferencial de una base de datos, SQL Server realiza la copia de seguridad de una parte suficiente del registro de transacciones para producir una base de datos coherente cuando se restaure la base de datos. LOG Especifica que slo se realizar la copia de seguridad del registro de transacciones. Se realiza la copia de seguridad del registro desde la ltima copia de seguridad del registro ejecutada correctamente hasta el final actual del registro. Antes de que pueda crear la primera copia de seguridad del registro, debe crear una copia de seguridad completa. { database_name | @database_name_var } Es la base de datos para la que se realiza la copia de seguridad del registro de transacciones, de una parte de la base de datos o de la base de datos completa. Si se proporciona como una variable (@database_name_var), este nombre se puede especificar como una constante de cadena (@database_name_var = database name) o como una variable de un tipo de datos de cadena de caracteres, excepto los tipos de datos ntext o text. <file_or_filegroup> [ ,...n ] Se utiliza slo con BACKUP DATABASE, especifica un grupo de archivos o un archivo de copia de seguridad que se va a incluir en una copia de seguridad de archivos o especifica un grupo de archivos o un archivo de slo lectura que se va a incluir en una copia de seguridad parcial. FILE = { logical_file_name | @logical_file_name_var } Es el nombre lgico de un archivo o una variable cuyo valor equivale al nombre lgico de un archivo que se va a incluir en la copia de seguridad. FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
Pg. 44
danielramoscastaneda@hotmail.com
SQL Administracin
Facultad de Ingeniera Industrial y de Sistemas Es el nombre lgico de un grupo de archivos o una variable cuyo valor equivale al nombre lgico de un grupo de archivos que se va a incluir en la copia de seguridad. En el modelo de recuperacin simple, se permite la copia de seguridad de un grupo de archivos slo si se trata de un grupo de archivos de slo lectura. n Es un marcador de posicin que indica que se pueden especificar varios archivos y grupos de archivos en una lista separada por comas. El nmero es ilimitado. READ_WRITE_FILEGROUPS [ , FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var } [ ,...n ] ] Especifica una copia de seguridad parcial. Una copia de seguridad parcial incluye todos los archivos de lectura/escritura en una base de datos: el grupo de archivos principal y los grupos de archivos secundarios de lectura/escritura, as como los grupos de archivos o archivos de slo lectura especificados. READ_WRITE_FILEGROUPS Especifica que en la copia de seguridad parcial se copiarn todos los grupos de archivos de lectura/escritura. Si la base de datos es de slo lectura, READ_WRITE_FILEGROUPS incluye tan slo el grupo de archivos principal. FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var } Es el nombre lgico de un grupo de archivos de slo lectura o una variable cuyo valor equivale al nombre lgico de un grupo de archivos de slo lectura que se va a incluir en la copia de seguridad parcial. Para obtener ms informacin, vea "<file_or_filegroup>", anteriormente en este tema. n Es un marcador de posicin que indica que se pueden especificar varios grupos de archivos de slo lectura en una lista separada por comas. TO <backup_device> [ ,...n ] Indica que el conjunto de dispositivos de copia de seguridad correspondiente es un conjunto de medios no reflejado o el primero de los reflejos de un conjunto de medios reflejado (para los que se declaran una o ms clusulas MIRROR TO). <backup_device> Especifica el dispositivo de copia de seguridad fsico o lgico que se va a utilizar para la operacin de copia de seguridad. { logical_device_name | @logical_device_name_var } Es el nombre lgico del dispositivo de copia de seguridad en que se hace la copia de seguridad de la base de datos. El nombre lgico debe seguir las reglas definidas para los identificadores. Si se proporciona como una variable (@logical_device_name_var), el nombre del dispositivo de copia de seguridad se puede especificar como una constante de cadena (@logical_device_name_var = nombre del dispositivo de copia de seguridad lgico) o como una variable de un tipo de datos de cadena de caracteres, excepto los tipos de datos ntext o text. { DISK | TAPE } = { 'physical_device_name' | @physical_device_name_var } Especifica un archivo de disco o un dispositivo de cinta.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 45
Universidad Nacional de Ingeniera No es necesario que exista un dispositivo de disco antes de que se especifique en una instruccin BACKUP. Si el dispositivo fsico existe y no se especifica la opcin INIT en la instruccin BACKUP, la copia de seguridad se anexa al dispositivo. n Es un marcador de posicin que indica que se pueden especificar hasta 64 dispositivos de copia de seguridad en una lista separada por comas. MIRROR TO <backup_device> [ ,...n ] Especifica un conjunto de uno o varios dispositivos de copia de seguridad que reflejarn los dispositivos de copia de seguridad especificados en la clusula TO. La clusula MIRROR TO debe incluir el mismo nmero y tipo de dispositivos de copia de seguridad que la clusula TO. El nmero mximo de clusulas MIRROR TO es tres. Esta opcin slo est disponible en SQL Server 2008 Enterprise Edition y versiones posteriores. <backup_device> Vea "<backup_device>", en un apartado anterior de esta seccin. n Es un marcador de posicin que indica que se pueden especificar hasta 64 dispositivos de copia de seguridad en una lista separada por comas. El nmero de dispositivos de la clusula MIRROR TO debe ser igual al nmero de dispositivos de la clusula TO. [ next-mirror-to ] Es un marcador de posicin que indica que una sola instruccin BACKUP puede contener hasta tres clusulas MIRROR TO, adems de una sola clusula TO. Opciones de WITH Especifica las opciones que se van a utilizar con una operacin de copia de seguridad. DIFFERENTIAL Se utiliza slo con BACKUP DATABASE. Especifica que la copia de seguridad de la base de datos o el archivo slo debe estar compuesta por las partes de la base de datos o el archivo que hayan cambiado desde la ltima copia de seguridad completa. Una copia de seguridad diferencial suele ocupar menos espacio que una copia de seguridad completa. Utilice esta opcin para que no tenga que aplicar todas las copias de seguridad de registros individuales efectuadas desde que se realiz la ltima copia de seguridad completa. DESCRIPTION = { 'text' | @text_variable } Especifica el texto de forma libre que describe el conjunto de copia de seguridad. La cadena puede tener un mximo de 255 caracteres. NAME = { backup_set_name | @backup_set_var } Especifica el nombre del conjunto de copia de seguridad. Los nombres pueden tener un mximo de 128 caracteres. Si no se especifica NAME, est en blanco. PASSWORD = { password | @password_variable } Establece la contrasea del conjunto de copia de seguridad. PASSWORD es una cadena de caracteres.
Pg. 46
danielramoscastaneda@hotmail.com
SQL Administracin
Facultad de Ingeniera Industrial y de Sistemas Si se define una contrasea para el conjunto de copia de seguridad, debe suministrarla para realizar operaciones de restauracin de SQL Server de ese conjunto de copia de seguridad. No obstante, la contrasea del conjunto de copia de seguridad no impide que se sobrescriba el archivo de copia de seguridad. Para evitar que se sobrescriba el archivo de copia de seguridad, utilice una contrasea para el conjunto de medios (vea la opcin MEDIAPASSWORD ms adelante en esta tabla). (Para obtener ms informacin sobre cmo utilizar las contraseas, vea "Permisos", ms adelante en este tema.)
Luego, en la opcin Recovery Model, seleccionaremos la alternativa Full, con la cual, podremos realizar todos los tipos de Backup de nuestra Base de Datos.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 47
Universidad Nacional de Ingeniera Una vez cambiadas las propiedades de nuestra base de datos, haremos clic derecho sobre la base de datos de la que queremos una copia de seguridad, en la opcin Tasks, seleccionamos Back Up.. (ver figura).
Pg. 48
danielramoscastaneda@hotmail.com
SQL Administracin
Facultad de Ingeniera Industrial y de Sistemas Una vez que hayamos realizado las configuraciones del caso, procederemos a hacer clic sobre el botn OK, luego de algunos instantes, aparecer la siguiente pantalla.
Restaurando una BD
Para realizar la restauracin de una Base de Datos, podemos hacer uso de la instruccin RESTORE, o de los contrario, utilizar el management Sql Server. RESTORE (Transact-SQL) Restaura copias de seguridad realizadas con el comando BACKUP. Este comando le permite realizar los siguientes escenarios de restauracin: Restaurar una base de datos completa a partir de una copia de seguridad completa de la base de datos (restauracin completa). Restaurar parte de una base de datos (restauracin parcial). Restaurar archivos o grupos de archivos en una base de datos (restauracin de archivos). Restaurar pginas especficas en una base de datos (restauracin de pginas). Restaurar un registro de transacciones en una base de datos (restauracin del registro de transacciones). Revertir una base de datos al punto temporal capturado por una instantnea de la base de datos.
--To Restore an Entire Database from a Full database backup (a Complete Restore): RESTORE DATABASE { database_name | @database_name_var } [ FROM <backup_device> [ ,...n ] ] [ WITH { [ RECOVERY | NORECOVERY | STANDBY = {standby_file_name | @standby_file_name_var } ] | , <general_WITH_options> [ ,...n ] | , <replication_WITH_option> | , <change_data_capture_WITH_option> | , <service_broker_WITH options> | , <point_in_time_WITH_optionsRESTORE_DATABASE> } [ ,...n ] ] [;]
--To perform the first step of the initial restore sequence -- of a piecemeal restore: RESTORE DATABASE { database_name | @database_name_var } <files_or_filegroups> [ ,...n ] [ FROM <backup_device> [ ,...n ] ] WITH
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 49
Permisos
Si la base de datos que se va a restaurar no existe, el usuario debe tener permisos CREATE DATABASE para poder ejecutar RESTORE. Si la base de datos existe, los permisos RESTORE corresponden de forma predeterminada a los miembros de las funciones fijas de servidor sysadmin y dbcreator, y al propietario (dbo) de la base de datos (para la opcin FROM DATABASE_SNAPSHOT, la base de datos siempre existe). Los permisos RESTORE se conceden a funciones en las que la informacin acerca de los miembros est siempre disponible para el servidor. Debido a que los miembros de una funcin fija de base de datos slo se pueden comprobar cuando la base de datos es accesible y no est daada, lo que no siempre ocurre cuando se ejecuta RESTORE, los miembros de la funcin fija de base de datos db_owner no tienen permisos RESTORE.
Pg. 50
danielramoscastaneda@hotmail.com
SQL Administracin
Facultad de Ingeniera Industrial y de Sistemas La operacin de copia de seguridad puede especificar opcionalmente contraseas de un conjunto de medios, de un conjunto de copia de seguridad o de ambos. Si se ha definido una contrasea en un conjunto de medios o un conjunto de copia de seguridad, debe especificar la contrasea o contraseas correctas en la instruccin RESTORE. Estas contraseas impiden operaciones de restauracin y anexiones no autorizadas de los conjuntos de copia de seguridad en medios que utilizan herramientas de SQL Server. No obstante, los medios protegidos con contrasea se pueden sobrescribir mediante la opcin FORMAT de la instruccin BACKUP.
Ejemplos sobre el uso del RESTORE A. Restaurar una base de datos completa En el siguiente ejemplo se restaura una copia de seguridad completa de la base de datos desde un dispositivo lgico de copia de seguridad de AdventureWorksBackups
RESTORE DATABASE AdventureWorks FROM AdventureWorksBackups
B. Restaurar copias de seguridad de bases de datos completas y diferenciales En el siguiente ejemplo se restaura una copia de seguridad completa despus de una copia de seguridad diferencial del dispositivo de copia de seguridad Z:\SQLServerBackups\AdventureWorks.bak, que contiene las dos copias de seguridad. La copia de seguridad de bases de datos completa que se va a restaurar es el sexto conjunto de copias de seguridad del dispositivo (FILE = 6), y la copia de seguridad de base de datos diferencial es el noveno conjunto del dispositivo (FILE = 9). En cuanto se recupere la copia de seguridad diferencial, se recuperar la base de datos.
RESTORE DATABASE AdventureWorks FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak' WITH FILE = 6 NORECOVERY; RESTORE DATABASE AdventureWorks FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak' WITH FILE = 9 RECOVERY;
C. Restaurar una base de datos con la sintaxis de RESTART En el ejemplo siguiente se usa la opcin RESTART para reiniciar una operacin RESTORE interrumpida por un error de alimentacin del servidor.
-- This database RESTORE halted prematurely due to power failure. RESTORE DATABASE AdventureWorks FROM AdventureWorksBackups -- Here is the RESTORE RESTART operation. RESTORE DATABASE AdventureWorks FROM AdventureWorksBackups WITH RESTART
D. Restaurar una base de datos y mover archivos En el ejemplo siguiente se restaura una base de datos completa y el registro de transacciones, y se mueve la base de datos restaurada al directorio C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data.
RESTORE DATABASE AdventureWorks FROM AdventureWorksBackups WITH NORECOVERY, MOVE 'AdventureWorks_Data' TO
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 51
E. Copiar una base de datos con BACKUP y RESTORE En el ejemplo siguiente se usan las instrucciones BACKUP y RESTORE para realizar una copia de la base de datos AdventureWorks. La instruccin MOVE hace que se restauren los datos y el archivo de registro en las ubicaciones especificadas. La instruccin RESTORE FILELISTONLY se usa para determinar el nmero y los nombres de los archivos de la base de datos que se estn restaurando. La nueva copia de la base de datos se llama TestDB. Para obtener ms informacin, vea RESTORE FILELISTONLY (Transact-SQL).
BACKUP DATABASE AdventureWorks TO AdventureWorksBackups ; RESTORE FILELISTONLY FROM AdventureWorksBackups ; RESTORE DATABASE TestDB FROM AdventureWorksBackups WITH MOVE 'AdventureWorks_Data' TO 'C:\MySQLServer\testdb.mdf', MOVE 'AdventureWorks_Log' TO 'C:\MySQLServer\testdb.ldf'; GO
F. Restaurar con la sintaxis de FILE y FILEGROUP En el siguiente ejemplo se restaura una base de datos llamada MyDatabase que tiene dos archivos, un grupo de archivos secundario y un registro de transacciones. La base de datos usa el modelo de recuperacin completa. La copia de seguridad de la base de datos es el noveno conjunto de copia de seguridad del conjunto de medios en un dispositivo lgico de copia de seguridad llamado MyDatabaseBackups. A continuacin se restauran mediante WITH NORECOVERY tres copias de seguridad de registros que estn en los tres conjuntos de copia de seguridad siguientes (10, 11 y 12) en el dispositivo MyDatabaseBackups. Tras restaurar la ltima copia de seguridad de registros se restaura la base de datos. Tenga en cuenta que en RESTORE DATABASE hay dos tipos de opciones FILE. Las opciones FILE que preceden al nombre del dispositivo de copia de seguridad especifican los nombres de archivos lgicos de los archivos de base de datos que se van a restaurar desde el conjunto de copia de seguridad; por ejemplo, FILE = 'MyDatabase_data_1'. Este conjunto de copia de seguridad no es la primera copia de seguridad de la base de datos en el conjunto de medios; por ello, su posicin en el conjunto de medios se indica mediante la opcin FILE de la clusula WITH, FILE=9.
RESTORE DATABASE MyDatabase FILE = 'MyDatabase_data_1', FILE = 'MyDatabase_data_2', FILEGROUP = 'new_customers' FROM MyDatabaseBackups WITH FILE = 9, NORECOVERY; GO -- Restore the log backups. RESTORE LOG MyDatabase FROM MyDatabaseBackups
Pg. 52
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 53
Hacemos clic sobre el botn Add para especificar la ubicacin del archivo de Backup.
Seleccionamos el archivo.
Pg. 54
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 55
Pg. 56
danielramoscastaneda@hotmail.com
SQL Administracin
C API TULO 4
Administracin de la Seguridad Modos de autenticidad Creacin de Usuarios Uso de Credenciales y Permisos
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 57
D M I N I S T R A C I N
D E
L A
E G U R I D A D
La seguridad es una consideracin primordial cuando se disea y administra un entorno de base de datos, aqu, daremos a conocer los componentes fundamentales de seguridad de SQL Server: entidades de seguridad, protegibles y el modo en que se aplican los permisos dentro del modelo de seguridad de SQL Server.
Una entidad de seguridad es cualquier identidad autenticada a la que se puede conceder permiso para tener acceso a un objeto del sistema de base de datos. SQL Server distingue entre entidades principales indivisibles, que son identidades nicas (como, por ejemplo, inicios de sesin), y entidades de seguridad de coleccin, que son colecciones de identidades (tales como funciones fijas de servidor). Las entidades de seguridad existen en tres niveles: Microsoft Windows, SQL Server y base de datos. Los tipos de entidad de seguridad posibles en cada uno de estos niveles
Pg. 58
danielramoscastaneda@hotmail.com
SQL Administracin
para
Nota Los grupos de bases de datos se admiten principalmente por motivos de compatibilidad con versiones anteriores. Debera usar las funciones de base de datos para crear entidades de seguridad de coleccin en el nivel de base de datos.
Los protegibles se organizan en jerarquas anidadas llamadas mbitos, que tambin se pueden proteger. Los tres mbitos protegibles son servidor, base de datos y esquema. Los protegibles en el nivel de Windows incluyen archivos y claves del Registro. El mbito de servidor Los protegibles que contiene el mbito de servidor incluyen: Inicios de sesin Extremos Bases de datos
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 59
El mbito de esquema
Nota Tenga en cuenta que una entidad de seguridad tambin puede ser un protegible. Por ejemplo, un inicio de sesin es una entidad de seguridad, pero tambin se pueden otorgar permisos en ese inicio de sesin a otros inicios de sesin, lo que lo convierte en un protegible.
Pg. 60
danielramoscastaneda@hotmail.com
SQL Administracin
Ejemplo de permiso
La nica manera de que una entidad de seguridad pueda tener acceso a un recurso en un sistema de SQL Server es recibir permiso para ello, directa o indirectamente a travs de la suscripcin de una entidad secundaria como una funcin o un grupo. Puede administrar los permisos usando el Explorador de objetos en SQL Server Management Studio o mediante la ejecucin de instrucciones GRANT, REVOKE o DENY. Los permisos concretos asociados a cada uno de los protegibles varan segn los tipos de acciones que son compatibles con un protegible.
Permisos heredados
Determinados permisos en SQL Server 2008 se pueden heredar a travs de un permiso concedido en un nivel ms alto de la jerarqua de mbito del protegible. Por ejemplo: Una entidad de seguridad a la que se le ha concedido el permiso SELECT en un esquema hereda automticamente el permiso SELECT en todos los objetos del esquema. Una entidad de seguridad a la que se la ha concedido el permiso CONTROL en un objeto de base de datos hereda automticamente el permiso CONTROL en todos los protegibles que contiene esa base de datos y todos los protegibles que contienen los esquemas incluidos en esa base de datos. Permisos efectivos Los permisos efectivos para una entidad de seguridad se evalan de la misma manera que en versiones anteriores de SQL Server. Una entidad de seguridad puede realizar una accin determinada si: El permiso se ha concedido explcitamente a la entidad de seguridad o a una coleccin de la que es miembro la entidad de seguridad, y El permiso no se ha denegado explcitamente a la entidad de seguridad o a una coleccin de la que es miembro la entidad de seguridad. Nota Una instruccin DENY explcita siempre reemplaza a una instruccin GRANT. Por ejemplo, si a un usuario se le ha concedido explcitamente el permiso SELECT en una tabla determinada pero es miembro de una funcin a la que se le ha denegado explcitamente el permiso SELECT en la tabla, el usuario no podr ejecutar una instruccin SELECT en la tabla.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 61
Modo de autenticacin de Windows y SQL Server. Los usuarios que se conectan a SQL Server mediante una conexin de confianza (una conexin de red a travs de la cual se puede pasar el smbolo de acceso de Windows del usuario) tienen acceso a SQL Server mediante la autenticacin de Windows. Adems, SQL Server mantiene inicios de sesin no asignados a usuarios de Windows y los usuarios pueden conectarse a SQL Server tras indicar un nombre de inicio de sesin vlido y la contrasea que SQL Server valida de forma independiente a Windows. El modo de autenticacin de Windows y SQL Server se conoce a veces como modo mixto.
Nota Los inicios de sesin en SQL Server asignados a los usuarios de Windows se conocen como inicios de sesin de Windows. Los inicios de sesin autenticados en SQL Server se conocen como inicios de sesin de SQL. Las necesidades de seguridad de sus entornos de servidor y de red determinarn el modo de autenticacin que se usar para SQL Server. Puede usar SQL Server Management Studio para establecer el modo de autenticacin de su servidor.
Pg. 62
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 63
Directivas de complejidad de contraseas Las directivas de complejidad de contraseas estn diseadas para disuadir los ataques de fuerza bruta por medio del aumento del nmero de contraseas posibles. Cuando se aplica la directiva de complejidad de contraseas, las nuevas contraseas deben cumplir los requisitos de directiva establecidos por la directiva de contraseas de Windows. Un ejemplo de este tipo de directiva sera: La contrasea no contiene todo o parte del nombre de cuenta del usuario. Una parte de un nombre de cuenta se define como tres o ms caracteres alfanumricos consecutivos delimitados en ambos extremos por un espacio en blanco (espacio, tabulacin, retorno, etc.) o por cualquiera de los caracteres siguientes: , . - _ # La contrasea debe tener una longitud de siete caracteres como mnimo. La contrasea contiene caracteres de tres de las cuatro categoras siguientes: Abecedario ingls en maysculas (de la A a la Z) Abecedario ingls en minsculas (de la a a la z) Dgitos en base decimal (del 0 al 9) Caracteres no alfanumricos (por ejemplo: !, $, #, o %)
Directiva de caducidad de contrasea Las directivas de caducidad de contraseas se usan para administrar el tiempo de vida de una contrasea. Cuando se usa una directiva de caducidad de contraseas, se recuerda a los usuarios que cambien las contraseas anteriores y las cuentas con contraseas caducadas se deshabilitan.
Pg. 64
danielramoscastaneda@hotmail.com
SQL Administracin
Nota De manera predeterminada, SQL Server est configurado para usar el modo de autenticacin de Windows. Todava puede crear inicios de sesin de SQL, pero no podrn conectarse al servidor hasta que se cambie el modo de autenticacin al modo de autenticacin de Windows y SQL Server.
El ejemplo siguiente muestra una instruccin CREATE LOGIN que crea un inicio de sesin de SQL:
CREATE LOGIN DRamos WITH PASSWORD = 'Pa$$w0rd', DEFAULT_DATABASE = AdventureWorks
Las cuentas de usuario de Windows estn sujetas a directivas de contraseas aplicadas por Windows. SQL Server 2008 proporciona restricciones de directiva similares para inicios de sesin de SQL cuando est instalado en Windows Server 2003/2008. Cuando una directiva de contraseas est habilitada para el servidor, SQL Server la habilita de forma predeterminada para nuevos inicios de sesin de SQL; puede cambiar este comportamiento mediante las opciones de la instruccin CREATE LOGIN mostradas en la tabla siguiente. Opcin HASHEDloca Descripcin Especifica que la contrasea ya se ha comprobado aleatoriamente. Si no est especificada, la cadena se comprobar aleatoriamente antes del almacenamiento. Solicita a un inicio de sesin que cambie su contrasea la primera vez que se conecta. Si se especifica esta opcin,
MUST_CHANGE
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 65
CHECK_EXPIRATION
CHECK_POLICY
El ejemplo siguiente muestra una instruccin CREATE LOGIN que crea un inicio de sesin de SQL que no est sujeto a la directiva de contraseas definida para el servidor:
CREATE LOGIN LeoRamos WITH PASSWORD = 'password', DEFAULT_DATABASE = AdventureWorks, CHECK_EXPIRATION = OFF, CHECK_POLICY = OFF
Importante CHECK_EXPIRATION y CHECK_POLICY slo se aplican en Windows Server 2003/2008 y posteriores. Adems, un problema conocido en Windows Server 2003 podra evitar que se restablezca el recuento de la contrasea incorrecta una vez se haya alcanzado el umbral de bloqueo. Esto podra producir un bloqueo inmediato en los subsiguientes intentos fallidos de inicio de sesin. Puede restablecer manualmente el recuento de la contrasea incorrecta con solo establecer CHECK_POLICY = OFF, seguido por CHECK_POLICY = ON.
Pg. 66
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Server proporciona funciones de servidor predefinidas para funciones administrativas comunes, de manera que resulte sencillo otorgar una seleccin de permisos administrativos a un usuario determinado. Las funciones fijas de servidor proporcionan agrupaciones de privilegios administrativos en el nivel de servidor. Se administran de forma independiente a las bases de datos de usuarios en el servidor. Adems de las funciones fijas de servidor mostradas en la tabla anterior, cada instancia de SQL Server contiene una funcin fija de servidor especial denominada pblica, de la que todos los inicios de sesin son miembros. La funcin fija de servidor pblica recibe el permiso VIEW ANY DATABASE. Asignar una cuenta de inicio de sesin a una funcin fija de servidor Puede usar las Propiedades de inicio de sesin de SQL Server en SQL Server Management Studio o el procedimiento almacenado del sistema sp_addsrvrolemember para agregar una cuenta de inicio de sesin como un miembro de una funcin fija de servidor. Slo los miembros de funciones fijas de servidor pueden ejecutar el procedimiento almacenado del sistema sp_addsrvrolemember. Al agregar una cuenta de inicio de sesin a una funcin de servidor, la cuenta consigue los permisos asociados a la funcin de servidor. Para asignar cuentas de inicio de sesin a funciones fijas de servidor, tenga en cuenta los puntos siguientes: No puede agregar, modificar o eliminar funciones fijas de servidor. Cualquier miembro de una funcin fija de servidor puede agregar otras cuentas de inicio de sesin a esa funcin. El procedimiento almacenado del sistema sp_addsrvrolemember no puede ejecutarse dentro de una transaccin definida por el usuario. Tambin puede usar el procedimiento almacenado del sistema sp_dropsrvrolemember para eliminar un miembro de una funcin fija de servidor
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 67
Por ejemplo, un procedimiento almacenado en una base de datos en Servidor1 podra consultar una tabla en una base de datos en Servidor2. Cuando se usa la delegacin, el procedimiento almacenado usa la identidad de seguridad del usuario que lo llam al solicitar los datos desde Servidor2.
Pg. 68
danielramoscastaneda@hotmail.com
SQL Administracin
CREANDO CREDENCIALES
Puede crear una credencial mediante el uso de SQL Server Management Studio o de la instruccin CREATE CREDENTIAL de Transact-SQL. La sintaxis de la instruccin CREATE CREDENTIAL puede verse en la siguiente muestra de cdigo.
CREATE CREDENTIAL credential_name WITH IDENTITY = 'identity_name' [ , SECRET = 'secret' ]
Las clusulas y parmetros de la instruccin CREATE CREDENTIAL son como se describen a continuacin: credential_name. Especifica el nombre de la credencial que se est creando. credential_name no puede comenzar con el signo almohadilla (#). Las credenciales del sistema empiezan por ##. identity_name. Especifica el nombre de la cuenta que se va a usar al conectarse fuera del servidor. secret. Especifica el secreto requerido para superar la autenticacin. Esta clusula es opcional. El ejemplo siguiente crea la credencial llamada AlterEgo. La credencial contiene el usuario de Windows Francesca y la contrasea Pa$$w0rd.
CREATE CREDENTIAL AlterEgo WITH IDENTITY = 'ADVENTURE-WORKS\Francesca', SECRET = 'Pa$$w0rd' GO
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 69
La tabla siguiente muestra algunos permisos de ejemplo en el mbito de servidor. Para obtener una lista completa de los permisos, consulte Permisos en los Libros en pantalla de SQL Server. Protegible Servidor Permiso CONNECT_SQL CREATE LOGIN ALTER ANY LOGIN CONTROLSERVER Login Base de datos ALTER IMPERSONATE CREATE TABLE ALTER ANY USER CONTROL Descripcin Conectarse al servidor. Crear un inicio de sesin. Modificar cualquier inicio de sesin en el mbito de servidor. Control administrativo de todo el sistema. Modificar el inicio de sesin. Suplantar el inicio de sesin. Crear una tabla en la base de datos. Modificar cualquier usuario de la base de datos. Control completo de la base de datos.
Conceder los permisos a protegibles de mbito de servidor Para conceder permisos a protegibles en el mbito de servidor: Use el Explorador de objetos en SQL Server Management Studio para ver las propiedades del inicio de sesin al que desea conceder los permisos. En la ficha Elementos que pueden protegerse, agregue los protegibles requeridos y establezca los permisos necesarios. Tambin puede otorgar permisos del mbito de servidor mediante el uso de la instruccin GRANT de Transact-SQL con la sintaxis siguiente:
GRANT { securable_permission [ ,...n ] } [ON securable_type :: securable_name] TO login [ ,...n ] [ WITH GRANT OPTION ] [ AS { group | role } ]
Las clusulas y parmetros de la instruccin GRANT para protegibles del mbito de servidor se describen en la tabla siguiente. Clusula/Parmetro securable_permission securable_type Descripcin El permiso especfico que se concede al protegible. El tipo de protegible del mbito de servidor al que se aplica el permiso. Esta clusula se omite si el permiso se aplica al propio servidor. El nombre del protegible del mbito de servidor.
securable_name
Pg. 70
danielramoscastaneda@hotmail.com
SQL Administracin
El ejemplo siguiente muestra cmo otorgar el permiso de servidor ALTER ANY DATABASE y el permiso ALTER a un inicio de sesin denominado AWWebApp para un inicio de sesin denominado ADVENTUREWORKS\Naty:
USE master GRANT ALTER ANY DATABASE TO [ADVENTUREWORKS\Naty] GRANT ALTER ON LOGIN :: AWWebApp TO [ADVENTUREWORKS\Naty]
Asignar usuarios a inicios de sesin En la mayora de los casos, los usuarios de la base de datos estn asignados a inicios de sesin. Por ejemplo, podra crear una usuaria llamada Eliana en la base de datos AdventureWorks para hacer que esa base de datos sea accesible para un inicio de sesin denominado ADVENTUREWORKS\ Eliana. De forma predeterminada, todos los inicios de sesin suscritos a la funcin fija de servidor sysadmin estn asignados al usuario dbo en todas las bases de datos. Cuando se ha creado un inicio de sesin para un grupo de Windows, puede crear un usuario para que el inicio de sesin permita que todos los usuarios de Windows del grupo tengan acceso a la base de datos. Adems, puede crear un usuario para un miembro individual del grupo Windows incluso si no existe ningn inicio de sesin individual para ese usuario. Por ejemplo, si un grupo de Windows local denominado DBSERVER1\SalesUsers contiene los usuarios de dominio ADVENTUREWORKS\Naty y ADVENTUREWORKS\Leyla, puede crear un inicio de sesin nico para el grupo DBSERVER1\SalesUsers para dar acceso a SQL Server a ambos usuarios. Por ejemplo, podra crear un usuario denominado SalesUsers en la
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 71
Modificar un usuario Puede modificar un usuario cambiando sus propiedades en el Explorador de objetos o mediante la ejecucin de la instruccin ALTER USER. Quitar un usuario Puede quitar un usuario eliminndolo en SQL Server Management Studio o ejecutando la instruccin DROP USER. Debe transferir la propiedad de los objetos de un usuario antes de anularlo.
Usuarios especiales
Los usuarios especiales de una base de datos son usuarios predefinidos que tienen funciones especiales como la de permitir el acceso administrativo o de invitado.
Pg. 72
danielramoscastaneda@hotmail.com
SQL Administracin
Los permisos se pueden aplicar al usuario invitado como si el usuario invitado fuera cualquier otra cuenta de usuario. Puede habilitar al usuario invitado en cualquier base de datos excepto la master y las bases de datos tempdb.
Las funciones fijas de base de datos proporcionan a las agrupaciones privilegios administrativos en el nivel de base de datos a las que se han concedido permisos para las
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 73
La funcin public es una funcin fija de base de datos especial a la que pertenece cada usuario de la base de datos y no se puede eliminar. La funcin public: Mantiene todos los permisos predeterminados para los usuarios de una base de datos. No puede tener usuarios, grupos o funciones asignados porque los usuarios, grupos y funciones ya le pertenecen de forma predeterminada. Est definida en cada base de datos, incluidas las bases de datos master, msdb, tempdb, model y todas las bases de datos de usuario. No se puede eliminar. Sin los permisos adecuados, un usuario puede tener acceso a una base de datos de SQL Server pero slo podr realizar tareas limitadas. Sin permisos, un usuario posee todos los permisos que se conceden a la funcin public y puede realizar las acciones siguientes: Ejecutar las instrucciones que no requieren permisos, como la instruccin PRINT. Ver informacin de la tabla del sistema y ejecutar ciertos procedimientos almacenados del sistema para la base de datos master y las bases de datos de usuario a las que tenga acceso. Obtener acceso a cualquier base de datos con una cuenta de invitado habilitada Funciones de base de datos definidas por el usuario Cuando ninguna de las funciones fijas de base de datos se adeca a sus propsitos, puede crear sus propias funciones de base de datos para agrupar a varios usuarios que requieran los mismos permisos en una base de datos. La creacin de una funcin de base de datos definida por el usuario le permite crear un grupo de usuarios con un conjunto de permisos comunes. Puede crear una funcin de base de datos definida por el usuario mediante el Explorador de objetos en SQL Server Management Studio o por medio de la instruccin CREATE ROLE de Transact-SQL, como se muestra en los ejemplos siguientes:
USE AdventureWorks CREATE ROLE auditors
Puede modificar o eliminar una funcin de base de datos definida por el usuario en el Explorador de objetos o mediante el uso de las instrucciones ALTER ROLE y DROP ROLE de Transact-SQL.
Pg. 74
danielramoscastaneda@hotmail.com
SQL Administracin
Funciones de aplicacin frente a otras funciones de base de datos Las funciones de aplicacin difieren de otras funciones. A continuacin se muestra una lista de las diferencias fundamentales entre las funciones de aplicacin y otras funciones: Las funciones de aplicacin no tienen miembros: se activan para los usuarios cuando los usuarios ejecutan la aplicacin. Las funciones de aplicacin permiten que los usuarios dispongan de permisos especiales cuando usan la aplicacin y evitan la necesidad de conceder permisos directamente a los usuarios. Las funciones de aplicacin exigen activar una contrasea.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 75
Crear una funcin de aplicacin Use SQL Server Management Studio o el comando CREATE APPLICATION ROLE (TransactSQL) para crear una nueva funcin de aplicacin. Slo los miembros de las funciones db_owner, db_securityadmin y sysadmin pueden crear funciones de aplicacin; la instruccin requiere el permiso ALTER ANY APPLICATION ROLE en la base de datos. Cuando se crea una funcin de aplicacin, debe especificarse una contrasea. Esta contrasea se usa a continuacin para activar la funcin de aplicacin. El ejemplo siguiente muestra cmo crear una funcin de aplicacin denominada weekly_receipts con una contrasea compleja:
CREATE APPLICATION ROLE weekly_receipts WITH PASSWORD = '987Gbv876sPYY5m23' GO
Activar una funcin de aplicacin El procedimiento almacenado sp_setapprole se usa para activar una funcin de aplicacin. sp_setapprole puede ejecutarse slo mediante instrucciones Transact-SQL y no puede ejecutarse dentro de otro procedimiento almacenado o dentro de una transaccin definida por el usuario. El ejemplo siguiente muestra el procedimiento sp_setapprole utilizado para activar la funcin de aplicacin weekly_receipts creada en el ejemplo anterior:
EXEC sp_setapprole 'weekly_receipts', '987Gbv876sPYY5m23' GO
Pg. 76
danielramoscastaneda@hotmail.com
SQL Administracin
Los permisos del mbito de base de datos son permisos que pueden aplicarse a protegibles en el mbito de base de datos, como usuarios, esquemas, funciones, ensamblados y objetos de service broker. La tabla siguiente muestra algunos de los permisos del mbito de base de datos. Protegible Usuario Esquema Permiso ALTER SELECT ALTER TAKE OWNERSHIP Descripcin Modificar el usuario especificado. Seleccionar filas de cualquier objeto del esquema. Modificar cualquier objeto del esquema. Hacerse con la propiedad del esquema.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 77
La tabla siguiente muestra algunos de los permisos aplicables en el mbito de esquema. Protegible Esquema Permiso SELECT ALTER TAKE OWNERSHIP Tabla SELECT ALTER CONTROL Descripcin Seleccionar filas de cualquier objeto del esquema. Modificar cualquier objeto del esquema. Hacerse con la propiedad del esquema. Seleccionar filas de la tabla. Modificar la tabla. Control completo de la tabla.
Concesin de permisos de protegible del mbito de esquema Puede conceder permisos a algunos de los protegibles de la base de datos mediante el uso del Explorador de objetos en SQL Server Management Studio o por medio de la instruccin GRANT de Transact-SQL. La sintaxis de la instruccin GRANT es diferente para los tipos definidos por el usuario que para otros protegibles del mbito de esquema. La sintaxis usada para conceder permisos en un tipo definido por el usuario se muestra en el ejemplo siguiente, que muestra cmo conceder el permiso EXECUTE en un tipo llamado addressType:
USE AdventureWorks GRANT EXECUTE ON TYPE :: Person.addressType TO SalesUser
Para otros protegibles de mbito de esquema (como tablas, vistas y procedimientos almacenados), use la sintaxis mostrada en el ejemplo siguiente, que muestra cmo conceder el permiso SELECT en una tabla llamada orders en el esquema sales:
USE AdventureWorks GRANT SELECT ON sales.orders TO SalesUser
Pg. 78
danielramoscastaneda@hotmail.com
SQL Administracin
Claves simtricas Una clave simtrica es un valor que se usa tanto para cifrar como para descifrar datos. Cuando se usa una clave simtrica, deben compartirla tanto la persona o sistema que cifra los datos como la persona o sistema que los descifra. SQL Server admite claves simtricas para la encriptacin de datos. Puede crear una clave simtrica en SQL Server mediante la ejecucin de la instruccin CREATE SYMMETRIC KEY, como se muestra en el ejemplo de cdigo siguiente:
CREATE SYMMETRIC KEY SymKey WITH ALGORITHM = AES_256 ENCRYPTION BY PASSWORD = 'j7%ga5c$b+hdb05'
Tenga en cuenta que debe cifrar la propia clave simtrica para mantenerla en secreto. En el ejemplo anterior, se usa una contrasea para cifrar la clave simtrica. Las opciones alternativas para cifrar una clave simtrica son usar un certificado, una clave asimtrica u otra clave simtrica.
Claves asimtricas Las claves asimtricas estn compuestas de un par de valores que pueden usarse en una funcin aritmtica unidireccional de manera que los datos puedan cifrarse con un valor y descifrarse con el otro. Los pares de claves asimtricas estn compuestos de una clave pblica, que puede compartirse pblicamente, y una privada, que el propietario de la clave debe mantener en secreto. Los datos cifrados con la clave pblica slo pueden descifrarse con la clave privada.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 79
Tenga en cuenta que la clave privada de una clave asimtrica se cifra con una contrasea. Si se omite la clusula ENCRYPTION BY PASSWORD, SQL Server cifra la clave privada con la clave de base de datos para la base de datos en la que se crea la clave. Las claves de base de datos se analizan ms adelante en este mdulo.
Contenido de un certificado Un certificado suele contener la siguiente informacin: La clave pblica del sujeto (la persona o sistema al que se emiti el certificado). La informacin identificativa del sujeto, como el nombre y la direccin de correo electrnico. El perodo de validez. sta es el tiempo durante el que el certificado se considera vlido. Informacin identificadora y firma digital del emisor. Certificados en SQL Server SQL Server 2008 admite certificados para la autenticacin, autorizacin y criptografa; tambin proporciona la funcionalidad para crear, exportar e importar certificados, como se muestra en el ejemplo de cdigo siguiente:
Pg. 80
danielramoscastaneda@hotmail.com
SQL Administracin
Clave principal de servicio La Clave principal de servicio es una clave Triple DES en la base de la jerarqua de cifrado de SQL Server 2008. Esta clave se genera automticamente cuando se necesita por primera vez, y est protegida por la proteccin de datos de Windows API (DPAPI). Clave principal de base de datos Una clave principal de base de datos es una clave simtrica Triple DES que se puede usar para proteger las claves privadas de certificados y claves asimtricas de una base de datos. Cuando se crea una clave principal de base de datos, se cifra mediante el uso del algoritmo Triple DES y una contrasea proporcionada por el usuario. Para habilitar el descifrado automtico de la clave principal, una copia de la clave se cifra mediante el uso de la Clave principal de servicio tanto en la misma base de datos como en la base de datos master. La muestra de cdigo Transact-SQL siguiente muestra cmo crear una clave principal de base de datos.
USE AdventureWorks CREATE MASTER KEY ENCRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe'
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 81
EncryptByCert y DecryptByCert
Los algoritmos de criptografa asimtrica, como los usados por claves y certificados asimtricos, son intensivos para el procesador y pueden conducir a la sobrecarga de rendimiento cuando se usan para cifrar grandes cantidades de datos. Por esta razn, generalmente debera cifrar los datos con una clave simtrica, que a su vez se cifra con una clave asimtrica o un certificado. Firma de mdulos de cdigo Puede usar una clave asimtrica o un certificado para firmar un mdulo de cdigo, como un procedimiento, funcin o desencadenador almacenado. Cualquier modificacin subsiguiente en un mdulo de cdigo firmado invalidar la firma. La firma y contrafirma slo pueden realizarla las personas con acceso a la clave privada. Adems de comprobar que el mdulo de cdigo no ha sido forzado, una firma crea una identidad secundaria para el mdulo de cdigo. Puede crear un usuario a partir del certificado usado para firmar el mdulo de cdigo mediante la clusula FOR CERTIFICATE de la instruccin CREATE USER y conceder permisos al usuario basado en certificados en lugar de a los usuarios que ejecutarn el mdulo de cdigo. Para firmar un mdulo de cdigo, la clave privada debe estar presente y usar la instruccin ADD SIGNATURE como se muestra en el ejemplo siguiente:
ADD SIGNATURE TO Sales.AddOrder BY CERTIFICATE SalesDevCert
Contexto de suplantacin SQL Server 2008 proporciona la clusula EXECUTE AS para controlar el contexto de seguridad para la ejecucin del mdulo de cdigo. Si un mdulo de cdigo que cambia de contexto de ejecucin usando la clusula EXECUTE AS obtiene acceso a los recursos de otra base de datos, la base de datos de destino debe confiar en el autenticador usado para
Pg. 82
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 83
C A PI TULO 5
Transferencia de Datos Modos de Transferencia de Datos Introduccin al SQL Server Integration Services
Pg. 84
danielramoscastaneda@hotmail.com
SQL Administracin
E S
L A
T R A N S F E R E N C I A
D E
D A T O S
La transferencia de datos es el movimiento de datos entre almacenes de datos. El proceso puede ser desde muy simple hasta muy complejo. Prcticamente todas las soluciones de bases de datos requieren algn tipo de transferencia de datos. Normalmente, el proceso de transferir datos de un sistema a otro implica los pasos siguientes: Extraer datos del origen de datos. Transformar los datos (opcional). Cargar los datos en el almacn de datos de destino.
Escenarios comunes Los siguientes son escenarios comunes para la transferencia de datos: Trasladar los datos a sistemas de almacenamiento de datos. Consolidar datos en un lugar a partir de varios orgenes. Por ejemplo, una oficina comercial central puede contar con una base de datos con datos consolidados de todos sus sistemas de almacenamiento remotos. Mover datos de un sistema heredado a un sistema nuevo. Mover datos de un sistema no relacional, como el de Excel de Microsoft Office, a un sistema relacional, como SQL Server 2008.
Qu es la transformacin de datos?
Cuando seleccione datos para importarlos a su sistema, los datos podran no estar en el formato necesario o no cumplir con sus reglas de validacin. Con la transformacin de los datos se pueden eliminar incoherencias. La transformacin de los datos puede significar un simple cambio de los tipos de datos o una transformacin compleja mediante cdigo de procedimiento.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 85
Cambiar el formato de los datos Si integra datos de diferentes orgenes, a sus formatos sern diferentes. El cambio del formato de los datos podra implicar la simple modificacin del tipo de datos char a varchar, pero tambin puede conllevar una transformacin ms compleja, como el cambio de un campo de fecha basado en cadenas a un tipo de datos datetime. Agregar los datos A menudo, necesitar copiar datos desde un sistema de Procesamiento de transacciones en lnea (OLTP) a un Sistema de ayuda a la toma de decisiones (DSS). Con frecuencia, el DSS no requiere la granularidad fina de datos del sistema OLTP. Un DSS suele generar informes agregados, y la transformacin de los datos podra mejorar el rendimiento mediante la agregacin previa de estos datos y su almacenamiento en un formulario resumido. Mantener la coherencia de los datos Al tratar con datos de sistemas diferentes, existe con frecuencia ms de una versin de los mismos datos. Los nombres, direcciones y nmeros de telfono tienen, por lo general, ortografas o estructuras diferentes y la transformacin de los datos puede garantizar la coherencia en el destino. Validar los datos Si tiene cualquier duda sobre la validez de los datos de origen, debera validarlos antes de colocarlos en el sistema de destino. Puede resolver automticamente algunos errores de validacin, pero puede que necesite hacerlo manualmente en el caso de que los errores sean ms complejos. Escenarios comunes A continuacin se presentan algunos escenarios habituales en los que se puede usar la transformacin de los datos: Almacenamiento de datos. Los almacenes de datos son colecciones de datos de varios orgenes, que con frecuencia necesitan un esquema diferente al de estos sistemas originales y podran contener datos agregados. Un almacn de datos es una herramienta clave para la toma de decisiones, por lo que resulta fundamental que los datos sean coherentes, vlidos, y que se almacenen en la estructura adecuada.
Pg. 86
danielramoscastaneda@hotmail.com
SQL Administracin
Programa de copia masiva Un Programa de copia masiva (PCM) es un programa de lnea de comandos para importar y exportar los datos a archivos de texto. Es una herramienta til cuando es necesario importar o exportar datos desde la lnea de comandos o un archivo de proceso por lotes; proporciona un rendimiento rpido con una carga mnima para el sistema. BULK INSERT BULK INSERT es la versin de Transact-SQL del PCM y tiene muchos de los mismos parmetros. Es til cuando es necesario incluir la funcionalidad de importacin de datos en su lgica de Transact-SQL. Componente de carga masiva XML La Carga masiva XML es un Modelo de objetos componente (COM) independiente que le permite cargar los datos del Lenguaje de marcado extensible (XML) en las tablas de SQL Server. Debera usar el componente Carga masiva de XML cuando necesite importar una gran cantidad de datos XML y distribuirlos en una o ms tablas relacionales. Rplica La rplica es til cuando dos o ms sistemas tienen la misma estructura y no es necesario transformar los datos. Los cambios en el sistema editor se replican en los suscriptores con una frecuencia preconfigurada y algunas formas de rplica permitirn que los propios suscriptores
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 87
QU ES SSIS?
SQL Server 2008 Integration Services (SSIS) es una plataforma para generar soluciones de integracin de datos de alto rendimiento, incluidas la extraccin, la transformacin y la carga (ETL) de paquetes para el almacenamiento de datos. SSIS se compone de un motor en tiempo de ejecucin orientado a operaciones y de un motor de flujo de datos escalable y rpido. El flujo de datos existe en el contexto de un flujo de tareas global. El motor en tiempo de ejecucin es el que proporciona el recurso en tiempo de ejecucin y el soporte operativo para el motor de flujo de datos.
Herramientas y asistentes de SSIS SSIS incluye las herramientas y asistentes siguientes, que pueden usarse para crear, configurar, implementar y ejecutar paquetes SSIS: Diseadores. SSIS ofrece diseadores integrados en SQL Server Business Intelligence Development Studio. Juntos, proporcionan el principal entorno de desarrollo para crear paquetes SSIS.
Herramientas administrativas. SSIS incluye varias herramientas administrativas que se pueden usar solas, o bien, se puede obtener acceso a ellas desde SQL Server Management Studio.
Pg. 88
danielramoscastaneda@hotmail.com
SQL Administracin
Terminologa SSIS Cuando se crea una solucin SSIS, es importante entender la terminologa siguiente: Paquete. Un paquete es una coleccin organizada de conexiones, elementos de flujo de control, elementos de flujo de datos, controladores de eventos, variables y configuraciones que se ensamblan mediante las herramientas de diseo grfico que proporciona SSIS o que se generan mediante programacin. A continuacin, se debe guardar el paquete finalizado en SQL Server 2008, el Almacn de paquetes SSIS o el sistema de archivos. El paquete es la unidad de trabajo que se recupera, se ejecuta y se guarda. Tarea. Las tareas realizan el trabajo en paquetes. SSIS incluye tareas para la realizacin de diversas funciones. Contenedor. Los contenedores son objetos que proporcionan la estructura a los paquetes. Admiten los flujos de control repetidos en paquetes y agrupan tareas y otros contenedores en unidades de trabajo significativas.
Flujo de control SSIS tiene tres tipos de componentes de flujo de control: contenedores, tareas y restricciones de precedencia.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 89
Flujo de datos El flujo de datos es un tipo especial de tarea dentro de un flujo de control. SSIS tiene tres tipos de componentes de flujo de datos: orgenes, destinos y transformaciones. Los orgenes extraen los datos de una amplia gama de almacenes de datos que incluyen bases de datos relacionales, archivos de texto y hojas de clculo. Las transformaciones modifican los datos entre el origen y el destino, e incluyen la validacin, agregacin y asignacin de datos. Los destinos cargan los datos en cualquiera de los almacenes de datos.
HERRAMIENTAS SSIS
SSIS cuenta con una amplia gama de asistentes y herramientas con las que es posible desarrollar paquetes con rapidez. Asistentes SSIS incluye las herramientas y asistentes siguientes, que pueden usarse para crear y administrar paquetes SSIS: El Asistente para importacin y exportacin es el mtodo ms simple de crear un paquete. Puede importar y exportar de SQL Server, archivos de texto, Microsoft Office Access, Excel, BD OLE y proveedores de Microsoft ADO.NET. El Asistente para la instalacin de paquetes transfiere los paquetes al sistema de archivos o a otra instancia de SQL Server 2008. Antes de ejecutar el Asistente para la instalacin de paquetes, debe construir una utilidad de implementacin para el proyecto que contiene los paquetes que desea implementar. El Asistente para la configuracin de paquetes crea configuraciones para cambiar los valores de las propiedades de objeto en tiempo de ejecucin. El Asistente para la migracin de paquetes convierte los paquetes de los Servicios de transformacin de datos (STD) de SQL Server 2000 en paquetes SSIS de SQL Server 2008. Diseador SSIS El Diseador SSIS es una herramienta grfica para crear paquetes. Puede usarla para crear el flujo de control o el flujo de datos, agregar controladores de eventos, ver el contenido del paquete y ver el progreso de ejecucin en tiempo de ejecucin. El flujo de control, el flujo de datos, los controladores de eventos y el Explorador de paquetes tienen una ficha cada uno en el Diseador SSIS y una ficha Progreso aparece cuando un paquete se est ejecutando. Hay tambin un rea de Administradores de conexin para agregar y configurar los administradores de conexin que usa un paquete para conectarse a los datos. Utilidades del smbolo de sistema SSIS incluye las siguientes utilidades del smbolo del sistema:
Pg. 90
danielramoscastaneda@hotmail.com
SQL Administracin
Orgenes de datos Un origen de datos es una referencia en tiempo real a una conexin de almacn de datos. Los orgenes de datos no son necesarios, pero pueden acelerar el desarrollo de un proyecto o de un paquete, dado que muchos administradores de conexin pueden usar el mismo origen de datos. El uso de orgenes de datos en paquetes SSIS proporciona las ventajas siguientes: Los orgenes de datos estn disponibles para un proyecto completo. Puede definir un origen de datos una vez y, a continuacin, hacer referencia a l en los administradores de conexin de varios paquetes dentro del proyecto. Cuando se crea un administrador de conexin mediante un origen de datos, el administrador de conexin copia la cadena de conexiones del origen de datos. El
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 91
Vistas de origen de datos Una vista de origen de datos proporciona un subconjunto de datos de un origen de datos. Puede incluir una o ms tablas o vistas del almacn de datos definidas en el origen de datos y puede aplicar un filtro a una vista de origen de datos para quitar las filas no deseadas. Puede agregar columnas calculadas y nuevas relaciones entre las tablas y reemplazar las tablas en el origen de datos con consultas. Cuando un componente usa una vista de origen de datos, almacena una instruccin TransactSQL. Por consiguiente, el objeto no se ve afectado incluso si la vista de origen de datos no est disponible. Si la vista de origen de datos cambia las tablas a las que hace referencia, este cambio no se reflejar en los objetos basados en ella. El uso de vistas de orgenes de datos en paquetes SSIS proporciona las ventajas siguientes: Una vista de origen de datos slo puede mostrar los objetos pertinentes. Un origen de datos mostrar cada tabla en el almacn de datos subyacente. Las vistas de origen de datos estn disponibles para un proyecto completo. Puede definir una vista de origen de datos una vez y, a continuacin, hacer referencia a ella en los objetos de varios paquetes dentro del proyecto. Puede actualizar una vista de origen de datos para reflejar los cambios en sus orgenes de datos subyacentes. Una vista de origen de datos almacena en memoria cach los metadatos de los orgenes de datos subyacentes, lo que le permite desconectarse del almacn de datos subyacente y seguir editando las propiedades de la vista de origen de datos.
Qu es un administrador de conexin?
Un administrador de conexin es una representacin lgica de una conexin. Se crea un administrador de conexin en tiempo de diseo para describir la conexin fsica que SSIS crea cuando el paquete se ejecuta. SSIS crea la conexin fsica mediante la cadena de conexin y otros atributos del administrador de conexin. Un paquete puede tener varios administradores de conexin, y cada administrador de conexin puede tener atributos diferentes. Por esta razn, podra crear varios administradores de conexin para el mismo almacn de datos, cada uno con propiedades ligeramente diferentes.
Pg. 92
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 93
Tareas Las tareas realizan el trabajo en paquetes. La ms importante es la tarea de flujo de datos. Puede haber varias tareas de flujo de datos dentro de un paquete, y cada una puede representar varias operaciones de datos ETL. Otras tareas pueden realizar muchas operaciones diferentes, desde enviar correos electrnicos hasta recibir datos de servicios web. Restricciones de precedencia Las restricciones de precedencia combinan tareas. En su forma ms simple, las restricciones de precedencia permiten un flujo estructurado de operacin a travs de un paquete. Sin embargo, las restricciones de precedencia pueden ser condicionales y permitir que el proceso se ramifique en base a ciertas condiciones. Puede usar el xito, error o finalizacin (xito o error) de la tarea anterior para controlar la ruta de ejecucin. Las restricciones de precedencia tambin pueden comprobar si una expresin se evala como Verdadera, y esta expresin se puede usar en lugar de, o adems de, la restriccin de finalizacin. Contenedores Los contenedores permiten agrupar o repetir las tareas. Los contenedores de secuencias pueden agrupar tareas para su organizacin. Tambin puede usarlos como mbito para una variable, para mantener la privacidad de los valores frente a otras operaciones y como base para transacciones. Puede establecer el soporte transaccional y el nivel de aislamiento a nivel de contenedor de secuencias en lugar de tener que establecer las propiedades de cada tarea individualmente. El contenedor Foreach Loop repite las tareas para cada miembro de una coleccin. Por ejemplo, podra repetir una importacin para cada archivo de una carpeta, o una accin podra realizarse en cada fila de una tabla. Los contenedores For Loop repiten una coleccin de tareas una o dos veces segn la evaluacin de una expresin. Antes de usar un contenedor For Loop, debe crear una variable. A continuacin, use el contenedor For Loop para establecer un valor inicial (InitExpression), una iteracin (AssignExpression) y una evaluacin (EvalExpression) para esta variable. Por ejemplo, si tuviera una variable llamada Contador, podra establecer un valor inicial de @Contador=1, una iteracin de @Contador=@Contador+1, y una evaluacin de @Contador<4. Esto repetira el cdigo cuatro veces. La cuarta vez, el valor Contador se establecera en 4 y el bucle finalizara.
Pg. 94
danielramoscastaneda@hotmail.com
SQL Administracin
Origen El origen es la conexin al almacn de datos del que necesita extraer datos. Normalmente genera un resultado compuesto por varias columnas. Muchos orgenes tambin tienen una salida de error que tiene todas las columnas de la salida normal ms dos columnas adicionales para la informacin de errores. Aunque la mayora de los orgenes slo tienen una salida normal, puede codificar y personalizar los orgenes para tener varias salidas normales y varias salidas de error. Transformacin Una transformacin puede ser una simple columna que se asigna entre el origen y el destino, pero tambin puede realizar complejas operaciones de modificacin y limpieza en los datos. Las transformaciones tienen una entrada y una salida normal, cada una de ellas compuesta de una o ms columnas. Tambin pueden tener una salida de errores. Las transformaciones son los componentes del flujo de datos de un paquete que agregan, combinan, distribuyen y modifican los datos. Tambin pueden realizar las operaciones de bsqueda y generar conjuntos de datos de muestra. Destinos El destino es la conexin al almacn de datos en el que necesita cargar datos. Tiene por lo menos una entrada, que tiene por lo menos una columna. Un destino puede dar salida a informacin de errores as como recibir datos. Puede codificar y personalizar los destinos para tener varias entradas y salidas de errores.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 95
SSIS cuenta con herramientas y caractersticas para implementar paquetes de un sistema a otro. El proceso de implementar paquetes consta de tres pasos: 1. Definir las configuraciones de paquetes. 2. Configurar la utilidad de implementacin y generar el proyecto. 3. Copiar e implementar la generacin. Configuraciones de paquetes Las configuraciones de paquetes permiten actualizar los valores de propiedades en tiempo de ejecucin. Esto es particularmente til al trasladar un paquete de un sistema de desarrollo a un sistema de produccin. Los nombres de servidor y las cadenas de conexin probablemente habrn cambiado y las configuraciones de paquetes pueden automatizar el proceso de modificacin de estos valores. Los valores que desea aplicar se pueden almacenar en archivos XML, tablas SQL Server, entradas del Registro o variables de entorno o de paquetes. Se puede agregar una referencia a esta ubicacin de almacenamiento agregando una nueva configuracin desde el men SSIS de Business Intelligence Development Studio. El Asistente para la configuracin de paquetes se ejecuta automticamente y le guiar a travs del proceso de creacin de una configuracin de paquetes.
Pg. 96
danielramoscastaneda@hotmail.com
SQL Administracin
C API TULO 6
Automatizacin de Tareas Administrativas Beneficios de la Automatizacin Uso del SQL Server Agent Creando Trabajos y Operadores Monitoreando los trabajos Creacin de Alertas
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 97
O N I T O R E A N D O
A L
S Q L
E R V E R
2 0 0 8
La supervisin es importante porque SQL Server proporciona un servicio en un entorno dinmico. Los datos de la aplicacin cambian, el tipo de acceso que los usuarios requieren cambia y la manera en que los usuarios se conectan cambia. SQL Server administra automticamente recursos a nivel de sistema como la memoria y el espacio en disco, pero la supervisin permite a los administradores identificar las tendencias de rendimiento para determinar si es necesario efectuar cambios.
Qu es el Monitor de actividad?
El Monitor de actividad es una herramienta grfica de SQL Server Management Studio que muestra informacin sobre los procesos de usuario y bloqueos actuales. Puede usar el Monitor de actividad para solucionar problemas de simultaneidad, como los retrasos excesivos en consultas, mientras se liberan los bloqueos o los procesos paralizados que tienen lugar cuando dos procesos esperan a que se liberen los bloqueos y ninguno de ellos puede continuar.
Pginas del Monitor de actividad El Monitor de actividad muestra informacin sobre las conexiones abiertas y los bloqueos actuales. Puede ver informacin en el Monitor de actividad en tres pginas: Informacin del proceso, Bloqueos por proceso y Bloqueos por objeto. Informacin del proceso. En la pgina <Informacin del proceso, el Monitor de actividad muestra una lista de todos los procesos de conexin del sistema. Cada proceso est identificado por un nico Id. de proceso y el Monitor de actividad muestra informacin sobre cada proceso, como el acceso a la base de datos, el nombre de la aplicacin cliente y el inicio de sesin usado por el proceso. Los administradores de la base de datos pueden usar esta pgina para determinar qu procesos estn activos actualmente y finalizar un proceso si es necesario. Bloqueos por proceso. En la pgina Bloqueos por proceso, el Monitor de actividad muestra todos los bloqueos y las solicitudes de bloqueo mantenidas por el proceso seleccionado. Los administradores de la base de datos pueden usar esta pgina para identificar procesos que estn bloquendose entre s debido a bloqueos excesivos e interbloqueos.
Pg. 98
danielramoscastaneda@hotmail.com
SQL Administracin
Vista de administracin dinmica sys.dm_db_partition_stats sys.dm_exec_sessions sys.dm_io_pending_io_requests sys.dm_os_memory_pools sys.dm_os_threads sys.dm_broker_queue_monitors sys.dm_tran_locks
Descripcin Devuelve informacin sobre recuentos de pginas y filas para cada particin de la base de datos Devuelve informacin sobre todas las sesiones actuales conectadas al servidor Devuelve informacin sobre las solicitudes de entrada/salida (E/S) pendientes Devuelve informacin sobre cada cach de objetos simple del sistema Devuelve informacin sobre las amenazas en el sistema Devuelve informacin sobre cada monitor de cola de Service Broker del sistema Devuelve informacin sobre cada bloqueo concedido o solicitado actualmente en el sistema
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 99
Para observar las actividades, desplegar el administrador, y luego hacer doble clic sobre el Monitor de Actividades.
Pg. 100
danielramoscastaneda@hotmail.com
SQL Administracin
Objetos, instancias y contadores del Monitor de sistema Puede ver el Monitor de sistema mediante el inicio de la aplicacin Rendimiento en el grupo de programas de Herramientas administrativas. El Monitor de sistema clasifica la informacin en objetos, contadores e instancias. Entender cmo se relacionan entre s los objetos, los contadores y las instancias es fundamental para usar eficazmente el Monitor de sistema. Objetos. En el Monitor de sistema, los objetos son componentes principales o subsistemas del sistema del equipo. Los objetos pueden ser hardware (por ejemplo, un disco duro), software (por ejemplo, un proceso) o aplicaciones (por ejemplo, una instancia de SQL Server). Hay un nmero fijo de objetos en Microsoft Windows Server 2008 y, al instalar SQL Server, se agregan ms objetos especficos de SQL Server. Contadores. Los contadores recopilan datos sobre diferentes aspectos de los objetos. Por ejemplo, para el objeto Proceso, los contadores recopilan los datos sobre el tiempo de procesador y el tiempo de usuario. Los contadores se integran en el sistema operativo y leen continuamente datos de rendimiento, tanto si estn visibles en el Monitor de sistema como si no. Si un tipo de objeto tiene varias instancias, los contadores recopilan estadsticas de cada instancia o del total de todas las instancias. Instancias. Las instancias son mltiplos del mismo tipo de objeto. Por ejemplo, si un sistema tiene varios procesadores, el tipo de objeto Procesador tendr varias instancias. Cuando se ve informacin sobre rendimiento en el Monitor de sistema, puede decidir ver los valores para una instancia individual de un objeto (por ejemplo, el uso de un nico procesador) o los valores combinados para todas las instancias de ese objeto (por ejemplo, el uso general de procesador para todos los procesadores del sistema). En el Monitor de sistema, puede especificar qu contadores se mostrarn. Puede mostrar los valores de contador como un grfico, un histograma (grfico de barras) o un informe. Los grficos, histogramas e informes se pueden ver en un explorador e imprimirse cuando los datos de rendimiento se guardan como archivo de Lenguaje de marcado de hipertexto (HTML). Los
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 101
Pg. 102
danielramoscastaneda@hotmail.com
SQL Administracin
Supervisar la actividad de disco SQL Server usa las llamadas de entrada/salida (E/S) del sistema operativo Windows para realizar operaciones de lectura y escritura en sus subsistemas de disco. SQL Server administra cundo y cmo se realizan las operaciones E/S de disco, pero el sistema operativo Windows realiza las operaciones E/S subyacentes. El subsistema E/S incluye el bus del sistema, las tarjetas controladoras de disco, los discos, las unidades de cinta, las unidades de CD-ROM y muchos otros dispositivos de E/S. Las operaciones E/S de disco son con frecuencia la causa de los cuellos de botella en un sistema. Supervisar la actividad de disco requiere concentrarse en dos reas: Supervisar la E/S de disco y detectar la paginacin excesiva. Aislar la actividad de disco que crea SQL Server. Puede supervisar los contadores siguientes en el objeto DiscoFsico para determinar la E/S de disco y detectar la paginacin excesiva. Contador % tiempo de disco Descripcin Supervisa el porcentaje de tiempo durante el cual el disco est ocupado con la actividad de lectura y escritura. Supervisa el nmero medio de solicitudes de lectura y escritura que se ponen en cola. Supervisa el nmero actual de solicitudes de lectura y escritura Directrices Si este contador es alto (ms del 90%), compruebe el contador Longitud actual de la cola de disco. Este contador no debera ser mayor que dos veces el nmero de husos. Este contador no debera ser mayor que dos veces el
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 103
Use los valores de los contadores Longitud actual de la cola de disco y % tiempo en disco para detectar los cuellos de botella dentro del subsistema de disco. Si los valores de los contadores Longitud actual de la cola de disco y % de tiempo en disco son altos de forma consistente, considere la posibilidad de efectuar una de las acciones siguientes: Usar una unidad de disco ms rpida. Mover algunos archivos a un disco o servidor adicional. Agregar discos a un dispositivo de almacenamiento de matriz redundante de discos independientes (RAID), si se usa alguno. Supervise el contador Errores de pgina/s. en el objeto Memoria para asegurarse de que la actividad de disco no est ocasionada por la paginacin. Supervisar el uso de memoria Supervise peridicamente una instancia de SQL Server para confirmar que el uso de la memoria se encuentra dentro de los valores normales. Debe asegurarse de que ningn proceso, incluido SQL Server, usa demasiada memoria o est restringido por una memoria insuficiente. Para supervisar en busca de una condicin de memoria baja, use los contadores de objeto descritos en la tabla siguiente. Objeto: contador Descripcin Directrices Memoria: Bytes Indica cuntos bytes de Los valores bajos para el disponibles memoria estn disponibles contador Bytes disponibles actualmente para su uso puede indicar una escasez Pginas/seg. por parte de general de memoria en el procesos. equipo o que una aplicacin no est liberando la memoria. Memoria: Pginas/seg. Indica el nmero de pginas Un alto nmero para el que se recuperaron del disco contador Pginas/seg. podra debido a los errores de indicar una paginacin pgina en disco o que se excesiva. escribieron en el espacio Supervise el contador Errores de disponible del disco conjunto Memoria: de trabajo debido a los pgina/s. para asegurarse de errores de pgina. que la actividad del disco no est ocasionada por la paginacin. Proceso: Errores de Windows Virtual Memory Un nmero alto para este pgina/s Manager toma las pginas contador indica unas (instancia sqlservr) de SQL Server y otros paginaciones excesivas y procesos cuando recorta sacudidas en el disco. Use los tamaos del conjunto este contador para comprobar de trabajo de esos procesos. si SQL Server u algn otro proceso est produciendo la paginacin excesiva. Proceso: Conjunto de Muestra la cantidad de Si este nmero se encuentra trabajo (instancia memoria usada por un de forma coherente por debajo sqlservr) proceso. de la cantidad de memoria establecida por las opciones de servidor memoria mnima del servidor y memoria mxima del servidor, SQL Server se configurar para usar demasiada memoria. SQL Server: Buffer Supervisa el porcentaje de Agregue ms memoria hasta Manager:frecuencia de pginas necesarias que el valor sea
Pg. 104
danielramoscastaneda@hotmail.com
SQL Administracin
Un nmero bajo puede indicar sacudidas frecuentes en el disco E/S. Considere la posibilidad de agregar ms memoria. Si este contador es consistentemente alto comparado con la cantidad de memoria fsica disponible, puede que se necesite ms memoria.
Supervisar el uso de CPU Supervise peridicamente una instancia de SQL Server para determinar si las tasas de uso de CPU estn dentro de los valores normales. Una tasa continuamente alta de uso de CPU puede indicar la necesidad de actualizar la CPU o de agregar varios procesadores. Por otro lado, una tasa alta de uso de CPU puede indicar la existencia de una aplicacin mal ajustada o mal diseada. Optimizar la aplicacin puede reducir el uso de CPU. Use los contadores descritos en la tabla siguiente para supervisar el uso de CPU. Objeto: contador Descripcin Directrices Procesador: % de tiempo Supervisa la cantidad de tiempo Un estado coherente de del procesador que la CPU invierte en ejecutar entre el 80% y el 90% un subproceso que no se puede indicar la necesidad encuentra inactivo. de actualizar su CPU o de agregar ms procesadores. En los sistemas multiprocesador, supervise una instancia independiente de este contador para cada procesador. Proceso: % tiempo del Supervisa la cantidad de tiempo Use este contador para procesador (instancia que la CPU invierte en ejecutar evaluar la contribucin de sqlservr) un subproceso en el proceso SQL Server al uso total del SQL Server. procesador.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 105
Funciones del SQL Server Profiler El SQL Server Profiler muest ra cmo SQL Server resuelve las consultas internamente, lo que permite a los administradores ver exactamente qu instrucciones Transact-SQL se envan al servidor y cmo ste tiene acceso a la base de datos para devolver conjuntos de resultados. Mediante el uso del SQL Server Profiler, podr: Crear una traza paso a paso basada en una plantilla reutilizable. Consultar los resultados de traza mientras se ejecuta. Almacenar los resultados de traza en una tabla o en un archivo para un anlisis ms detallado. Iniciar, detener, poner en pausa y modificar los resultados de traza cuando sea necesario. Reproducir los resultados de traza. Use el SQL Server Profiler para supervisar slo aquellos eventos que le interesen. Si hay demasiada actividad para examinarla con facilidad, puede filtrar eventos basndose en la informacin que desea, de modo que slo se recopile un subconjunto de los datos de eventos. Supervisar demasiados eventos puede sobrecargar al servidor y al proceso de supervisin, lo que puede producir que el archivo o la tabla de traza se hagan muy grandes, sobre todo cuando el proceso de supervisin tiene lugar durante un largo perodo de tiempo. Obtener la traza de actividad de SQL Server mediante el SQL Server Profiler Para usar el SQL Server Profiler, primero decida lo que desea seguir paso a paso y, a continuacin, elija los criterios. Las actividades que podra desear supervisar incluyen: Consultas con un mal rendimiento. Consultas que provocan recorridos de tabla. Actividades de usuarios o aplicaciones individuales. Rendimiento de la base de datos tempdb. Problemas de interbloqueo. Intentos de inicio de sesin, errores, conexiones y desconexiones. Lecturas y escrituras del disco lgico. Uso de CPU a nivel de instruccin. Tiempo de espera para todos los eventos posteriores a la ejecucin. Puede establecer los procedimientos almacenados del sistema en el SQL Server Profiler para seguir paso a paso un conjunto definido de eventos y filtrar el nivel de informacin recopilado sobre esos eventos. Mediante el uso del procedimiento almacenado del sistema sp_trace_create, puede hacer la traza de eventos especificados en su servidor. La opcin trace_produce_blackbox crea un registro rotativo de los ltimos 5 megabytes (MB) de eventos de servidor especificados.
Pg. 106
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 107
RPC: completed
SQL:BatchCompleted SQL:BatchStarting
Columnas Las columnas de datos contienen los atributos de los eventos. El SQL Server Profiler usa las columnas de datos de la traza para describir eventos que se capturan cuando se ejecuta la traza. Puede administrar las columnas mediante filtros de columna para controlar qu datos se recopilan. Por ejemplo, use el filtro Nombre de aplicacin para excluir cualquier dato generado por el propio SQL Server Profiler. Tambin puede organizar columnas en grupos relacionados usando la funcin Organizar columnas.
Pg. 108
danielramoscastaneda@hotmail.com
SQL Administracin
En el cuadro de dilogo Tabla de destino, seleccione la base de datos AdventureWorks, el propietario dbo, y la tabla Prueba de esfuerzo y, a continuacin, haga clic en Aceptar.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 109
Pg. 110
danielramoscastaneda@hotmail.com
SQL Administracin
Es til poder supervisar operaciones de definicin de datos, como un usuario que crea o suprime una tabla, al auditar y regular las acciones de base de datos. Los desencadenadores DDL proporcionan una forma de capturar de forma transparente eventos de definicin de datos, para que un usuario que ejecute una instruccin de lenguaje de definicin de datos no sea consciente de que la tarea es observada.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 111
La instruccin CREATE TRIGGER Al crear un desencadenador DDL, debe especificar el mbito y el tipo de operacin DDL. El ejemplo siguiente crea un desencadenador que se inicia en el momento en el que un usuario ejecuta el comando UPDATE STATISTICS en la base de datos actual:
CREATE TRIGGER UpdStats ON DATABASE FOR UPDATE_STATISTICS AS ...
Indique el mbito de un desencadenador mediante la clusula ON DATABASE o mediante la clusula ON ALL SERVER en la definicin del desencadenador. El cuerpo de un desencadenador DDL puede contener instrucciones Transact-SQL o puede hacer referencia a un mtodo en un ensamblado de Microsoft .NET. La funcin eventdata Los desencadenadores de Lenguaje de manipulacin de datos estndar (DML) crean las tablas insertadas y eliminadas, permitiendo que el desarrollador examine los datos que se estn cambiando y los nuevos valores que los modifican. Los desencadenadores DDL no crean estas tablas. En su lugar, puede usar la funcin eventdata para obtener informacin sobre los eventos que inician el desencadenador.
Pg. 112
danielramoscastaneda@hotmail.com
SQL Administracin
Extraer informacin de evento Use la funcionalidad XQuery del tipo de datos xml para extraer la informacin de evento que devolvi el documento con la funcin eventdata. Por ejemplo, la muestra de cdigo siguiente recupera los elementos PostTime, Database y TargetObject en un desencadenador DDL UPDATE_STATISTICS y los muestra:
CREATE TRIGGER UpdStats ON DATABASE FOR UPDATE_STATISTICS AS DECLARE @data xml DECLARE @posttime nvarchar(24) DECLARE @database nvarchar(100) DECLARE @targetobject nvarchar(100) SET @data = eventdata() SET @posttime = @data.value('(/EVENT_INSTANCE/PostTime)[1]', 'nvarchar(24)') SET @database = @data.value('(/EVENT_INSTANCE/DatabaseName)[1]', 'nvarchar(100)') SET @targetobject = @data.value('(/EVENT_INSTANCE/TargetObjectName/text())[1]', 'nvarchar(100)') PRINT @posttime PRINT @database PRINT @targetobject
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 113
Ver los desencadenadores Puede obtener una lista de los desencadenadores disponibles de una base de datos, incluidos los desencadenadores DDL, mediante la consulta de la vista de catlogo sys.triggers, como se muestra en el ejemplo de cdigo siguiente:
SELECT name FROM sys.triggers
Puede recuperar la definicin de un desencadenador mediante la consulta de la vista de catlogo sys.sql_modules, como se muestra en el siguiente ejemplo de cdigo:
SELECT definition FROM sys.sql_modules WHERE [object_id] = (SELECT [object_id] FROM sys.triggers WHERE name='trigger_name')
Alternativamente, puede ver desencadenadores de base de datos mediante el Explorador de objetos en SQL Server Management Studio. Modificar un desencadenador Use el comando ALTER TRIGGER para cambiar la definicin de un desencadenador DDL. La sintaxis para cambiar un desencadenador DDL es muy parecida a la correccin de un desencadenador estndar. Puede: Cambiar el evento desencadenador. Cifrar el desencadenador. Modificar las instrucciones Transact-SQL que constituyen el cuerpo del desencadenador. Eliminar un desencadenador Use el comando DROP TRIGGER para quitar un desencadenador. Por ejemplo:
DROP TRIGGER UpdStats ON DATABASE
Pg. 114
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 115
El ejemplo siguiente muestra una instruccin CREATE EVENT NOTIFICATION para una notificacin de eventos denominada TableViewEvent con mbito de base de datos que enva informacin al servicio EvtService cuando se ejecuta cualquier operacin DDL en una tabla, vista, ndice, o estadsticas:
CREATE EVENT NOTIFICATION TableViewEvent ON DATABASE FOR DDL_TABLE_VIEW_EVENTS TO SERVICE 'EvtService', '8140a771-3c4b-4479-8ac0-81008ab17984'
Tambin puede usar las notificaciones de eventos para capturar un evento de traza. Por ejemplo, la notificacin de eventos siguiente intercepta el evento SQL_BatchCompleted. (Los eventos de traza slo se pueden capturar en el nivel de servidor).
CREATE EVENT NOTIFICATION TraceSQLBatches ON SERVER FOR SQL_BatchCompleted TO SERVICE 'NotifyService', 'current database'
Pg. 116
danielramoscastaneda@hotmail.com
SQL Administracin
Puede especificar qu procedimiento almacenado se ejecutar cuando crea la cola. El cdigo siguiente muestra cmo especificar la ejecucin de un procedimiento almacenado denominado EventProc cuando se recibe un mensaje en la cola NotifyQueue:
CREATE QUEUE NotifyQueue WITH ACTIVATION ( PROCEDURE_NAME = dbo.EventProc, MAX_QUEUE_READERS = 5, EXECUTE AS SELF) GO
Recibir mensajes El procedimiento almacenado de procesamiento de eventos debera recuperar primero el mensaje de la cola mediante el comando RECEIVE y, a continuacin, almacenar la informacin en variables. El comando WAITFOR se usa para suspender el procesamiento hasta que se reciba un mensaje o hasta que hayan pasado dos segundos. Si no se recibe ningn mensaje, no es necesario efectuar ms acciones. En el ejemplo siguiente se muestra cmo recibir mensajes de una cola denominada NotifyQueue:
DECLARE @messageTypeName NVARCHAR(256), @messageBody XML ;WAITFOR( RECEIVE TOP(1) @messageTypeName = message_type_name, @messageBody = message_body FROM dbo.NotifyQueue; ), TIMEOUT 2000 ; IF @@ROWCOUNT = 0 RETURN
Procesar mensajes A los mensajes de la cola se les asigna un message_type_name que describe el tipo de mensaje. Puede usarlo para identificar si el mensaje es una notificacin de eventos o un mensaje de error de la notificacin de eventos. Los mensajes tambin contienen una columna message_body que contiene la informacin real del evento. Esta columna contiene un documento EVENT_INSTANCE XML que incluye los mismos elementos que el documento generado por el desencadenador DDL. Por ejemplo, una notificacin de eventos de tabla que activa un comando ALTER TABLE gener el documento siguiente:
<EVENT_INSTANCE>
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 117
Puede usar la funcionalidad XQuery del tipo de datos xml para recuperar la informacin del evento como se muestra en el ejemplo siguiente:
DECLARE @cmd nvarchar(1000) DECLARE @posttime nvarchar(24) DECLARE @spid nvarchar(6) DECLARE @loginname nvarchar(100) DECLARE @hostname nvarchar(100) SET @cmd = @messagebody.value ('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]'), 'nvarchar(1000)') SET @posttime = @messagebody.value ('(/EVENT_INSTANCE/PostTime)[1]', 'nvarchar(24)') SET @spid = @messagebody.value ('(/EVENT_INSTANCE/SPID)[1]', 'nvarchar(6)') SET @loginname = @messagebody.value ('(/EVENT_INSTANCE/LoginName)[1]', 'nvarchar(100)') SET @hostname = HOST_NAME() INSERT INTO AuditLog(Command,PostTime,HostName,LoginName) VALUES(@cmd, @posttime, @hostname, @loginname) GO
Ver las notificaciones de eventos y colas Puede obtener una lista de notificaciones de eventos mediante la consulta de la vista de catlogo sys.event_notifications:
SELECT name FROM sys.event_notifications
Pg. 118
danielramoscastaneda@hotmail.com
SQL Administracin
Eliminar una notificacin de eventos Use el comando DROP EVENT NOTIFICATION para eliminar permanentemente una notificacin de eventos de la base de datos:
DROP EVENT NOTIFICATION UpdateStats ON SERVER
Nota Las notificaciones de eventos dependen de la funcionalidad Service Broker de SQL Server 2008. Para usar las notificaciones de eventos, debe habilitar Service Broker mediante la habilitacin de la configuracin ENABLE_BROKER para la base de datos en la que se encuentra su cdigo de notificacin de eventos.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 119
C A PI TULO 7
Monitoreando al SQL Server 2008 Uso del Monitor de Actividades Uso del Monitor del Sistema Uso del SQL Server Profiler Usando DDL Triggers Uso de Notificaciones
Pg. 120
danielramoscastaneda@hotmail.com
SQL Administracin
U T O M A T I Z A C I N A D M I N I S T R A T I V A S
D E
T A R E A S
Una de las funciones principales de un administrador de bases de datos es el mantenimiento de SQL Server y sus bases de datos. Tambin se incluyen tareas que se deben realizar de manera programada y tareas adicionales para anticiparse a los problemas antes de que se produzcan. El trabajo de un administrador conlleva deberes administrativos que no cambian de un da para otro y que pueden llegar a ser aburridos. Puede automatizar estas tareas rutinarias y configurar SQL Server para supervisar ciertos tipos de problemas antes de que aparezcan.
Ventajas de la automatizacin
La automatizacin de la administracin y la supervisin de tareas permite al administrador de bases de datos reducir la carga de trabajo asociada a realizar tareas repetitivas y a la supervisin de SQL Server. Al usar trabajos y alertas, puede configurar SQL Server para responder automticamente a los problemas que surjan e incluso evitar que algunos de ellos aparezcan.
Ventajas de la automatizacin de la administracin de bases de datos Las ventajas de la automatizacin de la administracin de bases de datos incluyen: Reduccin de la carga de trabajo administrativa, con lo que se permite a los administradores de bases de datos centrarse en otras funciones del trabajo, como planear cambios en la base de datos u optimizar su rendimiento, en lugar de estar pendientes de tareas de mantenimiento rutinarias. Reduccin del riesgo de que se pasen por alto tareas de mantenimiento fundamentales. Reduccin del riesgo de errores humanos al realizar tareas de mantenimiento de bases de datos. La administracin proactiva de la base de datos a travs de alertas indica la accin que debe realizarse para impedir que se produzcan problemas antes de que ocurran.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 121
Tareas que pueden automatizarse con el Asistente para planes de mantenimiento Las tareas de mantenimiento que pueden programarse para que se ejecuten automticamente incluyen: Realizar copias de seguridad de la base de datos y de archivos del registro de transacciones. Las copias de seguridad de las bases de datos y del registro pueden conservarse durante un perodo de tiempo especfico. Ejecutar trabajos del Agente SQL Server que permiten realizar una gran variedad de acciones. Compactar los archivos de datos quitando las pginas de base de datos vacas. Realizar comprobaciones de coherencia internas de los datos y pginas de datos dentro de la base de datos para asegurarse de que un problema en el sistema o de software no haya daado los datos. Reorganizar los datos en las pginas de datos y de ndice volviendo a generar los ndices. Actualizar las estadsticas del ndice para asegurarse de que el optimizador de consultas tiene informacin actualizada sobre la distribucin de valores de los datos en las tablas. Los resultados generados por las tareas de mantenimiento se pueden escribir como un informe en un archivo de texto o en las tablas del plan de mantenimiento (sysmaintplan_log y sysmaintplan_log_detail) en la base de datos msdb.
Inicio del Asistente para planes de mantenimiento El Asistente para planes de mantenimiento se inicia desde SQL Server Management Studio. En el Explorador de objetos, expanda la carpeta del servidor y la carpeta Administracin, haga clic con el botn secundario en Planes de mantenimiento y, a continuacin, haga clic en el Asistente para planes de mantenimiento. Posteriormente, podr usar el asistente para crear un plan personalizado que se ajuste a sus requisitos de mantenimiento.
Pg. 122
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 123
Pg. 124
danielramoscastaneda@hotmail.com
SQL Administracin
Dependencias del servicio Agente SQL Server El servicio Agente SQL Server depende del servicio de SQL Server para la instancia a la que pertenece. Adems, algunas operaciones realizadas por el Agente SQL Server podran basarse en otros servicios de Windows. Por ejemplo, para enviar las notificaciones del operador usando el comando net send, debe iniciarse previamente el servicio Windows Messenger.
Usar Correo electrnico de base de datos con el Agente SQL Server El Correo electrnico de base de datos es una funcin de SQL Server 2008 que permite a SQL Server enviar correo electrnico a travs de un servidor de Protocolo simple de transporte de correo (SMTP, Simple Mail Transport Protocol). Para usar la funcin Correo electrnico de base de datos con el Agente SQL Server, debe realizar las tareas de configuracin siguientes: Habilite el Correo electrnico de base de datos. Cree un perfil de Correo electrnico de base de datos que incluya una cuenta de correo electrnico que use el Agente SQL Server. Haga que ste sea el perfil predeterminado del usuario en la base de datos msdb que se asigna al inicio de sesin de la cuenta de servicio Agente SQL Server. Agregue al usuario para el inicio de sesin de la cuenta de servicio Agente SQL Server a la funcin de base de datos DatabaseMailUserRole en la base de datos msdb. Configure las propiedades del sistema de alertas del Agente SQL Server para usar el Correo electrnico de base de datos y especifique el perfil que haya creado en los pasos anteriores.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 125
Pg. 126
danielramoscastaneda@hotmail.com
SQL Administracin
Crear trabajos Puede usar SQL Server Management Studio o ejecutar el procedimiento almacenado del sistema sp_add_job para definir un trabajo nuevo. La definicin del trabajo se almacena en la tabla del sistema sysjobs en la base de datos msdb. Esta tabla se mantiene en cach para mejorar el rendimiento. Al definir los trabajos, debe hacer lo siguiente: Asegrese de que el trabajo est habilitado. Los trabajos se habilitan de manera predeterminada. Si un trabajo se deshabilita, no podr ejecutarse tal y como estaba programado. Sin embargo, un usuario todava puede ejecutar manualmente un trabajo deshabilitado si lo inicia en el Administrador corporativo de SQL Server. Especifique el propietario responsable de la realizacin del trabajo. De forma predeterminada, el propietario es la cuenta de inicio de sesin del usuario de Windows o SQL Server que ha creado el trabajo. Defina si el trabajo se ejecuta en un servidor local o en varios servidores remotos. Cree categoras de trabajo que le sirvan para organizar, filtrar y administrar muchos trabajos. Por ejemplo, puede crear categoras de trabajo que se correspondan con los departamentos en su organizacin.
Qu es un operador?
Los operadores son los alias para personas o grupos que pueden recibir notificacin electrnica cuando los trabajos hayan finalizado o se hayan emitido las alertas. Los operadores deberan definirse antes que las alertas. Cuando un trabajo finaliza, o si cualquiera de los pasos del trabajo falla, puede notificar a un operador mediante un localizador, correo electrnico o un comando net send.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 127
Directrices para la creacin de operadores Puede usar SQL Server Management Studio o ejecutar el procedimiento almacenado del sistema sp_add_operator para definir un nuevo operador. La definicin del operador se almacena en la tabla del sistema sysoperators en la base de datos msdb. Al crear operadores, deber hacer lo siguiente: Use un alias de grupo de correos electrnicos para notificar a ms de una persona para que respondan a problemas potenciales. Pruebe cada mtodo de notificacin que se use para notificar al operador a fin de garantizar que el operador puede recibir los mensajes. Especifique un programa de trabajo para cada operador al que se va a notificar mediante su localizador. Si un trabajo que est definido para que se notifique a un operador mediante un localizador est en conflicto con el programa de trabajo del operador, se producir un error en la notificacin.
Pg. 128
danielramoscastaneda@hotmail.com
SQL Administracin
Definir los pasos de trabajo de Transact-SQL Al definir los pasos de trabajo para ejecutar instrucciones Transact-SQL, procedimientos almacenados o procedimientos almacenados extendidos, tenga en cuenta las instrucciones siguientes: Debe identificar la base de datos que se va a usar. Debe incluir variables necesarias y parmetros en el paso de trabajo. Puede enviar el conjunto de resultados de un paso de trabajo a un archivo de salida. Los archivos de salida se usan a menudo en la solucin de problemas para capturar cualquier mensaje de error que puede haber aparecido mientras la instruccin se estaba ejecutando. No puede usar un archivo de salida de un paso de trabajo como entrada en un paso subsiguiente.
Definir los pasos de trabajo de comandos del sistema operativo Al definir un paso de trabajo para ejecutar una aplicacin o comando del sistema operativo (identificado mediante las extensiones de nombre de archivo .exe, .bat, .cmd o .com), deber hacer lo siguiente: Identificar un cdigo de salida de proceso para indicar que el comando se ejecut correctamente. Incluir la ruta de acceso completa a la aplicacin ejecutable. La ruta de acceso es necesaria para ayudar al Agente SQL Server a encontrar el origen de la aplicacin. Definir los pasos de trabajo de secuencias de comandos de ActiveX
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 129
Lgica de flujo de los pasos de trabajo Al crear los trabajos, un administrador de bases de datos debera especificar las medidas que SQL Server debera tomar si un paso de trabajo se realiza correctamente o si se produce un error. De forma predeterminada, SQL Server avanza al paso de trabajo siguiente si se realiza correctamente y se detiene si se produce un error. Sin embargo, los pasos de trabajo pueden ir a cualquier paso definido en el trabajo tanto si es correcto como si se produce un error. Puede especificar el nmero de veces que SQL Server debera intentar la ejecucin de un paso de trabajo si se produce un error en l. Tambin puede especificar el intervalo entre cada reintento (en minutos). Por ejemplo, si el paso de trabajo requiere una conexin a un servidor remoto, podra definir varios intentos en caso de producirse un error en la conexin. Adems, si define un trabajo para que slo se ejecute una vez, puede especificar que se elimine el trabajo cuando finalice.
Pg. 130
danielramoscastaneda@hotmail.com
SQL Administracin
Crear alertas
Las alertas son respuestas predefinidas a eventos concretos que pueden producirse en una solucin SQL Server. Puede definir alertas para realizar un trabajo o notificar a un operador cuando se produce un evento determinado o se excede un umbral de rendimiento.
SQL Server genera eventos y se anotan en el registro de aplicacin de Windows. El Agente SQL Server lee el registro de aplicacin y compara los eventos anotados con las alertas que ha definido. Cuando el Agente SQL Server encuentra una coincidencia, emite una alerta, es decir, una respuesta automatizada a un evento. Adems de supervisar los eventos de SQL Server, el Agente SQL Server tambin puede supervisar las condiciones de rendimiento y los eventos del Instrumental de administracin de Windows (WMI, Windows Management Instrumentation).
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 131
Definir alertas para condiciones de rendimiento Adems de usar alertas para responder a los errores de SQL Server, puede usarlas para responder a condiciones de rendimiento de SQL Server como aqullas que se pueden ver en el Monitor de sistema de Windows. Cuando se excede el valor de la condicin, se emite una alerta. Por ejemplo, puede crear una alerta de condicin de rendimiento que se desencadene cuando el registro de transacciones en la base de datos AdventureWorks haya excedido el 75 por ciento de su capacidad. La respuesta de la alerta podra ejecutar un trabajo para realizar una copia de seguridad del registro de transacciones y notificar al administrador de la base de datos.
Pg. 132
danielramoscastaneda@hotmail.com
SQL Administracin
C API TULO 8
Implementando un DataBase Mirroring Replicacin de una BD. Examen Final.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 133
M P L E M E N T A R L A C R E A C I N D E B A S E D E D A T O S
D E
R E F L E J O
La creacin de reflejo de la base de datos es una solucin de alta disponibilidad alternativa al clster de conmutacin por error en SQL Server 2008 Enterprise Edition. La creacin de reflejo de la base de datos admite la conmutacin por error automtica, pero no requiere un hardware compatible con los clsteres. Por tanto, puede proporcionar una alternativa rentable al clster de conmutacin por error. Importante Las directivas de soporte tcnico de Microsoft no se aplican a la funcin de creacin de reflejo de la base de datos en SQL Server 2008. La creacin de reflejo de la base de datos est deshabilitada de forma predeterminada, pero puede habilitarse para evaluarla nicamente mediante el uso de la marca de traza 1400 como parmetro de inicio. Para obtener ms informacin acerca de las marcas de traza, consulte Marcas de traza (Transact-SQL) en los Libros en pantalla de SQL Server. La creacin de reflejo de la base de datos no se debera usar en entornos de produccin. Los servicios de soporte tcnico de Microsoft no admiten bases de datos ni aplicaciones que usen la creacin de reflejo de la base de datos. La documentacin sobre la creacin de reflejo de la base de datos se incluye en SQL Server 2008 slo como evaluacin. La directiva de documentacin para soporte tcnico y actualizacin de SQL Server
Pg. 134
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 135
OPCIONES
Pg. 136
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 137
Parmetros Los parmetros de la instruccin CREATE ENDPOINT para la creacin de reflejo de la base de datos se describen en la lista siguiente. <endpointName>. Nombre nico para el extremo de la creacin de reflejo de la base de datos de la instancia del servidor. STARTED. Especifica que se va a iniciar el extremo y que va a empezar a escuchar las conexiones. Normalmente se crea un extremo de creacin de reflejo de la base de datos en el estado STARTED. De manera alternativa, puede iniciar una sesin en el estado predeterminado detenido (STOPPED) o en el deshabilitado (DISABLED). <listenerPortList>. Lista de uno o varios nmeros de puerto en los que desea que el servidor realice escuchas de mensajes de creacin de reflejo de la base de datos. Debe especificar TCP, ya que si especifica cualquier otro protocolo se produce un error. AUTHENTICATION. Especifica el modo de autenticacin para el extremo. En el caso de la autenticacin de Windows, no es necesario especificar la opcin de autenticacin (AUTHENTICATION) a menos que desee que el extremo use slo NTLM o Kerberos para autenticar las conexiones. <authorizationMethod> especifica el mtodo usado para autenticar las conexiones como una de las siguientes: NTLM, KERBEROS o NEGOTIATE. El mtodo predeterminado, NEGOTIATE, hace que el extremo use el protocolo de negociacin de Windows para elegir NTLM o Kerberos. Para la autenticacin basada en certificados, debe especificar un certificado existente. ENCRYPTION. Especifica si se deberan cifrar las conexiones con el extremo, adems del algoritmo de cifrado que se va a usar. El ajuste de cifrado predeterminado es REQUIRED. Sin embargo, puede deshabilitar el cifrado o hacerlo opcional en un extremo. ROLE. Define la funcin o funciones que el servidor puede realizar. Es necesario especificar ROLE. Para permitir a una instancia del servidor actuar como una funcin para una sesin de creacin de reflejo de la base de datos y una funcin diferente para otra sesin, especifique ROLE=ALL. Para restringir una instancia de servidor para ser un socio o un testigo, especifique ROLE=PARTNER o ROLE=WITNESS, respectivamente.
CMO
Pg. 138
danielramoscastaneda@hotmail.com
SQL Administracin
De manera alternativa, podra usar una copia de seguridad completa reciente. Si es el caso, debera restaurar cualquier copia de seguridad del registro desde la copia de seguridad completa y realizar una copia de seguridad y una restauracin del registro de transacciones para asegurarse de que los datos estn al da. Copiar recursos de nivel de servidor. Debera copiar manualmente cualquier recurso de nivel de servidor, como inicios de sesin o trabajos del Agente SQL, que seran necesarios en el caso de conmutacin por error a la instancia reflejada.
Establecer una sesin de reflejo Es posible establecer una sesin de reflejo con el asistente en el cuadro de dilogo Propiedades de la base de datos en el Explorador de objetos mediante la instruccin ALTER DATABASE. Use el proceso siguiente para establecer una sesin de reflejo:
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 139
2. Establezca el servidor reflejado a partir del principal, tal y como se muestra en la siguiente muestra de cdigo:
ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://DBSERVER1.COMPANYINFO.MIEMPRESA.COM: 5023'
3. Si fuera necesario, cambie el modo de sesin de reflejo de proteccin alta. Para definir el modo de alta disponibilidad, agregue un servidor testigo desde el servidor principal o desde el reflejado, tal y como se muestra en la siguiente muestra de cdigo:
ALTER DATABASE AdventureWorks SET WITNESS = 'TCP:// DBSERVER1.COMPANYINFO.MIEMPRESA.COM: 5024'
Para establecer el modo de alto rendimiento, desactive la seguridad de las transacciones en el servidor principal, tal y como se muestra en la siguiente muestra de cdigo:
ALTER DATABASE AdventureWorks SET PARTNER SAFETY OFF
El modo de alta disponibilidad puede usar la conmutacin por error automtica o manual. El modo de alta proteccin puede usar la conmutacin por error manual o el servicio forzado (con posible prdida de datos). El modo de alto rendimiento puede usar el servicio forzado (con posible prdida de datos). Conmutacin por error automtica Si se produce un error en el servidor principal en el modo de alta disponibilidad, la conmutacin por error ser automtica. Cuando el servidor principal est sin conexin, el reflejado y el
Pg. 140
danielramoscastaneda@hotmail.com
SQL Administracin
Servicio forzado (con posible prdida de datos) Si se produce un error en el servidor principal en el modo de alto rendimiento, puede forzar el servicio en el servidor reflejado, con posible prdida de datos, usando la instruccin ALTER DATABASE con el parmetro FORCE_SERVICE_ALLOW_DATA_LOSS, tal y como se muestra en la siguiente muestra de cdigo:
ALTER DATABASE AWData SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS
Qu es el trasvase de registros?
El trasvase de registros es una tcnica de alta disponibilidad en la que el registro de transacciones del servidor primario se restaura peridicamente en un servidor de reserva. Puede programar las copias de seguridad del registro para que se produzcan con una frecuencia que se adapte a los requisitos de disponibilidad y rendimiento. Adems de proporcionar redundancia, el servidor de reserva se puede usar para consultas de slo lectura y de esta forma aliviar parte de la carga del servidor primario.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 141
Antes de configurar el trasvase de registros, sin embargo, deber realizar las siguientes tareas: Cree un recurso compartido de archivos para las copias de seguridad del registro de transacciones, preferiblemente en un servidor tolerante a errores que no forma parte de la configuracin del trasvase de registros. Para maximizar la disponibilidad del servidor primario, Microsoft recomienda que coloque el recurso compartido de copia de seguridad en un equipo host independiente. Cree una carpeta para cada servidor secundario en el que el trasvase de registros copiar los archivos de copia de seguridad del registro de transacciones. Estas carpetas se colocan normalmente en los servidores secundarios. Transact-SQL Use los siguientes procedimientos almacenados para configurar el trasvase de registros: sp_add_log_shipping_primary_database sp_add_jobschedule sp_add_log_shipping_alert_job sp_add_log_shipping_secondary_primary sp_add_log_shipping_secondary_database sp_add_log_shipping_primary_secondary
Pg. 142
danielramoscastaneda@hotmail.com
SQL Administracin
La primera vez que cambia las funciones, necesitar configurar el trasvase de registros en la base de datos secundaria. Esto no es necesario para los cambios de funciones siguientes, por lo que ser ms fcil cambiar y volver al estado previo. Cambiar funciones Realice los pasos siguientes para cambiar las funciones o para que el servidor de reserva pase a ser el servidor primario: 1. Copie cualquier copia de seguridad del registro de transacciones del recurso compartido de copia de seguridad en la carpeta de destino y restaure stas y otras copias de seguridad de la carpeta en el servidor de reserva. 2. Realice una copia de seguridad del registro con NORECOVERY si el servidor primario est disponible, tal y como se muestra en el siguiente cdigo de Transact-SQL:
BACKUP LOG AdventureWorks TO AWLogBackup WITH NORECOVERY
3. Restaure la copia de seguridad del paso anterior en el servidor de reserva con la instruccin RECOVERY, tal y como se muestra en el siguiente cdigo de Transact-SQL:
RESTORE LOG AdventureWorks FROM AWLogBackup WITH RECOVERY
De manera alternativa, si no hay disponible ninguna copia de seguridad, lleve a cabo una restauracin con RECOVERY sin especificar un archivo de copia de seguridad, tal y como se muestra en el siguiente cdigo de Transact-SQL:
RESTORE LOG AdventureWorks WITH RECOVERY
4. Deshabilite los trabajos de trasvase de registros en el servidor primario original y deshabilite la copia y restaure los trabajos en el servidor secundario original. 5. Si es la primera vez que se han cambiado las funciones del servidor, tendr que configurar el trasvase de registros en la base de datos secundaria. Debera tratarla ahora como una base de datos primaria. Use el mismo recurso compartido para crear copias de seguridad que ya cre para el servidor primario original. Al agregar la base de datos secundaria, en el cuadro de dilogo Configuracin de base de
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 143
Introduccin a la rplica
Qu es la rplica?
La rplica es el mecanismo para crear y mantener varias copias de los mismos datos. Los datos se distribuyen de forma flexible, lo que da ms autonoma a los sitios y garantiza que las actualizaciones se replican en un perodo de tiempo aceptable. SQL Server 2008 tiene varios mtodos de rplica disponibles, lo que permite su uso en distintos escenarios.
Ventajas de la rplica La rplica ofrece varias ventajas al sistema de base de datos: Acerca los datos a usuarios alejados geogrficamente. Permite que los sitios autnomos no tengan que estar conectados continuamente. Permite mantener copias independientes de los datos del Procesamiento de transacciones en lnea (OLTP) y del Sistema de ayuda a la toma de decisiones (DSS). Por su naturaleza, OLTP y DSS generarn conflictos de bloqueo de archivos entre s que pueden resolverse mediante copias independientes, pero que se hayan replicado, de los datos.
Pg. 144
danielramoscastaneda@hotmail.com
SQL Administracin
Los publicadores crean y modifican los datos, los distribuidores almacenan datos concretos de la rplica asociados con uno o varios publicadores y los suscriptores reciben los datos. Con la rplica de mezcla, esta situacin cambia ligeramente, ya que las modificaciones tienen lugar tanto en el publicador como en los suscriptores.
TIPOS DE RPLICA
Los distintos sistemas tendrn requisitos diferentes (y con frecuencia en conflicto los unos con los otros) para la rplica. SQL Server proporciona tres mtodos de rplica, aunque cada uno proporciona un conjunto diferente de ventajas y tiene distintas configuraciones opcionales. Es importante que considere los puntos mostrados en esta seccin y elija el mtodo adecuado para su sistema.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 145
Rplica de instantneas
La rplica de instantneas enva todos los datos de una publicacin cada vez que sta se sincroniza. De esta forma se elimina la necesidad de supervisar las modificaciones de datos, aunque podra producir un aumento del volumen de datos que se estn replicando. Se replicarn todos los datos aun cuando no se haya modificado ninguno. Normalmente, la rplica de instantneas se usa en escenarios en los que una gran cantidad de datos cambia entre cada sincronizacin. Con la rplica de instantneas, los suscriptores pueden actualizar los datos en el publicador. La actualizacin puede ocurrir inmediatamente o ponerse en cola hasta que se produzca la siguiente sincronizacin.
Rplica transaccional
La rplica transaccional slo enva modificaciones de los datos cuando tiene lugar la sincronizacin. Esto puede reducir el volumen de los datos que se estn replicando, sobre todo si el nmero de modificaciones de datos es bajo o si la rplica es frecuente. Debido a la disminucin de volmenes de datos, se puede usar la rplica transaccional cuando sean necesarias actualizaciones frecuentes. La rplica transaccional se inicia normalmente con una rplica de instantneas de los objetos y datos para proporcionar una lnea de base. A continuacin, se enviarn partes del registro de transacciones a los suscriptores cuando se produzca la rplica. Con la rplica transaccional estndar, los suscriptores pueden actualizar datos en el publicador. La actualizacin puede ocurrir inmediatamente o ponerse en cola hasta que se produzca la siguiente sincronizacin. La rplica transaccional punto a punto tambin est disponible. En este mtodo, cada nodo es a la vez publicador y suscriptor de los mismos datos. No hay ninguna jerarqua de publicadores y suscriptores. Utilice este mtodo cuando cada punto trabaja con una parte concreta de los datos. Si todos los puntos realizan cambios en los mismos datos y es posible que se produzcan conflictos, se debera usar la rplica de mezcla.
Rplica de mezcla
La rplica de mezcla permite las modificaciones tanto en el publicador como en los suscriptores. Cuando se produce la sincronizacin, se mezclarn las modificaciones en el publicador y en el suscriptor.
Pg. 146
danielramoscastaneda@hotmail.com
SQL Administracin
Rplica heterognea
Puede replicar los datos de SQL Server en otros productos de bases de datos, como IBM DB2, Oracle y Sybase. SQL Server tambin puede actuar como suscriptor de la versin 8 o posterior de Oracle. Despus podr generar y mantener la suscripcin con un conocimiento mnimo de este programa. Se pueden usar rplicas de instantneas y transaccionales si se suscribe a una base de datos de Oracle.
Artculos
Un artculo puede ser toda una tabla u objeto de base de datos, o slo una parte. Se puede filtrar horizontalmente, restringiendo las filas que contiene, o verticalmente, restringiendo las columnas que tiene.
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 147
Suscripciones
Una suscripcin se crea en relacin con una publicacin; no se puede crear directamente en relacin con un artculo. Puede crear suscripciones de insercin o de extraccin. Las suscripciones de insercin se crean en el publicador y se pueden crear al mismo tiempo que la publicacin en muchos suscriptores. Dado que las suscripciones se crean de manera centralizada, este mtodo es ms seguro pero es necesario que los suscriptores se conecten cuando la rplica tiene lugar. Las suscripciones de extraccin se crean en el suscriptor. En primer lugar, el publicador debe haber habilitado este tipo de suscripciones y haber registrado al suscriptor, o bien haber permitido las suscripciones annimas. Por lo general, este sistema es menos seguro, pero permite al suscriptor controlar cundo se reciben las actualizaciones, hacindolo ms adecuado para aquellos sitios que se conectan con poca frecuencia. Puede tener una suscripcin de extraccin en una publicacin y una de insercin en otra.
Agentes de rplica
Los agentes de rplica controlan todo el proceso de rplica. Estos agentes se configuran cuando se define la solucin de rplica. Al implementar la rplica, debe especificar en qu instancias de SQL Server se ejecutarn los agentes de rplica. SQL Server 2008 proporciona los siguientes agentes de rplica: Agente SQL Server Agente de instantneas Agente de registro del LOG Agente de lectura de cola Agente de distribucin Agente de mezcla
Escenarios de rplica
Escenarios de rplica de servidor a servidor
Hay muchas situaciones en las que la rplica de servidor a servidor ser beneficiosa para una organizacin. En este tema se describen algunas de las ms comunes.
Pg. 148
danielramoscastaneda@hotmail.com
SQL Administracin
SQL Administracin
danielramoscastaneda@hotmail.com
Pg. 149
Intercambiar datos con usuarios mviles Los usuarios mviles requieren a menudo copias de informacin de la empresa cuando trabajan fuera de ella. Muchos de ellos incluso realizan pedidos o actualizan registros mientras estn fuera de la oficina. Los dispositivos que usan abarcan desde dispositivos de mano a equipos porttiles de gran capacidad. Es posible realizar rplicas desde y hacia estos dispositivos mviles de Windows y, en funcin del hardware, sincronizar de forma inalmbrica con los usuarios mviles. Aplicaciones de punto de venta (POS) del consumidor Hay muchas aplicaciones que los consumidores usan directamente, como las ATM, o indirectamente, como los terminales de cajeros. Todas estas aplicaciones necesitan datos de un origen central y realizan actualizaciones que se vuelven a replicar en los servidores centrales. Al usar la rplica, puede mejorar la autonoma y la escalabilidad. Integrar datos de varios sitios Muchas empresas tienen oficinas regionales que no necesitan que se estn ejecutando los servidores, pero s que necesitan los datos de la oficina central y realizar modificaciones que se repliquen de nuevo posteriormente. SQL Server puede instalarse en Windows XP y la rplica puede realizarse entre esas estaciones de trabajo y los servidores de la oficina central.
Pg. 150
danielramoscastaneda@hotmail.com
SQL Administracin