Delen via


sp_adddistpublisher (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL Managed Instance

Hiermee configureert u een uitgever voor het gebruik van een opgegeven distributiedatabase. Deze opgeslagen procedure wordt uitgevoerd bij de Distributeur op elke database. De opgeslagen procedures sp_adddistributor en sp_adddistributiondb moeten zijn uitgevoerd voordat u deze opgeslagen procedure gebruikt.

Transact-SQL syntaxis-conventies

Syntaxis

sp_adddistpublisher
    [ @publisher = ] N'publisher'
    , [ @distribution_db = ] N'distribution_db'
    [ , [ @security_mode = ] security_mode ]
    [ , [ @login = ] N'login' ]
    [ , [ @password = ] N'password' ]
    [ , [ @working_directory = ] N'working_directory' ]
    [ , [ @trusted = ] N'trusted' ]
    [ , [ @encrypted_password = ] encrypted_password ]
    [ , [ @thirdparty_flag = ] thirdparty_flag ]
    [ , [ @publisher_type = ] N'publisher_type' ]
    [ , [ @storage_connection_string = ] N'storage_connection_string' ]
[ ; ]

Arguments

[ @publisher = ] N'uitgever'

De naam van de uitgever. @publisher is sysname, zonder standaardinstelling.

Opmerking

De servernaam kan worden opgegeven als <Hostname>,<PortNumber> voor een standaardexemplaren of <Hostname>\<InstanceName>,<PortNumber> voor een benoemd exemplaar. Geef het poortnummer voor uw verbinding op wanneer SQL Server is geïmplementeerd in Linux of Windows met een aangepaste poort en de browserservice is uitgeschakeld. Het gebruik van aangepaste poortnummers voor externe distributeur is van toepassing op SQL Server 2019 (15.x) en latere versies.

[ @distribution_db = ] N'distribution_db'

De naam van de distributiedatabase. @distribution_db is sysname, zonder standaardinstelling. Deze parameter wordt gebruikt door replicatieagents om verbinding te maken met publisher.

[ @security_mode = ] security_mode

De geïmplementeerde beveiligingsmodus. Deze parameter wordt alleen gebruikt door replicatieagents om verbinding te maken met publisher voor het bijwerken van abonnementen in de wachtrij of met een niet-SQL Server Publisher. @security_mode is int en kan een van deze waarden zijn.

Waarde Description
0 Replicatieagents bij de Distributeur gebruiken SQL Server Authentication om verbinding te maken met de Uitgever.
1 (standaard) Replicatieagents bij de Distributeur gebruiken Windows-verificatie om verbinding te maken met publisher.

[ @login = ] N'login'

De aanmelding. Deze parameter is vereist als security_mode is 0. @login is sysname, met een standaardwaarde van NULL. Deze parameter wordt gebruikt door replicatieagents om verbinding te maken met publisher.

[ @password = ] N'wachtwoord'

Het wachtwoord. @password is sysname, met een standaardwaarde van NULL. Deze parameter wordt gebruikt door replicatieagents om verbinding te maken met publisher.

Belangrijk

Gebruik geen leeg wachtwoord. Gebruik een sterk wachtwoord.

[ @working_directory = ] N'working_directory'

De naam van de werkmap die wordt gebruikt voor het opslaan van gegevens- en schemabestanden voor de publicatie. @working_directory is nvarchar(255) en wordt standaard ingesteld op de ReplData map voor dit exemplaar van SQL Server. Bijvoorbeeld: C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.1\ReplData. De naam moet worden opgegeven in UNC-indeling.

Gebruik voor Azure SQL Database \\<storage_account>.file.core.windows.net\<share>.

[ @trusted = ] N'trusted'

@trusted is afgeschaft en is alleen beschikbaar voor achterwaartse compatibiliteit. @trusted is nvarchar(5), met een standaardwaarde van false. Als u deze parameter instelt op iets, maar false dit resulteert in een fout.

[ @encrypted_password = ] encrypted_password

Het instellen van deze parameter wordt niet meer ondersteund. @encrypted_password is bit, met een standaardwaarde van 0. Als u deze parameter instelt op 1 een fout.

[ @thirdparty_flag = ] thirdparty_flag

Hiermee geeft u op wanneer de Uitgever SQL Server is. @thirdparty_flag is bit en kan een van de volgende waarden zijn.

Waarde Description
0 (standaard) SQL Server-database.
1 Andere database dan SQL Server.

[ @publisher_type = ] N'publisher_type'

Hiermee geeft u het type Publisher op wanneer de Uitgever niet SQL Server is. @publisher_typesysname is en kan een van de volgende waarden zijn.

Waarde Description
MSSQLSERVER (standaard) Hiermee geeft u een SQL Server Publisher.
ORACLE Hiermee geeft u een standaard Oracle Publisher.
ORACLE GATEWAY Hiermee geeft u een Oracle Gateway Publisher.

Zie Een Oracle Publisher configureren voor meer informatie over de verschillen tussen een Oracle Publisher en een Oracle Gateway Publisher.

[ @storage_connection_string = ] N'storage_connection_string'

Vereist voor Azure SQL Database. @storage_connection_string is nvarchar(255), met een standaardwaarde van NULL. Gebruik de toegangssleutel vanuit Azure Portal onder Opslaginstellingen>.

Opmerking

Publisher- en distributeurdatabases in Azure SQL Database vereisen SQL Managed Instance. Zie Replicatie naar Azure SQL Database voor meer informatie.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Opmerkingen

sp_adddistpublisher wordt gebruikt door momentopnamereplicatie, transactionele replicatie en samenvoegingsreplicatie.

Voorbeelden

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

Permissions

Alleen leden van de vaste serverrol sysadmin kunnen worden uitgevoerd sp_adddistpublisher.