Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Administracinymantenimientodebasededatos
Administracinymantenimientodebasededatos
Bsica y
Mantenimiento de Base
de Datos en MS-SQL
Por: Rafael Plcido
1. Introduccin a queries y
vistas de sistema:
Uso de Managament Studio, Intellisense y
Object explorer.
Statment Select, tablas, vistas dinmicas y
stores procedures del sistema.
Profiler y uso de Traces.
Que es el SELECT?
Es un estado en SQL el cual nos permite extraer informacin de 1 o ms
tablas a travs de un conjunto de resultados.
El SELECT nos especifica exactamente que vamos a obtener y de donde.
SELECT y FROM trabajan juntos.
FROM es el estado de donde vamos a obtener los resultados pueden ser
tablas o vistas.
1. Introduccin a queries y
vistas de sistema:
Tablas, Vistas y Stores Procedures del Sistema.
Tablas del sistema:
Vistas de catlogo
Vistas de esquema de informacin
Vistas de compatibilidad
Vistas de replicacin
Funciones y vistas de administracin dinmica
Vistas de aplicacin de capa de datos (Transact-SQL)
1. Introduccin a queries y
vistas de sistema:
Vistas de catlogo
Las vistas de catlogo devuelven informacin utilizada por el Motor de base de datos de SQL
Server. Microsoft recomienda utilizar las vistas de catlogo porque son la interfaz ms general
para los metadatos del catlogo y proporcionan el mtodo ms eficaz para obtener,
transformar y presentar formas personalizadas de esta informacin.
Vistas de catlogo del seguimiento de cambios: tablas de change data capture
Vistas de catlogo de mensajes de error: mensajes internos de error
Vistas de catlogo del ensamblado CLR: emsables de .net
Vistas de catlogo de objetos: obejtos en la instancia
Vistas de catlogo de archivos y bases de datos: archivos file de la base de datos
Vistas de catlogo de la funcin de particin: particin de tablas o de archivos de la base de datos
Vistas del correo electrnico de base de datos: vistas de los datos database mail
Vistas de la administracin basada en directivas: tablas con respectos a las polticas en la instancia.
1. Introduccin a queries y
vistas de sistema:
Vistas de catlogo de creacin de reflejo de la base de datos (Transact-SQL): alta disponibilidad
mirror.
Vistas de catlogo del regulador de recursos: tablas del gobernador de recursos
Vistas de catlogo del recopilador de datos: tablas de data collector
Espacios de datos: tablas de espacio ocupados en disco.
Vistas de catlogo de esquema: tablas sobre los esquemas y sus cambios
Vistas de catlogo de seguridad: las tablas con roles de seguridad de servidor y de base de datos
Vistas de catlogo de eventos extendidos: las tablas los eventos extendidos.
Vistas de catlogo de propiedades extendidas: las tablas con respecto a propiedas extra en la
base de datos.
Vistas de catlogo de la configuracin del servidor: tablas de la configuracin de la instancia
Vistas de catlogo de FileTable: tablas respecto a filestream
Vistas de catlogo de esquemas XML: tablas respecto sistema de tipo XML
Vistas de catlogo relacionadas con la bsqueda de texto completo y la bsqueda semntica:
tablas respecto a diccionario de datos y ndices de busqueda completa.
1. Introduccin a queries y
vistas de sistema:
Vistas de esquema de informacin
Estas vistas nos dan informacin de los metadatos dentro del motor de SQL ,
esto permite que las aplicaciones funcionen correctamente aunque se hayan
hecho cambios importantes dentro de las aplicaciones.
Los siguientes son los tipos de vista que hay:
CHECK_CONSTRAINTS, REFERENTIAL_CONSTRAINTS y
CONSTRAINT_COLUMN_USAGE: nos sirve para ver los diferentes constraints
sus tabalas a las que hacen referencias el uso de sus columnas.
COLUMN_DOMAIN_USAGE y COLUMN_PRIVILEGES: nos rive para ver que
tablas estn las columnas, el uso de estas columnas y quien tiene privielgios
para verlas y usarlas.
ROUTINES y ROUTINE_COLUMNS: funciona para obtener informacin de las
funciones con valores de tabla.
COLUMNS nos da informacin de las columnas en las tablas.
1. Introduccin a queries y
vistas de sistema:
SCHEMATA: nos da informacin de los schemas contenidos en la base de
datos.
TABLE_CONSTRAINTS, TABLE_PRIVILEGES y CONSTRAINT_TABLE_USAGE:
nos da informacin de los constraints de tablas, los priveligios que tienen
y los porcentajes de uso de las tablas.
TABLES: nos da informacin de las tablas y su uso.
VIEW_COLUMN_USAGE, KEY_COLUMN_USAGE y VIEW_TABLE_USAGE: nos
comenta el uso de los diferentes objetos como las tablas, las vistar y las
llaves.
VIEWS estas vistas de sistemas nos dan informacin acerca de las
diferentes vistas que existen en la base de datos.
PARAMETERS estas vistas devuelven informacin de las funciones o stores
procedures definidos por el usuario a los cuales se puede tener acceso.
1. Introduccin a queries y
vistas de sistema:
Funciones y vistas de administracin dinmica
Las funciones y vistas de administracin dinmica devuelven
informacin sobre el estado del servidor que se puede utilizar para
controlar el estado de una instancia del servidor, para diagnosticar
problemas y para optimizar el rendimiento.
Hay dos tipos de funciones y vistas de administracin dinmica:
Funciones y vistas de administracin dinmica con mbito en el
servidor. Se requiere el permiso VIEW SERVER STATE en el servidor.
Funciones y vistas de administracin dinmica con mbito en la base
de datos. Se requiere el permiso VIEW DATABASE STATE en la base
de datos.
1. Introduccin a queries y
vistas de sistema:
Las funciones y vistas de administracin dinmica estn organizadas en las categoras
siguientes.
Funciones y vistas de administracin dinmica relacionadas con E/S
Vistas de administracin dinmica relacionadas con la captura de datos modificados
Vistas de administracin dinmica de tablas optimizadas en memoria
Vistas de administracin dinmica relacionadas con el seguimiento de cambios
Funciones y vistas de administracin dinmica relacionadas con objetos
Vistas de administracin dinmica relacionadas con Common Language Runtime
Vistas de administracin dinmica relacionadas con notificaciones de consulta
Vistas de administracin dinmica relacionadas con la creacin de reflejo de la base de
datos
Vistas de administracin dinmica relacionadas con la replicacin
Vistas de administracin dinmica relacionadas con la base de datos
Vistas de administracin dinmica del regulador de recursos
1. Introduccin a queries y
vistas de sistema:
Funciones y vistas de administracin dinmica relacionadas con ejecuciones
Vistas de administracin dinmica relacionadas con la seguridad
Vistas de administracin dinmica de eventos extendidos
Vistas de administracin dinmica relacionadas con Service Broker
Vistas de administracin dinmica de secuencia de archivo y FileTable
(Transact-SQL)
Vistas de administracin dinmica relacionadas con el sistema operativo SQL
Server
Vistas de administracin dinmica relacionadas con la bsqueda semntica y
bsqueda de texto completo
Funciones y vistas de administracin dinmica relacionadas con transacciones
Funciones y vistas de administracin dinmica relacionadas con ndices
1. Introduccin a queries y
vistas de sistema:
Profiler y uso de Traces.
El SQL Profiler es una interfaz de SQL para campturar eventos para crear y
administrar traces y para analizar y volver a ejecutar los resultados del trace.
Los eventos son salvados en un archivo trace que despus puede ser
analizado o volverlo a repetir una serie de pasos para intentar diagnosticar
problemas de lgica o de performance.
Se puede utilizar para monitorear varias reas de mucha actividad como:
Analizar y Debuggear estados de SQL y Store Procedures.
Monitorear Performance Lento
Anlisis de Stress
Tunning de Indices
Auditoria y Revisiones de Seguridad.
1. Introduccin a queries y
vistas de sistema:
En la siguiente imagen se ve la configuracin de la instancia, la versin, el nombre
del trace, el template que se usa para saber que se va buscar, el archivo donde se
va a guardar o la tabla donde se va a guardar el trace y el tiempo que se va a
ejecutar el trace.
1. Introduccin a queries y
vistas de sistema:
Se pueden escoger varios eventos a monitorear en el trace como
los siguientes:
Conexiones logins, fallos de conexin y desconexiones.
Estados de T-SQL SELECT, INSERT, UPDATE y DELETE.
Status de conexiones Batch de Remote Procedure Call (RCP).
El inicio o el fin de un store procedure.
El inicio o el fin de un batch de SQL
Un error escrito en el SQL Server Error Log.
El inicio o fin de un Lock en un objeto de base de datos.
Cuando se abre un cursor.
Checks de permisos de seguridad.
1. Introduccin a queries y
vistas de sistema:
Event Class
Un Event Class es un tipo de evento que puede ser trazado, este evento contiene
todos los datos que pueden ser reportado por dicho evento.
Estos son ejemplo de estos eventos:
SQL Batch Completed
Audit Login
Audit Logon
Lock: Acquired
Lock: Relesased
Tambin existen sobre las columnas filtros para solo obtener la informacin que
necesitamos como el id de la base de datos, cierto nombre de procedimiento o
funcin, una conexin especifica o algn objeto de la base de datos que estemos
utilizando.
1. Introduccin a queries y
vistas de sistema:
2. Administracin de bases de
datos
Configuraciones de memoria, procesador
configuracin del servidor, seguridad y opciones
avanzadas y mejores prcticas.
Configuration manager: configuracin de cuentas
de arranque, banderas de arranque, modo de un
solo usuario y opciones.
2. Administracin de bases de
datos:
Configuraciones de memoria, procesador configuracin del
servidor, seguridad y opciones avanzadas y mejores
prctica.
Configuracin del Servidor.
Hay muchas formas de configurar el servidor pero siempre se recomienda seguir las
mejores practicas de Microsoft y despus las mejores practicas de las aplicaciones
dependiendo de su uso.
La configuracin Bsica comienza primero por desfragmentar el Disco duro antes de hacer
una instalacin de SQL Server pero si no se hizo esto antes se debe tener mucho cuidado
al hacerla despus por que puede afectar el motor de la base de datos.
Hay muchas formas de accesar a la informacin de la instancia pero es necesario para
saber cual es el estado actual y poderla configurar correctamente.
Hay 5 Aspectos primordiales en la configuracin inicial:
Memoria, Procesadores, Seguridad & Conexiones, Tempdb y espacio a disponer de las diferentes
Base de Datos con respecto al disco duro.
2. Administracin de bases de
datos:
2. Administracin de bases de
datos:
Memoria
La memoria es parte fundamental en una Instancia de base de datos y
debe estar correctamente balanceada entre la instancia de base de datos y
el servidor dependiendo de cuanta capacidad tenga el servidor y para que
sea usado.
Se recomienda como minimo 2 GB para el Sistema Operativo del Servidor y
se agrega aproximadamente 1 GB por cada aplacin extra que este usando
el servidor excepto si es Directorio Activo que no se recomienda que este
junto Instancia de SQL Server ya que son aplicaciones demandantes y
puede colapsar el Servidor.
Si se tiene 2 instancias o mas se balancea dependiendo la carga de cada
instancia. Por ejemplo si tienes 10 GB se recomienda 2 para el servidor y
podra ser 4 GB para la primera y 4GB para la otra o si una transaccional y
la otra de lectura podran ser 6 GB y 2 GB como mximos respectivamente.
2. Administracin de bases de
datos:
2. Administracin de bases de
datos:
Tambin se debe cambiar la configuracin de la Memoria Virtual en el
Servidor se debe cambiar entre 2 GB y 4 Gb ya que mas grande afectara el
tamao del archivo de Lectura dentro del disco duro y seria ms lento de lo
habitual.
2. Administracin de bases de
datos:
Procesadores
La configuracin de los procesadores es un proceso muy delicado y se recomienda no cambiar
la configuracin predeterminada, ya que algunos valores podran desestabilizar el servidor o
podran hacer que el Servidor de SQL se comporte de forma errtica.
La configuracin de mscara de afinidad hace referencia a cmo firmemente un subproceso
est enlazado a ninguna CPU en concreto.
En la prctica, si cambia la configuracin de mscara de afinidad de la predeterminada slo
en raras ocasiones ayuda a rendimiento y con frecuencia se degradar el rendimiento.
De manera predeterminada, la configuracin de subprocesos de trabajo mximo es de 255
en SQL Server Por lo tanto, hasta 255 trabajo se pueden crear subprocesos. De forma
predeterminada, la configuracin de subprocesos de trabajo mximo es 0 en SQL Server
2005 y SQL Server 2008.
Las afinidades de Procesador y de I/O es para definir la multitareas con los diferentes
procesadores que se tienen ya que puede administrar cargas complejas para poder hacer
cargas complejas, esta parte de pende mucho de cuantos procesadores se tenga.
Se podra mejorar configuraciones con Gobernador de Recursos y/o configuraciones de
paralelismo para configurar la carga de queries por procesador.
2. Administracin de bases de
datos:
2. Administracin de bases de
datos:
Seguridad & Conexiones
La seguridad es una parte muy amplia en una la instancia de SQL Server.
Pero se debe de tener muy en cuenta muchos aspectos como la
encriptacin de datos importantes con transparent data encryption o
revisar la parte con polticas de seguridad (Policies) y tener en cuenta
auditorias para ver quienes cambian datos o conexiones que no sean en
horas fuera de operacin.
En esta parte hablaremos de la seguridad bsica sobre la instancia a
travs de que tipo de autenticacin se tiene para poder accesar a este
servidor.
Las 2 autenticaciones posibles son:
Windows Authetication Mode
SQL Server and Windows Authentication Mode
2. Administracin de bases de
datos:
Se recomienda usar solo la autenticacin de Windows que
depende del DA(Directorio Activo), pero la mayora de las
aplicaciones utilizan la configuracin mixta y aqu se debe tener
cuidado con los logins encriptarlo y manejar buenas cuentas de
logins de seguridad, mas una buena encriptacin y un correcto
monitoreo y cuidado del puerto 1433 que es el default de la
instancia de SQL Server.
El login audit es si se quiere saber en log de errores que cuentas
se estn logeando al servidor y en que momento y puede a ver
diferentes circunstancias pero esto en caso de que se quiera
hacer auditorias y se estn generando conexiones no
autorizadas. Para esto tambin existe c2 audit que es muy
pesado para el servidor o triggers de auditoria.
2. Administracin de bases de
datos:
2. Administracin de bases de
datos:
Las conexiones a la Instancia de SQL Server son por el puerto 1433 y
1434 las de servicios de Integracin.
En esta parte se debe tener priviliegios abiertos para estos puertos en el
firewall o no se podra accesar a la Instancia de SQL.
Este puerto se puede configurar en la parte de Configuration Manager.
Tambin se puede configurar el numero mximo de concurrencias en el
servidor por default es 0.
Tambin hay diferentes opciones por default para conexiones para stores
procedures, funciones vistas y tablas. Tanto ansi como especiales dentro
del motor de SQL.
Tambien se permite mantener por default la conexin durante 600s (10
min.) esto puede ser configurable pero estas opciones se recomiendan
que no se modifiquen.
2. Administracin de bases de
datos:
2. Administracin de bases de
datos:
Tempdb
La Base de datos Tempdb es la base de datos del sistema a la cual todos los
usuarios tienen acceso y realiza las siguientes funciones:
Almacena Objetos que se crearon explcitamente: tablas temporales locales o
globales, store procedures temporales, variables tablas or cursores.
Objetos Internos que fueron creados por el motor de SQL como: tablas de trabajo
para almecenar instantneamente la informacin por forma como se acomodan.
Versiones de filas que son modificadas en las transacciones UDI.
Versiones de filas modificadas por transacciones generadas por operaciones de
ndices en lnea y son afectadas despus por un trigger after.
Esta base depende de dos archivos fsicos que se crean en las bases de datos
de sistema un archivo .mdf y un archivo . Ldf y estos se generan y configuran
automticamente cuando se hace la instalacin de SQL Server.
2. Administracin de bases de
datos:
La mejor practica es generar mas archivos para la tempdb si se tienen el espacio en
disco duro, se generan tantos archivos como se tenga de procedador con un mximo
de 8 archivos y el tamao inicial es de 2 GB se cambia el autogrow por 100mb y se
deja hasta un mximo de 4 GB.
2. Administracin de bases de
datos:
Las diferentes base de datos tambin se deben configurar dependiendo del espacio
disponible cuando son bases pequeas se genera Autogrow de 10% cuando ya son
base de datos muy grandes se deben generar del 30% pero con relacin a megas o
gigas y se deben segmentar en MDF y NDF para poder ser movidas a otros discos
duros y mejorar su performance, a esto tambin los modelos de base de datos si son
simples, completas o bulk logged.
2. Administracin de bases de
datos:
Configuration manager: configuracin de cuentas de
arranque, banderas de arranque, modo de un solo
usuario y opciones.
Mantenimiento
Se puede configurar de varias formas y tiempos los Planes de mantenimiento pero el
optimo es generar es revisar la integridad de la base de datos despus generar el back
up si es es entre semana reorganizar ndices y actualizar estadsticas. si son fines de
semana reconstruir ndices y la limpieza de los historiales y mantenimientos una vez por
mes.
3. Jobs y Planes de
Mantenimiento
Planes de mantenimiento principales: backup,
integridad, ndices y mejores practicas.
Hay varias tareas principales para generar un plan de
mantenimiento entre ellas:
La Tarea de Backup de Base de datos.
La Tarea de Check database Integrity
Reorganizar Indices
Reconstruir Indices
Actualizacin de Estadsticas
Notificar al Operador
Limpieza del Historial
3. Jobs y Planes de
Mantenimiento
La tarea de Back Up de Base de Datos
Esta es la encarga de hacer automticamente un back up ya se full, diferencia o
transaccional de 1 o de multiples bases de datos. Esto puede ser en la instancia
local o en otra instancia solo se selecciona la ubicacin el archivo y si se quiere
verificar la integridad del back up cuando finaliza.
3. Jobs y Planes de
Mantenimiento
La Tarea de Check database Integrity
Esta tarea esta encargada de revisar que no tenga errores de integridad
la base o bases de datos y esto puede incluir los ndices. Esta funcin
nos sirve para saber que la informacin no esta corrupta y sea verdica.
3. Jobs y Planes de
Mantenimiento
Reorganizar ndices
La reorganizacin de ndices debe hacer cuando la fragmentacin
es menor al 15 % y se recomienda hacerlo diario puede ser de
tablas o de vistas o de ambos.
3. Jobs y Planes de
Mantenimiento
Reconstruir ndices
La reconstruccin de ndices se hace 1 vez por semana y se haces despus de que la
fragmentacin rebasa el 15 % del ndice, se pueden hacer 1 o multiples base de datos
tambin se puede hacer la reconstruccin en lnea y se dejar un espacio para que las
paginas dentro del ndice no se llenen completamente o el default que esta
configurado por la instancia.
3. Jobs y Planes de
Mantenimiento
Actualizacin de Estadsticas
La Actualizacin de estadsticas es para genera nueva informacin acerca de que
columna es la mas ocupada o menos ocupada dentro de una tabla de SQL. Se pueden
hacer actualizaciones de varias bases de datos o varias tablas o vistas o ambas, esto
puede ser solo algunas columnas o todas y puede ser un scaneo completo o parcial.
3. Jobs y Planes de
Mantenimiento
Limpieza del Historial
La limpieza del historial es limpiar el historial de back up, el historial del
agente y/o el historial de planes de mantenimiento esto puede ser con un
tiempo de das o se manas se recomienda hacerlo cada 4 semanas para
que no crezcan estas tablas de manera exponencial
3. Jobs y Planes de
Mantenimiento
Una buen practica es generar 2 planes de mantenimiento:
1. Con revisin de Integridad, reconstruccin de ndices, back up full, limpieza
de historiales. Este semanalmente.
2. Con revisin de Integridad, reorganizacin de ndices, back up diferencial o
transaccional y actualizacin de estadsticas. Este diariamente
3. Jobs y Planes de
Mantenimiento
Schedules como sirven y como configurar diferentes y
notificaciones al operador.
El Schedule es una parte muy importante ya que este nos indica cuando, a que hora,
cuantas y con que frecuencia se van a ejecutar esta secuencia de pasos.
Se pueden generar 1 o mas schedules para ejecutar los planes de mantenimiento.
3. Jobs y Planes de
Mantenimiento
Notificar al Operador
La notificacin al operador es cuando una tarea se ejecuto correctamente o no
dependiendo del flujo de datos estos se deben configurar con anterioridad con
el database mail y darlo de alta si no, no se pueden enviar correos. Tambien
se puede configurar para que mande un mensaje sms al operador pero
necesita un carrier de telefonia.
3. Jobs y Planes de
Mantenimiento
Las tablas que dan informacin acerca de los planes de
mantenimiento son las siguientes:
sysdbmaintplan_databases: Contiene una fila por cada base de datos que
tiene un plan de mantenimiento de bases de datos actualizado asociado.