Vorgehensweise: Konfigurieren der Veröffentlichung und Verteilung (Replikationsprogrammierung mit Transact-SQL)

Die Replikationsveröffentlichung und -verteilung kann mit gespeicherten Replikationsprozeduren programmgesteuert konfiguriert werden.

So konfigurieren Sie die Veröffentlichung mit einem lokalen Verteiler

  1. Führen Sie sp_get_distributor (Transact-SQL) aus, um zu ermitteln, ob der Server bereits als Verteiler konfiguriert ist.

    • Wenn der Wert von installed im Resultset 0 beträgt, führen Sie sp_adddistributor (Transact-SQL) auf dem Verteiler für die master-Datenbank aus.

    • Wenn der Wert von distribution db installed im Resultset 0 beträgt, führen Sie sp_adddistributiondb (Transact-SQL) auf dem Verteiler für die master-Datenbank aus. Geben Sie den Namen der Verteilungsdatenbank für @database an. Optional können Sie die maximale Transaktionsbeibehaltungsdauer für @max_distretention und die Verlaufsbeibehaltungsdauer für @history_retention angeben. Wenn eine neue Datenbank erstellt wird, geben Sie die gewünschten Eigenschaftenparameter für die Datenbank an.

  2. Führen Sie auf dem Verteiler, der zugleich der Verleger ist, sp_adddistpublisher (Transact-SQL) aus, und geben Sie dabei die UNC-Freigabe, die als Standardsnapshotordner verwendet werden soll, für @working_directory an.

  3. Führen Sie auf dem Verleger sp_replicationdboption (Transact-SQL) aus. Geben Sie die zu veröffentlichende Datenbank für @dbname, den Replikationstyp für @optname und den Wert true für @value an.

So konfigurieren Sie die Veröffentlichung mit einem Remoteverteiler

  1. Führen Sie sp_get_distributor (Transact-SQL) aus, um zu ermitteln, ob der Server bereits als Verteiler konfiguriert ist.

    • Wenn der Wert von installed im Resultset 0 beträgt, führen Sie sp_adddistributor (Transact-SQL) auf dem Verteiler für die master-Datenbank aus. Geben Sie ein starkes Kennwort für @password an. Dieses Kennwort für das distributor_admin-Konto wird vom Verleger verwendet, wenn er eine Verbindung zum Verteiler herstellt.

    • Wenn der Wert von distribution db installed im Resultset 0 beträgt, führen Sie sp_adddistributiondb (Transact-SQL) auf dem Verteiler für die master-Datenbank aus. Geben Sie den Namen der Verteilungsdatenbank für @database an. Optional können Sie die maximale Transaktionsbeibehaltungsdauer für @max_distretention und die Verlaufsbeibehaltungsdauer für @history_retention angeben. Wenn eine neue Datenbank erstellt wird, geben Sie die gewünschten Eigenschaftenparameter für die Datenbank an.

  2. Führen Sie auf dem Verteiler sp_adddistpublisher (Transact-SQL) aus, und geben Sie dabei die UNC-Freigabe, die als Standardsnapshotordner verwendet werden soll, für @working_directory an. Wenn der Verteiler zum Herstellen der Verbindung mit dem Verleger die SQL Server-Authentifizierung verwendet, müssen Sie zudem den Wert 0 für @security_mode und die MicrosoftSQL Server-Anmeldeinformationen für @login und @password angeben.

  3. Führen Sie auf dem Verleger für die master-Datenbank sp_adddistributor (Transact-SQL) aus. Geben Sie das starke Kennwort an, das in Schritt 1 für @password verwendet wurde. Dieses Kennwort wird vom Verleger verwendet, wenn er eine Verbindung zum Verteiler herstellt.

  4. Führen Sie auf dem Verleger sp_replicationdboption (Transact-SQL) aus. Geben Sie die zu veröffentlichende Datenbank für @dbname, den Replikationstyp für @optname und den Wert true für @value an.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie die Veröffentlichung und die Verteilung programmgesteuert konfiguriert werden. In diesem Beispiel werden der Name des Servers, der als Verleger konfiguriert wird, und ein lokaler Verteiler mithilfe von Skriptvariablen bereitgestellt.

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). 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".

-- Install the Distributor and the distribution database.
DECLARE @distributor AS sysname;
DECLARE @distributionDB AS sysname;
DECLARE @publisher AS sysname;
DECLARE @directory AS nvarchar(500);
DECLARE @publicationDB AS sysname;
-- Specify the Distributor name.
SET @distributor = $(DistPubServer);
-- Specify the distribution database.
SET @distributionDB = N'distribution';
-- Specify the Publisher name.
SET @publisher = $(DistPubServer);
-- Specify the replication working directory.
SET @directory = N'\\' + $(DistPubServer) + '\repldata';
-- Specify the publication database.
SET @publicationDB = N'AdventureWorks'; 

-- Install the server MYDISTPUB as a Distributor using the defaults,
-- including autogenerating the distributor password.
USE master
EXEC sp_adddistributor @distributor = @distributor;

-- Create a new distribution database using the defaults, including
-- using Windows Authentication.
USE master
EXEC sp_adddistributiondb @database = @distributionDB, 
    @security_mode = 1;
GO

-- Create a Publisher and enable AdventureWorks for replication.
-- Add MYDISTPUB as a publisher with MYDISTPUB as a local distributor
-- and use Windows Authentication.
DECLARE @distributionDB AS sysname;
DECLARE @publisher AS sysname;
-- Specify the distribution database.
SET @distributionDB = N'distribution';
-- Specify the Publisher name.
SET @publisher = $(DistPubServer);

USE [distribution]
EXEC sp_adddistpublisher @publisher=@publisher, 
    @distribution_db=@distributionDB, 
    @security_mode = 1;
GO