Поделиться через


sp_adddistributor (Transact-SQL)

Создает запись в таблице sys.sysservers (если записи нет), отмечает сервер как распространитель и сохраняет данные о свойствах. Данная хранимая процедура выполняется на распространителе в базе данных master, чтобы зарегистрировать и пометить сервер как распространитель. В случае с удаленным распространителем хранимая процедура выполняется также и на издателе от базы данных master, чтобы зарегистрировать удаленный распространитель.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

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

Аргументы

  • [ @distributor =] 'distributor'
    Имя сервера распространителя. Аргумент distributor имеет тип sysname и не имеет значения по умолчанию. Этот аргумент используется только при настройке удаленного распространителя. Он добавляет записи к свойствам распространителя в таблице msdb.MSdistributor.

  • [ @heartbeat_interval=] heartbeat_interval
    Максимальное время (в минутах), в течение которого агент может быть запущен без журналирования сообщения о процессе выполнения задания. Аргумент heartbeat_interval имеет тип int, значение по умолчанию равно 10 минутам. Для проверки состояния запущенных агентов репликации создается задание агента SQL Server, выполняемое с заданным интервалом.

  • [ @password=] 'password']
    Пароль для имени входа distributor_admin. Аргумент password имеет тип sysname, по умолчанию имеет значение NULL. Если аргумент имеет значение NULL или для него используется пустая строка, то для пароля выбирается случайное значение. Пароль должен быть настроен в момент добавления первого удаленного распространителя. Имя входа distributor_admin и пароль password хранятся для записи связанного сервера, используемого для RPC-подключения к распространителю distributor, в том числе с использованием локальных подключений. Если распространитель distributor является локальным, то пароль для учетной записи distributor_admin получает новое значение. Для издателей с удаленным распространителем при выполнении хранимой процедуры sp_adddistributor должно быть указано то же самое значение пароля password как для издателя, так и для распространителя. Для изменения пароля распространителя может быть использована хранимая процедура sp_changedistributor_password.

    Примечание по безопасностиПримечание по безопасности

    По возможности предлагайте пользователям вводить учетные данные системы безопасности во время выполнения приложения. В случае необходимости хранения учетных данных в файле сценария этот файл следует защищать во избежание несанкционированного доступа.

  • [ @from_scripting= ] from_scripting
    Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

Значения кодов возврата

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'AdventureWorks2008R2'; 

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

Разрешения

Только члены предопределенной роли сервера sysadmin могут выполнять хранимую процедуру sp_adddistributor.