SQL Server Policy Based Management: Gerenciamento centralizado de múltiplas instâncias
Este Artigo faz parte da Revista SQL Magazine 129 Ver Revista
Artigos Banco de Dados SQL Server Policy Based Management: Gerenciamento centralizado de múltiplas instâncias
Por que eu devo ler este artigo:Neste artigo serão abordadas as principais técnicas para o gerenciamento eficiente de múltiplas instâncias em um ambiente de banco de dados SQL Server 2014, utilizando para isso as ferramentas Data Collector e Policy-Based Management.
O crescimento exponencial da quantidade de dados gerados pelas aplicações aumentou a complexidade no gerenciamento dos ambientes de banco de dados para o administrador de banco de dados.
Este crescimento, combinado com o baixo custo dos meios de armazenamento nos servidores, iniciou um cenário no qual o administrador de banco de dados deixou de administrar algumas dezenas de bancos e passou a administrar centenas deles.
Como as principais responsabilidades de um administrador de banco de dados são garantir a integridade, o desempenho e a estabilidade de todas as instâncias do SQL Server, quanto maior o número de instâncias e bancos de dados utilizados dentro de uma empresa, maior a dificuldade em monitorar e administrar tal ambiente de forma proativa e automatizada.
Para este tipo de cenário, o SQL Server possibilita centralizar tanto a execução das tarefas rotineiras de um administrador, quanto a coleta de métricas de desempenho de todas as instâncias e bancos de dados existentes, através das ferramentas Data Collector (DC) e Policy-Based Management (PBM).
Por exemplo, existe a necessidade de que todos os bancos de dados que possuam o parâmetro recovery model definido como Full realizem um backup do arquivo de log a cada hora.
Assim, ao invés dessa política existir apenas de forma conceitual, exigindo sua verificação de forma manual em todos os servidores de banco dados, é possível utilizar o PBM para criar "fisicamente" uma política e garantir que ela seja aplicada de uma única vez em todas as instâncias de SQL Server existentes.
A fim de facilitar o entendimento do gerenciamento de múltiplas instâncias, a apresentação das ferramentas será realizada na seguinte ordem: primeiro analisaremos a Policy-Based Management e depois conheceremos a Data Collector.
O Policy-Based Management (PBM) é uma funcionalidade disponível a partir do SQL Server 2008 que permite a criação e implementação de políticas em suas instâncias SQL Server. O PBM funciona de forma semelhante às políticas de grupo criadas através do Active Directory.
As políticas de grupo oferecem um gerenciamento centralizado de aplicações e usuários, por meio de regras criadas pelos administradores de sistema e que podem ser aplicadas em vários níveis da estrutura de diretórios definida no Active Directory.
Através do PBM aplica-se uma política em um determinado target, por exemplo, um banco de dados, uma tabela, uma view ou uma stored procedure e depois é verificado se o target está de acordo com as regras desta política. Caso o target não esteja de acordo, é possível tanto impor as regras da política quanto disparar um alerta para que o administrador do banco de dados saiba desta violação.
Uma das grandes vantagens do PBM é a aplicação de uma política em várias instâncias de banco de dados SQL Server de uma única vez, facilitando a administração e gerenciamento de toda a infraestrutura de banco da corporação.
Muitas funcionalidades do SQL Server 2014, tais como Resource Governor, Compressão de Dados e In-Memory OLTP necessitam das edições Enterprise ou Developer.
Este não é o caso do PBM, que está disponível em todas as edições do SQL Server, incluindo a Express (embora com a edição Express não seja possível a criação de um Central Management Server).
Assim que a instância do SQL Server 2014 estiver instalada, já é possível criar e avaliar as políticas contra qualquer SQL Server existente no ambiente, inclusive em versões anteriores a 2014.
O PBM é composto por três principais componentes: Policies, Conditions e Facets, conforme mostra a Figura 1. Esses componentes estão dispostos em uma espécie de ordem hierárquica para a utilização do PBM.
Uma facet é necessária para a criação de uma condition, e a condition é necessária para a criação das policies. As policies, por sua vez, são aplicadas em targets específicos.
Figura 1. Policy Management no SQL Server 2014.
Os targets são os objetos gerenciados por uma determinada política e podem ser de vários tipos: servidores, bancos de dados, instâncias, stored procedures, entre outros. Um detalhe importante é que podemos utilizar mais de um target ao mesmo tempo em uma política.
Por exemplo, podemos ter uma política que determine que apenas nomes de objetos iniciados com o prefixo db_ estão corretos e realizar a validação desta regra em tabelas, funções e stored procedures de uma ou mais instâncias simultaneamente.
É possível visualizar as propriedades de uma facet expandindo a pasta Facets e clicando duas vezes em qualquer uma das opções.
Por exemplo, a facet Data File possui várias propriedades, tais como tamanho máximo do arquivo de dados, número de leituras e escritas e se o arquivo de dados está online, conforme mostra a Figura 2.
As facets estão disponíveis apenas para leitura, ou seja, não é possível a criação de facets customizadas ou alteração das já existentes. Atualmente novas facets podem ser incluídas apenas pela Microsoft, através de service packs ou com a atualização da versão do SQL Server.
Figura 2. Propriedades da Facet Data File.
Uma condition pode ser descrita como uma regra para que uma política seja avaliada. Basicamente, a política verifica a regra de um target e, caso este target não esteja de acordo com a política, ele falha. Vale ressaltar que uma política pode avaliar apenas uma condition, porém é possível que uma condition possua diferentes regras para diferentes propriedades.
Uma condition pode ser visualizada expandindo a pasta Conditions e clicando duas vezes em qualquer uma das opções disponíveis, como mostra a Figura 3.
Em uma instância de banco de dados SQL Server não existirão conditions customizadas, a menos que sejam previamente importadas ou criadas manualmente, ou seja, inicialmente só existirão as conditions de sistema.
Figura 3. Condition criada na Facet Database.
As policies são pacotes completos que incluem conditions, facets, targets, modos de avaliação e restrições de servidor (os modos de avaliação e as restrições de servidor serão discutidos no próximo tópico).
Para visualizar uma política é preciso expandir a pasta Policies e clicar duas vezes em qualquer uma das opções, como expõe a Figura 4.