sp_adddistributor (Transact-SQL)
Область применения: SQL Server Управляемый экземпляр SQL Azure
Создает запись в таблице sys.servers (если нет одного), помечает запись сервера как распространитель и сохраняет сведения о свойствах. Эта хранимая процедура выполняется на распространителю в master
базе данных, чтобы зарегистрировать и пометить сервер как распространитель. В случае удаленного распространителя он также выполняется на издателе из master
базы данных для регистрации удаленного распространителя.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_adddistributor
[ @distributor = ] N'distributor'
[ , [ @heartbeat_interval = ] heartbeat_interval ]
[ , [ @password = ] N'password' ]
[ , [ @from_scripting = ] from_scripting ]
[ ; ]
Аргументы
[ @distributor = ] N'distributor'
Имя сервера распространителя. @distributor — sysname без значения по умолчанию. Этот аргумент используется только при настройке удаленного распространителя. Он добавляет записи для свойств распространителя в msdb..MSdistributor
таблице.
Примечание.
Имя сервера можно указать как <Hostname>,<PortNumber>
для экземпляра по умолчанию или <Hostname>\<InstanceName>,<PortNumber>
для именованного экземпляра. Укажите номер порта для подключения при развертывании SQL Server в Linux или Windows с пользовательским портом, а служба браузера отключена. Использование пользовательских номеров портов для удаленного распространителя применяется к SQL Server 2019 (15.x) и более поздним версиям.
[ @heartbeat_interval = ] heartbeat_interval
Максимальное количество минут, в течение которых агент может выполняться без ведения журнала сообщений о процессе работы. @heartbeat_interval имеет значение int с значением 10
по умолчанию. Для проверки состояния запущенных агентов репликации создается задание агента SQL Server, выполняемое с заданным интервалом.
[ @password = ] N'password'
Пароль для входа distributor_admin . @password — sysname с значением по умолчаниюNULL
. Если пароль имеет NULL
или пустую строку, @password сбрасывается на случайное значение. Пароль должен быть настроен при добавлении первого удаленного распространителя. distributor_admin входа и @password хранятся для записи связанного сервера, используемой для подключения RPC распространителя, включая локальные подключения. Если распространитель является локальным, пароль для distributor_admin имеет новое значение. Для издателей с удаленным распространителем необходимо указать одинаковое значение для @password при выполнении sp_adddistributor
на издателе и распространитее. sp_changedistributor_password можно использовать для изменения пароля распространителя.
Внимание
По возможности предлагайте пользователям вводить учетные данные системы безопасности во время выполнения приложения. В случае необходимости хранения учетных данных в файле скрипта этот файл следует защищать во избежание несанкционированного доступа.
[ @from_scripting = ] from_scripting
@from_scripting бит с значением по умолчанию0
. Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
Значения кода возврата
0
(успешно) или 1
(сбой).
Замечания
sp_adddistributor
используется в репликации моментальных снимков, репликации транзакций и репликации слиянием.
Примеры
-- 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_adddistributor
только члены предопределенных ролей сервера sysadmin.