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.
Aplica-se a:SQL Server
Instância Gerenciada de SQL do Azure
Este tópico descreve como visualizar e modificar propriedades de publicação no SQL Server usando o SQL Server Management Studio, o Transact-SQL ou o RMO (Replication Management Objects).
Limitações e Restrições
- Algumas propriedades não podem ser modificadas após uma publicação ter sido criada, e outras não podem ser modificadas se houverem assinaturas na publicação. As propriedades que não podem ser modificadas são exibidas como apenas leitura.
Recomendações
- Depois que uma publicação é criada, algumas alterações em propriedades exigem uma nova captura. Se uma publicação tiver assinaturas, algumas alterações também exigirão que todas as assinaturas sejam reiniciadas. Para obter mais informações, consulte Alterar propriedades da publicação e do artigo e Add Articles to and Drop Articles from Existing Publications (Adicionar e remover artigos para/de publicações existentes).
Como usar o SQL Server Management Studio.
Exibir e modificar propriedades de publicação na caixa de diálogo Propriedades de Publicação – <Publicação>, que está disponível no SQL Server Management Studio e no Replication Monitor. Para obter informações sobre como iniciar o Replication Monitor, consulte Start the Replication Monitor (Iniciar o Replication Monitor).
A caixa de diálogo Propriedades da Publicação – <Publicação> inclui as seguintes páginas:
A página Geral inclui o nome e descrição da publicação, o nome do banco de dados, o tipo da publicação, e as configurações para expiração da assinatura.
A página Artigos corresponde à página Artigos no Assistente para Nova Publicação. Use essa página para adicionar e excluir artigos e para alterar propriedades e filtros de coluna para artigos.
A página Filtrar Linhas corresponde à página Filtrar Linhas de Tabela no Assistente para Nova Publicação. Use essa página para adicionar, editar e excluir filtros de linhas estáticas para todos os tipos de publicações, e para adicionar, editar e excluir filtros de linhas com parâmetros e associar filtros para publicações de mesclagem.
A página Instantâneo permite que você especifique o formato e o local do instantâneo, se o instantâneo deve estar compactado e scripts para serem executados antes e depois que o instantâneo for aplicado.
A página FTP Snapshot (para publicações de instantâneo e transacionais, e publicações de mesclagem para Publicadores que executam versões anteriores ao SQL Server 2005) permite especificar se os Assinantes podem baixar arquivos de instantâneo por meio do Protocolo de Transferência de Arquivos (FTP).
A página FTP Snapshot e Internet (para publicações de mesclagem de publicadores que executam o SQL Server 2005 ou posterior) permite especificar se os assinantes podem baixar arquivos de instantâneo via FTP e se podem sincronizar suas assinaturas via HTTPS.
A página Opções de Assinatura permite que você possa definir um número de opções que se aplicam à todas as assinaturas. As opções diferem dependendo do tipo de publicação.
A página Lista de Acesso à Publicação permite que você especifique quais logons e grupos podem acessar uma publicação.
A página Segurança do Agente permite que você acesse as configurações para as contas sob as quais os seguintes agentes executam e fazem conexões com os computadores em uma topologia de replicação: O Agente de Instantâneo para todas as publicações; o Log Reader Agent para todas as publicações transacionais e o Queue Reader Agent para publicações transacionais que permitem assinaturas de atualização enfileiradas.
A página Partições de Dados (para publicações de mesclagem de Publicadores que executam o SQL Server 2005 ou posterior) permite especificar se os Assinantes de publicações com filtros parametrizados podem solicitar um instantâneo, caso não haja um disponível. Também permite gerar instantâneos para uma ou mais partições, seja uma única vez ou em uma programação recorrente.
Para visualizar e modificar propriedades de publicação no Management Studio
Conecte-se ao Publicador no Management Studio e, em seguida, expanda o nó do servidor.
Expanda a pasta Replicação e, em seguida, a pasta Publicações Locais .
Clique com o botão direito em uma publicação, em seguida, clique em Propriedades.
Modifique propriedades, se necessário, depois clique em OK.
Para visualizar e modificar propriedades de publicação no Replication Monitor
No painel esquerdo do Monitor de Replicação, expanda um grupo de Publicador e, em seguida, expanda um Publicador.
Clique com o botão direito em uma publicação, em seguida, clique em Propriedades.
Modifique propriedades, se necessário, depois clique em OK.
Usando o Transact-SQL
Publicações podem ser modificadas e suas propriedades retornadas programaticamente usando-se procedimentos armazenados de replicação. Os procedimentos armazenados que você usa dependerão do tipo de publicação.
Para visualizar as propriedades de uma publicação de instantâneo ou publicação transacional
- Execute sp_helppublication, especificando o nome da publicação para o parâmetro @publication . Se você não especificar esse parâmetro, as informações sobre todas as publicações no Publicador serão retornadas.
Para alterar as propriedades de uma publicação de snapshot ou transacional
Execute sp_changepublication, especificando a propriedade de publicação a ser alterada no parâmetro @property e o novo valor dessa propriedade no parâmetro @value .
Observação
Se a alteração exigir a geração de um novo instantâneo, você também deverá especificar o valor 1 para @force_invalidate_snapshot; e, se a alteração exigir que os Assinantes sejam reinicializados, deverá especificar o valor 1 para @force_reinit_subscription. Para obter mais informações sobre as propriedades que, quando alteradas, exigem um novo instantâneo ou uma nova reinicialização, consulte Alterar as Propriedades da Publicação e do Artigo.
Para visualizar as propriedades de uma publicação de mesclagem
- Execute sp_helpmergepublication, especificando o nome da publicação para o parâmetro @publication . Se você não especificar esse parâmetro, as informações sobre todas as publicações no Publicador serão retornadas.
Para alterar as propriedades de uma publicação de mesclagem
Execute sp_changemergepublication, especificando a propriedade de publicação que está sendo alterada no parâmetro @property e o novo valor dessa propriedade no parâmetro @value .
Observação
Se a alteração exigir a geração de um instantâneo, você também precisará especificar um valor igual a 1 em @force_invalidate_snapshot, e se a alteração exigir que os Assinantes sejam reinicializados, você precisará especificar um valor igual a 1 em @force_reinit_subscription. Para obter mais informações sobre as propriedades que, quando alteradas, exigem um novo instantâneo ou uma reinicialização, confira Alterar as propriedades da publicação e do artigo.
Para visualizar as propriedades de um snapshot
- Execute sp_helppublication_snapshot, especificando o nome da publicação no parâmetro @publication.
Alterar as propriedades de um snapshot
- Execute sp_changepublication_snapshot, especificando uma ou mais das propriedades de instantâneo novas para os parâmetros de instantâneo apropriados.
Exemplos (Transact-SQL)
Esse exemplo de replicação transacional retorna as propriedades da publicação.
DECLARE @myTranPub AS sysname
SET @myTranPub = N'AdvWorksProductTran'
USE [AdventureWorks2022]
EXEC sp_helppublication @publication = @myTranPub
GO
Este exemplo de replicação transacional desativa a replicação de esquema para a publicação.
DECLARE @publication AS sysname
SET @publication = N'AdvWorksProductTran'
-- Turn off DDL replication for the transactional publication.
USE [AdventureWorks2022]
EXEC sp_changepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0
GO
Esse exemplo de replicação de mesclagem retorna as propriedades da publicação.
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
USE [AdventureWorks2022]
EXEC sp_helpmergepublication @publication = @publication;
GO
Esse exemplo de replicação de mesclagem desabilita a replicação de esquema para a publicação.
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
-- Disable DDL replication for the publication.
USE [AdventureWorks2022]
EXEC sp_changemergepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0,
@force_invalidate_snapshot = 0,
@force_reinit_subscription = 0;
GO
Usando os Objetos de Gerenciamento de Replicação (RMO)
Você pode modificar as publicações e acessar suas propriedades programaticamente, usando o RMO (Replication Management Objects). As classes RMO que você usa para visualizar ou modificar as propriedades da publicação, dependem do tipo da publicação.
Para visualizar ou modificar as propriedades de um instantâneo ou publicação transacional
Crie uma conexão com o Publicador usando a classe ServerConnection .
Crie uma instância da classe TransPublication, defina as propriedades Name e DatabaseName para a publicação e defina a propriedade ConnectionContext como a conexão criada na etapa 1.
Chame o método LoadProperties para obter as propriedades do objeto. Se esse método retornar false, as propriedades de publicação na etapa 2 foram definidas incorretamente ou a publicação não existe.
(Opcional) Para alterar as propriedades, defina um novo valor para uma ou mais propriedades definíveis. Use o operador lógico AND (* no Microsoft Visual C# e And no Microsoft Visual Basic) para determinar se um dado valor PublicationAttributes está definido para a propriedade Attributes. Use o operador OR de lógica inclusiva (| no Visual C# e Or no Visual Basic) e o operador OR de lógica exclusiva (^ no Visual C# e Xor no Visual Basic) para alterar os valores PublicationAttributes para a propriedade Attributes .
(Opcional) Se você especificar um valor de true para CachePropertyChanges, chame o método CommitPropertyChanges para confirmar as alterações no servidor. (Opcional) Se você especificar um valor de false para CachePropertyChanges (padrão), as alterações serão enviadas imediatamente ao servidor.
Para visualizar ou modificar as propriedades de uma publicação de mesclagem
Crie uma conexão com o Publicador usando a classe ServerConnection .
Crie uma instância da classe MergePublication, defina as propriedades Name e DatabaseName para a publicação e defina a propriedade ConnectionContext como a conexão criada na etapa 1.
Chame o método LoadProperties para obter as propriedades do objeto. Se esse método retornar false, as propriedades de publicação na etapa 2 foram definidas incorretamente ou a publicação não existe.
(Opcional) Para alterar as propriedades, defina um novo valor para uma ou mais propriedades definíveis. Use o operador lógico AND (* no Visual C# e And no Visual Basic) para determinar se um dado valor PublicationAttributes está definido para a propriedade Attributes. Use o operador OR de lógica inclusiva (| no Visual C# e Or no Visual Basic) e o operador OR de lógica exclusiva (^ no Visual C# e Xor no Visual Basic) para alterar os valores PublicationAttributes para a propriedade Attributes .
(Opcional) Se você especificar um valor de true para CachePropertyChanges, chame o método CommitPropertyChanges para confirmar as alterações no servidor. (Opcional) Se você especificar um valor de false para CachePropertyChanges (padrão), as alterações serão enviadas imediatamente ao servidor.
Exemplos (RMO)
Esse exemplo define atributos de publicação para uma publicação transacional. As alterações são armazenadas em cache até que sejam explicitamente enviadas ao servidor.
// Define the server, database, and publication names
string publisherName = publisherInstance;
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks2022";
TransPublication publication;
// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);
try
{
// Connect to the Publisher.
conn.Connect();
// Set the required properties for the publication.
publication = new TransPublication();
publication.ConnectionContext = conn;
publication.Name = publicationName;
publication.DatabaseName = publicationDbName;
// Explicitly enable caching of property changes on this object.
publication.CachePropertyChanges = true;
// If we can't get the properties for this publication,
// throw an application exception.
if (publication.LoadProperties())
{
// Enable support for push subscriptions and disable support
// for pull subscriptions.
if ((publication.Attributes & PublicationAttributes.AllowPull) != 0)
{
publication.Attributes ^= PublicationAttributes.AllowPull;
}
if ((publication.Attributes & PublicationAttributes.AllowPush) == 0)
{
publication.Attributes |= PublicationAttributes.AllowPush;
}
// Send changes to the server.
publication.CommitPropertyChanges();
}
else
{
throw new ApplicationException(String.Format(
"Settings could not be retrieved for the publication. " +
"Ensure that the publication {0} exists on {1}.",
publicationName, publisherName));
}
}
catch (Exception ex)
{
// Do error handling here.
throw new ApplicationException(
"The publication property could not be changed.", ex);
}
finally
{
conn.Disconnect();
}
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2022"
Dim publication As TransPublication
' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)
Try
' Connect to the Publisher.
conn.Connect()
' Set the required properties for the publication.
publication = New TransPublication()
publication.ConnectionContext = conn
publication.Name = publicationName
publication.DatabaseName = publicationDbName
' Explicitly enable caching of property changes on this object.
publication.CachePropertyChanges = True
' If we can't get the properties for this publication,
' throw an application exception.
If publication.LoadProperties() Then
' Enable support for push subscriptions and disable support
' for pull subscriptions.
If (publication.Attributes And PublicationAttributes.AllowPull) <> 0 Then
publication.Attributes = publication.Attributes _
Xor PublicationAttributes.AllowPull
End If
If (publication.Attributes And PublicationAttributes.AllowPush) = 0 Then
publication.Attributes = publication.Attributes _
Or PublicationAttributes.AllowPush
End If
' Send changes to the server.
publication.CommitPropertyChanges()
Else
Throw New ApplicationException(String.Format( _
"Settings could not be retrieved for the publication. " + _
"Ensure that the publication {0} exists on {1}.", _
publicationName, publisherName))
End If
Catch ex As Exception
' Do error handling here.
Throw New ApplicationException( _
"The publication property could not be changed.", ex)
Finally
conn.Disconnect()
End Try
Este exemplo desativa a replicação DDL para uma publicação de mesclagem.
// Define the server, database, and publication names
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2022";
MergePublication publication;
// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);
try
{
// Connect to the Publisher.
conn.Connect();
// Set the required properties for the publication.
publication = new MergePublication();
publication.ConnectionContext = conn;
publication.Name = publicationName;
publication.DatabaseName = publicationDbName;
// If we can't get the properties for this merge publication, then throw an application exception.
if (publication.LoadProperties())
{
// If DDL replication is currently enabled, disable it.
if (publication.ReplicateDdl == DdlReplicationOptions.All)
{
publication.ReplicateDdl = DdlReplicationOptions.None;
}
else
{
publication.ReplicateDdl = DdlReplicationOptions.All;
}
}
else
{
throw new ApplicationException(String.Format(
"Settings could not be retrieved for the publication. " +
"Ensure that the publication {0} exists on {1}.",
publicationName, publisherName));
}
}
catch (Exception ex)
{
// Do error handling here.
throw new ApplicationException(
"The publication property could not be changed.", ex);
}
finally
{
conn.Disconnect();
}
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2022"
Dim publication As MergePublication
' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)
Try
' Connect to the Publisher.
conn.Connect()
' Set the required properties for the publication.
publication = New MergePublication()
publication.ConnectionContext = conn
publication.Name = publicationName
publication.DatabaseName = publicationDbName
' If we can't get the properties for this merge publication, then throw an application exception.
If publication.LoadProperties() Then
' If DDL replication is currently enabled, disable it.
If publication.ReplicateDdl = DdlReplicationOptions.All Then
publication.ReplicateDdl = DdlReplicationOptions.None
Else
publication.ReplicateDdl = DdlReplicationOptions.All
End If
Else
Throw New ApplicationException(String.Format( _
"Settings could not be retrieved for the publication. " + _
"Ensure that the publication {0} exists on {1}.", _
publicationName, publisherName))
End If
Catch ex As Exception
' Do error handling here.
Throw New ApplicationException( _
"The publication property could not be changed.", ex)
Finally
conn.Disconnect()
End Try
Conteúdo relacionado
- Publicar dados e objetos de banco de dados
- Alterar propriedades da publicação e do artigo
- Fazer alterações de esquema em bancos de dados de publicação
- Conceitos de procedimentos armazenados do sistema de replicação
- Adicionar e remover artigos em uma publicação (SQL Server Management Studio)
- Exibir informações e executar tarefas usando o Replication Monitor
- Exibir e modificar as propriedades do artigo