Upload
internet
View
103
Download
0
Embed Size (px)
Citation preview
Daniel [email protected]
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