Sql Server - Automatización

  • Published on
    19-Jun-2015

  • View
    1.307

  • Download
    0

Embed Size (px)

Transcript

<p>Sql ServerAutomatizacin</p> <p>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</p> <p> la capacidad de automatizacin de Sql se debe al servicio Agente Sql Server este servicio solo realiza dos tareas automatizacin rplica</p> <p>Componentes del servicio Agente Alertas mensaje de error o evento se pueden enviar por: mail localizador NET SEND</p> <p> Operadores usuarios que reciben las alertas</p> <p> Trabajos pasos que define la tarea a automatizar</p> <p>Configuracin de servicio Agente ejecutar el servicio Management Studio icono del Agente Sql server rojo o verde</p> <p> Administrador de configuracin de Sql Server Servicios del Panel de Control</p> <p>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</p> <p> la aplicacin que gestiona el correo es SQLiMail90.exe</p> <p>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</p> <p> Abrimos Management Studio Explorador Objetos Administracin Correo electrnico BD boton derecho Configurar correo electrnico BD Pantalla Bienvenida - Siguiente</p> <p> Pagina Seleccioanr tarea de configuracin Activamos Instalar Correo electrnico BD Siguiente</p> <p> 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</p> <p> 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</p> <p> Aceptar cuenta aparece en listado Cuentas SMTP</p> <p> Pagina Administrar seguridad del perfil activas perfil pblico para que todos los usuarios tengan acceso activamos como perfil predeterminado</p> <p> Pgina Configurar parmetros del sistema aceptamos los varlores predetermiandos</p> <p> finalizar</p> <p>Agente Sql SErver Ahora debemos configurar el Agente SQL Server para que use el perfil que hemos configurados</p> <p> 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</p> <p> lista Perfil de correo seleccionas SqlAgentProfile</p> <p> Aceptar NO olvides detener y reiniciar el servicio del Agente Sql Server</p> <p> Ya est correctamente configurado Para utilizarlo debemos crear operadore que reciban correo electrnico de Sql Server</p> <p>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</p> <p> sobre qu problemas se envan alertas</p> <p> El operador es el objeto que nos permite configurar todo esto</p> <p>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</p> <p> en parte inferior dias y horas disponibles para este operador luego vemos notificaciones Aceptar</p> <p> 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</p> <p>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</p> <p>Creacin de trabajos serie de tareas que se pueden automatizar para ejecutarse cuando sea necesrio podemos notificar resultado de un trabajo usamos un operador</p> <p>Crear trabajos de servidor local trabajos locales son trabajos estandar con unos pasos y programaciones diseados para ejecutarse en equipo en que se crean</p> <p>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</p> <p> Pagina Pasos Nuevo paso Nombre : Crear BD tipo como T-Sql Base de datos master Comando</p> <p> CREATE DATABASE EJEMPLO ON PRIMARY (NAME=ejemplo_dat, FILENAME= c:\ejemplo.mdf , SIZE=10MB, MAXSIZE=15, FILEGROWTH=10%)</p> <p> clic en analizar para verificar que esta el cdigo bien escrito</p> <p> Pagina avanzado Accion en caso de xito ir a siguiente paso</p> <p> Accion en caso de error Salir del trabajo e informar del error</p> <p> Creamos el segundo paso Nuevo Nombre : copia Seguridad secuencia de comandos T-SQL</p> <p> 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</p> <p> Nombre de paso : Crear y hacer copia Tipo de programacion : una vez hora que quieras Aceptar</p> <p> Pagina notificaciones activamos casillas Correo Net Send Administrador como operador a informar activamos si el trabajo termina Aceptar para crear trabajo</p> <p> Sale todo OK??</p> <p> No solo podemos programar instrucciones TSQL tb JavaScript, VBScript, perl .</p> <p>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</p> <p> Comando sub main() Print funciona el trabajo end sub Aceptar</p> <p> Pagina programaciones nuevo Nombre : Sacar mensaje Tipo programacin : una vez Aceptar</p> <p> 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</p> <p>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</p> <p>Cambiar opciones historial Management Studio Agente boton derecho Propiedades pagina Historial cambia las opciones Aceptar</p> <p>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</p> <p>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</p> <p> 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</p> <p>Generacion de alertas a partir de contadores de rendimiento Monitor de rendimeinto utiles para problemas de rendimiento</p> <p> alertas basadas en eventos del Instrumental de administracin de Windows WMI windows management instrumentation</p> <p>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</p> <p>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</p> <p> Pagina respuesta notificar a operadores activa lo que quieras</p> <p> Pagina opciones incluir texto de error en alerta donde quieras podemos poner todo en net Send para ver qu sale</p> <p> Aceptar</p> <p> tenemos una alerta que se activa cuando se produzca el error con el numero tal generamos el error con el comando RAISERROR()</p> <p> Nueva consulta RAISERROR(numeroerror, 10,1) ejecuta a ver</p> <p>Modificar mejor Propiedades de tu alerta pagina Respuesta ejecutar trabajo busca un trabajo el que quieras</p> <p> Aceptar ejecuta otra vez la consulta. a ver el mensaje ahora</p> <p>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</p> <p> Nueva consulta USE master GO EXEC sp_addmessage @msgnum=50300. @severtity=10, @msgtext=N error personalizado , @with_log= TRUE , @lang= Espaol ; GO</p> <p> haces una nueva alerta con el mismo numero de error ejecuta RAISERROR con el numero sale un mensaje personalizado claro, usando net send</p> <p>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</p> <p> 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%</p> <p>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</p> <p> pagina respuesta notificar a operadores Aceptar</p> <p> funciona???</p> <p>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</p> <p>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</p> <p> en Consulta Select * from DDL_DATABASe_LEVEL_EVENTS where DatabaseName= Northwind</p> <p> Pagina respuesta notificar</p> <p> Pagina opciones incluir texto de error de la alerta en net send</p> <p> Nueva consulta use tu base de datos ALTER TABLE la tabla que quieras ADD una nueva columan varchar(20) null ejecuta sale la alerta???</p> <p> puedes ahora eliminar la columna use tu base de datos ALTER TABLE la misma tabla DROP COLUMN la misma columna sale otra vez???</p> <p> alertas WMI son similares a los desencadenadore utilizan la misma tecnologa WMI</p> <p>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</p> <p> Management Studio Servidor Administracin boton derecho Planes de mantenimiento Asistente nombre Servidor Autentificacin</p> <p> Pantalla Selecciona tareas de mantenimiento activa todos y luego le dices el orden a tu gusto</p> <p> 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</p> <p> Pagina reorganizar indice para qu objetos reorganizas los indices recuerda 8kb es la unidad mnima</p> <p> Pagina Actualizar estadisticas importante optimizador de ocnsultas utiliza estadisticas para determinar qu indice debe usarse para devolver resultados de una consulta</p> <p> 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</p> <p> Pagina seleccionar propiedades del plan programar el plan automatico o cuando se solicite</p> <p> Opciones de informe en un fichero txt</p> <p> es interesante boton derecho en plan ver historial del plan</p>