sp_adddistributor (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed Instance

Erstellt einen Eintrag in der Tabelle "sys.servers " (sofern nicht vorhanden), kennzeichnet den Servereintrag als Distributor und speichert Eigenschaftsinformationen. Diese gespeicherte Prozedur wird beim Distributor in der master Datenbank ausgeführt, um den Server als Händler zu registrieren und zu kennzeichnen. Im Falle eines Remoteverteilers wird er auch bei Publisher aus der master Datenbank ausgeführt, um den Remoteverteiler zu registrieren.

Transact-SQL-Syntaxkonventionen

Syntax

sp_adddistributor
    [ @distributor = ] N'distributor'
    [ , [ @heartbeat_interval = ] heartbeat_interval ]
    [ , [ @password = ] N'password' ]
    [ , [ @from_scripting = ] from_scripting ]
[ ; ]

Argumente

[ @distributor = ] N'distributor'

Der Name des Verteilungsservers. @distributor ist "sysname" ohne Standard. Dieser Parameter wird nur bei der Einrichtung eines Remoteverteilers verwendet. Sie fügt Einträge für die Distributor-Eigenschaften in der msdb..MSdistributor Tabelle hinzu.

Hinweis

Der Servername kann als <Hostname>,<PortNumber>. Geben Sie die Portnummer für Ihre Verbindung an, wenn SQL Server unter Linux oder Windows mit einem benutzerdefinierten Port bereitgestellt wird, und der Browserdienst ist deaktiviert. Die Verwendung von benutzerdefinierten Portnummern für Remoteverteiler gilt für SQL Server 2019 (15.x) und höhere Versionen.

[ @heartbeat_interval = ] heartbeat_interval

Der maximale Zeitraum in Minuten, für den ein Agent ohne Protokollierung einer Verlaufsmeldung ausgeführt werden kann. @heartbeat_interval ist "int" mit einer Standardeinstellung von 10 Minuten. Ein Auftrag des SQL Server-Agents wird erstellt, der nach diesem Zeitraum ausgeführt wird, um den Status der ausgeführten Replikations-Agents zu überprüfen.

[ @password = ] N'password'

Das Kennwort der distributor_admin Anmeldung. @password ist "sysname" mit der Standardeinstellung "NULL. Wenn das Kennwort oder eine leere Zeichenfolge ist NULL , wird @password auf einen zufälligen Wert zurückgesetzt. Das Kennwort muss konfiguriert sein, wenn der erste Remoteverteiler hinzugefügt wird. distributor_admin Anmeldung und @password werden für den verknüpften Servereintrag gespeichert, der für eine Verteiler-RPC-Verbindung verwendet wird, einschließlich lokaler Verbindungen. Wenn der Verteiler lokal ist, wird das Kennwort für distributor_admin auf einen neuen Wert festgelegt. Für Herausgeber mit einem Remoteverteiler muss derselbe Wert für @password bei der Ausführung sp_adddistributor sowohl bei Publisher als auch beim Distributor angegeben werden. sp_changedistributor_password können verwendet werden, um das Händlerkennwort zu ändern.

Wichtig

Benutzer sollten nach Möglichkeit dazu aufgefordert werden, Anmeldeinformationen zur Laufzeit anzugeben. Wenn Anmeldeinformationen in einer Skriptdatei gespeichert werden müssen, muss die Datei an einem sicheren Ort gespeichert werden, um unberechtigten Zugriff zu vermeiden.

[ @from_scripting = ] from_scripting

@from_scripting ist bit, mit einem Standardwert von 0. Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler).

Hinweise

sp_adddistributorwird in Momentaufnahme Replikation, Transaktionsreplikation und Zusammenführungsreplikation verwendet.

Beispiele

-- 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'AdventureWorks2022'; 

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

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin können ausgeführt werden sp_adddistributor.