Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Configurar a replicação do SQL Server e os grupos de disponibilidade AlwaysOn envolve sete etapas. Cada etapa está descrita com mais detalhes nas seções a seguir.
1. Configurar as publicações de banco de dados e assinaturas
Configurar o distribuidor
O distribuidor não deve ser um host para nenhuma das réplicas atuais (ou planejadas) do grupo de disponibilidade do qual o banco de dados de publicação é (ou se tornará) um membro.
Configurar a distribuição no distribuidor. Se os procedimentos armazenados estiverem sendo usados para configuração, execute
sp_adddistributor. Use o parâmetro @password para identificar a senha que será usada quando um publicador remoto se conectar ao distribuidor. A senha também será necessária em cada publicador remoto quando o distribuidor remoto for instalado.USE master; GO EXEC sys.sp_adddistributor @distributor = 'MyDistributor', @password = '**Strong password for distributor**';Criar o banco de dados de distribuição no distribuidor. Se os procedimentos armazenados estiverem sendo usados para configuração, execute
sp_adddistributiondb.USE master; GO EXEC sys.sp_adddistributiondb @database = 'distribution', @security_mode = 1;Configurar o publicador remoto. Se os procedimentos armazenados estiverem sendo usados para configurar o distribuidor, execute
sp_adddistpublisher. O parâmetro @security_mode é usado para determinar como o procedimento armazenado de validação de publicador, que é executado dos agentes de replicação, se conecta à réplica primária atual. Se a autenticação do Windows definida como 1 for usada na conexão à primária atual. Se estiver definida como 0, a autenticação do SQL Server será usada com os valores @login e @password especificados. O logon e a senha especificada devem ser válidos em cada réplica secundária para o procedimento armazenado de validação se conectar com êxito a essa réplica.Observação
Se qualquer agente de replicação modificado for executado em um computador que não seja o distribuidor, o uso da autenticação do Windows para a conexão à réplica primária exigirá a configuração da autenticação Kerberos para a comunicação entre os computadores host da réplica. O uso de um logon do SQL Server para a conexão à réplica primária atual não requer a autenticação Kerberos.
USE master; GO EXEC sys.sp_adddistpublisher @publisher = 'AGPrimaryReplicaHost', @distribution_db = 'distribution', @working_directory = '\\MyReplShare\WorkingDir', @login = 'MyPubLogin', @password = '**Strong password for publisher**';
Para obter mais informações, confira sp_adddistpublisher (Transact-SQL).
Configurar o editor no editor original
Configurar um distribuidor remoto. Se os procedimentos armazenados estiverem sendo usados para configurar o publicador, execute
sp_adddistributor. Especifique o mesmo valor para @password que o usado quandosp_adddistrbutorfoi executado no distribuidor para configurar a distribuição.exec sys.sp_adddistributor @distributor = 'MyDistributor', @password = 'MyDistPass'Habilitar o banco de dados para replicação. Se os procedimentos armazenados estiverem sendo usados para configurar o publicador, execute
sp_replicationdboption. Se as replicações transacional e de mesclagem forem configurada para o banco de dados, cada uma deverá ser habilitada.USE master; GO EXEC sys.sp_replicationdboption @dbname = 'MyDBName', @optname = 'publish', @value = 'true'; EXEC sys.sp_replicationdboption @dbname = 'MyDBName', @optname = 'merge publish', @value = 'true';Criar publicações, artigos e assinaturas da replicação. Para obter mais informações sobre como configurar a replicação consulte os objetos Publishing Data e Database.
2. Configurar o Grupo de Disponibilidade AlwaysOn
Na réplica primária pretendida, crie o grupo de disponibilidade com o banco de dados publicado (ou a ser publicado) como um banco de dados membro. Se estiver usando o Assistente de Grupo de Disponibilidade, você poderá permitir que o assistente sincronize os bancos de dados de réplica secundária inicialmente ou poderá executar a inicialização manualmente usando backup e restauração.
Crie um ouvinte de DNS para o grupo de disponibilidade que será usado pelos agentes de replicação para conectar à replicação primária atual. O nome de ouvinte que é especificado será usado como o destino de redirecionamento para o par publicador original/banco de dados publicado. Por exemplo, se você estiver usando o DDL para configurar o grupo de disponibilidade, o seguinte exemplo de código poderá ser usado para especificar um ouvinte de grupo de disponibilidade para um grupo de disponibilidade existente chamado MyAG:
ALTER AVAILABILITY GROUP 'MyAG'
ADD LISTENER 'MyAGListenerName' (WITH IP (('10.120.19.155', '255.255.254.0')));
Para obter mais informações, confira Criação e configuração de Grupos de Disponibilidade (SQL Server).
3. Verifique se todos os Hosts de Réplica Secundária estão configurados para replicação
Em cada host de réplica secundária, verifique se o SQL Server foi configurado para oferecer suporte à replicação. A seguinte consulta pode ser executada em cada host de réplica secundária para determinar se a replicação é instalada:
USE master;
GO
DECLARE @installed int;
EXEC @installed = sys.sp_MS_replication_installed;
SELECT @installed;
Se @installed for 0, a replicação deverá ser adicionada à instalação do SQL Server.
4. Configurar os hosts de réplica secundária como publicadores de replicação
Uma réplica secundária não pode agir como um publicador de replicação ou republicador, mas a replicação deve ser configurada de forma que a secundária possa assumir o comando depois de um failover. No distribuidor, configure a distribuição para cada host de réplica secundária. Especifique o mesmo banco de dados de distribuição e diretório de trabalho que foram especificados quando o publicador original foi adicionado ao distribuidor. Se você estiver usando procedimentos armazenados para configurar a distribuição, use sp_adddistpublisher para associar os editores remotos ao distribuidor. Se foram usados @login e @password para o publicador original, especifique os mesmos valores para cada um quando adicionar os hosts de réplica secundária como publicadores.
EXEC sys.sp_adddistpublisher
@publisher = 'AGSecondaryReplicaHost',
@distribution_db = 'distribution',
@working_directory = '\\MyReplShare\WorkingDir',
@login = 'MyPubLogin',
@password = '**Strong password for publisher**';
Em cada host de réplica secundária, configure a distribuição. Identifique o distribuidor do publicador original como o distribuidor remoto. Use a mesma senha usada quando sp_adddistributor foi executada originalmente no distribuidor. Se os procedimentos armazenados estiverem sendo usados para configurar a distribuição, o parâmetro sp_adddistributor@password será usado para especificar a senha.
EXEC sp_adddistributor
@distributor = 'MyDistributor',
@password = '**Strong password for distributor**';
Em cada host de réplica secundária, verifique se os assinantes push das publicações de banco de dados aparecem como servidores vinculados. Se os procedimentos armazenados estiverem sendo usados para configurar os editores remotos, use sp_addlinkedserver para adicionar os assinantes (se ainda não estiverem presentes) como servidores vinculados aos editores.
EXEC sys.sp_addlinkedserver
@server = 'MySubscriber';
5. Redirecionar o publicador original para o nome do ouvinte do AG
No distribuidor, no banco de dados de distribuição, execute o procedimento sp_redirect_publisher armazenado para associar o publicador original e o banco de dados publicado ao nome do ouvinte do grupo de disponibilidade.
USE distribution;
GO
EXEC sys.sp_redirect_publisher
@original_publisher = 'MyPublisher',
@publisher_db = 'MyPublishedDB',
@redirected_publisher = 'MyAGListenerName';
6. Executar o procedimento armazenado de validação de replicação para verificar a configuração
No distribuidor, no banco de dados de distribuição, execute o procedimento sp_validate_replica_hosts_as_publishers armazenado para verificar se todos os hosts de réplica agora estão configurados para servir como editores para o banco de dados publicado.
USE distribution;
GO
DECLARE @redirected_publisher sysname;
EXEC sys.sp_validate_replica_hosts_as_publishers
@original_publisher = 'MyPublisher',
@publisher_db = 'MyPublishedDB',
@redirected_publisher = @redirected_publisher output;
O procedimento sp_validate_replica_hosts_as_publishers armazenado deve ser executado de um logon com autorização suficiente em cada host de réplica do grupo de disponibilidade para consultar informações sobre o grupo de disponibilidade. Diferentemente de sp_validate_redirected_publisher, ele utiliza as credenciais da pessoa que faz a chamada e não usa o login armazenado em msdb.dbo.MSdistpublishers para se conectar às réplicas do grupo de disponibilidade.
Observação
sp_validate_replica_hosts_as_publishers falhará com o erro a seguir ao validar hosts de réplica secundária que não permitem acesso de leitura ou exigem que a intenção de leitura seja especificada.
Msg 21899, Nível 11, Estado 1, Procedimento sp_hadr_verify_subscribers_at_publisher, Linha 109
A consulta no publicador redirecionado 'MyReplicaHostName' para determinar se havia entradas de sysserver para os assinantes do publicador original 'MyOriginalPublisher' falhou com o erro '976', mensagem de erro ' Erro 976, Nível 14, Estado 1, Mensagem: O banco de dados de destino, 'MyPublishedDB', está participando de um grupo de disponibilidade e atualmente não está acessível para consultas. Qualquer movimento de dados é suspenso ou a réplica de disponibilidade não é habilitada para acesso de leitura. Para permitir o acesso somente leitura a esse banco de dados e a outros no grupo de disponibilidade, habilite o acesso de leitura para uma ou mais réplicas de disponibilidade secundárias no grupo. Para obter mais informações, consulte a ALTER AVAILABILITY GROUP instrução nos Manuais Online do SQL Server.'.
Foram encontrados um ou mais erros de validação de publicador para o host de réplica 'MyReplicaHostName'.
Este comportamento é esperado. Você deve verificar a presença das entradas de servidor de assinante nesses hosts de réplica secundária, consultando as entradas de sysserver diretamente no host.
7. Adicionar o publicador original ao Replication Monitor
Em cada réplica de grupo de disponibilidade, adicione o publicador original ao Replication Monitor.
Tarefas Relacionadas
Replicação
Para criar e configurar um grupo de disponibilidade
Usar a caixa de diálogo Assistente de Grupo de Disponibilidade (SQL Server Management Studio)
Usar a caixa de diálogo Novo Grupo de Disponibilidade (SQL Server Management Studio)
Unir uma réplica secundária a um grupo de disponibilidade (SQL Server)
Preparar um banco de dados secundário manualmente para um grupo de disponibilidade (SQL Server)
Unir um banco de dados secundário a um grupo de disponibilidade (SQL Server)
Criar ou Configurar um Ouvinte de Grupo de Disponibilidade (SQL Server)
Consulte Também
Pré-requisitos, restrições e recomendações para grupos de disponibilidade AlwaysOn (SQL Server)
Visão geral dos Grupos de Disponibilidade AlwaysOn (SQL Server)
Grupos de Disponibilidade AlwaysOn: Interoperabilidade (SQL Server)
Replicação do SQL Server