Recuperação de Desastres

Recuperação de desastres é um termo que se refere à falha de componentes importantes do sistema. Essas falhas geralmente exigem intervenção manual para restauração do funcionamento normal. No caso do Service Bus for Windows Server, os desastres podem se manifestar de várias maneiras:

  • Perda de um ou mais bancos de dados usados pelo Service Bus for Windows Server. Essa paralisação pode ser causada por uma falha de hardware, um erro do operador ou um evento de desastre em todo o data center.

  • Perda de nós que executam o Service Bus for Windows Server.

  • Perda de nós e bancos de dados do Service Bus for Windows Server.

Este tópico aborda os seguintes cenários de recuperação de desastres:

  • Preparação para uma recuperação de desastre

  • Nós de farm de failover (reutilização de certificado de farm existente)

  • Nós de farm de failover (emitir novo certificado de farm)

  • Servidor SQL de failover

  • Farm e SQL Server de failover (reutilização do certificado de farm existente)

  • Farm e SQL Server de failover (emitir novo certificado de farm)

  • Restaure o banco de dados de farm do Barramento de Serviço

  • Restaure o banco de dados de gateway

  • Restaure o banco de dados de contêiner

  • Restaure uma entidade do Barramento de Serviço

Preparação para uma recuperação de desastre

O Service Bus for Windows Server armazena todos os seus dados em bancos de dados do SQL Server. Para permitir a recuperação de um desastre, configure backups periódicos ou implante soluções de redundância de dados.

O Service Bus for Windows Server usa os seguintes bancos de dados:

  • Um banco de dados de farm do Service Bus for Windows Server.

  • Um banco de dados de gateway.

  • Um ou mais bancos de dados de contêiner.

Desses bancos de dados, somente os bancos de dados de gateway e contêiner devem ser espelhados ou ter backup. Para recuperar o banco de dados de farm do Service Bus for Windows Server, você pode seguir as etapas desta seção. Se você optar por fazer backup dos bancos de dados de gateway e contêiner, o intervalo entre os backups dos diferentes bancos de dados não deve ser muito grande.

Para obter informações relacionadas à implementação de alta disponibilidade e recuperação de desastres para o SQL Server, veja estes links:

Nós de farm de failover (reutilização de certificado de farm existente)

Os nós de farm do Service Bus for Windows Server não estão disponíveis. O SQL Server permanece disponível. Para recuperar-se de uma perda de farm, crie um novo farm e anexe os bancos de gateway e contêiner ao novo farm. Não há perda de dados. Para criar um novo farm e anexar os bancos de dados de gateway e contêiner existentes, faça o seguinte:

Pré-requisitos: certificado de farm do Service Bus for Windows Server existente.

  1. Instale o Service Bus for Windows Server e seus pré-requisitos em todas as novas máquinas de farm usando o Web Platform Installer.

  2. Instale o certificado de farm do farm antigo do Service Bus for Windows Server.

  3. Em um dos novos nós de farm, execute o cmdlet Restore-SBFarm com os parâmetros a seguir:

    • RunAsAccount: Conta na qual os serviços do Service Bus for Windows Server são executados. Essa conta deve ser a mesma que foi usada para o farm antigo.

    • GatewayDBConnectionString: Cadeia de conexão do banco de dados de gateway existente.

    • SBFarmDBConnectionString: Cadeia de conexão do banco de dados de farm do Service Bus for Windows Server que esse cmdlet criar.

    • FarmCertificateThumbprint: Impressão digital do certificado do farm antigo do Service Bus for Windows Server. Encontre a impressão digital do farm no banco de dados de farm do Service Bus for Windows Server, na tabela [Store].[ServiceConfig], em ConfigName SBEncryptionCertificateThumbprint.

    • MessageBrokerPort: Porta usada para a comunicação do agente de mensagem. Essa porta deve ser a mesma que era usada para comunicação do agente de mensagem no farm antigo. Caso não seja especificado, a porta padrão é usada.

    • HttpsPort: Porta usada para a comunicação HTTPS. Essa porta deve ser a mesma que era usada para comunicação HTTPS no farm antigo. Caso não seja especificado, a porta padrão é usada.

    • TCPPort: Porta usada para a comunicação TCP. Essa porta deve ser a mesma que era usada para comunicação TCP no farm antigo. Caso não seja especificado, a porta padrão é usada.

    O cmdlet Restore-SBFarm cria um novo banco de dados de farm do Service Bus for Windows Server. Você pode excluir o banco de dados de farm antigo do Service Bus for Windows Server.

  4. Em todos os novos nós de farm, execute o cmdlet Add-SBHost com os parâmetros a seguir:

    • SBFarmDBConnectionString: Cadeia de conexão do banco de dados de farm do Service Bus for Windows Server que você criou na etapa 3.

    • RunAsPassword: SecureString que contém a senha da conta na qual os processos do Service Bus for Windows Server são executados.

    • EnableFirewallRules: Definido como true quando as regras de firewall do host devem ser atualizadas para permitir que os dados do Service Bus for Windows Server passem pelo firewall. Caso contrário, false.

Nós de farm de failover (emitir novo certificado de farm)

Os nós de farm do Service Bus for Windows Server não estão disponíveis. O SQL Server permanece disponível. Para recuperar-se de uma perda de farm, crie um novo farm e anexe os bancos de gateway e contêiner ao novo farm. Não há perda de dados. Para criar um novo farm e anexar os bancos de dados de gateway e contêiner existentes, faça o seguinte:

Pré-requisitos: nenhum.

  1. Instale o Service Bus for Windows Server e seus pré-requisitos em todas as novas máquinas de farm usando o Web Platform Installer.

  2. Em um dos novos nós de farm, execute o cmdlet Restore-SBFarm com os parâmetros a seguir:

    • RunAsAccount: Conta na qual os serviços do Service Bus for Windows Server são executados. Essa conta deve ser a mesma que foi usada para o farm antigo.

    • GatewayDBConnectionString: Cadeia de conexão do banco de dados de gateway existente.

    • SBFarmDBConnectionString: Cadeia de conexão do banco de dados de farm do Service Bus for Windows Server que esse cmdlet criou.

    • CertificateAutoGenerationKey: SecureString que contém a senha para proteger o novo certificado de farm que esse cmdlet cria.

    • MessageBrokerPort: Porta usada para a comunicação do agente de mensagem. Essa porta deve ser a mesma que era usada para comunicação do agente de mensagem no farm antigo. Caso não seja especificado, a porta padrão é usada.

    • HttpsPort: Porta usada para a comunicação HTTPS. Essa porta deve ser a mesma que era usada para comunicação HTTPS no farm antigo. Caso não seja especificado, a porta padrão é usada.

    • TCPPort: Porta usada para a comunicação TCP. Essa porta deve ser a mesma que era usada para comunicação TCP no farm antigo. Caso não seja especificado, a porta padrão é usada.

    O cmdlet Restore-SBFarm cria um novo banco de dados de farm do Service Bus for Windows Server. Você pode excluir o banco de dados de farm antigo do Service Bus for Windows Server.

  3. Execute o cmdlet Restore-SBGateway em um dos nós do farm com os seguintes parâmetros:

    • SBFarmDBConnectionString: Cadeia de conexão do banco de dados de farm do Service Bus for Windows Server que você criou na etapa 2.

    • GatewayDBConnectionString: Cadeia de conexão do banco de dados de gateway restaurado.

  4. Chame o cmdlet Update-SBHost em todos os nós do farm.

  5. Para cada banco de dados de contêiner, chame o cmdlet Restore-SBMessageContainer com os seguintes parâmetros. Execute este cmdlet em um dos computadores do farm.

    • SBFarmDBConnectionString: Cadeia de conexão do banco de dados de farm do Service Bus for Windows Server que você criou na etapa 2.

    • ContainerDBConnectionString: Cadeia de conexão do banco de dados de contêiner.

    • Id: ID do contêiner de mensagens restaurado.

    Obtém o ID do contêiner de mensagens restaurado da tabela [dbo].[ContainersTable] do banco de dados de gateway, que contém as IDs, cadeias de conexão, nomes dos servidores de banco de dados e nomes dos bancos de dados de todos os contêineres de mensagens. Selecione o ID do contêiner cujo nome do banco de dados corresponda ao nome do banco de dados de contêiner original.

  6. Em todos os novos nós de farm, chame o cmdlet Add-SBHost com os parâmetros a seguir.

    • SBFarmDBConnectionString: Cadeia de conexão do banco de dados de farm do Service Bus for Windows Server que você criou na etapa 2.

    • RunAsPassword: SecureString que contém a senha da conta na qual os processos do Service Bus for Windows Server são executados.

    • EnableFirewallRules: Definido como true quando as regras de firewall do host devem ser atualizadas para permitir que os dados do Service Bus for Windows Server passem pelo firewall. Caso contrário, false.

    • CertificateAutogenerationKey: SecureString que contém a senha para proteger o novo certificado de farm que esse cmdlet cria.

  7. Todas as chaves do namespace de serviço são criptografadas com o certificado de farm. Para emitir um novo certificado de farm, é necessário substituir todas as chaves do namespace de serviço. Para cada namespace, chame o cmdlet Set-SBNamespace com os parâmetros a seguir. Execute este cmdlet em um dos computadores do farm.

    • Name: Nome do namespace de serviço.

    • PrimarySymmetricKey: Nova chave do namespace de serviço.

Servidor SQL de failover

O SLQ Server está indisponível. Para recuperar-se de um SQL Server perdido, crie um novo SQL Server e farm do Service Bus for Windows Server, conforme descrito na seção “Farm e SQL Server de failover”.

Farm e SQL Server de failover (reutilização do certificado de farm existente)

O SQL Server o todos os nós de farm estão indisponíveis. Para recuperar-se de uma perda de farm e SQL Server, crie um novo farm e um novo SQL Server e anexe os bancos de gateway e contêiner ao novo farm. Para restaurar o SQL Server e o farm do Service Bus for Windows Server, faça o seguinte:

Pré-requisitos:

  • Backups dos bancos de dados de gateway e contêiner.

  • Certificado de farm do Service Bus for Windows Server existente.

  1. Instalar e configurar um novo SQL Server.

  2. Restaurar os bancos de dados de contêiner e gateway a partir das cópias de backup usando os recursos de restauração SQL conforme descrito em Restaurar um backup de banco de dados (SQL Server Management Studio).

  3. Instale o Service Bus for Windows Server e seus pré-requisitos nas novas máquinas de farm usando o Web Platform Installer.

  4. Instale o certificado de farm do farm antigo do Service Bus for Windows Server.

  5. Em um dos novos nós de farm, chame o cmdlet Restore-SBFarm com os parâmetros a seguir:

    • RunAsAccount: Conta na qual os serviços do Service Bus for Windows Server são executados. Essa conta deve ser a mesma que foi usada para o farm antigo.

    • GatewayDBConnectionString: Cadeia de conexão do banco de dados de gateway existente.

    • SBFarmDBConnectionString: Cadeia de conexão do banco de dados de farm do Service Bus for Windows Server que esse cmdlet criar.

    • FarmCertificateThumbprint: Impressão digital do certificado do farm antigo do Service Bus for Windows Server. Encontre a impressão digital do farm no banco de dados de farm do Service Bus for Windows Server, na tabela [Store].[ServiceConfig], em ConfigName SBEncryptionCertificateThumbprint.

    • MessageBrokerPort: Porta usada para a comunicação do agente de mensagem. Essa porta deve ser a mesma que era usada para comunicação do agente de mensagem no farm antigo. Caso não seja especificado, a porta padrão é usada.

    • HttpsPort: Porta usada para a comunicação HTTPS. Essa porta deve ser a mesma que era usada para comunicação HTTPS no farm antigo. Caso não seja especificado, a porta padrão é usada.

    • TCPPort: Porta usada para a comunicação TCP. Essa porta deve ser a mesma que era usada para comunicação TCP no farm antigo. Caso não seja especificado, a porta padrão é usada.

    O cmdlet Restore-SBFarm cria um novo banco de dados de farm do Service Bus for Windows Server. Você pode excluir o banco de dados de farm antigo do Service Bus for Windows Server.

  6. Chame o cmdlet Restore-SBGateway em um dos nós do farm com os seguintes parâmetros:

    • SBFarmDBConnectionString: Cadeia de conexão do banco de dados de farm do Service Bus for Windows Server que você criou na etapa 5.

    • GatewayDBConnectionString: Cadeia de conexão do banco de dados de gateway restaurado.

  7. Chame o cmdlet Update-SBHost em todos os nós do farm.

  8. Para cada banco de dados de contêiner, chame o cmdlet Restore-SBMessageContainer com os seguintes parâmetros. Execute este cmdlet em um dos computadores do farm.

    • SBFarmDBConnectionString: Cadeia de conexão do banco de dados de farm do Service Bus for Windows Server que você criou na etapa 5.

    • ContainerDBConnectionString: Cadeia de conexão do banco de dados de contêiner.

    • Id: ID do contêiner de mensagens restaurado.

    Obtém o ID do contêiner de mensagens restaurado da tabela [dbo].[ContainersTable] do banco de dados de gateway, que contém as IDs, cadeias de conexão, nomes dos servidores de banco de dados e nomes dos bancos de dados de todos os contêineres de mensagens. Selecione o ID do contêiner cujo nome do banco de dados corresponda ao nome do banco de dados de contêiner original.

  9. Em todos os novos nós de farm, chame o cmdlet Add-SBHost com o parâmetro a seguir:

    • SBFarmDBConnectionString: Cadeia de conexão do banco de dados de farm do Service Bus for Windows Server que você criou na etapa 5.

    • RunAsPassword: SecureString que contém a senha da conta na qual os processos do Service Bus for Windows Server são executados.

    • EnableFirewallRules: Definido como true quando as regras de firewall do host devem ser atualizadas para permitir que os dados do Service Bus for Windows Server passem pelo firewall. Caso contrário, false.

Farm e SQL Server de failover (emitir novo certificado de farm)

O SQL Server o todos os nós de farm estão indisponíveis. Para recuperar-se de uma perda de farm e SQL Server, crie um novo farm e um novo SQL Server e anexe os bancos de gateway e contêiner ao novo farm. Para restaurar o SQL Server e o farm do Service Bus for Windows Server, faça o seguinte:

Pré-requisitos:

  • Backups dos bancos de dados de gateway e contêiner.
  1. Instalar e configurar um novo SQL Server.

  2. Restaurar os bancos de dados de contêiner e gateway a partir das cópias de backup usando os recursos de restauração SQL conforme descrito em Restaurar um backup de banco de dados (SQL Server Management Studio).

  3. Instale o Service Bus for Windows Server e seus pré-requisitos nas novas máquinas de farm usando o Web Platform Installer.

  4. Em um dos novos nós de farm, chame o cmdlet Restore-SBFarm com os parâmetros a seguir:

    • GatewayDBConnectionString: Cadeia de conexão do banco de dados de gateway existente.

    • SBFarmDBConnectionString: Cadeia de conexão do banco de dados de farm do Service Bus for Windows Server que esse cmdlet criar.

    • CertificateAutoGenerationKey: SecureString que contém a senha para proteger o novo certificado de farm que esse cmdlet cria.

    • MessageBrokerPort: Porta usada para a comunicação do agente de mensagem. Essa porta deve ser a mesma que era usada para comunicação do agente de mensagem no farm antigo. Caso não seja especificado, a porta padrão é usada.

    • HttpsPort: Porta usada para a comunicação HTTPS. Essa porta deve ser a mesma que era usada para comunicação HTTPS no farm antigo. Caso não seja especificado, a porta padrão é usada.

    • TCPPort: Porta usada para a comunicação TCP. Essa porta deve ser a mesma que era usada para comunicação TCP no farm antigo. Caso não seja especificado, a porta padrão é usada.

    O cmdlet Restore-SBFarm cria um novo banco de dados de farm do Service Bus for Windows Server. Você pode excluir o banco de dados de farm antigo do Service Bus for Windows Server.

  5. Chame o cmdlet Restore-SBGateway em um dos nós do farm com os seguintes parâmetros:

    • SBFarmDBConnectionString: Cadeia de conexão do banco de dados de farm do Service Bus for Windows Server que você criou na etapa 4.

    • GatewayDBConnectionString: Cadeia de conexão do banco de dados de gateway restaurado.

  6. Chame o cmdlet Update-SBHost em todos os nós do farm.

  7. Para cada banco de dados de contêiner, chame o cmdlet Restore-SBMessageContainer com os seguintes parâmetros. Execute este cmdlet em um dos computadores do farm.

    • SBFarmDBConnectionString: Cadeia de conexão do banco de dados de farm do Service Bus for Windows Server que você criou na etapa 4.

    • ContainerDBConnectionString: Cadeia de conexão do banco de dados de contêiner.

    • Id: ID do contêiner de mensagens restaurado.

    Obtém o ID do contêiner de mensagens restaurado da tabela [dbo].[ContainersTable] do banco de dados de gateway, que contém as IDs, cadeias de conexão, nomes dos servidores de banco de dados e nomes dos bancos de dados de todos os contêineres de mensagens. Selecione o ID do contêiner cujo nome do banco de dados corresponda ao nome do banco de dados de contêiner original.

  8. Em todos os novos nós de farm, chame o cmdlet Add-SBHost com o parâmetro a seguir:

    • SBFarmDBConnectionString: Cadeia de conexão do banco de dados de farm do Service Bus for Windows Server que você criou na etapa 4.

    • RunAsPassword: SecureString que contém a senha da conta na qual os processos do Service Bus for Windows Server são executados.

    • EnableFirewallRules: Definido como true quando as regras de firewall do host devem ser atualizadas para permitir que os dados do Service Bus for Windows Server passem pelo firewall. Caso contrário, false.

    • CertificateAutoGenerationKey: SecureString que contém a senha para proteger o novo certificado de farm que esse cmdlet cria.

  9. Todas as chaves do namespace de serviço são criptografadas com o certificado de farm. Para emitir um novo certificado de farm, é necessário substituir todas as chaves do namespace de serviço. Para cada namespace, chame o cmdlet Set-SBNamespace com os parâmetros a seguir. Execute este cmdlet em um dos computadores do farm.

    • Name: Nome do namespace de serviço.

    • PrimarySymmetricKey: Nova chave do namespace de serviço.

Restaure o banco de dados de farm do Barramento de Serviço

O banco de dados de farm do Service Bus for Windows Server está corrompido ou perdido. Para recuperar-se de um banco de dados de farm do Service Bus for Windows Server perdido, recrie o farm conforme descrito na seção "Farm de failover (reutilização de certificado de farm existente)".

Restaure o banco de dados de gateway

O banco de dados de gateway do Service Bus for Windows Server está corrompido ou perdido.

Este cmdlet tenta conectar-se a todos os bancos de dados de contêiner. Qualquer contêiner cujo banco de dados não puder ser contatado será marcado como com falha no banco de dados de gateway. Para habilitar um contêiner com falha, execute o cmdlet Restore-SBMessageContainer para o contêiner com falha.

Pré-requisitos:

  • Um backup do banco de dados de gateway.
  1. Restaurar os bancos de dados de contêiner e gateway a partir das cópias de backup usando os recursos de restauração SQL conforme descrito em Restaurar um backup de banco de dados (SQL Server Management Studio).

  2. Chame o cmdlet Stop-SBHost em todos os nós do farm.

  3. Chame o cmdlet Restore-SBGateway em um dos nós do farm com o seguinte parâmetro:

    • GatewayDBConnectionString: Cadeia de conexão do banco de dados de gateway restaurado.
  4. Chame o cmdlet Update-SBHost em todos os nós do farm.

  5. Chame o cmdlet Get-SBMessageContainer em um dos nós do farm. Observação se houver contêineres de mensagens com status Com falha.

  6. Para cada contêiner de mensagens cujo status é Com falha, chame o cmdlet Restore-SBMessageContainer em um dos nós de farm com os seguintes parâmetros:

    • ContainerDBConnectionString: Cadeia de conexão do banco de dados de contêiner.

    • Id: ID do contêiner de mensagens.

  7. Chame o cmdlet Start-SBHost em todos os nós do farm.

Restaure o banco de dados de contêiner

Um ou mais bancos de dados de contêiner do Service Bus for Windows Server estão corrompidos ou perdidos. Para restaurar bancos de dados de contêiner perdidos, faça o seguinte.

Pré-requisitos:

  • Backups de cada banco de dados de contêiner perdido.
  1. Restaure todos os bancos de dados de contêiner perdidos a partir das cópias de backup usando os recursos de restauração SQL conforme descrito em Restaurar um backup de banco de dados (SQL Server Management Studio).

  2. Para cada banco de dados de contêiner perdido, chame o cmdlet Restore-SBMessageContainer com os seguintes parâmetros. Execute este cmdlet em um dos computadores do farm.

    • ContainerDBConnectionString: Cadeia de conexão do banco de dados de contêiner restaurado.

    • Id: ID do contêiner de mensagens restaurado.

    Obtenha a ID do contêiner de mensagens restaurado chamando o cmdlet Get-SBMessageContainer em um dos nós do farm. Esse cmdlet retorna as IDs, as cadeias de conexão, os nomes de servidor de banco de dados e os nomes de banco de dados de todos os contêineres de mensagens. Selecione o ID do contêiner cujo nome do banco de dados corresponda ao nome do banco de dados de contêiner original.

  3. Chame o cmdlet Stop-SBHost em todos os nós do farm.

  4. Chame o cmdlet Start-SBHost em todos os nós do farm.

Restaure uma entidade do Barramento de Serviço

Uma fila ou um tópico do Service Bus foi excluído. Para restaurar uma entidade perdida, faça o seguinte. A entidade é restaurada em um dos bancos de dados de contêiner atuais.

Pré-requisitos:

  • Backups dos bancos de dados de gateway e todos os bancos de dados de contêiner.
  1. Restaure todos os bancos de dados de contêiner usando os recursos de restauração SQL conforme descrito em Restaurar um backup de banco de dados (SQL Server Management Studio). Restaure os bancos de dados de contêiner em bancos de dados temporários. Não substitua os bancos de dados de contêiner atuais.

  2. Restaure o bancos de dados de contêiner usando os recursos de restauração SQL conforme descrito em Restaurar um backup de banco de dados (SQL Server Management Studio). Restaure o banco de dados de gateway em um banco de dados temporário. Não substitua o banco de dados de contêiner atual.

  3. Chame o cmdlet Restore-SBEntity em um dos nós do farm com os seguintes parâmetros:

    • EntityPath: URI da entidade a ser restaurada.

    • SourceGatewayConnectionString: Cadeia de conexão do banco de dados de gateway temporário restaurado.

    • SourceMessageContainersConnectionStrings: Lista de cadeias de conexão dos bancos de dados de contêiner temporários restaurados.

  4. Chame o cmdlet Stop-SBHost em todos os nós do farm.

  5. Chame o cmdlet Start-SBHost em todos os nós do farm.

  6. Exclua os bancos de dados de gateway e contêiner temporários.

Data da compilação:

2013-07-25