Aracılığıyla paylaş


sp_adddistributor (Transact-SQL)

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

sys.servers tablosunda bir girdi oluşturur (yoksa), sunucu girdisini Dağıtımcı olarak işaretler ve özellik bilgilerini depolar. Bu saklı yordam, sunucuyu bir dağıtımcı olarak kaydetmek ve işaretlemek için veritabanındaki Dağıtımcı'da master yürütülür. Uzak dağıtımcı söz konusu olduğunda, uzak dağıtımcıyı kaydetmek için veritabanından master Publisher'da da yürütülür.

Transact-SQL söz dizimi kuralları

Sözdizimi

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

Arguments

[ @distributor = ] N'distributor'

Dağıtım sunucusu adı. @distributorsysname'dir ve varsayılan değer yoktur. Bu parametre yalnızca uzak dağıtımcı ayarlanırken kullanılır. Tablodaki Dağıtımcı özellikleri msdb..MSdistributor için girdiler ekler.

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.

[ @heartbeat_interval = ] heartbeat_interval

Bir aracının ilerleme durumunu günlüğe kaydetmeden geçebileceği en fazla dakika sayısı. @heartbeat_interval , varsayılan olarak dakika cinsinden int değeridir 10 . Çalışan çoğaltma aracılarının durumunu denetlemek için bu aralıkta çalışan bir SQL Server Aracısı işi oluşturulur.

[ @password = ] N'password'

distributor_admin oturum açma parolası. @passwordsysname değeridir ve varsayılan değeri .NULL Parola NULL veya boş bir dizeyse, @password rastgele bir değere sıfırlanır. İlk uzak dağıtımcı eklendiğinde parola yapılandırılmalıdır. distributor_admin oturum açma bilgileri ve @password , yerel bağlantılar da dahil olmak üzere dağıtımcı RPC bağlantısı için kullanılan bağlı sunucu girişi için depolanır. Dağıtımcı yerelse, distributor_admin parolası yeni bir değere ayarlanır. Uzak Dağıtımcıya sahip Yayımcılar için, hem Yayımcı hem de Dağıtımcı'da yürütülürken sp_adddistributor @password için aynı değer belirtilmelidir. sp_changedistributor_password Dağıtımcı parolasını değiştirmek için kullanılabilir.

Önemli

Mümkün olduğunda, kullanıcılardan çalışma zamanında güvenlik kimlik bilgilerini girmelerini iste. Kimlik bilgilerini bir betik dosyasında depolamanız gerekiyorsa, yetkisiz erişimi önlemek için dosyanın güvenliğini sağlamalısınız.

[ @from_scripting = ] from_scripting

@from_scriptingbittir ve varsayılan değeridir 0. Yalnızca bilgilendirme amacıyla tanımlanır. Desteklenmiyor. Gelecekteki uyumluluk garanti edilmemektedir.

[ @encrypt_distributor_connection = ] N'encrypt_distributor_connection'

Şunlar için geçerlidir: SQL Server 2025 (17.x) ve sonraki sürümleri.

Yayımcıdan dağıtımcıya iç bağlantılı sunucu bağlantısının şifrelenip şifrelenmediğini belirler. Değerler OLE DB sağlayıcısının Encrypt özelliğine eşlenir. @encrypt_distributor_connectionnvarchar(10) şeklindedir ve olamaz NULL.

@encrypt_distributor_connection aşağıdaki değerlerden biri olabilir:

  • mandatory (Microsoft OLE DB sağlayıcısı 19 ile varsayılan)
  • no veya false (varsayılan olarak Microsoft OLE DB sağlayıcısı 18 ile)
  • true veya yes
  • optional
  • strict

[ @trust_distributor_certificate = ] N'trust_distributor_certificate'

Şunlar için geçerlidir: SQL Server 2025 (17.x) ve sonraki sürümleri.

Dağıtımcının TLS sertifikasına doğrulama olmadan güvenilip güvenilmeyeceğini gösterir. Değer OLE DB sağlayıcısının TrustServerCertificate özelliğine eşlenir ve genellikle otomatik olarak imzalanan sertifikalar kullanılırken şifreleme ayarıyla Mandatory birlikte kullanılır. @trust_distributor_certificatenvarchar(5) şeklindedir ve olamaz NULL.

@trust_distributor_certificate aşağıdaki değerlerden biri olabilir:

  • no (varsayılan)
  • yes

Uyarı

Temel alınan OLEDB sağlayıcısı 19 ile ilgili olan ve güvenliği artıran güvenli varsayılanlar. Varsayılanı geçersiz kılma seçeneği, örneğinizi güvenilir bir sertifika kullanacak şekilde yapılandırmaktan daha az güvenlidir. Varsayılanı geçersiz kıldıktan sonra SQL Server'ı sertifika kullanacak şekilde yapılandırma ve ardından sp_changedistributor_property saklı yordamını kullanarak özelliği yeniden güvenli varsayılan değere ayarlama trust_distributor_certificate=no seçeneğiniz vardır.

[ @host_name_in_distributor_certificate = ] N'host_name_in_distributor_certificate'

Şunlar için geçerlidir: SQL Server 2025 (17.x) ve sonraki sürümleri.

Dağıtımcının sertifikasından ana bilgisayar adını, Dağıtımcı adından farklı olduğunda (örneğin, Dağıtımcı adı olarak IP adresi veya DNS diğer adı kullanıldığında) belirtir. Sertifikadaki ana bilgisayar adı Dağıtımcı adıyla eşleşiyorsa @host_name_in_distributor_certificate parametresini boş bırakın. @host_name_in_distributor_certificate , varsayılan değeri olan herhangi bir dize değerinin nvarchar(255) değeridir NULL.

Dönüş kodu değerleri

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

Açıklamalar

sp_adddistributor anlık görüntü çoğaltma, işlem çoğaltması ve birleştirme çoğaltmasında 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

Dağıtımcıyı otomatik olarak imzalanan sertifikaya güvenecek şekilde yapılandırma

OLEDB 19 sağlayıcısının güvenli varsayılanını geçersiz kılmak ve dağıtımcının otomatik olarak imzalanan sertifikaya güvenmesini sağlamak trust_distributor_certificate=yes için aşağıdaki örneği kullanın:

EXECUTE sys.sp_adddistributor @trust_distributor_certificate = 'yes';

Uyarı

Temel alınan OLEDB sağlayıcısı 19 ile ilgili olan ve güvenliği artıran güvenli varsayılanlar. Varsayılanı geçersiz kılma seçeneği, örneğinizi güvenilir bir sertifika kullanacak şekilde yapılandırmaktan daha az güvenlidir. Varsayılanı geçersiz kıldıktan sonra SQL Server'ı sertifika kullanacak şekilde yapılandırma ve ardından sp_changedistributor_property saklı yordamını kullanarak özelliği yeniden güvenli varsayılan değere ayarlama trust_distributor_certificate=no seçeneğiniz vardır.

Daha fazla bilgi için, SQL Server 2025'teki bozucu değişimi uzaktan dağıtıcıyı inceleyin.

Permissions

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