tempo de inatividade zero durante o upgrade do esquema de banco de dados no SQL 2008

1

Eu tenho o aplicativo da web no IIS7 com o SQL Server 2008 como RDBMS.

Precisa obter 0 tempo de inatividade durante as atualizações futuras do código ASP.NET e do esquema do banco de dados também. Eu preciso acertar o cenário para isso.

Eu tenho 2 servidores da Web e 2 servidores sql e um balanceador de carga http que permite alternar o servidor back-end da web para solicitações da web.

O objetivo principal é tornar o primeiro servidor web e servidor de banco de dados em execução, atualizar o código e o esquema db no segundo servidor e depois alternar todos os pedidos para o segundo servidor e depois o problema principal - como copiar dados do primeiro banco de dados foi alterado durante a atualização).

    
por eject 12.05.2010 / 14:08

1 resposta

1

Isso depende da sua definição de "tempo de inatividade zero". Um cenário de recuperação com falha de upgrade pode ser realizado facilmente, configurando a replicação entre seus dois servidores SQL, que também dá a você o benefício da redundância.
Isso funciona de maneira muito semelhante ao que você descreve acima: Quando você faz um upgrade, você divide seu par de replicação & atualize um deles (junto com alguns servidores de aplicativos), mude a carga para o conjunto atualizado de máquinas, atualize os outros e restabeleça a replicação. A ressalva é que você provavelmente ainda precisará parar de aceitar alterações (inserções / atualizações) durante a janela de atualização (pelo menos até os servidores atualizados estarem sendo executados), caso contrário você vai acabar com um cérebro dividido cenário em que você tem alterações no sistema "antigo" que será perdido no "novo".

Dependendo do tipo de alteração de esquema que você está falando, & quão bem escrito seu aplicativo é, você pode fazer algumas alterações sem tempo de inatividade (adicionar novas tabelas / visualizações, adicionar uma coluna, etc. pode ser feito sem uma interrupção, desde que seu aplicativo não surte quando o número de colunas em uma tabela muda).

Minha sugestão para você é que você insista em uma janela de manutenção adequada para todas as alterações / atualizações, para incluir o tempo de interrupção, se necessário. Pouquíssimos sistemas precisam ser realmente 24x7x365, e se você acabar com um problema inesperado, é sempre melhor que o sistema esteja off-line com tempo suficiente para corrigir o problema ou reverter suas alterações, em vez de ficar correndo em uma correção com usuários irritados. respirando no seu pescoço porque eles não estavam esperando uma interrupção ...

    
por 12.05.2010 / 17:14