Pular para o conteúdo principal

Configurações e Manutenção de Banco de Dados

Configurando arquivos e grupos de arquivo

Arquivos e grupos de arquivos

O sql Server utiliza dos tipos diferentes de arquivos: arquivo de dados e de log de transação.
O Sql Server fornece uma camada de abstração chamada filegroups, em vez de armazenar os objetos diretamente em um arquivo de dados.
Os objetos que contém dados possuem um cláusulas ON que permite definir em que grupo de arquivos será armazenado.

Logs de transação

Após reconhecer que uma transação foi bem sucedida, o Sql Server precisa garantir que a alteração seja protegida realizando a gravação de todas as alterações log de transação.

Dados FILESTREAM

O recurso FILESTREAM permite associar arquivos a um banco de dados. Estes, apesar de serem armazenados em uma pasta do sistema operacional, são vinculados diretamente ao banco de dados.

Banco de dados TempDB

Devido ao potencial de grande atividade, você deve mover TempDB para outro conjunto de discos, separando de seus bancos de dados e de quaisquer arquivos de backup.
Uma prática comum para TempDB é criar um arquivo por processador, propagando assim a I/O (entrada e saída) de disco.

Configurando opções de banco de dados

Cada banco de dados possui uma variedade de opções de configurações.

Opções de bancos de dados

Opções de recuperação
As opções de recuperação determinam o comportamento do log de transação e como as páginas danificadas serão tratadas.

Modelo de recuperação
Os bancos de dadosd possuem uma propriedade chamada Modelo de Recuperação (Recovery Model). Este, determina o tipo de backup possível de ser realizado no banco de dados.
Os modelos são:
  • Completo - Full
  • Neste modelo todas as alteração realizadas no banco de dados são registradas no log de transação. Dessa forma, é possível recuperar o banco de dados em um determinado ponto no tempo, diminuindo, ou até eliminando, a perda de dados.
  • Registro em massa - Bulk-logged
  • Permite que certas operações de sejam executadas com registro mínimo. Não é registrada cada linha alterada, em vez disso, registra as extensões, reduzindo a sobrecarga.
    Como não é registrada cada alteração realizada, não é possível realizar a recuperação num determinado ponto no tempo, no intervalo do registro no log.
  • Simples - simple
  • Este registra as operações no log de transação exatamente como o modelo completo, mas, sempre que um checkpoint é executado, a parte efetiva do log é descartada.
    Não é possível realizar o backup de log de transação nesse modelo de recuperação.
  • Páginas danificadas
  • O Sql Server, por padrão, não verifica a existência de páginas danificadas, para isso, a opção CHECKSUM de PAGE_VERIFY pode ser ativada, permitindo assim descobrir e registrar a página danificada. Se for encontrada uma página danificada, o erro 824 é retornado e o ID da página é registrado na tabela suspect_pages, no banco de dados msdb.
Opções automáticas
  • AUTO_CLOSE

  • Com a opção AUTO_CLOSE ativada, quando o a última conexão com um banco de dados é fechada, o Sql Server desliga o banco de dados e liberar os recursos alocados a este. Por padrão é desativada.
  • AUTO_SHRINK

  • Com AUTO_SHRINK ativada, o Sql Server verifica periodicamente a utilização de espaço dos arquivos de dados e log. Se for encontrado um espaço livre maior que 25%, é realizada uma redução automática. Por padrão é desativada.
  • AUTO_CREATE_STATISTICS

  • Com o AUTO_CREATE_STATISTICS ativada, o Sql Server criará automaticamente as estatísticas que estão faltando durante a otimização do processamento de consultas.
    A criação de estatísticas acarreta em sobrecarga , mas é recompensada pelo desempenho do processamento de consultas.
  • AUTO_UPDATE_STATISTICS

  • Atualiza estatísticas desatualizadas durante a otimização da consulta.
  • AUTO_UPDATE_STATISTICS_ASYNC

  • Atualiza estatísticas desatualizadas de maneira assíncrona a otimização da consulta.
Controle de alteração
O Sql Server 2008 introduz o recurso CHANGE_TRACKING. O controle de alteração associa uma versão a cada linha da tabela que foi ativada para o controle. Sempre que ocorre alteração o controle é incrementado.

Acesso
O acesso ao banco de dados pode ser controlado por várias opções.
  • Status do banco de dados

    • ONLINE
    • Você pode realizar todas as operações possíveis normalmente.
      Você pode controlar a capacidade de modificação de um banco de dados ONLINE conforme abaixo:

      • READ_ONLY
      • O banco de dados não pode ser gravado e todo arquivo de log de transação é removido.

      • READ_WRITE
      • Faz com que o Sql Server recrie o arquivo de log de transação.


    • OFFLINE
    • Está inacessível.

    • EMERGENCY
    • Só pode ser acessado por membros do role db_owner, utilizando somente SELECT.
Você também pode controlar o acesso a um banco de dados por meio das opções:
  • SIGLE_USER
  • Apenas um usuário pode acessar.
  • RESTRICTED_USER
  • Apenas um usuários membros das roles db_owner, dbcreator e sysadmin.
  • MULTI_USER
  • Permite o acesso de múltiplos usuários.
Por padrão, a maioria dos bancos de dados é ONLINE, READ_WRITER e MULTI_USER.

Parametrização
Quando uma chamada de banco de dados é parametrizada, os valores são passados como variáveis.
O sql Server coloca o plano de consulta em cache ara cada consulta executada. Uma consulta parametrizada tem uma grande probabilidade de ser correspondida , pois a string de consulta não muda.

Sequências de collation

O Sql Server permite definir regras de comparação, classificação, diferenciação por meio da especificação de uma sequência de collation.

Mantendo a integridade do banco de dados

Verificações der integridade do banco de dados

Quando uma página corrompida é encontrada, é gerado um erro, o comando é cancelado e uma entrada é gravada na tabela suspect_pages em msdb.
Você pode obrigar o Sql Server a ler toda a página do disco e verificar integridade executado o comando DBCC CHECKDB.

Até a próxima!

Comentários

Postagens mais visitadas deste blog

Tipos de dados no Sql Server

De vez em quando nos deparamos com uma questão: qual o tipo de dado deve ter um determinado campo? Para um DBA isso é um bom questionamento, pois com base nessa definição outras decisões serão tomadas. O que me motivou a pesquisar e escrever sobre isso foi a frase de um desnvolvedor: "Pouco importa se é varchar, char, text..., pra mim tudo é string."

Conceitos básicos de banco de dados - Integridade

A integridade diz respeito ao nível de confiança das informações do banco de dados, ou seja, a credibilidade das informações e à lógica das informações. Regras de restrição de integridade configuraram um banco de dados para ser alimentado por informações com características lógicas específicas, validadas como verdadeiras antes do seu armazenamento, diminuindo a probabilidade de falta de integridade no banco de dados.