Sql Server - Automatización

73
Sql Server Automatización

Transcript of Sql Server - Automatización

Page 1: Sql Server - Automatización

Sql Server

Automatización

Page 2: 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

Page 3: Sql Server - Automatización

• la capacidad de automatización de Sql se debe al servicio Agente Sql Server– este servicio solo realiza dos tareas• automatización• réplica

Page 4: Sql Server - Automatización

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

Page 5: Sql Server - Automatización

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

Page 6: Sql Server - Automatización

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

Page 7: Sql Server - Automatización

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

Page 8: Sql Server - Automatización

• Abrimos Management Studio• Explorador Objetos – Administración – Correo

electrónico BD – boton derecho – Configurar correo electrónico BD

• Pantalla Bienvenida - Siguiente

Page 9: Sql Server - Automatización

• 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

Page 10: Sql Server - Automatización

• Información Servidor de correo saliente– información según ISP• Direccion correo : [email protected]• Nombe a mostrar : juan• Correo de respuesta: [email protected]• nombre servidor: smtp.hotmail.com• puerto : 25

• Aceptar– cuenta aparece en listado Cuentas SMTP

Page 11: Sql Server - Automatización

• 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

Page 12: Sql Server - Automatización

Agente Sql SErver

• Ahora debemos configurar el Agente SQL Server para que use el perfil que hemos configurados

Page 13: Sql Server - Automatización

• 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

Page 14: Sql Server - Automatización

• Ya está correctamente configurado• Para utilizarlo debemos crear operadore que

reciban correo electrónico de Sql Server

Page 15: Sql Server - Automatización

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

Page 16: Sql Server - Automatización

• El operador es el objeto que nos permite configurar todo esto

Page 17: Sql Server - Automatización

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

Page 18: Sql Server - Automatización

• en parte inferior– dias y horas disponibles para este operador– luego vemos notificaciones– Aceptar

Page 19: Sql Server - Automatización

• 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

Page 20: Sql Server - Automatización

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

Page 21: Sql Server - Automatización

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

Page 22: Sql Server - Automatización

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

Page 23: Sql Server - Automatización

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

Page 24: Sql Server - Automatización

• Pagina Pasos– Nuevo paso• Nombre : Crear BD• tipo como T-Sql

– Base de datos master– Comando

Page 25: Sql Server - Automatización

– CREATE DATABASE EJEMPLO ON– PRIMARY (NAME=ejemplo_dat,– FILENAME=‘c:\ejemplo.mdf’,– SIZE=10MB,– MAXSIZE=15,– FILEGROWTH=10%)

Page 26: Sql Server - Automatización

• clic en analizar para verificar que esta el código bien escrito

Page 27: Sql Server - Automatización

• Pagina avanzado– Accion en caso de éxito• ir a siguiente paso

– Accion en caso de error• Salir del trabajo e informar del error

Page 28: Sql Server - Automatización

• Creamos el segundo paso– Nuevo– Nombre : copia Seguridad– secuencia de comandos – T-SQL

Page 29: Sql Server - Automatización

• 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

Page 30: Sql Server - Automatización

• Nombre de paso : Crear y hacer copia• Tipo de programacion : una vez– hora que quieras

– Aceptar

Page 31: Sql Server - Automatización

• Pagina notificaciones– activamos casillas • Correo• Net Send

• Administrador como operador a informar• activamos si el trabajo termina

• Aceptar para crear trabajo

Page 32: Sql Server - Automatización

• Sale todo OK??

Page 33: Sql Server - Automatización

• No solo podemos programar instrucciones T-SQL– tb JavaScript, VBScript, perl….

Page 34: Sql Server - Automatización

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

Page 35: Sql Server - Automatización

• Comando– sub main()– Print “funciona el trabajo”– end sub

– Aceptar

Page 36: Sql Server - Automatización

• Pagina programaciones– nuevo –– Nombre : Sacar mensaje– Tipo programación : una vez– Aceptar

Page 37: Sql Server - Automatización

• 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…

Page 38: Sql Server - Automatización

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

Page 39: Sql Server - Automatización

Cambiar opciones historial

• Management Studio– Agente – boton derecho – Propiedades – pagina Historial• cambia las opciones

• Aceptar

Page 40: Sql Server - Automatización

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

Page 41: Sql Server - Automatización

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

Page 42: Sql Server - Automatización

• 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

Page 43: Sql Server - Automatización

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

Page 44: Sql Server - Automatización

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

Page 45: Sql Server - Automatización

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

Page 46: Sql Server - Automatización

• 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

Page 47: Sql Server - Automatización

• tenemos una alerta que se activa cuando se produzca el error con el numero tal– generamos el error con el comando RAISERROR()

Page 48: Sql Server - Automatización

• Nueva consulta– RAISERROR(numeroerror, 10,1)

– ejecuta a ver…

Page 49: Sql Server - Automatización

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…

Page 50: Sql Server - Automatización

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…

Page 51: Sql Server - Automatización

• Nueva consulta– USE master– GO– EXEC sp_addmessage @msgnum=50300.

@severtity=10, @msgtext=N’error personalizado’, @with_log=‘TRUE’, @lang=‘Español’;

– GO

Page 52: Sql Server - Automatización

• haces una nueva alerta con el mismo numero de error

• ejecuta RAISERROR – con el numero…

– sale un mensaje personalizado• claro, usando net send

Page 53: Sql Server - Automatización

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

Page 54: Sql Server - Automatización

• 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%

Page 55: Sql Server - Automatización

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

Page 56: Sql Server - Automatización

• pagina respuesta– notificar a operadores– Aceptar

Page 57: Sql Server - Automatización

• funciona???

Page 58: Sql Server - Automatización

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

Page 59: Sql Server - Automatización

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

Page 60: Sql Server - Automatización

• en Consulta– Select * from DDL_DATABASe_LEVEL_EVENTS– where DatabaseName=‘Northwind’

Page 61: Sql Server - Automatización

• Pagina respuesta– notificar

• Pagina opciones– incluir texto de error de la alerta en• net send

Page 62: Sql Server - Automatización

• Nueva consulta– use tu base de datos– ALTER TABLE la tabla que quieras – ADD una nueva columan varchar(20) null

– ejecuta– sale la alerta???

Page 63: Sql Server - Automatización

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

– sale otra vez???

Page 64: Sql Server - Automatización

• alertas WMI son similares a los desencadenadore

• utilizan la misma tecnología WMI

Page 65: Sql Server - Automatización

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

Page 66: Sql Server - Automatización

• Management Studio – Servidor – Administración – boton derecho – Planes de mantenimiento – Asistente

– nombre– Servidor– Autentificación

Page 67: Sql Server - Automatización

• Pantalla Selecciona tareas de mantenimiento– activa todos y luego le dices el orden…– a tu gusto

Page 68: Sql Server - Automatización

• 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…

Page 69: Sql Server - Automatización

• Pagina reorganizar indice– para qué objetos reorganizas los indices– recuerda 8kb es la unidad mínima

Page 70: Sql Server - Automatización

• Pagina Actualizar estadisticas– importante• optimizador de ocnsultas utiliza estadisticas para

determinar qué indice debe usarse para devolver resultados de una consulta

Page 71: Sql Server - Automatización

• 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

Page 72: Sql Server - Automatización

• Pagina seleccionar propiedades del plan– programar el plan• automatico o cuando se solicite

– Opciones de informe• en un fichero txt

Page 73: Sql Server - Automatización

• es interesante boton derecho en plan– ver historial del plan