Como monitorar o SQL Server
Veremos nesse artigo a monitoração e alarmística e como elas são importantes na vida do DBA. Existem diversos meios de adquiri-las, desde softwares de terceiros até o desenvolvimento customizado de uma solução.
O SQL Server 2012 dispõe de um conjunto de mecanismos capazes de recolher informações do estado da instância ou de cada banco de dados, informações que podem ser pertinentes a tomadas de decisão do DBA.
Um sistema de monitoração eficiente permite ao profissional da área atuar rapidamente na resolução de problemas ou mesmo evita-los, no entanto, é de grande importância que todo o mecanismo de monitoração trabalhe como uma engrenagem sobre o SGBD de forma que este não seja penalizado no desempenho devido a recolha e processamento dos dados de monitoração.
A elaboração de um processo de monitoração não precisa ser complexa e nem dispendiosa. Com a utilização de ferramenta nativas do SQL Server é possível o desenvolvimento de mecanismos de coletas eficientes de informação, ou seja, o uso de procedimentos armazenados, tarefas agendadas, alertas, eventos estendidos, entre outros, poderão prover o DBA de informações pertinentes sobre o comportamento de cada banco de dados ou na instância como um todo.
Igualmente importante à monitoração são os processos de alarmística, ou seja, dentro das rotinas de monitoração poder-se criar pontos específicos no código que analisem se a informação recolhida está em conformidade com valores padrão de referência e caso não estejam envia um e-mail ou registra no error log do SQL, por exemplo.
Banco de dados de monitoração
A elaboração desde banco de dados não é nada de extraordinário, no entanto é importante saber previamente o que será capturado e como correlacionar as informações recolhidas, por exemplo, as informações sobre as queries em execução podem ser correlacionadas com a informação das transações ativas através do id de transação.
Este conhecimento permitirá o desenvolvimento de um modelo de dados relacional (ER).
Diretamente ligado ao modelo ER está o mecanismo que será utilizado para captura da informação que poderá ser através de DMVs, arquivos de trace do SQL, extended events, data collection, entre outros. A forma como serão recolhidas as informações servirá para identificar as tabelas e colunas do modelo relacional.
O mecanismo utilizado para captura poderá ser encapsulado em um ou vários procedimentos armazenados, onde estes alimentarão as respectivas tabelas.
Com a utilização das tarefas agendadas será possível detalhar a ação de coleta de informação, tal como, efetuar o seu agendamento e definir a ordem de chamadas dos procedimentos, de forma a não comprometer a correlação entre os dados recolhidos.
Alarmísticas
A alarmística pode trabalhar diretamente com base nos dados capturados pela monitoração, ou seja, são processos ou mesmo blocos de código dentro dos processos de monitoração que analisam os dados e identificam valores que não estão em conformidade com os limites definidos.
No banco de dados de monitoração, poder-se criar tabelas para configuração de valores limites para cada ponto da alarmística.
Por exemplo, na tabela de configuração de limites poder-se ter um valor de configuração para o espaço disponível no banco de dados e poder-se definir um bloco de código que irá analisar a tabela de configuração e disparar uma ação como, por exemplo, o envio de e-mail ou o registro do problema no error log do SQL Server ou ainda armazenar a informação em uma tabela.
A alarmística também poderá consultar informações não recolhidas pela monitoração ou mesmo processar dados para obter uma determinada informação. Por exemplo, no banco de dados msdb ficam registrados os backups efetuados com sucesso mas não os que falharam, assim, as diferenças entre os bancos de dados que existem com os que tiveram backups fornece a informação dos que falharam. O processo de alarmística pode identificar estas situações e disparar uma determinada ação." [...] continue lendo...
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo