Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Managed Instance
Detta ämne beskriver hur man kan visa och modifiera Distributor- och Publisher-egenskaper i SQL Server genom att använda SQL Server Management Studio, Transact-SQL eller Replication Management Objects (RMO).
Recommendations
- För utgivare som kör versioner före Microsoft SQL Server 2005 (9.x) kan en användare i sysadmin-fastserverrollen registrera prenumeranter på prenumerantsidan. Från och med SQL Server 2005 (9.x) är det inte längre nödvändigt att explicit registrera prenumeranter för replikering.
Security
När det är möjligt uppmanar du användarna att ange säkerhetsautentiseringsuppgifter vid körning.
Använda SQL Server Management Studio
För att se och ändra distributörens egenskaper
Anslut dig till distributören i SQL Server Management Studio och expandera sedan servernoden.
Högerklicka på mappen Replikering och sedan på Distributörsegenskaper.
Visa och ändra egenskaper i dialogrutan Distributor Properties - <Distributor> .
För att se och ändra egenskaper för en distributionsdatabas, klicka på egenskapsknappen (...) för databasen på sidan Allmänt i dialogrutan.
För att se och ändra Publisher-egenskaper kopplade till Distributor, klicka på egenskapsknappen (...) för Publisher på Publishers-sidan i dialogrutan.
För att komma åt profiler för replikeringsagenter, klicka på knappen Profilstandardinställningar på sidan Allmänt i dialogrutan. Mer information finns i Replikeringsagentprofiler.
För att ändra lösenordet för det konto som används när administrativa lagrade procedurer körs hos Publisher och uppdaterar information hos distributören, ange ett nytt lösenord i rutorna Lösenord och Bekräfta lösenord på Publishers-sidan i dialogrutan. För mer information, se Secure the Distributor.
Ändra eventuella egenskaper om det behövs och klicka sedan på OK.
För att se och ändra Publisher-egendomar
Anslut till utgivaren i SQL Server Management Studio och expandera sedan servernoden.
Högerklicka på mappen Replikering och klicka sedan på Publisher Properties.
Visa och ändra egenskaper i dialogrutan Publisher Properties - < Publisher>.
- En användare i sysadmin-rollen med fast server kan aktivera databaser för replikering på sidan Publication Databases . Att aktivera en databas publicerar inte den databasen; istället tillåter den vilken användare som helst i den db_owner fasta databasrollen för den databasen att skapa en eller flera publikationer i databasen.
Ändra eventuella egenskaper om det behövs och klicka sedan på OK.
Använda Transact-SQL
Publisher- och Distributor-egenskaper kan ses programmatiskt med hjälp av replikeringslagrade procedurer.
För att se distributör- och distributionsdatabasens egenskaper
Kör sp_helpdistributor för att returnera information om distributören, distributionsdatabasen och arbetskatalogen.
Kör sp_helpdistributiondb för att returnera egenskaper från en specificerad distributionsdatabas.
För att ändra egenskaper för distributör och distributionsdatabas
På distributören, utför sp_changedistributor_property för att ändra distributörens egenskaper.
På Distributören, kör sp_changedistributiondb för att ändra distributionsdatabasens egenskaper.
Hos distributören, kör sp_changedistributor_password för att ändra distributörens lösenord.
Important
När det är möjligt uppmanar du användarna att ange säkerhetsautentiseringsuppgifter vid körning. Om du måste lagra autentiseringsuppgifter i en skriptfil skyddar du filen för att förhindra obehörig åtkomst.
På distributören kör du sp_changedistpublisher för att ändra egenskaperna för en utgivare som använder distributören.
Exempel (Transact-SQL)
Följande exempel Transact-SQL skript returnerar information om distributören och distributionsdatabasen.
-- 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
Detta exempel ändrar lagringstiderna för distributören, lösenordet som används vid anslutning till distributören och intervallet då distributören kontrollerar statusen för olika replikationsagenter (även känt som hjärtslagsintervallet).
Important
När det är möjligt uppmanar du användarna att ange säkerhetsautentiseringsuppgifter vid körning. Om du måste lagra autentiseringsuppgifter i en skriptfil skyddar du filen för att förhindra obehörig åtkomst.
-- 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
Använda replikeringshanteringsobjekt (RMO)
För att se och ändra distributörens egenskaper
Skapa en anslutning till distributören med hjälp av klassen ServerConnection.
Skapa en instans av ReplicationServer klassen. Skicka ServerConnectionobjektet från steg 1.
(Valfritt) Kontrollera egenskapen IsDistributor för att verifiera att den för närvarande anslutna servern är en distributör.
Anropa Load metoden för att hämta egenskaperna från servern.
(Valfritt) För att byta egenskaper, sätt ett nytt värde för en eller flera av Distributor-egenskaperna som kan ställas in på objektet ReplicationServer .
(Valfritt) Om egenskapen CachePropertyChanges på objektet ReplicationServer är satt till true, anropa CommitPropertyChanges metoden för att committa ändringarna till servern.
För att visa och ändra egenskaper i distributionsdatabasen
Skapa en anslutning till distributören med hjälp av klassen ServerConnection.
Skapa en instans av DistributionDatabase klassen. Specificera namnegenskapen och skicka objektet ServerConnection från steg 1.
Anropa LoadProperties metoden för att hämta egenskaperna från servern. Om denna metod returnerar false finns inte databasen med det angivna namnet på servern.
(Valfritt) För att byta egenskaper, sätt ett nytt värde för en av egenskaperna DistributionDatabase som kan sättas.
(Valfritt) Om egenskapen CachePropertyChanges på objektet DistributionDatabase är satt till true, anropa CommitPropertyChanges metoden för att committa ändringarna till servern.
För att se och ändra Publisher-egendomar
Skapa en anslutning till Publisher med hjälp av klassen ServerConnection.
Skapa en instans av DistributionPublisher klassen. Specificera egenskapen Name och skicka objektet ServerConnection från steg 1.
(Valfritt) För att byta egenskaper, sätt ett nytt värde för en av egenskaperna DistributionPublisher som kan sättas.
(Valfritt) Om egenskapen CachePropertyChanges på objektet DistributionPublisher är satt till true, anropa CommitPropertyChanges metoden för att committa ändringarna till servern.
För att ändra lösenordet för den administrativa anslutningen från Publisher till Distributor
Skapa en anslutning till distributören med hjälp av klassen ServerConnection.
Skapa en instans av ReplicationServer klassen.
Ange egenskapen ConnectionContext till anslutningen som skapades i steg 1.
Anropa metoden Load för att hämta objektets egenskaper.
Anropa ChangeDistributorPassword metoden. Skicka det nya lösenordsvärdet för lösenordsparametern .
Important
När det är möjligt uppmanar du användarna att ange säkerhetsautentiseringsuppgifter vid körning. Om du måste lagra dina uppgifter, använd kryptografiska tjänster som tillhandahålls av Microsoft Windows .NET Framework.
(Valfritt) Utför följande steg för att byta lösenord hos varje fjärransluten Publisher som använder denna distributör:
Skapa en anslutning till Publisher med hjälp av klassen ServerConnection.
Skapa en instans av ReplicationServer klassen.
Ställ in egenskapen ConnectionContext till anslutningen som skapats i steg 6a.
Anropa metoden Load för att hämta objektets egenskaper.
Anropa ChangeDistributorPassword metoden. Skicka det nya lösenordsvärdet från steg 5 för lösenordsparametern .
Exempel (RMO)
Detta exempel visar hur man ändrar egenskaper för distribution och distributionsdatabaser.
Important
För att undvika att lagra inloggningsuppgifter i koden anges det nya Distributor-lösenordet vid körning.
// 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