sp_adddistpublisher (Transact-SQL)
Область применения: SQL Server Управляемый экземпляр SQL Azure
Настраивает издатель для использования указанной базы данных распространителя. Эта хранимая процедура выполняется на распространителе в любой базе данных. Хранимые процедуры sp_adddistributor и sp_adddistributiondb должны выполняться перед использованием этой хранимой процедуры.
Соглашения о синтаксисе Transact-SQL
Синтаксис
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' ]
[ ; ]
Аргументы
[ @publisher = ] N'publisher'
Имя издателя. @publisher — sysname без значения по умолчанию.
Примечание.
Имя сервера можно указать как <Hostname>,<PortNumber>
для экземпляра по умолчанию или <Hostname>\<InstanceName>,<PortNumber>
для именованного экземпляра. Укажите номер порта для подключения при развертывании SQL Server в Linux или Windows с пользовательским портом, а служба браузера отключена. Использование пользовательских номеров портов для удаленного распространителя применяется к SQL Server 2019 (15.x) и более поздним версиям.
[ @distribution_db = ] N'distribution_db'
Имя базы данных распространителя. @distribution_db — sysname без значения по умолчанию. Он используется агентами репликации для подключения к издателю.
[ @security_mode = ] security_mode
Реализованный режим безопасности. Этот параметр используется только агентами репликации для подключения к издателю для подписок, обновляемых в очереди, или издателя, отличного от SQL Server. @security_mode является int и может быть одним из этих значений.
значение | Описание |
---|---|
0 |
Агенты репликации на распространителю используют проверку подлинности SQL Server для подключения к издателю. |
1 (по умолчанию) |
Агенты репликации на распространителе используют для подключения к издателю проверку подлинности Windows. |
[ @login = ] N'login'
Имя входа. Этот параметр требуется, если security_mode0
. @login имеет имя sysname с значением по умолчаниюNULL
. Он используется агентами репликации для подключения к издателю.
[ @password = ] N'password'
Пароль. @password — sysname с значением по умолчаниюNULL
. Он используется агентами репликации для подключения к издателю.
Внимание
Не используйте пустой пароль. Выбирайте надежные пароли.
[ @working_directory = ] N'working_directory'
Имя рабочего каталога, используемого для хранения файлов данных и схем для публикации. @working_directory — nvarchar(255) и по умолчанию ReplData
используется папка для этого экземпляра SQL Server. Например, C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.1\ReplData
. Имя должно быть задано в формате UNC.
Для База данных SQL Azure используйте \\<storage_account>.file.core.windows.net\<share>
.
[ @trusted = ] N'trusted'
@trusted устарел и предоставляется только для обратной совместимости. @trusted — nvarchar(5) с значением по умолчаниюfalse
. Установка этого параметра на что-либо, но false
приводит к ошибке.
[ @encrypted_password = ] encrypted_password
Установка этого параметра больше не поддерживается. @encrypted_password бит с значением по умолчанию0
. Если задать этот параметр, это приведет к 1
ошибке.
[ @thirdparty_flag = ] thirdparty_flag
Указывает, когда издателем является SQL Server. @thirdparty_flag бит и может быть одним из следующих значений.
значение | Описание |
---|---|
0 (по умолчанию) |
База данных SQL Server. |
1 |
База данных, отличной от SQL Server. |
[ @publisher_type = ] N'publisher_type'
Указывает тип издателя, если издатель не SQL Server. @publisher_type — sysname и может быть одним из следующих значений.
значение | Описание |
---|---|
MSSQLSERVER (по умолчанию) |
Указывает издателя SQL Server. |
ORACLE |
Задает стандартного издателя Oracle. |
ORACLE GATEWAY |
Используется издатель Oracle Gateway. |
Дополнительные сведения о различиях между издателем Oracle и издателем шлюза Oracle см. в разделе "Настройка издателя Oracle".
[ @storage_connection_string = ] N'storage_connection_string'
Требуется для База данных SQL Azure. @storage_connection_string — nvarchar(255) с значением по умолчаниюNULL
. Используйте ключ доступа из портал Azure в разделе "Параметры хранилища>".
Примечание.
Для баз данных издателя и распространителя в База данных SQL Azure требуется Управляемый экземпляр SQL. Дополнительные сведения см. в разделе "Репликация с помощью База данных SQL Azure".
Значения кода возврата
0
(успешно) или 1
(сбой).
Замечания
sp_adddistpublisher
используется репликацией моментальных снимков, репликацией транзакций и репликацией слиянием.
Примеры
-- 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
Разрешения
Могут выполняться sp_adddistpublisher
только члены предопределенных ролей сервера sysadmin.