Sdílet prostřednictvím


Zobrazení a úprava vlastností distributora a vydavatele

platí pro:SQL Serverazure SQL Managed Instance

Toto téma popisuje, jak zobrazit a upravit vlastnosti distributora a vydavatele v SQL Serveru pomocí aplikace SQL Server Management Studio, Transact-SQL nebo objektů RMO (Replication Management Objects).

V tomto tématu

Než začnete

Doporučení

  • Pro vydavatele používající verze starší než Microsoft SQL Server 2005 (9.x) může uživatel v pevné roli serveru sysadmin zaregistrovat předplatitele na stránce Předplatitelé. Počínaje SQL Serverem 2005 (9.x) už není nutné explicitně registrovat předplatitele pro replikaci.

Bezpečnost

Pokud je to možné, vyzve uživatele, aby za běhu zadali přihlašovací údaje zabezpečení.

Použití aplikace SQL Server Management Studio

Zobrazení a úprava vlastností distributora

  1. Připojte se k distributoru v aplikaci SQL Server Management Studio a potom rozbalte uzel serveru.

  2. Klepněte pravým tlačítkem myši na složku Replikace a potom klepněte na tlačítko Vlastnosti distributora.

  3. Zobrazit a upravit vlastnosti v dialogovém okně Vlastnosti distributora - <>.

    • Chcete-li zobrazit a upravit vlastnosti pro distribuční databázi, klikněte na tlačítko vlastnosti (...) pro databázi na stránce Obecné dialogového okna.

    • Chcete-li zobrazit a upravit vlastnosti aplikace Publisher přidružené k distributoru, klepněte na tlačítko vlastnosti (...) aplikace Publisher na stránce Publishers stránce dialogového okna.

    • Chcete-li získat přístup k profilům pro agenty replikace, klikněte na tlačítko Výchozí nastavení profilu na stránce Obecné dialogového okna. Další informace naleznete v tématu profily agenta replikace.

    • Chcete-li změnit heslo pro účet použitý při provádění uložených procedur pro správu na publikačním serveru a aktualizovat informace u distributora, zadejte nové heslo do polí Heslo a Potvrdit heslo na stránce Publishers dialogového okna. Další informace naleznete v tématu Zabezpečení distributora.

  4. V případě potřeby upravte všechny vlastnosti a klepněte na tlačítko OK.

Zobrazení a úprava vlastností publisheru

  1. Připojte se k Publisheru v aplikaci SQL Server Management Studio a potom rozbalte uzel serveru.

  2. Klepněte pravým tlačítkem myši na složku Replikace a potom klepněte na Vlastnosti vydavatele.

  3. Umožňuje zobrazit a upravit vlastnosti v dialogovém okně Vlastnosti Publisheru - < Publisher >.

    • Uživatel s pevnou rolí serveru může na stránce Databáze publikací povolit databáze pro replikaci. Povolení databáze nepublikuje databázi; umožňuje každému uživateli v pevné databázové roli db_owner pro danou databázi vytvořit jednu nebo více publikací v databázi.
  4. V případě potřeby upravte všechny vlastnosti a klepněte na tlačítko OK.

Použití Transact-SQL

Vlastnosti vydavatele a distributora lze zobrazit programově pomocí uložených procedur replikace.

Zobrazení vlastností distributora a distribuční databáze

  1. Spuštěním sp_helpdistributor vrátíte informace o distributorové, distribuční databázi a pracovním adresáři.

  2. Spuštěním sp_helpdistributiondb vrátíte vlastnosti zadané distribuční databáze.

Změna vlastností distributora a distribuční databáze

  1. U distributora spusťte sp_changedistributor_property a upravte vlastnosti distributora.

  2. Na distributoru spusťte sp_changedistributiondb a upravte vlastnosti distribuční databáze.

  3. Ve správci distribuce spusťte sp_changedistributor_password na změnu hesla distributora.

    Důležitý

    Pokud je to možné, vyzve uživatele, aby za běhu zadali přihlašovací údaje zabezpečení. Pokud musíte přihlašovací údaje uložit do souboru skriptu, zabezpečte ho, aby se zabránilo neoprávněnému přístupu.

  4. U distributora spusťte sp_changedistpublisher a změňte vlastnosti vydavatele pomocí distributora.

Příklady (Transact-SQL)

Následující příklad skriptu Transact-SQL vrátí informace o distributorovi a distribuční databázi.

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

Tento příklad změní dobu uchovávání informací pro distributora, heslo použité při připojování k distributoru a interval, ve kterém distributor kontroluje stav různých agentů replikace (označuje se také jako interval prezenčních signálů).

Důležitý

Pokud je to možné, vyzve uživatele, aby za běhu zadali přihlašovací údaje zabezpečení. Pokud musíte přihlašovací údaje uložit do souboru skriptu, zabezpečte ho, aby se zabránilo neoprávněnému přístupu.


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

Použití objektů správy replikace (RMO)

Zobrazení a úprava vlastností distributora

  1. Vytvořte připojení k distributoru pomocí třídy ServerConnection.

  2. Vytvořte instanci třídy ReplicationServer. Předejte objekt ServerConnection z kroku 1.

  3. (Volitelné) Zkontrolujte vlastnost IsDistributor a ověřte, že aktuálně připojený server je distributor.

  4. Voláním metody Load získejte vlastnosti ze serveru.

  5. (Volitelné) Chcete-li změnit vlastnosti, nastavte novou hodnotu pro jednu nebo více vlastností Distributor, které lze nastavit na ReplicationServer objektu.

  6. (Volitelné) Pokud je vlastnost CachePropertyChanges objektu ReplicationServer nastavena na hodnotu true, zavolejte metodu CommitPropertyChanges k potvrzení změn na server.

Zobrazení a úprava vlastností distribuční databáze

  1. Vytvořte připojení k distributoru pomocí třídy ServerConnection.

  2. Vytvořte instanci třídy DistributionDatabase. Zadejte vlastnost názvu a předejte objekt ServerConnection z kroku 1.

  3. Voláním metody LoadProperties získejte vlastnosti ze serveru. Pokud tato metoda vrátí false, databáze se zadaným názvem na serveru neexistuje.

  4. (Volitelné) Pokud chcete změnit vlastnosti, nastavte novou hodnotu pro jednu z DistributionDatabase vlastností, které lze nastavit.

  5. (Volitelné) Pokud je vlastnost CachePropertyChanges objektu DistributionDatabase nastavena na hodnotu true, zavolejte metodu CommitPropertyChanges k potvrzení změn na server.

Zobrazení a úprava vlastností publisheru

  1. Vytvořte připojení k Publisheru pomocí třídy ServerConnection.

  2. Vytvořte instanci třídy DistributionPublisher. Zadejte vlastnost Name a předejte objekt ServerConnection z kroku 1.

  3. (Volitelné) Pokud chcete změnit vlastnosti, nastavte novou hodnotu pro jednu z DistributionPublisher vlastností, které lze nastavit.

  4. (Volitelné) Pokud je vlastnost CachePropertyChanges objektu DistributionPublisher nastavena na hodnotu true, zavolejte metodu CommitPropertyChanges k potvrzení změn na server.

Změna hesla pro připojení pro správu z Publisheru na distributora

  1. Vytvořte připojení k distributoru pomocí třídy ServerConnection.

  2. Vytvořte instanci třídy ReplicationServer.

  3. Nastavte vlastnost ConnectionContext na připojení vytvořené v kroku 1.

  4. Zavolejte metodu Load pro získání vlastností objektu.

  5. Volejte metodu ChangeDistributorPassword. Předejte novou hodnotu hesla pro parametr password.

    Důležitý

    Pokud je to možné, vyzve uživatele, aby za běhu zadali přihlašovací údaje zabezpečení. Pokud je nutné uložit přihlašovací údaje, použijte kryptografické služby poskytované rozhraním Microsoft Windows .NET Framework.

  6. (Volitelné) Pomocí následujících kroků změňte heslo u každého vzdáleného vydavatele, který používá tohoto distributora:

    1. Vytvořte připojení k Publisheru pomocí třídy ServerConnection.

    2. Vytvořte instanci třídy ReplicationServer.

    3. Nastavte vlastnost ConnectionContext na připojení vytvořené v kroku 6a.

    4. Zavolejte metodu Load pro získání vlastností objektu.

    5. Volejte metodu ChangeDistributorPassword. Zadejte novou hodnotu hesla z kroku 5 pro parametr password.

Příklad (RMO)

Tento příklad ukazuje, jak změnit vlastnosti distribuční a distribuční databáze.

Důležitý

Aby se zabránilo ukládání přihlašovacích údajů v kódu, nové heslo distributora se za běhu zadává.

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