Como devo executar a manutenção do banco de dados em um sistema 24x7

2

Sou um desenvolvedor de software que herdou uma função de DBA em meio período. Sou responsável por um back-end de aplicativo por um pequeno banco de dados 24x7 de alto volume no SQL Server 2008.

Embora existam outras coisas no banco de dados, a parte crítica é uma tabela de linhas de 50 GB e 7,5 M que atende a 100 mil solicitações / seg. durante o pico de carga e cerca de metade disso em "noite". Isso é 99% + tráfego de leitura, mas as gravações são constantes e obrigatórias.

Eu preciso ser capaz de realizar manutenção periódica sem uma janela de manutenção. Diga uma reconstrução de índice, uma tarefa para limpar dados antigos, o Windows Update ou a atualização de hardware. A maioria dos conselhos que eu vi é ao longo das linhas de "fazer uma janela de manutenção". Enquanto eu aprecio o sentimento, espero que haja outro jeito. Se isso resolver esse problema, eu tenho a capacidade de comprar novo hardware ou modificar o banco de dados, os clientes (um conjunto de servidores de serviços da Web) e muito do código do aplicativo (ADO.NET + ASP.NET).

Eu estive pensando na linha de usar o spare quente (ou um terceiro servidor) para fazer a manutenção e depois "trocá-lo" em produção.
1 Sincronize o sobressalente restaurando backups, incluindo um log de transações atual.
2 Execute as tarefas de manutenção. 3 Reconfigure os clientes para se conectarem ao servidor sobressalente. As conexões existentes são concluídas em um minuto ou mais. 4 O servidor sobressalente é agora o servidor de produção.

O problema restante é que o novo servidor de produção está desatualizado por quanto tempo demorou para executar a manutenção. Existe alguma maneira que o servidor de produção original pode ser feito para alinhar as alterações e mesclá-los para o sobressalente entre as etapas 2 e 3? Alguma outra ideia?

    
por solublefish 19.03.2010 / 11:15

3 respostas

3

Você precisará ler os recursos de Alta Disponibilidade oferecidos pelo SQL 2008. Consulte aqui para o white paper. Existem muitos cenários para cobrir.

[subindo na caixa de sabão]

Você precisa de janelas de manutenção. Isso não implica semanal nem mensalmente, mas haverá momentos em que você precisará do servidor para fazer melhorias. Existem muito poucos sistemas que são 100% operáveis por longos períodos (anos) ou que precisam ser. O objetivo das janelas de manutenção é minimizar o tempo de inatividade e torná-lo previsível, para que a empresa possa lidar com isso. Eu aconselharia não dispensar todas as janelas de manutenção. Se você mudar sua configuração mudando para clustering ou algo assim, você certamente terá algum tempo de inatividade durante a transição, por menor que seja. [subindo de volta para baixo]

Algumas opções:

  1. Espelhamento
  2. Cluster
  3. Envio de log
  4. Operações de índice online
  5. arquivamento usando operações de índice online e tabelas particionadas
  6. Replicação ponto a ponto

Meus 2 centavos.

    
por 19.03.2010 / 17:24
2

Eu segunda espelhamento e apontar se você realmente precisa 24/7 A empresa deve o seu orçamento para incluir um DBA ou consultor para ajudar com isso.

O espelhamento muitas vezes pode resolver necessidades 24 horas por dia, sete dias por semana, "bom o suficiente", com muito pouco custo além de um segundo servidor.

    
por 09.04.2010 / 04:47
0

Como esse banco de dados é uma parte vital da infraestrutura, um sobressalente quente seria recomendado de qualquer maneira. E isso permitirá que você faça manutenção também.

    
por 19.03.2010 / 13:54