Bekijk en wijzig de eigendommen van distributeuren en Publisher

Van toepassing op:SQL ServerAzure SQL Managed Instance

Dit onderwerp beschrijft hoe je Distributor- en Publisher-eigenschappen in SQL Server kunt bekijken en aanpassen door gebruik te maken van SQL Server Management Studio, Transact-SQL of Replication Management Objects (RMO).

Aanbevelingen

  • Voor uitgevers die versies draaien vóór Microsoft SQL Server 2005 (9.x), kan een gebruiker in de sysadmin-vaste serverrol abonnees registreren op de pagina Abonnees. Vanaf SQL Server 2005 (9.x) is het niet langer nodig om abonnees expliciet te registreren voor replicatie.

Security

Indien mogelijk vraagt u gebruikers om beveiligingsreferenties in te voeren tijdens runtime.

SQL Server Management Studio gebruiken

Om de eigenschappen van de distributeur te bekijken en aan te passen

  1. Maak verbinding met de Distributor in SQL Server Management Studio en breid vervolgens de servernode uit.

  2. Klik met de rechtermuisknop op de Replicatiemap en klik vervolgens op Eigenschappen van de distributeur.

  3. Bekijk en wijzig eigenschappen in het dialoogvenster Distributor Properties - <Distributor> .

    • Om eigenschappen van een distributiedatabase te bekijken en aan te passen, klik je op de eigenschappenknop (...) voor de database op de algemene pagina van het dialoogvenster.

    • Om Publisher-eigenschappen die aan de Distributor zijn gekoppeld te bekijken en aan te passen, klik je op de eigenschappenknop (...) voor de Publisher op de Publishers-pagina van het dialoogvenster.

    • Om profielen van replicatieagenten te openen, klik je op de knop Profielstandaarden op de algemene pagina van het dialoogvenster. Zie Replicatieagentprofielen voor meer informatie.

    • Om het wachtwoord te wijzigen voor het account dat wordt gebruikt wanneer administratieve opgeslagen procedures bij de Publisher worden uitgevoerd en informatie bij de Distributeur bijwerken, voer je een nieuw wachtwoord in in de vensters Wachtwoord en Wachtwoord bevestigen op de Publishers-pagina van het dialoogvenster. Voor meer informatie, zie Secure the Distributor.

  4. Wijzig indien nodig eigenschappen en klik op OK.

Om Publisher-eigendommen te bekijken en aan te passen

  1. Maak verbinding met publisher in SQL Server Management Studio en vouw vervolgens het serverknooppunt uit.

  2. Klik met de rechtermuisknop op de Replicatiemap en klik vervolgens op Publisher Properties.

  3. Bekijk en wijzig eigenschappen in het dialoogvenster Publisher Properties - < Publisher>.

    • Een gebruiker in de sysadmin-vaste serverrol kan databases inschakelen voor replicatie op de pagina Publicatiedatabases . Het inschakelen van een database publiceert die database niet; in plaats daarvan stelt het elke gebruiker in de db_owner vaste databaserol voor die database in staat om één of meer publicaties in de database aan te maken.
  4. Wijzig indien nodig eigenschappen en klik op OK.

Transact-SQL gebruiken

Publisher- en Distributor-eigenschappen kunnen programmatisch worden bekeken met replicatie-opgeslagen procedures.

Om de eigenschappen van de distributeur en distributiedatabase te bekijken

  1. Voer sp_helpdistributor uit om informatie terug te geven over de distributeur, distributiedatabase en werkmap.

  2. Voer sp_helpdistributiondb uit om eigenschappen van een gespecificeerde distributiedatabase terug te geven.

Om de eigenschappen van distributeur- en distributiedatabases te wijzigen

  1. Voer bij de distributeur sp_changedistributor_property uit om de eigenschappen van de distributeur aan te passen.

  2. Voer bij de distributeur sp_changedistributiondb uit om de eigenschappen van de distributiedatabase aan te passen.

  3. Voer bij de Distributeur sp_changedistributor_password uit om het Distributeurwachtwoord te wijzigen.

    Important

    Indien mogelijk vraagt u gebruikers om beveiligingsreferenties in te voeren tijdens runtime. Als u referenties in een scriptbestand moet opslaan, moet u het bestand beveiligen om onbevoegde toegang te voorkomen.

  4. Voer bij de Distributor sp_changedistpublisher uit om de eigenschappen van een Publisher te wijzigen met behulp van de Distributor.

Voorbeelden (Transact-SQL)

Het volgende voorbeeld Transact-SQL script geeft informatie terug over de distributeur en distributiedatabase.

-- 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

Dit voorbeeld verandert de retentieperiodes voor de Distributeur, het wachtwoord dat wordt gebruikt bij het verbinden met de Distributeur, en het interval waarop de Distributeur de status van verschillende replicatieagenten controleert (ook wel het hartslaginterval genoemd).

Important

Indien mogelijk vraagt u gebruikers om beveiligingsreferenties in te voeren tijdens runtime. Als u referenties in een scriptbestand moet opslaan, moet u het bestand beveiligen om onbevoegde toegang te voorkomen.


-- 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

Replicatiebeheerobjecten (RMO) gebruiken

Om de eigenschappen van de distributeur te bekijken en aan te passen

  1. Maak een verbinding met de distributeur met behulp van de ServerConnection klasse.

  2. Maak een exemplaar van de ReplicationServer-klasse. Geef het ServerConnection object uit stap 1 door.

  3. (Optioneel) Controleer de IsDistributor eigenschap om te verifiëren dat de momenteel verbonden server een distributeur is.

  4. Roep de Load methode aan om de eigenschappen van de server te halen.

  5. (Optioneel) Om eigenschappen te wijzigen, stel je een nieuwe waarde in voor een of meer van de Distributor-eigenschappen die op het ReplicationServer object kunnen worden ingesteld.

  6. (Optioneel) Als de CachePropertyChanges eigenschap op het ReplicationServer object op true is gezet, roep dan de CommitPropertyChanges methode aan om de wijzigingen naar de server te commiten.

Om de eigenschappen van distributiedatabases te bekijken en aan te passen

  1. Maak een verbinding met de distributeur met behulp van de ServerConnection klasse.

  2. Maak een exemplaar van de DistributionDatabase-klasse. Specificeer de naameigenschap en geef het ServerConnection object door vanuit stap 1.

  3. Roep de LoadProperties methode aan om de eigenschappen van de server te halen. Als deze methode false teruggeeft, bestaat de database met de opgegeven naam niet op de server.

  4. (Optioneel) Om eigenschappen te wijzigen, stel je een nieuwe waarde in voor een van de DistributionDatabase eigenschappen die kunnen worden ingesteld.

  5. (Optioneel) Als de CachePropertyChanges eigenschap op het DistributionDatabase object op true is gezet, roep dan de CommitPropertyChanges methode aan om de wijzigingen naar de server te commiten.

Om Publisher-eigendommen te bekijken en aan te passen

  1. Maak een verbinding met publisher met behulp van de ServerConnection klasse.

  2. Maak een exemplaar van de DistributionPublisher-klasse. Specificeer de Name eigenschap en geef het ServerConnection object door vanuit stap 1.

  3. (Optioneel) Om eigenschappen te wijzigen, stel je een nieuwe waarde in voor een van de DistributionPublisher eigenschappen die kunnen worden ingesteld.

  4. (Optioneel) Als de CachePropertyChanges eigenschap op het DistributionPublisher object op true is gezet, roep dan de CommitPropertyChanges methode aan om de wijzigingen naar de server te commiten.

Om het wachtwoord voor de administratieve verbinding van de Publisher naar de Distributor te wijzigen

  1. Maak een verbinding met de distributeur met behulp van de ServerConnection klasse.

  2. Maak een exemplaar van de ReplicationServer-klasse.

  3. Stel de eigenschap ConnectionContext in op de verbinding die u in stap 1 hebt gemaakt.

  4. Roep de Load methode aan om de eigenschappen van het object op te halen.

  5. Roep de ChangeDistributorPassword methode aan. Geef de nieuwe wachtwoordwaarde voor de wachtwoordparameter door.

    Important

    Indien mogelijk vraagt u gebruikers om beveiligingsreferenties in te voeren tijdens runtime. Als je gegevens moet opslaan, gebruik dan de cryptografische diensten die door het Microsoft Windows .NET Framework worden aangeboden.

  6. (Optioneel) Voer de volgende stappen uit om het wachtwoord te wijzigen bij elke externe Publisher die deze Distributeur gebruikt:

    1. Maak een verbinding met publisher met behulp van de ServerConnection klasse.

    2. Maak een exemplaar van de ReplicationServer-klasse.

    3. Stel de ConnectionContext eigenschap in op de verbinding die in stap 6a is gemaakt.

    4. Roep de Load methode aan om de eigenschappen van het object op te halen.

    5. Roep de ChangeDistributorPassword methode aan. Geef de nieuwe wachtwoordwaarde van stap 5 door voor de wachtwoordparameter .

Voorbeeld (RMO)

Dit voorbeeld laat zien hoe je de eigenschappen van distributie- en distributiedatabases kunt wijzigen.

Important

Om te voorkomen dat er inloggegevens in de code worden opgeslagen, wordt het nieuwe Distributor-wachtwoord tijdens runtime opgegeven.

// 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