Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Azure SQL Managed Instance
Antes de desenvolver uma aplicação que utilize funcionalidades de replicação, siga estes passos gerais de planeamento:
Defina a sua topologia de replicação.
Defina funcionalidade da aplicação.
Planeia a segurança.
Escolha um ambiente de desenvolvimento.
Escolha a interface de programação de replicação apropriada.
O resto deste artigo descreve estes passos com mais detalhe. Para ajudar a ilustrar o processo de planeamento, inclui-se um exemplo.
Definição da topologia de replicação
O primeiro passo na programação da replicação é definir a topologia de replicação para a sua aplicação. Se estiver a escrever uma aplicação que utiliza uma topologia de replicação existente, como uma aplicação cliente que acede a dados de um assinante existente, avance para o passo seguinte.
Note
Em alguns casos, a implementação da topologia de replicação é o único objetivo da aplicação.
A topologia de replicação que define depende de muitos fatores, incluindo os seguintes:
Se os dados replicados precisam de ser atualizados, e por quem.
A sua distribuição de dados precisa de consistência, autonomia e latência.
O ambiente de replicação, incluindo utilizadores empresariais, infraestrutura técnica, rede e segurança, e características dos dados.
Os tipos de replicação e as opções de replicação.
As topologias de replicação e como estas se alinham com os tipos de replicação.
Se é novo na replicação do Microsoft SQL Server, veja Tipos de Replicação.
Definição da funcionalidade da aplicação
Depois de definir a topologia de replicação, decida as funcionalidades que a sua aplicação oferece. Estas funcionalidades podem variar desde um script que sincroniza uma subscrição a uma aplicação com uma interface de utilizador para configurar a replicação. A replicação suporta as seguintes tarefas gerais de programação:
A preparar a replicação.
Sincronização dos Subscritores.
Manter uma topologia de replicação.
Monitorizar uma topologia de replicação.
Resolução de problemas de replicação.
Também é comum expandir a sua aplicação combinando funcionalidades de replicação com outras fornecidas pelo SQL Server. A tabela seguinte destaca algumas funcionalidades alargadas que pode fornecer na sua aplicação de replicação.
| Functionality | Example |
|---|---|
| Administração de servidores usando SQL Server Management Objects (SMO) | Uma aplicação que permite a um administrador anexar e configurar uma base de dados como Publisher numa topologia de replicação. |
| Acesso a dados usando ADO.NET | Uma aplicação que permite aos utilizadores aceder programaticamente e alterar dados de vendas replicados numa base de dados local de assinantes enquanto estão offline, e depois ligar e sincronizar a subscrição pull selecionando um botão. |
Planeamento da segurança
A segurança é importante em qualquer aplicação, e deve planear a segurança antes de escrever qualquer código. A segurança das aplicações pode ser dividida em três partes principais: segurança da base de dados, segurança da replicação e escrita de código seguro.
Os seguintes artigos fornecem informações sobre segurança:
Escolha de um ambiente de desenvolvimento
Ao desenvolver uma aplicação de replicação, considere estes três ambientes básicos de desenvolvimento. Cada ambiente de desenvolvimento tem acesso às mesmas funcionalidades de replicação, com algumas exceções. Pode desenvolver aplicações de replicação em cada um dos seguintes ambientes.
Código gerido
Ambiente de desenvolvimento orientado a objetos que aproveita os benefícios da programação do .NET Framework e do .NET common language runtime (CLR). O código gerido é o ambiente de programação recomendado tanto para desenvolvimento .NET como para aplicações SQL Server. As interfaces de replicação gerida permitem-lhe programar a administração de replicação de forma orientada a objetos sem ter de conhecer Transact-SQL. Também fornece algumas funcionalidades de callback ao executar agentes de replicação que não estão disponíveis nos scripts. O código gerido é o melhor ambiente para desenvolver componentes reutilizáveis e aplicações de interface de utilizador.
Scripting
Aplicações simples que executam uma série de comandos como procedimentos armazenados de sistema de replicação em scripts Transact-SQL ou comandos em ficheiros batch. Embora possa executar scripts num ambiente gerido usando o fornecedor gerido em processo do SQL Server, pode obter a mesma funcionalidade usando interfaces de replicação geridas, que também fornecem funcionalidades de callback. O scripting é o melhor ambiente para executar tarefas que se executam apenas algumas vezes e onde não são necessárias funcionalidades de callback, como instalar um servidor de replicação.
Código nativo
Ambiente de desenvolvimento orientado a objetos que utiliza acesso direto ao sistema ou objetos COM, de modo que o código não é gerido pelo CLR. As interfaces nativas de replicação de código estão obsoletas ou descontinuadas. Para mais informações, consulte Funcionalidades Descontinuadas na Replicação do SQL Server ou Compatibilidade Retroativa.
Escolha a interface de programação de replicação apropriada
O passo final de planeamento é escolher a interface de programação de replicação adequada que implemente a funcionalidade de replicação desejada para o ambiente de desenvolvimento escolhido. A tabela seguinte mostra as interfaces de programação de replicação disponíveis.
| Interface | Environment | Utilizações |
|---|---|---|
| Conceitos de objetos de gerenciamento de replicação | Código gerenciado | Administração, monitorização e sincronização. |
| Microsoft.SqlServer.Replication | Código gerenciado | Sincronização. |
| Microsoft.SqlServer.Replication.BusinessLogicSupport | Código gerenciado | Criação de manipuladores de lógica de negócio para integrar lógica personalizada com o processo de sincronização de fusão. |
| Procedimentos Armazenados de Replicação (Transact-SQL) | Scripting | Administração e monitorização. |
| Conceitos de Executáveis do Agente de Replicação | Scripting | Sincronização. |
Example
Na Adventure Works, é necessário publicar dados para 200 representantes de vendas em todo o mundo. Os representantes de vendas viajam frequentemente e precisam de usar computadores portáteis ou assistentes digitais pessoais (PDAs) para alterar os dados dos clientes e adicionar novas encomendas. Os representantes de vendas precisam de sincronizar as alterações com o Publisher quando ligam o portátil à rede.
Para esta aplicação, os passos de planeamento podem ser os seguintes:
A topologia de replicação para esta aplicação já existe. No entanto, deve criar uma nova subscrição pull no cliente. Use filtros parametrizados na publicação para replicar um conjunto único de dados a cada representante de vendas.
Para além do acesso típico aos dados exigido para uma aplicação de vendas, esta aplicação deve permitir que um vendedor sincronize a subscrição pull on demand clicando num botão. Como um representante de vendas instala e executa a aplicação, também precisa de ser capaz de configurar uma subscrição e aplicar o snapshot inicial ao cliente. Opcionalmente, a aplicação utiliza a infraestrutura fornecida pelo Windows para detetar a conectividade sem fios, sincronizando automaticamente a subscrição quando é detetada uma ligação.
Siga todas as diretrizes de segurança para replicação, incluindo o uso da Autenticação Windows e de uma rede privada virtual (VPN) ao ligar-se ao Publisher. Se implementar a sincronização Web, utilize uma ligação Transport Layer Security (TLS), anteriormente conhecida como Secure Sockets Layer (SSL). Para mais informações, consulte Configurar Sincronização Web.
Para tirar partido das funcionalidades do .NET Framework, desenvolva a aplicação utilizando uma linguagem de código gerida.
Com base nestes requisitos, a interface gerida dos Objetos de Gestão de Replicação (RMO) pode fornecer toda a funcionalidade de replicação necessária para esta aplicação.
Pode descarregar a aplicação de exemplo AdventureWorks que implementa este cenário de exemplo a partir do SQL Server.