Daniel Paulo dptsalvador@hotmail.com. Introdução Neste capítulo será abortado o planejamento e...

Preview:

Citation preview

Daniel Paulodptsalvador@hotmail.com

IntroduçãoNeste capítulo será abortado o planejamento

e configuração das atividades administrativas do dia a dia de um DBA.

O SQL Server Agent- Execução de tarefas previamente

configuradas de forma automática- Envio de email e notificações - Acionamento de alertas

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

A conta em que o SQL Server Agent é executadoNetwork 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

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

Windows Domain:- Maior segurança pois necessita de definição de

segurança

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

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

- 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

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

Configurando o SQL Server para enviar e-mailsO 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

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

JOBSSão utilizados para automatizar a execução

de determinadas tarefas.

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

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

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

JOBS de replicação- A replicação é executada no servidor por

meio de agentes implementados no SQL

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

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

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

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

Alertas- 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

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

Alertas definidos na severidade de um erro do SQL ServerO 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

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

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

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

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

Ambientes de múltiplos servidoresEste 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

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

Solução de Problemas

Página 416 à 418

Laboratório página 616 à 648

Recommended