Está en la página 1de 73

Sql Server

Automatización
Fundamentos
• gran cantidad de tareas administrativas se
pueden automatizar en Sql Server
– cualquier código Transact-Sql
– tareas de réplica
– copias de seguridad
– creación de índices
– generación de informes
• la capacidad de automatización de Sql se debe
al servicio Agente Sql Server
– este servicio solo realiza dos tareas
• automatización
• réplica
Componentes del servicio Agente
• Alertas
– mensaje de error o evento
– se pueden enviar por:
• mail
• localizador
• NET SEND
• Operadores
– usuarios que reciben las alertas
• Trabajos
– pasos que define la tarea a automatizar
Configuración de servicio Agente
• ejecutar el servicio
– Management Studio
• icono del Agente Sql server
– rojo o verde
– Administrador de configuración de Sql Server
– Servicios del Panel de Control
Configuración correo electrónico
• Sirve para enviar mensajes de conrreo
electrónico para los servicios SQL Server
• Utiliza un protocolo simple de transferencia de
correo
– SMTP
• simple mail transfer protocol
• la aplicación que gestiona el correo es
SQLiMail90.exe
Pasos
• cuando se solicita que se envíe un correo
electrónico
• añade solicitud a cola de Service Broker
– necesitamos un servidor correo SMTP
• podemos usar cuenta de proveedor de servicios de
Internet
• Abrimos Management Studio
• Explorador Objetos – Administración – Correo
electrónico BD – boton derecho – Configurar
correo electrónico BD
• Pantalla Bienvenida - Siguiente
• Pagina Seleccioanr tarea de configuración
– Activamos Instalar Correo electrónico BD
– Siguiente
• Pagina nuevo perfil
– creamos un nuevo perfil y la asociamos a una
cuenta del servidor de correo
• Nombre de perfil : SQLAgentProfile
• Cuentas SMTP – Agregar
• Nombre cuenta y descripción …como quieras
• Información Servidor de correo saliente
– información según ISP
• Direccion correo : juan@hotmail.com
• Nombe a mostrar : juan
• Correo de respuesta: juan@hotmail.com
• nombre servidor: smtp.hotmail.com
• puerto : 25

• Aceptar
– cuenta aparece en listado Cuentas SMTP
• Pagina Administrar seguridad del perfil
– activas perfil público
• para que todos los usuarios tengan acceso
• activamos como perfil predeterminado
• Página Configurar parámetros del sistema
– aceptamos los varlores predetermiandos
• finalizar
Agente Sql SErver
• Ahora debemos configurar el Agente SQL
Server para que use el perfil que hemos
configurados
• Explorador objetos – boton derecho en Agente SQL Server
– Propiedades
• Pagina Sistema alerta
– activas Habilitar perfil de correo
– lista Sistema de correo
• Seleccionamos Correo electrónico de BD
– lista Perfil de correo
• seleccionas SqlAgentProfile
• Aceptar
• NO olvides detener y reiniciar el servicio del Agente Sql
Server
• Ya está correctamente configurado
• Para utilizarlo debemos crear operadore que
reciban correo electrónico de Sql Server
Creación de operadores
• Configuramos parámetros para que Sql Server
contacte con nosotros cuando haya problemas
– con quien contactar
– cuando
– cómo
• correo electronico
• localizador
• NET SEND
– mensajes que se mandan entre equipos y se abren en la pantalla del
usuario en un cuadro de dialogo
– sobre qué problemas se envían alertas
• El operador es el objeto que nos permite
configurar todo esto
Configurar operador
• Management Studio
• Explorador objetos – expandimos servidor – Agente Sql
Server
• Operadores – boton derecho Nuevo operador
– Nombre : Administrador
– Nombre de correo electronico : su cuenta de correo si
hemos confiturado el sistema para que use el correo
de bases de datos
– Nombre de equipo en Net Send
• Escritorio – mi pc – boton derecho Propiedades – Nombre
de equipo – id de red
– formacion.domain.com
» el nombre de equipo es formacion
• en parte inferior
– dias y horas disponibles para este operador
– luego vemos notificaciones
– Aceptar
• si dejamos por error algun tiempo sin cubrir
no se enviará el operador durante este
periodo
– solucion
• crear un operador a prueba de errores
– diseñado para recibir las alertas cuando no haya otro
programado
Crear operador a prueba de errores

• Management Studio – Agente – boton


derecho – Propiedades
• Pagina sistema de alerta – activas habilitar
operador a prueba de errores
– lista Operador : Administrador
– activas casilla Net Send
– Aceptar
Creación de trabajos
• serie de tareas que se pueden automatizar
para ejecutarse cuando sea necesrio
– podemos notificar resultado de un trabajo
• usamos un operador
Crear trabajos de servidor local
• trabajos locales son trabajos estandar con
unos pasos y programaciones
– diseñados para ejecutarse en equipo en que se
crean
Ejemplo
• Crear una base de datos y una copia de
seguridad
– Management Studio
– Explorador objetos – Agente Sql Server
– Trabajos – boton derecho – Nuevo
• Nombre : crear Control de BD
• Pagina Pasos
– Nuevo paso
• Nombre : Crear BD
• tipo como T-Sql
– Base de datos master
– Comando
– CREATE DATABASE EJEMPLO ON
– PRIMARY (NAME=ejemplo_dat,
– FILENAME=‘c:\ejemplo.mdf’,
– SIZE=10MB,
– MAXSIZE=15,
– FILEGROWTH=10%)
• clic en analizar para verificar que esta el
código bien escrito
• Pagina avanzado
– Accion en caso de éxito
• ir a siguiente paso
– Accion en caso de error
• Salir del trabajo e informar del error
• Creamos el segundo paso
– Nuevo
– Nombre : copia Seguridad
– secuencia de comandos – T-SQL
• EXEC sp_addumpdevice ‘disk’, ‘Test_Backup’,
‘c:\Test_Backup.dat’
• BACKUP DATABASE EJEMPLO TO Test_Backup

• Aceptar
• Pagina programaciones
– nuevo
• creamos una programacion que indique cuando debemos
activar el trabajo
• Nombre de paso : Crear y hacer copia
• Tipo de programacion : una vez
– hora que quieras

– Aceptar
• Pagina notificaciones
– activamos casillas
• Correo
• Net Send

• Administrador como operador a informar


• activamos si el trabajo termina

• Aceptar para crear trabajo


• Sale todo OK??
• No solo podemos programar instrucciones T-
SQL
– tb JavaScript, VBScript, perl….
Ejemplo
• Management – Studio – Expandimos servidor
– Agente Sql Server – Trabajos – boton
derecho – nuevo trabajo
– nombre: Test VB
– Pagina pasos
• nuevo
• nombre paso: imprimir
• Tipo : Secuencia comandos ActiveX
• boton opción : VBScript
• Comando
– sub main()
– Print “funciona el trabajo”
– end sub

– Aceptar
• Pagina programaciones
– nuevo –
– Nombre : Sacar mensaje
– Tipo programación : una vez
– Aceptar
• podemos activar una notificación pero SQL
lleva un historial de todos los trabajos
– cuando se activan
– si se ejecutan ok o no
– estado de cada paso del trabajo…
Historial del trabajo
• Verificar si un trabajo se ha ejecutado con
éxito
– Management Studio – trabajo que quieras – boton
derecho – Ver historial
• clic en +

• el historial de cada trabajo se guarda en BD msdb


• por defecto se pueden almacenar 1000 líneas de
historial y cada trabajo puede ocupar 100 de esos
registros
Cambiar opciones historial
• Management Studio
– Agente – boton derecho – Propiedades
– pagina Historial
• cambia las opciones

• Aceptar
Crear trabajos multiservidor
• Management studio – Explorador de objetos –
Agente – boton derecho – Administracion
multiservicio y hacer que sea principal

– Seleccionar servidores de destino y credenciales


para acceder
Creación de alertas
• las alertas se activan cuando se produce un
evento
– normalmente un problema
• ejemplo
– registro de transacciones se complete erroneamente

– se pueden enviar a un operador para que se encargue de ellas


• cada error que se produce en SQL tiene un numero
– existen unos 3000
– podemos crear nuestras alertas

– cada error tiene un nivel de gravedad


• 10 – informativo
• 17- sql sin recursos
• 18 – error interno no grave
• 24 – error de hardware
Generacion de alertas
• a partir de contadores de rendimiento
– Monitor de rendimeinto
• utiles para problemas de rendimiento
• alertas basadas en eventos del Instrumental
de administración de Windows
– WMI – windows management instrumentation
Alertas basadas en error estándar
• error integrado en Sql
• crear una alerta basada en uno de estos eventos
– el error se debe escribir en registro de sucesos de
Windows
– Agente Sql lee los errores ahí
• luego busca en la base msdb su alerta correspondiente
• la activa
• informa al operador
• ejecuta el trabajo asociado
Crear alerta basada en error estandar

• Management Studio – Servidor – Agente –


boton derecho – Alertas – nueva alerta
– Nombre : alerta nuestra
– tipo : alerta de evento de sql server
– todas las BD
– no puedes activar errores por debajo 13000
• pones el que quieras
• Pagina respuesta
– notificar a operadores
• activa lo que quieras

• Pagina opciones
– incluir texto de error en alerta
» donde quieras

» podemos poner todo en net Send para ver qué sale

• Aceptar
• tenemos una alerta que se activa cuando se
produzca el error con el numero tal
– generamos el error con el comando RAISERROR()
• Nueva consulta
– RAISERROR(numeroerror, 10,1)

– ejecuta a ver…
Modificar mejor
• Propiedades de tu alerta
– pagina Respuesta
• ejecutar trabajo
– busca un trabajo… el que quieras
– Aceptar

– ejecuta otra vez la consulta.


• a ver el mensaje ahora…
Alertas basadas en errores personalizados

• todo igual que antes pero tienes que


personalizar el mensaje de un error concreto
• debes modificar ese mensaje en la master…
• Nueva consulta
– USE master
– GO
– EXEC sp_addmessage @msgnum=50300.
@severtity=10, @msgtext=N’error personalizado’,
@with_log=‘TRUE’, @lang=‘Español’;
– GO
• haces una nueva alerta con el mismo numero
de error
• ejecuta RAISERROR
– con el numero…

– sale un mensaje personalizado


• claro, usando net send
Alertas de rendimiento
• permiten detectar problemas antes que
puedan dañar al sistema
• se basan en contadores de rendimento del
programa Monitor de rendimiento de
windows
– ofrecen estadisticas de los componentes de Sql y
actuan sobre ellos
• ejemplo
– error de registro de transacciones completo
• cuando un registro de transacciones se
completa al 100%
– ningun usuairo puede acceder a la BD
• encontrar el problema antes de que se produzca
– por ejemplo al 80%
Crear alerta de rendimiento
• Management Studio – servidor – Agente Sql
Server – boton derecho – alertas – nueva
– Nombre: alerta rendimeinto
– Tipo: Alerta de condición de rendimiento Sql
– Objeto : sqlServer:DataBases
– Contador : percent log used
– Instancia: la que quieras
– activamos alertar si contador está por debajo 100
• pagina respuesta
– notificar a operadores
– Aceptar
• funciona???
Alertas WMI
• instrumental administracion de Windows
– crear alerta que se activa cunado se emita un
comando ALTER LOGIN
• para administrar seguridad

• tb con CREATE TABLE


Crear Alerta WMI
• Management Studio – Servidor – Agente – boton
derecho – Alertas – Nueva
– Nombre : alerta WMI
– Tipo : alerta evento WMI
– Espacio de nombres
• \\.\root\Microsoft\SqlSERver\ServerEvents\MSSQLServer
• en Consulta
– Select * from DDL_DATABASe_LEVEL_EVENTS
– where DatabaseName=‘Northwind’
• Pagina respuesta
– notificar

• Pagina opciones
– incluir texto de error de la alerta en
• net send
• Nueva consulta
– use tu base de datos
– ALTER TABLE la tabla que quieras
– ADD una nueva columan varchar(20) null

– ejecuta
– sale la alerta???
• puedes ahora eliminar la columna
– use tu base de datos
– ALTER TABLE la misma tabla
– DROP COLUMN la misma columna

– sale otra vez???


• alertas WMI son similares a los
desencadenadore
• utilizan la misma tecnología WMI
Planes de mantenimeinto
• muchas tareas
– reorganizar indices
– reducir tamaño de ficheros BD
– copias de seguridad
– registro transacciones

– deben hacer con maximo rendimeinto


– servidor sin problemas
• fuera de horario de trabajo
• Management Studio – Servidor –
Administración – boton derecho – Planes de
mantenimiento – Asistente

– nombre
– Servidor
– Autentificación
• Pantalla Selecciona tareas de mantenimiento
– activa todos y luego le dices el orden…
– a tu gusto
• en todas las bases de datos o en algunas…

• Pagina Definir tarea reducir BD


– cómo debemos reducir Bd cuando tenga un
tamaño demasiado grande
• cuando reducirla y si liberamos espacio…
• Pagina reorganizar indice
– para qué objetos reorganizas los indices
– recuerda 8kb es la unidad mínima
• Pagina Actualizar estadisticas
– importante
• optimizador de ocnsultas utiliza estadisticas para
determinar qué indice debe usarse para devolver
resultados de una consulta
• Pagina definir tarea Limpieza del historial
– todas las tareas realizadas por el plan de
mantimiento se registran en msdb
– es el historial
– se puede reducir
• Pagina seleccionar propiedades del plan
– programar el plan
• automatico o cuando se solicite

– Opciones de informe
• en un fichero txt
• es interesante boton derecho en plan
– ver historial del plan

También podría gustarte