Database
 sql >> Base de Dados >  >> RDS >> Database

Como criar replicação transacional


Neste artigo, vou demonstrar como criar replicação transacional.

A replicação transacional gerou um instantâneo de objetos de banco de dados de publicação e dados dentro dele. Depois que o instantâneo é gerado, todas as alterações de dados e de esquema ocorridas no banco de dados do editor são entregues aos bancos de dados do assinante. Na replicação transacional, as alterações de dados e esquema são quase em tempo real, portanto, a replicação transacional pode ser usada para descarregar relatórios e, às vezes, pode ser usada como Site DR.



Quando criamos a replicação transacional, o SQL Server cria os seguintes SQL Jobs
  1. Trabalho de agente de instantâneo: O trabalho do agente de instantâneo gera um instantâneo de objetos de banco de dados de publicação. O instantâneo é armazenado no local da rede ou no disco
  2. Trabalho de leitor de log: O Log Reader Job monitora continuamente as publicações. Ele detecta alterações de esquema e consultas de inserção, atualização e exclusão e as marca para replicação. O leitor de log usa “Sp_Replcmds ” para aplicar os comandos marcados para replicação.

Configuração de demonstração:


Para esta demonstração, criei duas instâncias do SQL Server no mesmo servidor de banco de dados. Os nomes e detalhes das instâncias são os seguintes:



Ao configurar a demonstração, não criei um distribuidor, portanto, a instância do editor também atuará como distribuidor. Eu criei o "Cliente ” no banco de dados AdventureWorks2014. Vou replicar os dados da tabela Customer. Portanto, será chamado de artigo pela editora.

Configurar editor


Para configurar o editor, abra o SQL Server Management Studio, expanda a instância do banco de dados, expanda Replicação nó e clique com o botão direito do mouse em Publicação local e selecione Nova publicação .



O Assistente de Nova Publicação é iniciado. Na caixa de diálogo, é fornecido um breve resumo do assistente. Você pode pular a aparência desta caixa de diálogo marcando a opção Não mostrar esta página inicial novamente caixa de seleção. Clique em Avançar para mover para a próxima caixa de diálogo.



Na próxima caixa de diálogo, selecione o banco de dados que atua como editor. Nesta demonstração, estou usando o AdventureWorks2014 banco de dados, então selecione AdventureWorks2014 na lista do banco de dados e clique em Avançar .



Na próxima caixa de diálogo, selecione o tipo de publicação na lista de tipos de publicação e suas descrições também são fornecidas nas Descrições do tipo de publicação caixa de texto. Selecione Publicação transacional e clique em Avançar .



Na próxima caixa de diálogo, selecione o tipo de publicação na lista de tipos de publicação e suas descrições também são fornecidas nas Descrições do tipo de publicação caixa de texto. Selecione Publicação transacional e clique em Avançar .



Se desejar filtrar os dados da tabela, você pode especificar a condição na caixa de diálogo Filtrar Linhas da Tabela. Para adicionar o filtro, clique no botão Adicionar botão. Outra caixa de diálogo Adicionar filtro abre. Nesta caixa de diálogo, você pode especificar a instrução de filtro desejada na instrução de filtro caixa de texto.



Para esta demonstração, não estamos filtrando dados do Cliente tabela, então pule esta caixa de diálogo e clique em Avançar .

Para inicializar a replicação transacional, devemos gerar o instantâneo. Na caixa de diálogo Snapshot Agent, configure o intervalo de geração de snapshot. Você pode gerar o instantâneo imediatamente ou pode agendar o horário específico para gerar o instantâneo do banco de dados. Por padrão, o instantâneo é gerado a cada hora, mas podemos alterá-lo. Para gerar o instantâneo em um intervalo específico, clique em Alterar. A caixa de diálogo Nova Agenda de Trabalho é aberta. Configure a programação desejada e clique em OK .



Nesta demonstração, gerarei o instantâneo imediatamente, portanto, verifique Criar um instantâneo e mantenha o instantâneo disponível para inicializar a assinatura opção e clique em Avançar .

Na próxima caixa de diálogo, configure a segurança do SQL Agent. Para configurar a segurança do agente, clique em Configurações de segurança botão. A Segurança do agente de instantâneo ” abre-se a caixa de diálogo. Na caixa de diálogo, especifique a conta sob a qual o assinante se conecta ao editor. Além disso, especifique as informações da conta sob a qual o trabalho do agente do SQL Server será executado. Para esta demonstração, os trabalhos do SQL Server são executados na conta de serviço do SQL Server Agent, portanto, selecione Executar na conta de serviço do SQL Server Agent opção. Os assinantes serão conectados ao editor usando o logon do SQL, então selecione Usando o seguinte logon do SQL Server opção e especifique o login e a senha do SQL. Nesta demonstração, conecte-se usando o “sa " Conecte-se. Clique em OK para fechar a caixa de diálogo e clique em Avançar .



Na próxima caixa de diálogo, você pode optar por criar uma publicação ou gerar scripts para criar a publicação. Selecione Gerar um arquivo de script para criar a publicação opção para gerar os scripts das etapas de replicação. Vamos criar a publicação, então selecione Criar a publicação opção e clique em Avançar .



Na próxima caixa de diálogo, especifique o nome da publicação, revise o resumo das tarefas a serem executadas para criar a replicação e clique em Concluir para criar a publicação e fechar Nova publicação Assistente .



Como mencionei no início do artigo, quando criamos uma replicação transacional, ela cria o trabalho do agente de leitura de log, o trabalho do agente de instantâneo e o trabalho de limpeza para assinaturas expiradas.

Para visualizá-los, expanda SQL Server Agent e expanda Tarefas .



Depois que a publicação estiver configurada, configure os assinantes.

Configurar o Assinante


Para configurar o assinante, primeiro, conecte-se a outra instância SQL. Depois de se conectar à instância, expanda Replicação e clique com o botão direito do mouse em Assinatura local .



O Assistente de nova assinatura abre. Na caixa de diálogo, é fornecido um breve resumo do assistente. Você pode pular a aparência desta tela marcando a opção Não mostrar esta página inicial novamente caixa de seleção. Clique em Avançar para mover para a próxima caixa de diálogo.



Na próxima caixa de diálogo, escolha o servidor de publicação. Clique no Editor caixa suspensa e clique em Localizar editor do SQL Server . Uma caixa de diálogo para se conectar ao editor é aberta. No Nome do servidor caixa de texto, especifique o nome do host do servidor do editor e clique em Conectar .



Assim que a conexão for estabelecida com o editor, Customer_Publication e AdventureWorks2014 será exibido nos Bancos de dados e publicação caixa de texto. Selecione Customer_Publication e clique em Avançar .



Na próxima caixa de diálogo, escolha o local do agente de distribuição. Para esta demonstração, usarei a Pull Subscription , então selecione Executar cada agente em seu assinante opção e clique em Avançar :



Na próxima caixa de diálogo, selecione um banco de dados de assinatura. Eu criei um banco de dados chamado Customer_DB , que atua como um banco de dados de assinantes. No banco de dados de assinaturas caixa suspensa, selecione o Customer_DB banco de dados da lista. Depois de selecionar o banco de dados de assinaturas, clique em Avançar .



Na próxima caixa de diálogo, configure a segurança do agente de distribuição. Para configurar a segurança, clique no botão […]. A Segurança do Agente de Distribuição caixa de diálogo é aberta. Na primeira seção, especifique a conta de domínio na qual o processo do Distribution Agent será executado. O Distribution Agent será executado no serviço SQL Server Agent, portanto, selecione Executar na conta de serviço do agente SQL Server opção.

Aqui eu não configurei o servidor de distribuição, então o editor atua como distribuidor. O assinante se conectará ao Publicador/Distribuidor usando um Login SQL. Para conectar o Distribuidor, use o “sa” login e senha.



Clique em OK para fechar a caixa de diálogo. Na caixa de diálogo Distribution Agent Security, clique em Next .



Na próxima caixa de diálogo, configure o agendamento de sincronização de assinatura. Você pode optar por executar continuamente ou configurar a execução agendada. Selecione Executar continuamente na agenda do agente caixa suspensa. Clique em Avançar .



Na próxima caixa de diálogo, escolha se deseja inicializar a assinatura imediatamente com o instantâneo de dados e esquema de publicação ou após a primeira sincronização. Inicializaremos a assinatura imediatamente, então escolha Imediatamente do Inicializar quando caixa suspensa. Clique em Avançar .



Na próxima caixa de diálogo, você pode optar por criar a assinatura imediatamente ou gerar os scripts para criar uma assinatura. Selecione Gerar um arquivo de script para criar a assinatura opção para gerar os scripts das etapas de replicação. Criaremos uma publicação, então selecione Criar a assinatura opção e clique em Avançar .



Na próxima caixa de diálogo, é fornecida uma lista de tarefas executadas para criar a assinatura. Você pode revisá-los e clicar em Concluir .



Depois que a assinatura for criada, você poderá vê-la em Assinatura local nó.


Visualizar o status da replicação


Você pode usar o Replication Monitor para exibir o status da replicação. Para abrir o Replication Monitor, expanda Replicação e, em seguida, expanda Publicações Locais. Clique com o botão direito do mouse em Customer_Publication e selecione Iniciar o Replication Monitor.


Resumo:


Neste artigo, expliquei:
  1. Um resumo de alto nível da replicação transacional.
  2. Configuração de demonstração.
  3. Como configurar a publicação de replicação.
  4. Como configurar assinantes de replicação.


Ferramentas úteis:


dbForge Data Compare for SQL Server – poderosa ferramenta de comparação SQL capaz de trabalhar com big data.


dbForge Schema Compare for SQL Server – ferramenta confiável que economiza seu tempo e esforço ao comparar e sincronizar bancos de dados no SQL Server.