Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server
Azure SQL Managed Instance
Membuat entri dalam tabel sys.servers (jika tidak ada), menandai entri server sebagai Distributor, dan menyimpan informasi properti. Prosedur tersimpan ini dijalankan di Distributor pada master database untuk mendaftar dan menandai server sebagai distributor. Dalam kasus distributor jarak jauh, dieksekusi juga di Publisher dari master database untuk mendaftarkan distributor jarak jauh.
Sintaks
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' ]
[ ; ]
Argumen
[ @distributor = ] N'distributor'
Nama server distribusi.
@distributor adalah sysname, tanpa default. Parameter ini hanya digunakan jika menyiapkan Distributor jarak jauh. Ini menambahkan entri untuk properti Distributor dalam msdb..MSdistributor tabel.
Catatan
Nama server dapat ditentukan sebagai <Hostname>,<PortNumber> untuk instans default atau <Hostname>\<InstanceName>,<PortNumber> untuk instans bernama. Tentukan nomor port untuk koneksi Anda saat SQL Server disebarkan di Linux atau Windows dengan port kustom, dan layanan browser dinonaktifkan. Penggunaan nomor port kustom untuk distributor jarak jauh berlaku untuk SQL Server 2019 (15.x) dan versi yang lebih baru.
[ @heartbeat_interval = ] heartbeat_interval
Jumlah menit maksimum yang dapat dilalui agen tanpa mencatat pesan kemajuan.
@heartbeat_interval int, dengan default 10 menit. Pekerjaan SQL Server Agent dibuat yang berjalan pada interval ini untuk memeriksa status agen replikasi yang sedang berjalan.
[ @password = ] N'password'
Kata sandi login distributor_admin .
@password adalah sysname, dengan default NULL. Jika kata sandi adalah NULL atau string kosong, @password diatur ulang ke nilai acak. Kata sandi harus dikonfigurasi ketika distributor jarak jauh pertama ditambahkan.
distributor_admin masuk dan @password disimpan untuk entri server tertaut yang digunakan untuk koneksi RPC distributor, termasuk koneksi lokal. Jika distributor bersifat lokal, kata sandi untuk distributor_admin diatur ke nilai baru. Untuk Penerbit dengan Distributor jarak jauh, nilai yang sama untuk @password harus ditentukan saat menjalankan sp_adddistributor di Penerbit dan Distributor.
sp_changedistributor_password dapat digunakan untuk mengubah kata sandi Distributor.
Penting
Jika memungkinkan, minta pengguna untuk memasukkan kredensial keamanan saat runtime. Jika Anda harus menyimpan kredensial dalam file skrip, Anda harus mengamankan file untuk mencegah akses yang tidak sah.
[ @from_scripting = ] from_scripting
@from_scripting adalah bit, dengan default 0. Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin.
[ @encrypt_distributor_connection = ] N'encrypt_distributor_connection'
Berlaku untuk: SQL Server 2025 (17.x) dan versi yang lebih baru.
Menentukan apakah koneksi server tertaut internal dari penerbit ke distributor dienkripsi. Nilai dipetakan ke properti penyedia Encrypt OLE DB.
@encrypt_distributor_connectionadalah nvarchar(10), dan tidak boleh NULL.
@encrypt_distributor_connection bisa menjadi salah satu nilai berikut:
-
mandatory(default dengan penyedia Microsoft OLE DB 19) -
noataufalse(default dengan penyedia Microsoft OLE DB 18) -
trueatauyes optionalstrict
[ @trust_distributor_certificate = ] N'trust_distributor_certificate'
Berlaku untuk: SQL Server 2025 (17.x) dan versi yang lebih baru.
Menunjukkan apakah sertifikat TLS distributor harus dipercaya tanpa validasi. Nilai dipetakan ke properti penyedia TrustServerCertificate OLE DB, dan biasanya digunakan bersama dengan Mandatory pengaturan enkripsi saat menggunakan sertifikat yang ditandatangani sendiri.
@trust_distributor_certificateadalah nvarchar(5), dan tidak boleh NULL.
@trust_distributor_certificate bisa menjadi salah satu nilai berikut:
-
no(standar) yes
Catatan
Default aman berkaitan dengan penyedia OLEDB 19 yang mendasar, yang meningkatkan keamanan. Opsi untuk mengambil alih default kurang aman daripada mengonfigurasi instans Anda untuk menggunakan sertifikat tepercaya. Setelah mengambil alih default, Anda memiliki opsi untuk mengonfigurasi SQL Server untuk menggunakan sertifikat, lalu menggunakan prosedur sp_changedistributor_property disimpan untuk mengatur trust_distributor_certificate=no properti kembali ke default aman.
[ @host_name_in_distributor_certificate = ] N'host_name_in_distributor_certificate'
Berlaku untuk: SQL Server 2025 (17.x) dan versi yang lebih baru.
Menentukan nama host dari sertifikat Distributor, ketika berbeda dari nama Distributor, seperti ketika alamat IP atau alias DNS digunakan sebagai nama Distributor. Biarkan parameter @host_name_in_distributor_certificate kosong jika nama host dalam sertifikat cocok dengan nama Distributor.
@host_name_in_distributor_certificate adalah nvarchar(255) dari nilai string apa pun, dengan default NULL.
Mengembalikan nilai kode
0 (berhasil) atau 1 (kegagalan).
Keterangan
sp_adddistributor digunakan dalam replikasi rekam jepret, replikasi transaksional, dan replikasi penggabungan.
Catatan
Untuk topologi replikasi dengan distributor jarak jauh:
Contoh
-- 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
Mengonfigurasi distributor untuk mempercayai sertifikat yang ditandatangani sendiri
Untuk mengambil alih default aman penyedia OLEDB 19 dan mengatur trust_distributor_certificate=yes agar distributor mempercayai sertifikat yang ditandatangani sendiri, gunakan contoh berikut:
EXECUTE sys.sp_adddistributor @trust_distributor_certificate = 'yes';
Catatan
Default aman berkaitan dengan penyedia OLEDB 19 yang mendasar, yang meningkatkan keamanan. Opsi untuk mengambil alih default kurang aman daripada mengonfigurasi instans Anda untuk menggunakan sertifikat tepercaya. Setelah mengambil alih default, Anda memiliki opsi untuk mengonfigurasi SQL Server untuk menggunakan sertifikat, lalu menggunakan prosedur sp_changedistributor_property disimpan untuk mengatur trust_distributor_certificate=no properti kembali ke default aman.
Untuk informasi selengkapnya, tinjau perubahan terobosan distributor jarak jauh di SQL Server 2025.
Izin
Hanya anggota peran server tetap sysadmin yang dapat menjalankan sp_adddistributor.