sp_adddistpublisher (T-SQL)

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Mengonfigurasi Publisher untuk menggunakan database distribusi tertentu. Prosedur tersimpan ini dijalankan di Distributor pada database apa pun. Prosedur tersimpan sp_adddistributor (Transact-SQL) dan sp_adddistributiondb (Transact-SQL) harus dijalankan sebelum menggunakan prosedur tersimpan ini.

Konvensi sintaks transact-SQL

Sintaks

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' ]
[ ; ]

Argumen

[ @publisher = ] N'publisher'

Nama Penerbit. @publisher adalah sysname, tanpa default.

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.

[ @distribution_db = ] N'distribution_db'

Nama database distribusi. @distribution_db adalah sysname, tanpa default. Parameter ini digunakan oleh agen replikasi untuk menyambungkan ke Publisher.

[ @security_mode = ] security_mode

Mode keamanan yang diterapkan. Parameter ini hanya digunakan oleh agen replikasi untuk menyambungkan ke Publisher untuk mengantre memperbarui langganan atau dengan Penerbit non-SQL Server. @security_mode int, dan bisa menjadi salah satu nilai ini.

Nilai Deskripsi
0 Agen replikasi di Distributor menggunakan Autentikasi SQL Server untuk menyambungkan ke Publisher.
1 (default) Agen replikasi di Distributor menggunakan Autentikasi Windows untuk menyambungkan ke Publisher.

[ @login = ] N'login'

Login. Parameter ini diperlukan jika security_mode adalah 0. @login adalah sysname, dengan default NULL. Parameter ini digunakan oleh agen replikasi untuk menyambungkan ke Publisher.

[ @password = ] N'password'

Kata sandi. @password adalah sysname, dengan default NULL. Parameter ini digunakan oleh agen replikasi untuk menyambungkan ke Publisher.

Penting

Jangan gunakan kata sandi kosong. Gunakan kata sandi yang kuat.

[ @working_directory = ] N'working_directory'

Nama direktori kerja yang digunakan untuk menyimpan data dan file skema untuk publikasi. @working_directory adalah nvarchar(255), dan default ke ReplData folder untuk instans SQL Server ini. Contohnya, C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.1\ReplData. Nama harus ditentukan dalam format UNC.

Untuk Azure SQL Database, gunakan \\<storage_account>.file.core.windows.net\<share>.

[ @trusted = ] N'trusted'

@trusted tidak digunakan lagi, dan hanya disediakan untuk kompatibilitas mundur. @trusted adalah nvarchar(5), dengan default false. Mengatur parameter ini ke apa pun kecuali false menghasilkan kesalahan.

[ @encrypted_password = ] encrypted_password

Mengatur parameter ini tidak lagi didukung. @encrypted_password adalah bit, dengan default .0 Mengatur parameter ini untuk 1 menghasilkan kesalahan.

[ @thirdparty_flag = ] thirdparty_flag

Menentukan kapan Publisher adalah SQL Server. @thirdparty_flag adalah bit, dan bisa menjadi salah satu nilai berikut.

Nilai Deskripsi
0 (default) Database SQL Server.
1 Database selain SQL Server.

[ @publisher_type = ] N'publisher_type'

Menentukan jenis Publisher saat Publisher bukan SQL Server. @publisher_type adalah sysname, dan bisa menjadi salah satu nilai berikut.

Nilai Deskripsi
MSSQLSERVER (default) Menentukan Penerbit SQL Server.
ORACLE Menentukan Penerbit Oracle standar.
ORACLE GATEWAY Menentukan Penerbit Gateway Oracle.

Untuk informasi selengkapnya tentang perbedaan antara Penerbit Oracle dan Penerbit Gateway Oracle, lihat Mengonfigurasi Penerbit Oracle.

[ @storage_connection_string = ] N'storage_connection_string'

Diperlukan untuk Azure SQL Database. @storage_connection_string adalah nvarchar(255), dengan default NULL. Gunakan kunci akses dari portal Azure, di bawah Pengaturan penyimpanan > .

Catatan

Database penerbit dan distributor di Azure SQL Database memerlukan SQL Managed Instance. Untuk informasi selengkapnya, lihat Replikasi dengan Azure SQL Database.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Keterangan

sp_adddistpublisher digunakan oleh 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_adddistpublisher.