Daniel Paulo dptsalvador@hotmail.com SQL Server 2008 Módulo III Daniel Paulo dptsalvador@hotmail.com
Automação, Jobs, Alertas e operadores Introdução Neste capítulo será abortado o planejamento e configuração das atividades administrativas do dia a dia de um DBA.
Automação, Jobs, Alertas e operadores O SQL Server Agent Execução de tarefas previamente configuradas de forma automática Envio de email e notificações Acionamento de alertas
Automação, Jobs, Alertas e operadores Pré requisitos do SQL Server Agent Serviço precisa estar ativo em conta Na instalação este serviço é configurado como Manual, recomenda-se alterar para Automático
Automação, Jobs, Alertas e operadores A conta em que o SQL Server Agent é executado Network Service: É um conta disponibilizada do Windows XP e Windows Server. Esta conta é similar a uma autenticação no S.O. A conta de serviço tem o mesmo nível de acessos aos recursos e objetos dos membros do grupo de usuários. O nome atribuído à conta NT Authority\Network Service. Evitar a utilização desta conta, pois outros servidores podem utiliza-la e dificulta o controle de acesso a recursos
Automação, Jobs, Alertas e operadores Local System: Esta conta faz parte do grupo Asministrators do computador Desta forma ela faz parte do fixed server role sysadmin Possui acesso a qualquer recurso do sistema LOCAL Denominada NT AUTHORITY\System
Automação, Jobs, Alertas e operadores Windows Domain: - Maior segurança pois necessita de definição de segurança
Automação, Jobs, Alertas e operadores Local Service: É um conta disponibilizada do Windows XP e Windows Server. Acessa os recursos de Rede sem utilizar credenciais Denominada NT AUTHORITY\LocalService Não suporta SQL Server Agent
Automação, Jobs, Alertas e operadores Observações: Para conta de domínio devem ser membro do grupo Pre-Windows 2000 Compatible Access SeBatchLogonRight: Permite efetuar o logon utilizando as credenciais de logon de grupo SeAssignPrimaryTokenPrivilege: Permite substituir o sinal referente ao nível do processo SeChangeNotifyPrivilege: Permite que a transação transversal seja ignorada SeTcbPrivilege: Permite que um processo seja autenticado como um determinado usuário nas situações que utilizamos o Windows 2000
Automação, Jobs, Alertas e operadores SelncreaseQuotaPrivilege: Permite fazer com que as cotas de memória sejam ajustadas a um determinado processo A conta selecionada deve ter acesso ao namespace que contêm os eventos: WMI e o ALTER ANY EVENT NOTIFICATION
Automação, Jobs, Alertas e operadores Autenticação do SQL Agent no SQL Server A autenticação do SQL Agent não é suportada a SQL Server Authentication A validação da conta é realizada pelo sistema operacional, para poder utilizar os recursos da rede A conta deve fazer parte do grupo local de administradores
Automação, Jobs, Alertas e operadores Configurando o SQL Server para enviar e-mails O envio de e-mails a determinados operadores é uma tarefa realizada pelo SQL Server Agent Mail. SQL Mail: Utiliza e-mails por meio da interface Extended MAPI Deve possui uma conta de usuário de domínio Windows para efetuar logon na instancia do SQL Server Uma mailbox (local de armazenamento de e-mails) Um perfil de e-mail Uma conexão de correio
Automação, Jobs, Alertas e operadores Database Mail: É uma solução de e-mails do SQL Server Database Engine É um sistema que não se encontra ativo Oferece recursos mais robustos Trabalha com servidores SMTP Utiliza a procedure sp_send_dbmail
Automação, Jobs, Alertas e operadores São utilizados para automatizar a execução de determinadas tarefas.
Automação, Jobs, Alertas e operadores Fatores importantes: Determinar o proprietário responsável por executar o JOB (Usuário que criou o JOB é o responsável padrão) Definir se a execução será local ou em diversos servidores Assegurar que o JOB esteja habilitado (Padrão) Criar categorias de jobs a fim de que o gerenciamento seja facilitado
Automação, Jobs, Alertas e operadores JOBS que executam comandos TSQL Definir uma tarefa para um JOB que executa comandos TSQL requer a identificação do Banco de Dados, assim como a inclusão de variáveis e parâmetros no passo do job e envio de seu resultado para um arquivo de OUTPUT
Automação, Jobs, Alertas e operadores JOBS cmdExec e ActiveScripting São tarefas que podem estar contidas em JOBS Nas situações em que esses JOBS são executados por um usuário que não está na role SYSADMIN, essa execução ocorre no contexto da conta do usuário do Windows associada ao SQL Server Agent Recomendado somente usuários da role sysadmin executem JOBS
Automação, Jobs, Alertas e operadores JOBS de replicação - A replicação é executada no servidor por meio de agentes implementados no SQL
Automação, Jobs, Alertas e operadores Determinando o fluxo lógico de ação A execução de cada passo do job pode ser realizada com sucesso, porém, pode ocorrer falhas Por padrão o SQL avança para a próxima tarefa caso ocorra com sucesso Caso ocorra erro o JOB é paralisado Pode ser determinado quantas vezes pode ser realizado a tentativa de reexecução. Também pode ser determinado o tempo em minutos
Automação, Jobs, Alertas e operadores Programando o horário de execução O JOB é executado em horário definido previamente Recomendado planejar os horários para evitar sobrecarga do servidor
Automação, Jobs, Alertas e operadores Histórico dos JOBS As tarefas executadas são armazenadas na tabela dbo.sysjobshistory A visualização do histórico pode ser obtida com a consulta na tabela ou graficamente através do Object Explorer
Automação, Jobs, Alertas e operadores Há usuários que são configurados para receber os email e notificações da execução dos JOBS Pode ser criado grupos de usuários O comando net send é utilizado pelo envio de mensagens na rede Atribuir nomes aos operadores para evitar conflitos Recomenda-se utilizar nomes totalmente qualificados
Automação, Jobs, Alertas e operadores Definimos alertas para o monitoramento das atividades do SQL Pode ser definido alertas para: Erros definidos pelo usuário Erros do SQL Determinadas condições dos contadores de Performance Monitor
Automação, Jobs, Alertas e operadores Alertas definidos em erros do SQL Server Mais de um alerta pode ser definido sobre o mesmo erro O número de erro deve estar configurado para que seja escrito no LOG de aplicativo do Windows Um alerta pode ser definido sobre qualquer número de erro, desde que este número esteja armazenado na sys.messages Pode ser definido em qualquer banco ou em todos
Automação, Jobs, Alertas e operadores Alertas definidos na severidade de um erro do SQL Server O nível de severidade determina alguns fatores: Severidade entre 19 e 25 é escrito no LOG de aplicativos do Windows Entre 20 e 25 são considerados erros fatais e devem ser notificados para os operadores Erros podem ser gravados com a cláusula RAISERROR With LOG ou xp_logevent
Automação, Jobs, Alertas e operadores Criando uma mensagem de erro do usuário Os erros definidos pelo usuário são armazenados na sys.messages Banco Master Devem possuir número superior a 50.000 Pode ser utilizado o SQL Server Management Studio ou a SP_addMessage
Automação, Jobs, Alertas e operadores Gerando um erro a partir de um aplicativo Podemos utilizar o comando RAISERROR Capturar a partir do @@error ou TRY CATCH Exemplo: RAISERROR (50001, 16 , 1 , @codcli , User_Name() Error: 50001, Severity: 16, State 1 O Cliente 732 foi excluído pelo Aluno1
Automação, Jobs, Alertas e operadores Gravando eventos no LOG no Event Viewer Os registros são gravado no Event Viewer nas situações: Severidade entre 19 e 25 Gerados pelo comando RAISERROR WITH LOG A partir da procedure xp_logevent Definidos pelo usuário de forma automática
Automação, Jobs, Alertas e operadores Alertas em contadores de Performance Monitor Podemos criar alertas com a finalidade de: Monitoramento de transações Utilização de espaço em disco Tamanho dos banco de dados estiverem em n% do tamanho máximo
Automação, Jobs, Alertas e operadores Ambientes de múltiplos servidores Este ambiente é composto por um servidor MASTER e um ou mais servidores TARGET Podemos realizar o gerenciamento centralizado Agrupar servidores por funções lógicas As tabelas sysjobhistory e sysjobservers mostram as informações dos jobs
Automação, Jobs, Alertas e operadores Procedures para configurar jobs, alertas e operadores sp_add_job sp_update_job sp_delete_sob sp_help_job sp_add_Jobschedule sp_update_Jobschedule sp_delete_Jobschedule sp_help_Jobschedule sp_add_jobstep sp_update_jobstep sp_delete_jobstep sp_help_jobstep
Automação, Jobs, Alertas e operadores Solução de Problemas Página 416 à 418
Automação, Jobs, Alertas e operadores Laboratório página 616 à 648