Przeglądaj i modyfikuj własności dystrybutora i Publisher

Dotyczy:SQL ServerAzure SQL Managed Instance

Ten temat opisuje, jak przeglądać i modyfikować właściwości Distributor i Publisher w SQL Server za pomocą SQL Server Management Studio, Transact-SQL lub Replication Management Objects (RMO).

Zalecenia

  • Dla wydawców działających na wersjach sprzed Microsoft SQL Server 2005 (9.x), użytkownik w roli administratora stałego serwera może rejestrować subskrybentów na stronie Subskrybentów. Począwszy od SQL Server 2005 (9.x), nie jest już konieczne jawne rejestrowanie subskrybentów do replikacji.

Zabezpieczenia

Jeśli to możliwe, proś użytkowników o wprowadzanie poświadczeń zabezpieczających w czasie działania.

Korzystanie z programu SQL Server Management Studio

Aby zobaczyć i zmodyfikować właściwości dystrybutora

  1. Połącz się z dystrybutorem w SQL Server Management Studio, a następnie rozwiń węzeł serwera.

  2. Kliknij prawym przyciskiem myszy na folder Replikacja , a następnie kliknij Właściwości dystrybutora.

  3. Przeglądaj i modyfikuj właściwości w oknie dialogowym Właściwości dystrybutora - <Dystrybutor> .

    • Aby zobaczyć i zmodyfikować właściwości bazy danych dystrybucji, kliknij przycisk właściwości (...) dla bazy danych na stronie Ogólne w oknie dialogowym.

    • Aby zobaczyć i zmodyfikować właściwości Publisher powiązane z Dystrybutorem, kliknij przycisk właściwości (...) dla Publisher na stronie Publishers w oknie dialogowym.

    • Aby uzyskać dostęp do profili agentów replikacji, kliknij przycisk Domyślne profile na stronie Ogólne w oknie dialogowym. Aby uzyskać więcej informacji, zobacz Profile agenta replikacji.

    • Aby zmienić hasło konta używanego podczas wykonywania administracyjnych procedur składowanych u Wydawcy i aktualizowania informacji u Dystrybutora, wprowadź nowe hasło w polach Password i Confirm password na stronie Publishers okna dialogowego. Więcej informacji można znaleźć w artykule Zabezpiecz dystrybutora.

  4. W razie potrzeby zmodyfikuj wszelkie właściwości, a następnie kliknij przycisk OK.

Aby zobaczyć i modyfikować właściwości Publisher

  1. Połącz się z programem Publisher w programie SQL Server Management Studio, a następnie rozwiń węzeł serwera.

  2. Kliknij prawym przyciskiem myszy na folder Replikacja, a następnie kliknij Publisher Properties.

  3. Zobacz i zmodyfikuj właściwości w oknie dialogowym Publisher Properties - < Publisher>.

    • Użytkownik w roli administratora systemu stałego serwera może włączyć replikację baz danych na stronie Bazy Publikacji . Włączenie bazy danych nie publikuje tej bazy; zamiast tego pozwala każdemu użytkownikowi w roli db_owner stałej bazy danych dla tej bazy danych tworzyć jedną lub więcej publikacji w bazie danych.
  4. W razie potrzeby zmodyfikuj wszelkie właściwości, a następnie kliknij przycisk OK.

Korzystanie z Transact-SQL

Właściwości Publisher i Distributor można przeglądać programowo za pomocą procedur przechowywanych w replikacji.

Aby wyświetlić właściwości dystrybutora i bazy danych dystrybucyjnej

  1. Wykonaj sp_helpdistributor, aby zwrócić informacje o dystrybutorze, bazie danych dystrybucji i katalogu roboczym.

  2. Wykonaj sp_helpdistributiondb , aby zwrócić właściwości określonej bazy danych dystrybucji.

Aby zmienić właściwości Dystrybutora i bazy danych dystrybucji

  1. Na serwerze Dystrybutora wykonaj sp_changedistributor_property, aby zmienić właściwości Dystrybutora.

  2. W Dystrybutorze wykonaj sp_changedistributiondb , aby zmodyfikować właściwości bazy danych dystrybucji.

  3. W dystrybutorze wykonaj sp_changedistributor_password , aby zmienić hasło dystrybutora.

    Ważna

    Jeśli to możliwe, proś użytkowników o wprowadzanie poświadczeń zabezpieczających w czasie działania. Jeśli musisz przechowywać poświadczenia w pliku skryptu, należy zabezpieczyć plik, aby zapobiec nieautoryzowanemu dostępowi.

  4. Na Dystrybutorze wykonaj sp_changedistpublisher, aby zmienić właściwości Publisher za pomocą Dystrybutora.

Przykłady (Transact-SQL)

Poniższy przykład Transact-SQL skrypt zwraca informacje o Dystrybutorze i bazie danych dystrybucji.

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

Ten przykład zmienia okresy retencji dla Dystrybutora, hasło używane podczas nawiązywania połączenia z Dystrybutorem oraz interwał, z jakim Dystrybutor sprawdza stan różnych agentów replikacji (zwany również interwałem pulsu).

Ważna

Jeśli to możliwe, proś użytkowników o wprowadzanie poświadczeń zabezpieczających w czasie działania. Jeśli musisz przechowywać poświadczenia w pliku skryptu, należy zabezpieczyć plik, aby zapobiec nieautoryzowanemu dostępowi.


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

Korzystanie z obiektów zarządzania replikacją (RMO)

Aby zobaczyć i zmodyfikować właściwości dystrybutora

  1. Utwórz połączenie z dystrybutorem przy użyciu klasy ServerConnection.

  2. Utwórz wystąpienie klasy ReplicationServer. Przekaż ServerConnection obiekt z kroku 1.

  3. (Opcjonalnie) Sprawdź właściwość IsDistributor, aby upewnić się, że obecnie połączony serwer jest Dystrybutorem.

  4. Wywołaj metodę Load , aby uzyskać właściwości z serwera.

  5. (Opcjonalnie) Aby zmienić właściwości, ustaw nową wartość dla jednej lub więcej właściwości Dystrybutora, które można ustawić na obiekcie ReplicationServer .

  6. (Opcjonalnie) Jeśli właściwość CachePropertyChanges obiektu ReplicationServer jest ustawiona na true, wywołaj CommitPropertyChanges metodę, aby zatwierdzać zmiany na serwerze.

Aby wyświetlić i zmodyfikować właściwości dystrybucyjnej bazy danych

  1. Utwórz połączenie z dystrybutorem przy użyciu klasy ServerConnection.

  2. Utwórz wystąpienie klasy DistributionDatabase. Określ właściwość nazwy i przekaż ServerConnection obiekt z kroku 1.

  3. Wywołaj metodę LoadProperties , aby uzyskać właściwości z serwera. Jeśli ta metoda zwróci false, baza danych o podanej nazwie nie istnieje na serwerze.

  4. (Opcjonalnie) Aby zmienić właściwości, ustaw nową wartość dla jednej z właściwości, DistributionDatabase którą można ustawić.

  5. (Opcjonalnie) Jeśli właściwość CachePropertyChanges obiektu DistributionDatabase jest ustawiona na true, wywołaj CommitPropertyChanges metodę, aby zatwierdzać zmiany na serwerze.

Aby zobaczyć i modyfikować właściwości Publisher

  1. Utwórz połączenie z programem Publisher przy użyciu klasy ServerConnection.

  2. Utwórz wystąpienie klasy DistributionPublisher. Określ właściwość Name i przekaż obiekt ServerConnection z kroku 1.

  3. (Opcjonalnie) Aby zmienić właściwości, ustaw nową wartość dla jednej z właściwości, DistributionPublisher którą można ustawić.

  4. (Opcjonalnie) Jeśli właściwość CachePropertyChanges obiektu DistributionPublisher jest ustawiona na true, wywołaj CommitPropertyChanges metodę, aby zatwierdzać zmiany na serwerze.

Aby zmienić hasło połączenia administracyjnego z Publikatora do Dystrybutora

  1. Utwórz połączenie z dystrybutorem przy użyciu klasy ServerConnection.

  2. Utwórz wystąpienie klasy ReplicationServer.

  3. Ustaw właściwość ConnectionContext na połączenie utworzone w kroku 1.

  4. Wywołaj metodę Load, aby uzyskać właściwości obiektu.

  5. Wywołaj metodę ChangeDistributorPassword . Przekaż nową wartość hasła dla parametru hasła .

    Ważna

    Jeśli to możliwe, proś użytkowników o wprowadzanie poświadczeń zabezpieczających w czasie działania. Jeśli musisz przechowywać dane uwierzytelniające, skorzystaj z usług kryptograficznych oferowanych przez Microsoft Windows .NET Framework.

  6. (Opcjonalnie) Wykonaj następujące kroki, aby zmienić hasło w każdym zdalnym Publisher korzystającym z tego dystrybutora:

    1. Utwórz połączenie z programem Publisher przy użyciu klasy ServerConnection.

    2. Utwórz wystąpienie klasy ReplicationServer.

    3. Ustaw właściwość ConnectionContext na połączenie utworzone w kroku 6a.

    4. Wywołaj metodę Load, aby uzyskać właściwości obiektu.

    5. Wywołaj metodę ChangeDistributorPassword . Przekaż nową wartość hasła z kroku 5 dla parametru hasła .

Przykład (RMO)

Ten przykład pokazuje, jak zmienić właściwości składnika Distribution i bazy danych dystrybucji.

Ważna

Aby uniknąć przechowywania danych uwierzytelniających w kodzie, nowe hasło dystrybutora jest podawane w czasie działania.

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