Sql Server - Automatización

  • Published on
    19-Jun-2015

  • View
    1.307

  • Download
    0

Transcript

Sql ServerAutomatizacin

Fundamentos gran cantidad de tareas administrativas se pueden automatizar en Sql Server cualquier cdigo Transact-Sql tareas de rplica copias de seguridad creacin de ndices generacin de informes

la capacidad de automatizacin de Sql se debe al servicio Agente Sql Server este servicio solo realiza dos tareas automatizacin rplica

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

Configuracin de servicio Agente ejecutar el servicio Management Studio icono del Agente Sql server rojo o verde

Administrador de configuracin de Sql Server Servicios del Panel de Control

Configuracin correo electrnico Sirve para enviar mensajes de conrreo electrnico para los servicios SQL Server Utiliza un protocolo simple de transferencia de correo SMTP simple mail transfer protocol

la aplicacin que gestiona el correo es SQLiMail90.exe

Pasos cuando se solicita que se enve un correo electrnico aade 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 Administracin Correo electrnico BD boton derecho Configurar correo electrnico BD Pantalla Bienvenida - Siguiente

Pagina Seleccioanr tarea de configuracin Activamos Instalar Correo electrnico 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 descripcin como quieras

Informacin Servidor de correo saliente informacin segn 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 pblico para que todos los usuarios tengan acceso activamos como perfil predeterminado

Pgina Configurar parmetros 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 electrnico 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 electrnico de Sql Server

Creacin de operadores Configuramos parmetros para que Sql Server contacte con nosotros cuando haya problemas con quien contactar cuando cmo 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 envan 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 diseado 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

Creacin 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 diseados 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 cdigo 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 TSQL 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 opcin : VBScript

Comando sub main() Print funciona el trabajo end sub Aceptar

Pagina programaciones nuevo Nombre : Sacar mensaje Tipo programacin : una vez Aceptar

podemos activar una notificacin 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 lneas 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

Creacin 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 administracin de Windows WMI windows management instrumentation

Alertas basadas en error estndar 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= Espaol ; 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 daar 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 condicin 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 tecnologa WMI

Planes de mantenimeinto muchas tareas reorganizar indices reducir tamao de ficheros BD copias de seguridad registro transacciones deben hacer con maximo rendimeinto servidor sin problemas fuera de horario de trabajo

Management Studio Servidor Administracin boton derecho Planes de mantenimiento Asistente nombre Servidor Autentificacin

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 cmo debemos reducir Bd cuando tenga un tamao demasiado grande cuando reducirla y si liberamos espacio

Pagina reorganizar indice para qu objetos reorganizas los indices recuerda 8kb es la unidad mnima

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