Просмотр и изменение свойств издателя и распространителя
В данном разделе описывается просмотр и изменение свойств распространителя и издателя в SQL Server 2012 при помощи среды Среда SQL Server Management Studio, Transact-SQL или объектов RMO.
В этом разделе
Перед началом работы выполните следующие действия.
Рекомендации
Безопасность
Для просмотра и изменения свойств распространителя и издателя используется:
Среда SQL Server Management Studio
Transact-SQL
объекты RMO;
Перед началом
Рекомендации
- Для издателей, которые используют версии, предшествующие Microsoft SQL Server 2005, пользователь, являющийся членом предопределенной роли сервера sysadmin, может зарегистрировать подписчиков на странице Подписчики. Начиная с SQL Server 2005 больше нет необходимости в явной регистрации подписчиков для репликации.
Безопасность
По возможности предлагайте пользователям вводить учетные данные безопасности во время выполнения приложения.
[Top]
Использование среды SQL Server Management Studio
Просмотр и изменение свойств распространителя
Подключитесь к распространителю в среде Среда SQL Server Management Studio и разверните узел сервера.
Щелкните правой кнопкой папку Репликация, затем щелкните Свойства распространителя.
Просмотрите и измените свойства в диалоговом окне Свойства распространителя — <распространитель>.
Для просмотра и изменения свойств базы данных распространителя нажмите кнопку с многоточием (...) базы данных на вкладке Общие диалогового окна .
Для просмотра и изменения свойств издателя, связанного с распространителем, нажмите кнопку с многоточием (...) издателя на вкладке Издатели диалогового окна.
Для доступа к профилям агентов репликации нажмите кнопку Значения по умолчанию для профилей на странице Общие диалогового окна. Дополнительные сведения см. в разделе Профили агента репликации.
Для изменения пароля учетной записи, используемой при выполнении административных хранимых процедур на издателе и обновлении данных на распространителе, введите новый пароль в поля Пароль и Подтверждение пароля на странице Издатели диалогового окна. Дополнительные сведения см. в разделе Организация безопасности распространителя.
Измените свойства, если необходимо, и нажмите кнопку ОК.
Просмотр и изменение свойств издателя
Подключитесь к издателю в среде Среда SQL Server Management Studio, а затем разверните узел сервера.
Правой кнопкой мыши щелкните папку Репликация, а затем выберите пункт Свойства издателя.
Просмотрите и измените свойства в диалоговом окне Свойства издателя — <издатель>.
- Пользователь, являющийся членом предопределенной роли сервера sysadmin, может разрешить применение репликации для баз данных, выполнив настройки на странице Базы данных публикации. Разрешение репликации для базы данных не вызывает ее публикации. Вместо этого оно позволяет любому пользователю, принадлежащему к предопределенной роли базы данных db_owner, для этой базы данных создавать в ней одну или несколько публикаций.
Измените свойства, если необходимо, и нажмите кнопку ОК.
[Top]
Использование Transact-SQL
Свойства издателя и распространителя можно просмотреть программно с помощью хранимых процедур репликации.
Просмотр свойств распространителя и базы данных распространителя
Выполните хранимую процедуру sp_helpdistributor, которая возвращает сведения о распространителе, базе данных распространителя и рабочем каталоге.
Выполните хранимую процедуру sp_helpdistributiondb, которая возвращает свойства заданной базы данных распространителя.
Изменение свойств распространителя и базы данных распространителя
Чтобы изменить свойства распространителя, выполните на распространителе хранимую процедуру sp_changedistributor_property.
Чтобы изменить свойства базы данных распространителя, выполните на распространителе хранимую процедуру sp_changedistributiondb.
Чтобы изменить пароль распространителя, выполните на распространителе хранимую процедуру sp_changedistributor_password.
Примечание по безопасности По возможности предлагайте пользователям вводить учетные данные безопасности во время выполнения приложения. Если нужно хранить учетные данные в файле скрипта, для этого файла необходимо обеспечить защиту, чтобы исключить несанкционированный доступ.
Чтобы изменить свойства издателя с помощью распространителя, выполните на распространителе хранимую процедуру sp_changedistpublisher.
Примеры (Transact-SQL)
В следующем примере скрипт Transact-SQL возвращает сведения о распространителе и базе данных распространителя.
-- View information about the Distributor, distribution database,
-- working directory, and SQL Server Agent user account.
USE master
EXEC sp_helpdistributor;
GO
-- View information about the specified distribution database.
USE distribution
EXEC sp_helpdistributiondb;
GO
В этом примере изменяются сроки хранения для распространителя, пароль соединения с распространителем и интервал, с которым распространитель проверяет состояние различных агентов репликации (интервал тактового импульса).
Примечание по безопасности |
---|
По возможности предлагайте пользователям вводить учетные данные безопасности во время выполнения приложения. Если нужно хранить учетные данные в файле скрипта, для этого файла необходимо обеспечить защиту, чтобы исключить несанкционированный доступ. |
-- Change the heartbeat interval at the Distributor to 5 minutes.
USE master
exec sp_changedistributor_property
@property = N'heartbeat_interval',
@value = 5;
GO
DECLARE @distributionDB AS sysname;
SET @distributionDB = N'distribution';
-- Change the history retention period to 24 hours and the
-- maximum retention period to 48 hours.
USE distribution
EXEC sp_changedistributiondb @distributionDB, N'history_retention', 24
EXEC sp_changedistributiondb @distributionDB, N'max_distretention', 48
GO
-- Change the password on the Distributor.
-- To avoid storing the password in the script file, the value is passed
-- into SQLCMD as a scripting variable. 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".
USE master
EXEC sp_changedistributor_password $(Password)
GO
[Top]
При помощи объектов RMO
Просмотр и изменение свойств распространителя
Создайте соединение с распространителем с помощью класса ServerConnection.
Создайте экземпляр класса ReplicationServer. Передайте объект ServerConnection, созданный на шаге 1.
(Необязательно) Проверьте свойство IsDistributor, чтобы убедиться, что подключенный в настоящее время сервер является распространителем.
Чтобы получить свойства с сервера, необходимо вызвать метод Load.
(Необязательно) Чтобы изменить свойства, укажите новое значение для одного или нескольких свойств распространителя, которые могут принимать значение ReplicationServer.
Если свойство CachePropertyChanges объекта ReplicationServer имеет значение true, для фиксирования изменений на сервере необходимо вызвать метод CommitPropertyChanges (необязательно).
Просмотр и изменение свойств базы данных-распространителя
Создайте соединение с распространителем с помощью класса ServerConnection.
Создайте экземпляр класса DistributionDatabase. Укажите свойство Name и передайте объект ServerConnection из шага 1.
Чтобы получить свойства с сервера, необходимо вызвать метод LoadProperties. Если этот метод вернет значение false, значит, на сервере не существует базы данных с указанным именем.
Чтобы изменить свойства, установите новое значение для одного из свойств DistributionDatabase, которое можно установить (необязательно).
Если свойство CachePropertyChanges объекта DistributionDatabase имеет значение true, для фиксирования изменений на сервере необходимо вызвать метод CommitPropertyChanges (необязательно).
Просмотр и изменение свойств издателя
Создайте соединение с издателем с помощью класса ServerConnection.
Создайте экземпляр класса DistributionPublisher. Укажите свойство Name и передайте объект ServerConnection из шага 1.
Чтобы изменить свойства, установите новое значение для одного из свойств DistributionPublisher, которое можно установить (необязательно).
Если свойство CachePropertyChanges объекта DistributionPublisher имеет значение true, для фиксирования изменений на сервере необходимо вызвать метод CommitPropertyChanges (необязательно).
Изменение пароля для административного соединения между издателем и распространителем
Создайте соединение с распространителем с помощью класса ServerConnection.
Создайте экземпляр класса ReplicationServer.
В свойстве ConnectionContext укажите созданное на шаге 1 соединение.
Чтобы получить свойства объекта, вызовите метод Load.
Вызовите метод ChangeDistributorPassword. Передайте новое значение пароля в параметре password.
Примечание по безопасности По возможности предлагайте пользователям вводить учетные данные системы безопасности во время выполнения. Если необходимо хранить учетные данные, используйте службы шифрования, предоставляемые платформой Microsoft Windows .NET Framework.
(Необязательно) Выполните следующие шаги, чтобы изменить пароль на каждом удаленном издателе, использующем данный распространитель.
Создайте соединение с издателем с помощью класса ServerConnection.
Создайте экземпляр класса ReplicationServer.
Укажите в качестве свойства ConnectionContext соединение, созданное в шаге 6a.
Чтобы получить свойства объекта, вызовите метод Load.
Вызовите метод ChangeDistributorPassword. Передайте новое значение пароля из шага 5 в параметре password.
Пример (объекты RMO)
В этом примере показано, как изменить свойства распространителя и базы данных-распространителя.
Примечание по безопасности |
---|
Чтобы учетные данные не хранились в коде, новый пароль для распространителя указывается во время выполнения. |
// Set the Distributor and distribution database names.
string distributionDbName = "distribution";
string distributorName = publisherInstance;
ReplicationServer distributor;
DistributionDatabase distributionDb;
// Create a connection to the Distributor using Windows Authentication.
ServerConnection conn = new ServerConnection(distributorName);
try
{
// Open the connection.
conn.Connect();
distributor = new ReplicationServer(conn);
// Load Distributor properties, if it is installed.
if (distributor.LoadProperties())
{
// Password supplied at runtime.
distributor.ChangeDistributorPassword(password);
distributor.AgentCheckupInterval = 5;
// Save changes to the Distributor properties.
distributor.CommitPropertyChanges();
}
else
{
throw new ApplicationException(
String.Format("{0} is not a Distributor.", publisherInstance));
}
// Create an object for the distribution database
// using the open Distributor connection.
distributionDb = new DistributionDatabase(distributionDbName, conn);
// Change distribution database properties.
if (distributionDb.LoadProperties())
{
// Change maximum retention period to 48 hours and history retention
// period to 24 hours.
distributionDb.MaxDistributionRetention = 48;
distributionDb.HistoryRetention = 24;
// Save changes to the distribution database properties.
distributionDb.CommitPropertyChanges();
}
else
{
// Do something here if the distribution database does not exist.
}
}
catch (Exception ex)
{
// Implement the appropriate error handling here.
throw new ApplicationException("An error occured when changing Distributor " +
" or distribution database properties.", ex);
}
finally
{
conn.Disconnect();
}
' Set the Distributor and distribution database names.
Dim distributionDbName As String = "distribution"
Dim distributorName As String = publisherInstance
Dim distributor As ReplicationServer
Dim distributionDb As DistributionDatabase
' Create a connection to the Distributor using Windows Authentication.
Dim conn As ServerConnection = New ServerConnection(distributorName)
Try
' Open the connection.
conn.Connect()
distributor = New ReplicationServer(conn)
' Load Distributor properties, if it is installed.
If distributor.LoadProperties() Then
' Password supplied at runtime.
distributor.ChangeDistributorPassword(password)
distributor.AgentCheckupInterval = 5
' Save changes to the Distributor properties.
distributor.CommitPropertyChanges()
Else
Throw New ApplicationException( _
String.Format("{0} is not a Distributor.", publisherInstance))
End If
' Create an object for the distribution database
' using the open Distributor connection.
distributionDb = New DistributionDatabase(distributionDbName, conn)
' Change distribution database properties.
If distributionDb.LoadProperties() Then
' Change maximum retention period to 48 hours and history retention
' period to 24 hours.
distributionDb.MaxDistributionRetention = 48
distributionDb.HistoryRetention = 24
' Save changes to the distribution database properties.
distributionDb.CommitPropertyChanges()
Else
' Do something here if the distribution database does not exist.
End If
Catch ex As Exception
' Implement the appropriate error handling here.
Throw New ApplicationException("An error occured when changing Distributor " + _
" or distribution database properties.", ex)
Finally
conn.Disconnect()
End Try
[Top]
См. также
Задания
Просмотр сведений и выполнение задач на издателе (монитор репликации)
Основные понятия
Отключение публикации и распространения