Definindo boas práticas com o Policy Based Management (PBM)

E ai galera, tudo bem com vocês?

Hoje quero discutir com vocês uma das principais responsabilidades de um bom administrador de banco de dados e que muitos acabam deixando de lado pela “facilidade” em administrar um servidor de banco de dados SQL Server.

“Orra tio, do que cê tá falando meu brother?”

Todo ambiente de banco de dados SQL Server deve ser instalado e configurado seguindo as boas práticas definidas pela Microsoft.

“Tio, tá doidão??? Que negócio é esse de boa prática?? É tipo comer mais salada, menos fritura e ir mais vezes nos jogos do curingão?”

Acredito que a grande maioria dos administradores de banco de dados SQL Server é extremamente cautelosa no momento da instalação de uma nova instância de banco de dados, porém existem profissionais no mercado que abusam da metodologia NNF (Next-Next-Finish) e acabam criando verdadeiros monstrinhos.

“Hahahahaha tio, monstrinho é mancada hein mano? Mas e ai tio? Como dá pra evitar essa bagaça ai de NNF?”

Uma das maneiras utilizadas para verificar se um servidor de banco de dados SQL Server está bem instalado e configurado é através da ferramenta SQL Server Best Practices Analyzer, desenvolvida pela Microsoft e disponibilizada de forma gratuita.

Esta ferramenta pode avaliar um ou mais servidores SQL Server e gerar um relatório detalhando quais destes servidores não está configurado de acordo com a lista de boas práticas e quais destas recomendações não estão sendo seguidas.

Recomendo fortemente a utilização desta ferramenta caso o seu ambiente possua instâncias nas versões 2000 e 2005 do SQL Server.

“Tio, mas e ai? Já to manjando dos barato e tô no CEQELE 2008. Dá pra usar?”

Caso o seu ambiente já esteja utilizando versões do SQL Server 2008 R1, SQL Server 2008 R2 ou SQL Server 2012, recomendo a utilização da funcionalidade Policy-Based Management, também conhecida como PBM.

O PBM permite criar uma política que define como uma determinada área do SQL Server deve estar configurada.

Esta política pode ser executada em um ou mais servidores de banco de dados ao mesmo tempo gerando, um relatório com quais políticas não foram seguidas em cada um dos servidores avaliados.

“Tio, me ajuda mano. Não entendo nada desse troço de política”.

Por exemplo, vamos imaginar que você precisa garantir que todos os bancos de dados do seu ambiente devam estar com a opção AutoShrink desabilitada.

Para garantir essa boa prática, é possível criar uma política no PBM para avaliar todos os bancos de dados e gerar um relatótio detalhado com quais bancos de dados estão fora dessa regra.

“Caraca tio, gostei disso ai hein. Fala mais mano.”

O PBM possui três componentes principais:

  • Policy
  • Condition
  • Facet

Uma Facet é composta por uma lista de propriedades que podem ser verificadas. Por exemplo, a facet Database possui a propriedade AutoShrink que pode ser avaliada em uma política.

A Condition nada mais é do que a regra que define como uma propriedade da Facet deve estar configurada para ser válida. Por exemnplo, a Condition define que o valor correto para a propriedade AutoShrink da Facet Database deve ser OFF.

A Policy é o resultado da junção de uma Facet e uma Condition, determinando qual a área do SQL Server deve ser verificada (Facet) e qual a regra deve ser seguida para que uma propriedade esteja correta (Condition).

“Tio, bem loco. Faz um exemplo ai”

Inicialmente criaremos um banco de dados chamado DBIncorreto utlizando o script abaixo:

CREATE DATABASE [DBIncorreto] ON  PRIMARY
( NAME = N’DBIncorreto’, FILENAME = N’C:\DBIncorreto.mdf’ , SIZE = 3072KB , FILEGROWTH = 1024KB )
 LOG ON
( NAME = N’DBIncorreto_log’, FILENAME = N’C:\DBIncorreto_log.ldf’ , SIZE = 1024KB , FILEGROWTH = 10%)
GO
ALTER DATABASE [DBIncorreto] SET AUTO_SHRINK ON

Vamos implementar duas políticas de exemplo:

  • A propriedade AutoShrink de todos os bancos de dados deve estar configurada como OFF;
  • Os arquivos de dados e de log não podem estar no mesmo volume;

Para a criação das política identificamos que as Facets Database e Database Performance possuem as propriedades que devem ser avaliadas.

O próximo passo é a criação de uma Condition para cada uma das duas propriedades que serão avaliadas:

1) Clicar com o botão direito na opção Condition e selecionar a opção New Condition

Imagem2

2) Selecionar a Facet Database e definir que o valor da propriedade AutoShrink deve ser igual à False

Imagem3

3) Criar uma nova condição, selecionar a Facet Database Performance e definir que a propriedade DataAndLogFilesOnSeparateLogicalVolumes deve ser igual à True;

Imagem4

Após a criação das condições, temos de criar as políticas que serão responsáveis pela avaliação das regras definidas anteriormente:

1) Clicar com o botão direito na opção Policies e selecionar a opção New Policy;

Imagem5

2)  Selecione a Condition AutoShrink, selecione como Targets todos os Databases e Evaluation Mode como On Demand;

Imagem6

3) Criar uma nova política, selecione a Condition DataAndLogFilesOnSeparateLogicalVolumes, selecione como Targets todos os Databases e Evaluation Mode como On Demand;

Imagem7

“Tio, que negócio é esse ai de target e evaluation mode?????”

Durante a configuração da politica, é possível definir quais os objetos do servidor de banco de dados serão avaliados (Target) e quando será realizada essa avaliação (Evaluation Mode).

Em nosso cenário definimos que as políticas serão avaliadas em todos os bancos de dados existentes na instância (Every Database) e a política deverá ser executada manualmente pelo DBA (Evaluation Mode On Demand).

Para a execução manual da política temos os seguintes passos:

1) Clicar com o botão direito na opção Policies e selecionar a opção Evaluate;

Imagem8

2) Selecionar as duas políticas criadas anteriormente e clicar no botão Evaluate;

Imagem9

Após a avaliação das políticas, é possível visualizar um relatório exibindo o resultado de cada condição avaliada clicando na opção View.

Imagem10

“Tio, bem loco isso ai hein. Mas seria muito mai dazora se desse pra corrigi essa parada de uma vez só”

Uma das grandes vantagens em utilizar o PBM na avaliação das politicas é a possibilidade de corrigir determinadas condições em todos os Targets que foram avaliados.

Por exemplo, podemos selecionar a política AutoShrink e clicar no botão Apply.

Imagem13

Desta forma, todos os targets avaliados tiveram a propriedade AutoShrink alterada para False.

Imagem14

“Tio, to empolgadaço com isso ai. Já vou criar umas politica aqui na minha goma pra Creusinha não entra no quarto sem avisar. Hehehehehe, assim fico à vonts vendo as musa do Curingão.”

……………………………………………(Ligando para a Creusinha)

“Creusinha, meu amor. O que aconteceu???? Porque tá arrancando a porta do quarto????? Não Creusinha, calma, calmaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!! Portada nãããããããããããããão”

Espero que tenham gostado e não deixem de inscrever-se no blog para receber todas as atualização em primeira mão.

Grande abraço.

Anúncios
  1. Felipe
    04/02/2014 às 14:17

    Show, parabéns!

  2. 19/02/2014 às 10:55

    Mais um excelente artigo, parabéns.

    • 19/02/2014 às 10:58

      Grande Anderson.

      Obrigado pelo elogio.

      Grande abraço.

  1. 05/02/2014 às 18:07

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: