Articles

SQLShack

the volume of data retained, managed, and accessed today is unprecedented. As empresas esperam que o departamento de TI mantenha os dados online e acessíveis indefinidamente, exercendo uma pressão intensa sobre as bases de dados necessárias para armazená-los e geri-los. Para satisfazer as necessidades actuais, precisamos de substituir processos antigos obsoletos e ineficientes por novas técnicas mais ágeis. A replicação do servidor SQL é uma das técnicas para acomodar tais demandas.

  • Nota: Para saber mais sobre a replicação de bases de dados, por favor leia diferentes partes interessadas, diferentes pontos de vista: por que a gestão de bases de dados requer um artigo de abordagem sistemática.

neste artigo, vamos moldar a sua compreensão da topografia completa de replicação do servidor SQL, incluindo componentes, internos e o SQL para ligar tudo. Depois de ler este artigo, vai entender.:

  • replicação do SQL Server, em geral
  • Componentes transacionais de replicação do SQL Server, em particular
  • Como obter propriedades do distribuidor
  • Como encontrar o publisher usando o mesmo distribuidor
  • o Que são os bancos de dados utilizados para a replicação do SQL Server
  • A topologia geral de um ambiente de replicação
  • o Que são os artigos que são mapeados para o tipo de replicação do SQL Server modelo
  • Como chegar detalhes da publicação
  • Como obter dados de inscrição
  • SQL Server agentes de Replicação
  • E mais …

replicação

replicação do servidor SQL é uma tecnologia para copiar e distribuir dados e objetos de banco de dados de uma base de dados para outra e, em seguida, sincronizar entre bases de dados para manter a consistência e integridade dos dados. Na maioria dos casos, replicação é um processo de reprodução dos dados nos alvos desejados. A replicação do servidor SQL é usada para copiar e sincronizar dados continuamente ou também pode ser programada para executar em intervalos pré-determinados. Existem várias técnicas de replicação diferentes que suportam uma variedade de abordagens de sincronização de dados; um-para-muitos; muitos-para-um; e bidirecional, e mantém vários conjuntos de dados em sincronia uns com os outros.

componentes de replicação transacional do servidor SQL

O diagrama seguinte mostra os Componentes da replicação transacional do servidor SQL.

Incluindo a replicação do SQL Server …

  • Editora
  • Publicação de banco de dados
  • Publicação
  • Artigos
  • Distribuidor
  • Distribuição banco de dados
  • Assinante
  • Assinatura de banco de dados
  • Inscrição
  • Os agentes de replicação

a replicação do SQL Server diagrama

Artigo

Um artigo é a unidade básica de Replicação do SQL Server. Um artigo pode consistir em tabelas, procedimentos armazenados e opiniões. É possível escalar o artigo, horizontal e verticalmente, usando uma opção de filtro. Também podemos criar vários artigos sobre o mesmo objeto com algumas restrições e limitações.

Usando o novo assistente de publicação, o artigo pode ser navegado. Permite-nos ver as propriedades de um artigo e fornecer opções para definir propriedades para os artigos. Em algum caso, as propriedades podem ser definidas durante o tempo de criação da publicação e é uma propriedade somente para leitura.

Após a criação de uma publicação de replicação do servidor SQL, por exemplo, se alguma propriedade requer uma alteração, ela irá, por sua vez, exigir uma nova imagem de replicação a ser gerada. Se a publicação tiver uma ou mais assinaturas, a alteração requer que todas as assinaturas sejam reinicializadas. Para mais informações, veja como adicionar / largar artigos para / a partir da publicação existente no artigo do servidor SQL.

a lista De todos os artigos que são publicados, execute o seguinte T-SQL

1
2
3
4
5
6
7
8
9
10
11
12

SELECIONE
Pub.
,Art.
,Art.
,Art.
,Art.
do
.. Art
junta interna .. Pub
sobre arte. = Pub.
ORDER BY
Pub., Art.

To get the details of articles in transactional or merge SQL Server replication in a published database, run the following T-SQL.

1
2
3
4
5
6
7
8

SELECT st.name , st.schema_id, st.is_published , st.is_merge_published, is_schema_published
FROM sys.tables st WHERE st. is_published = 1 or st. is_merge_published = 1 or st. is_schema_published = 1
UNION
SELECT sp.name, sp.schema_id, 0, 0, sp. is_ schema_published
FROM sys.procedures sp WHERE sp. is_schema_published = 1
UNION
SELECT sv.name, sv.schema_id, 0, 0, sv. is_ schema_published
FROM sys.vistas sv onde o sv. is_ schema_published = 1;

To get detailed information about an article in the listed publisher, run the following T-SQL

1
2
3
4
5
6
7

DECLARE @publication AS sysname;
SET @publication = N’PROD_HIST_Pub’;
USE MES_PROD_AP
EXEC sp_helparticle
@publication = @publication;
GO

To get column level details, run the following T-SQL

1
2
3

USE MES_PROD_AP
GO
sp_helparticlecolumns @publication = N’PROD_HIST_Pub’ , @article = ‘tb_Branch_Plant’

Para listar as colunas que são publicados na replicação transacional no banco de dados de publicação, execute o seguinte T-SQL

1
SELECT object_name(object_id) , nome DO sys.columns sc WHERE sc. is_replicated = 1;

Publications

a Publication is a logical collection of articles from a database. A entidade permite-nos definir e configurar as propriedades do artigo a um nível superior para que as propriedades sejam herdadas de todos os artigos desse grupo.

1
EXEC sp_helppublication;

Editor de banco de dados

O editor é um banco de dados que contém uma lista de objectos que são designados como a replicação do SQL Server artigos são conhecidos como banco de dados de publicação. O editor pode ter uma ou mais publicações. Cada Editor define um mecanismo de propagação de dados através da criação de vários procedimentos internos de replicação armazenados.

1
2
3

USE Distribution
GO
select * from MSpublications

Publisher

The Publisher is a database instance that makes data available to other locations through SQL Server replication. O editor pode ter uma ou mais publicações, cada uma definindo um conjunto logicamente relacionado de objetos e dados para replicar.

distribuidor

o distribuidor é uma base de dados que funciona como um armazém para replicação de dados específicos associados a um ou mais Editores. Em muitos casos, o distribuidor é um único banco de dados que atua tanto como o Editor quanto o distribuidor. In the context of SQL Server replication, this is commonly known as a “local distributor”. Por outro lado, se estiver configurado em um servidor separado, então é conhecido como um “distribuidor remoto”. Cada Editor está associado com um único banco de dados conhecido como um “banco de dados de distribuição”, conhecido como o “distribuidor”.

a base de dados de distribuição identifica e armazena dados de Estado de replicação do servidor SQL, metadados sobre a publicação, e, em alguns casos, atua como uma fila de dados que se deslocam do Editor para os assinantes. dependendo do modelo de replicação, o distribuidor pode também ser responsável por notificar os assinantes que subscreveram uma publicação de que um artigo foi alterado. Além disso, a base de dados de distribuição mantém a integridade dos dados. cada distribuidor deve ter pelo menos uma base de dados de distribuição. A base de dados de distribuição consiste em detalhes do artigo, meta-dados de replicação e dados. Um Distribuidor pode ter mais de uma base de dados de distribuição; no entanto, todas as publicações definidas em um único editor devem usar a mesma base de dados de distribuição.

Para descobrir se …

  • um servidor é um distribuidor ou não?

    1
    SELECT @@ServerName Servername, case when is_distributor=1 then ‘Yes’ else ‘No’ end status FROM sys.servers WHERE name=’repl_distributor’ AND data_source=@@servername;

  • a distribution database installed or not?

    1
    SELECT name FROM sys.databases WHERE is_distributor = 1
  • a Publisher is using this Distributor or not?

    1
    EXEC sp_get_distributor

  • or just to interrogate various Distributor and Distribution database properties?

    1
    2
    3

    EXEC sp_helpdistributor;
    EXEC sp_helpdistributiondb;
    EXEC sp_helpdistpublisher;

Subscriber

A database instance that consumes SQL Server replication data from a publication is called a Subscriber. O assinante pode receber dados de um ou mais editores e publicações. O assinante também pode passar alterações de dados de volta para o editor ou republicar os dados para outros Assinantes, dependendo do tipo de projeto de replicação e modelo.

1
EXEC sp_helpsubscriberinfo;

Inscrições

Uma assinatura é um pedido de uma cópia de uma publicação para ser entregue a um Assinante. A assinatura define quais os dados de publicação serão recebidos, onde e quando.

xistem dois tipos de assinaturas: Assinatura push e assinatura pull

  • assinatura Push: o distribuidor actualiza directamente os dados na base de dados do Assinante
  • : o assinante está agendado para verificar regularmente no Distribuidor se quaisquer novas alterações estão disponíveis, e em seguida atualiza os dados na base de dados de assinatura em si.
1
EXEC sp_helpsubscription;

Assinatura de bases de dados

Um banco de dados de destino de um modelo de replicação é chamado uma assinatura de banco de dados.

Replication agents

SQL Server replication uses a pre-defined set of standalone programs and events are known as agents, to carry out the tasks associated with data. Por padrão, os agentes de replicação do servidor SQL executam como tarefas agendadas sob o agente do servidor SQL. Os agentes de replicação também podem ser executados a partir da linha de comando e por aplicações que usam objetos de gerenciamento de replicação (RMO). Os agentes de replicação do servidor SQL podem ser monitorados e administrados usando o Monitor de replicação e o Estúdio de Gerenciamento do servidor SQL.

Replication snapshot Agent

the Replication snapshot Agent is used with all types of SQL Server replication technology as it provides the required data set to perform the initial data synchronization of the publication database with the subscription database. Ele prepara esquemas e dados iniciais de artigos publicados, arquivos de instantâneos, e registra informações sobre o tipo de sincronização na base de dados de distribuição.

agente Leitor de Registos

o agente Leitor de Registos é utilizado apenas com replicação transacional. Ele move as operações de replicação do diário de transações online da base de dados de publicação para a base de dados de distribuição.

agente de distribuição

o agente de Distribuição só é utilizado com fotografia de replicação e replicação do servidor SQL transacional. Este agente aplica o instantâneo de replicação inicial à base de dados de assinaturas e, mais tarde, as alterações de dados são rastreadas e gravadas na base de dados de distribuição e aplicadas à base de dados de assinaturas.

Merge Agent

o Merge Agent é usado com o merge replication model. Por padrão, o Merge Agent faz uploads de mudanças do Assinante para a editora e, em seguida, transfere mudanças da Editora para o Assinante. Cada assinatura tem seu próprio agente de fusão que se conecta tanto ao editor quanto ao assinante e atualiza ambos. O agente de fusão funciona quer no distribuidor para as assinaturas push, quer no assinante para as assinaturas pull. Aqui, a sincronização é bidirecional. Os conflitos de dados são tratados por um conjunto de gatilhos que suporta todo o processo

resumo

até agora, temos visto uma caminhada de alguns dos conceitos importantes da replicação do servidor SQL. Além disso, scripts T-SQL são mostrados para consultar tabelas do sistema e procedimentos de replicação armazenados para responder a maior parte da pergunta comumente feita sobre a replicação do servidor SQL.

discutirei mais sobre a replicação do servidor SQL nos próximos artigos. Se você se sentir, algo que pode ser melhorado neste artigo, sinta-se livre para deixar seu comentário abaixo…

índice

a replicação do SQL Server: Visão geral dos componentes e a topografia

a Replicação do SQL: Básicos de instalação e configuração

Como Add/Drop artigos de publicações existentes no SQL Server

Como fazer uma rápida estimativa de comparar dados de dois grandes bancos de dados SQL Server para ver se eles são iguais

o SQL Server replicação transacional: Como reinicializar uma assinatura usando um banco de dados SQL Server de backup

Como configurar um costume de transação do SQL Server modelo de replicação com uma Central do Assinante e Vários bancos de dados de editores

Como o programa de configuração do SQL Server personalizada replicação transacional com um editor central e assinante múltiplos bancos de dados

Como configurar uma DDL e DML, SQL Server banco de dados de replicação transacional solução

Como o programa de configuração multi-plataforma transacional de replicação do SQL Server para o banco de dados de relatórios no Linux

banco de dados SQL Server migrações, com zero de perda de dados and zero downtime

Using transactional data replication to replay and test production loads on a staging server

ow to setup SQL Server database replication for a reporting server

SQL Server transactional replication: Como reinicializar uma subscrição com um “suporte de Replicação só” –TBA

a Replicação do SQL Server Monitoramento e definição de alertas usando o PowerShell –TBA

  • Autor
  • Posts Recentes
Prashanth Jayaram
eu sou um Banco de dados tecnólogo em ter 11+ anos de rica experiência em tecnologias de Banco de dados. Eu sou um profissional certificado pela Microsoft e apoiado com um grau em Master of Computer Application.
minha especialidade reside em projetar & implementando soluções de alta disponibilidade e migração de DB entre plataformas. As tecnologias atualmente em funcionamento são SQL Server, PowerShell, Oracle e MongoDB.
Ver todos os posts por Prashanth Jayaram

Prashanth Jayaram
posts mais Recentes por Prashanth Jayaram (ver todas)
  • Uma rápida visão geral de auditoria de banco de dados em SQL – janeiro 28, 2021
  • Como configurar Azure Sincronização de Dados entre bancos de dados SQL Azure e local do SQL Server – 20 de janeiro de 2021
  • Como realizar Azure SQL database operações de Importação/Exportação usando o PowerShell – 14 de janeiro de 2021