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
Este tópico descreve como visualizar e modificar propriedades do Distribuidor e do Publisher no SQL Server utilizando o SQL Server Management Studio, Transact-SQL ou Objetos de Gestão de Replicação (RMO).
Recommendations
- Para Publicadores com versões anteriores ao Microsoft SQL Server 2005 (9.x), um utilizador na função fixa de servidor sysadmin pode registar Subscritores na página Subscritores. A partir do SQL Server 2005 (9.x), já não é necessário registar explicitamente os Assinantes para replicação.
Segurança
Quando possível, solicite que os usuários insiram credenciais de segurança em tempo de execução.
Usando o SQL Server Management Studio
Para visualizar e modificar propriedades do Distribuidor
Liga-te ao Distribuidor no SQL Server Management Studio e depois expande o nó do servidor.
Clique com o botão direito na pasta Replicação e depois clique em Propriedades do Distribuidor.
Visualize e modifique propriedades na caixa de diálogo Propriedades do Distribuidor - <Distribuidor> .
Para visualizar e modificar propriedades para uma base de dados de distribuição, clique no botão de propriedades (...) para a base de dados na página Geral da caixa de diálogo.
Para visualizar e modificar propriedades do Publisher associadas ao Distribuidor, clique no botão de propriedades (...) para o Publisher na página Publishers da caixa de diálogo.
Para aceder aos perfis dos agentes de replicação, clique no botão Profile Defaults na página Geral da caixa de diálogo. Para mais informações, consulte Perfis de Agentes de Replicação.
Para alterar a palavra-passe da conta usada quando os procedimentos armazenados administrativos são executados no Publisher e atualizar a informação no Distribuidor, introduza uma nova palavra-passe nas caixas Password e Confirmar palavra-passe na página Publishers da caixa de diálogo. Para mais informações, consulte Proteger o Distribuidor.
Modifica quaisquer propriedades se necessário e depois clica em OK.
Para visualizar e modificar propriedades do Publisher
Ligue-se ao Publisher no SQL Server Management Studio e depois expanda o nó do servidor.
Clique com o botão direito na pasta Replicação e depois clique em Propriedades do Publisher.
Visualize e modifique propriedades na caixa de diálogo Publisher Properties - < Publisher>.
- Um utilizador na função fixa de servidor sysadmin pode ativar bases de dados para replicação na página Bases de Dados de Publicação. Ativar uma base de dados não publica essa base de dados; em vez disso, permite que qualquer utilizador no papel de base de dados fixo db_owner dessa base de dados crie uma ou mais publicações na base de dados.
Modifica quaisquer propriedades se necessário e depois clica em OK.
Usando Transact-SQL
As propriedades do Publisher e do Distribuidor podem ser visualizadas programaticamente usando procedimentos armazenados de replicação.
Para visualizar as propriedades do Distribuidor e da base de dados de distribuição
Execute sp_helpdistributor para devolver informações sobre o Distribuidor, a base de dados de distribuição e o diretório de trabalho.
Execute sp_helpdistributiondb para devolver propriedades de uma base de dados de distribuição especificada.
Para alterar as propriedades do Distribuidor e da base de dados de distribuição
No Distribuidor, execute sp_changedistributor_property para modificar as propriedades do Distribuidor.
No Distribuidor, execute sp_changedistributiondb para modificar as propriedades da base de dados de distribuição.
No Distribuidor, execute sp_changedistributor_password para alterar a palavra-passe do Distribuidor.
Importante
Quando possível, solicite que os usuários insiram credenciais de segurança em tempo de execução. Se você precisar armazenar credenciais em um arquivo de script, proteja o arquivo para impedir o acesso não autorizado.
No Distribuidor, execute sp_changedistpublisher para alterar as propriedades de um Publisher usando o Distribuidor.
Exemplos (Transact-SQL)
O exemplo seguinte Transact-SQL script devolve informações sobre a base de dados de distribuidores e distribuição.
-- View information about the Distributor, distribution database,
-- working directory, and SQL Server Agent user account.
USE master
EXEC sp_helpdistributor;
GO
-- View information about the specified distribution database.
USE distribution
EXEC sp_helpdistributiondb;
GO
Este exemplo altera os períodos de retenção do Distribuidor, a palavra-passe usada ao ligar-se ao Distribuidor e o intervalo em que o Distribuidor verifica o estado de vários agentes de replicação (também conhecido como intervalo de batimentos cardíacos).
Importante
Quando possível, solicite que os usuários insiram credenciais de segurança em tempo de execução. Se você precisar armazenar credenciais em um arquivo de script, proteja o arquivo para impedir o acesso não autorizado.
-- Change the heartbeat interval at the Distributor to 5 minutes.
USE master
exec sp_changedistributor_property
@property = N'heartbeat_interval',
@value = 5;
GO
DECLARE @distributionDB AS sysname;
SET @distributionDB = N'distribution';
-- Change the history retention period to 24 hours and the
-- maximum retention period to 48 hours.
USE distribution
EXEC sp_changedistributiondb @distributionDB, N'history_retention', 24
EXEC sp_changedistributiondb @distributionDB, N'max_distretention', 48
GO
-- Change the password on the Distributor.
-- To avoid storing the password in the script file, the value is passed
-- into SQLCMD as a scripting variable. For information about how to use
-- scripting variables on the command line and in SQL Server Management
-- Studio, see the "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".
USE master
EXEC sp_changedistributor_password $(Password)
GO
Utilização de Objetos de Gestão de Replicação (RMO)
Para visualizar e modificar propriedades do Distribuidor
Crie uma conexão com o Distribuidor usando a classe ServerConnection.
Crie uma instância da ReplicationServer classe. Passe o objeto ServerConnection do passo 1.
(Opcional) Verifique a IsDistributor propriedade para verificar se o servidor atualmente ligado é um Distribuidor.
Chama o Load método para obter as propriedades do servidor.
(Opcional) Para alterar propriedades, defina um novo valor para uma ou mais das propriedades do Distribuidor que possam ser definidas no ReplicationServer objeto.
(Opcional) Se a propriedade CachePropertyChanges do objeto ReplicationServer estiver definida como true, chame o método CommitPropertyChanges para confirmar as alterações no servidor.
Para visualizar e modificar propriedades da base de dados de distribuição
Crie uma conexão com o Distribuidor usando a classe ServerConnection.
Crie uma instância da DistributionDatabase classe. Especifique a propriedade do nome e passe o ServerConnection objeto a partir do passo 1.
Chama o LoadProperties método para obter as propriedades do servidor. Se este método devolver false, a base de dados com o nome especificado não existe no servidor.
(Opcional) Para alterar propriedades, defina um novo valor para uma das DistributionDatabase propriedades que pode ser definida.
(Opcional) Se a propriedade CachePropertyChanges do objeto DistributionDatabase estiver definida como true, chame o método CommitPropertyChanges para confirmar as alterações no servidor.
Para visualizar e modificar propriedades do Publisher
Crie uma conexão com o Publisher usando a classe ServerConnection.
Crie uma instância da DistributionPublisher classe. Especifique a Name propriedade e passe o ServerConnection objeto a partir do passo 1.
(Opcional) Para alterar propriedades, defina um novo valor para uma das DistributionPublisher propriedades que pode ser definida.
(Opcional) Se a propriedade CachePropertyChanges do objeto DistributionPublisher estiver definida como true, chame o método CommitPropertyChanges para confirmar as alterações no servidor.
Para alterar a palavra-passe da ligação administrativa do Publisher para o Distribuidor
Crie uma conexão com o Distribuidor usando a classe ServerConnection.
Crie uma instância da ReplicationServer classe.
Defina a ConnectionContext propriedade para a conexão criada na etapa 1.
Chame o método Load para obter as propriedades do objeto.
Chame o método ChangeDistributorPassword. Passe o novo valor da palavra-passe para o parâmetro password.
Importante
Quando possível, solicite que os usuários insiram credenciais de segurança em tempo de execução. Se precisar de armazenar credenciais, utilize os serviços criptográficos fornecidos pelo Microsoft Windows .NET Framework.
(Opcional) Execute os seguintes passos para alterar a palavra-passe em cada Publisher remoto que utilize este Distribuidor:
Crie uma conexão com o Publisher usando a classe ServerConnection.
Crie uma instância da ReplicationServer classe.
Defina a ConnectionContext propriedade para a ligação criada no passo 6a.
Chame o método Load para obter as propriedades do objeto.
Chame o método ChangeDistributorPassword. Introduza o novo valor da palavra-passe indicado no Passo 5 no parâmetro password.
Exemplo (RMO)
Este exemplo mostra como alterar as propriedades da Distribuição e da base de dados de distribuição.
Importante
Para evitar armazenar credenciais no código, a nova palavra-passe do Distribuidor é fornecida em tempo de execução.
// Set the Distributor and distribution database names.
string distributionDbName = "distribution";
string distributorName = publisherInstance;
ReplicationServer distributor;
DistributionDatabase distributionDb;
// Create a connection to the Distributor using Windows Authentication.
ServerConnection conn = new ServerConnection(distributorName);
try
{
// Open the connection.
conn.Connect();
distributor = new ReplicationServer(conn);
// Load Distributor properties, if it is installed.
if (distributor.LoadProperties())
{
// Password supplied at runtime.
distributor.ChangeDistributorPassword(password);
distributor.AgentCheckupInterval = 5;
// Save changes to the Distributor properties.
distributor.CommitPropertyChanges();
}
else
{
throw new ApplicationException(
String.Format("{0} is not a Distributor.", publisherInstance));
}
// Create an object for the distribution database
// using the open Distributor connection.
distributionDb = new DistributionDatabase(distributionDbName, conn);
// Change distribution database properties.
if (distributionDb.LoadProperties())
{
// Change maximum retention period to 48 hours and history retention
// period to 24 hours.
distributionDb.MaxDistributionRetention = 48;
distributionDb.HistoryRetention = 24;
// Save changes to the distribution database properties.
distributionDb.CommitPropertyChanges();
}
else
{
// Do something here if the distribution database does not exist.
}
}
catch (Exception ex)
{
// Implement the appropriate error handling here.
throw new ApplicationException("An error occurred when changing Distributor " +
" or distribution database properties.", ex);
}
finally
{
conn.Disconnect();
}
' Set the Distributor and distribution database names.
Dim distributionDbName As String = "distribution"
Dim distributorName As String = publisherInstance
Dim distributor As ReplicationServer
Dim distributionDb As DistributionDatabase
' Create a connection to the Distributor using Windows Authentication.
Dim conn As ServerConnection = New ServerConnection(distributorName)
Try
' Open the connection.
conn.Connect()
distributor = New ReplicationServer(conn)
' Load Distributor properties, if it is installed.
If distributor.LoadProperties() Then
' Password supplied at runtime.
distributor.ChangeDistributorPassword(password)
distributor.AgentCheckupInterval = 5
' Save changes to the Distributor properties.
distributor.CommitPropertyChanges()
Else
Throw New ApplicationException( _
String.Format("{0} is not a Distributor.", publisherInstance))
End If
' Create an object for the distribution database
' using the open Distributor connection.
distributionDb = New DistributionDatabase(distributionDbName, conn)
' Change distribution database properties.
If distributionDb.LoadProperties() Then
' Change maximum retention period to 48 hours and history retention
' period to 24 hours.
distributionDb.MaxDistributionRetention = 48
distributionDb.HistoryRetention = 24
' Save changes to the distribution database properties.
distributionDb.CommitPropertyChanges()
Else
' Do something here if the distribution database does not exist.
End If
Catch ex As Exception
' Implement the appropriate error handling here.
Throw New ApplicationException("An error occurred when changing Distributor " + _
" or distribution database properties.", ex)
Finally
conn.Disconnect()
End Try