Aracılığıyla paylaş


sp_adddistpublisher (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL Yönetilen Örneği

Publisher'ı belirtilen bir dağıtım veritabanını kullanacak şekilde yapılandırıyor. Bu saklı yordam herhangi bir veritabanındaki Dağıtımcı'da yürütülür. sp_adddistributor vesp_adddistributiondb saklı yordamlar, bu saklı yordamdan önce çalıştırılmış olmalıdır.

Transact-SQL söz dizimi kuralları

Sözdizimi

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

Yayımcı adı. @publishersysname'dir ve varsayılan değer yoktur.

Uyarı

Sunucu adı, varsayılan örnek veya <Hostname>,<PortNumber> adlandırılmış örnek için olarak <Hostname>\<InstanceName>,<PortNumber> belirtilebilir. SQL Server özel bir bağlantı noktasıyla Linux veya Windows'a dağıtıldığında ve tarayıcı hizmeti devre dışı bırakıldığında bağlantınızın bağlantı noktası numarasını belirtin. Uzak dağıtımcı için özel bağlantı noktası numaralarının kullanımı SQL Server 2019 (15.x) ve sonraki sürümler için geçerlidir.

[ @distribution_db = ] N'distribution_db'

Dağıtım veritabanının adı. @distribution_dbsysname'dir ve varsayılan değer yoktur. Bu parametre, çoğaltma aracıları tarafından Yayımcı'ya bağlanmak için kullanılır.

[ @security_mode = ] security_mode

Uygulanan güvenlik modu. Bu parametre yalnızca çoğaltma aracıları tarafından kuyruğa alınmış güncelleştirme abonelikleri veya SQL Server Publisher olmayan bir abonelik için Publisher'a bağlanmak için kullanılır. @security_modeint değeridir ve bu değerlerden biri olabilir.

Değer Description
0 Dağıtımcıdaki çoğaltma aracıları, Yayımcı'ya bağlanmak için SQL Server Kimlik Doğrulamasını kullanır.
1 (varsayılan) Dağıtımcıdaki çoğaltma aracıları, Yayımcı'ya bağlanmak için Windows Kimlik Doğrulaması'nı kullanır.

[ @login = ] N'login'

Oturum açma. security_mode ise bu 0parametre gereklidir. @loginsysname değeridir ve varsayılan değeri .NULL Bu parametre, çoğaltma aracıları tarafından Yayımcı'ya bağlanmak için kullanılır.

[ @password = ] N'password'

Parola. @passwordsysname değeridir ve varsayılan değeri .NULL Bu parametre, çoğaltma aracıları tarafından Yayımcı'ya bağlanmak için kullanılır.

Önemli

Boş parola kullanmayın. Güçlü bir parola kullanın.

[ @working_directory = ] N'working_directory'

Yayının verilerini ve şema dosyalarını depolamak için kullanılan çalışma dizininin adı. @working_directorynvarchar(255) şeklindedir ve varsayılan olarak ReplData bu SQL Server örneğinin klasörünü kullanır. Örneğin, C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.1\ReplData. Ad UNC biçiminde belirtilmelidir.

Azure SQL Veritabanı için kullanın \\<storage_account>.file.core.windows.net\<share>.

[ @trusted = ] N'trusted'

@trusted kullanım dışıdır ve yalnızca geriye dönük uyumluluk için sağlanır. @trusted , varsayılan değeri olan nvarchar(5) değeridir false. Bu parametreyi herhangi bir şeye false ayarlamak hatayla sonuçlanır.

[ @encrypted_password = ] encrypted_password

Bu parametrenin ayarlanması artık desteklenmiyor. @encrypted_passwordbittir ve varsayılan değeridir 0. Bu parametrenin ayarlı olması 1 hataya neden olur.

[ @thirdparty_flag = ] thirdparty_flag

Publisher'ın SQL Server olduğunu belirtir. @thirdparty_flagbittir ve aşağıdaki değerlerden biri olabilir.

Değer Description
0 (varsayılan) SQL Server veritabanı.
1 SQL Server dışındaki veritabanı.

[ @publisher_type = ] N'publisher_type'

Publisher, SQL Server olmadığında Publisher türünü belirtir. @publisher_typesysname'dir ve aşağıdaki değerlerden biri olabilir.

Değer Description
MSSQLSERVER (varsayılan) BIR SQL Server Publisher belirtir.
ORACLE Standart bir Oracle Publisher belirtir.
ORACLE GATEWAY Oracle Gateway Publisher belirtir.

Oracle Publisher ile Oracle Gateway Publisher arasındaki farklar hakkında daha fazla bilgi için bkz. Oracle Publisher'ı yapılandırma.

[ @storage_connection_string = ] N'storage_connection_string'

Azure SQL Veritabanı için gereklidir. @storage_connection_stringnvarchar(255), varsayılan değeridir NULL. Azure portalındaki Depolama > Ayarları'nın altındaki erişim anahtarını kullanın.

Uyarı

Azure SQL Veritabanı'nda yayımcı ve dağıtımcı veritabanları için SQL Yönetilen Örneği gerekir. Daha fazla bilgi için bkz. Azure SQL Veritabanı'na çoğaltma.

Dönüş kodu değerleri

0 (başarı) veya 1 (başarısızlık).

Açıklamalar

sp_adddistpublisher anlık görüntü çoğaltma, işlem çoğaltması ve birleştirme çoğaltması tarafından kullanılır.

Örnekler

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

yalnızca sysadmin sabit sunucu rolünün üyeleri yürütebilir sp_adddistpublisher.