sp_adddistributor (T-SQL)

Berlaku untuk:SQL ServerAzure 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.

Konvensi sintaks transact-SQL

Sintaks

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

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

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Keterangan

sp_adddistributor digunakan dalam replikasi rekam jepret, replikasi transaksional, dan replikasi penggabungan.

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

Izin

Hanya anggota peran server tetap sysadmin yang dapat menjalankan sp_adddistributor.