Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается, как просматривать и изменять свойства статьи в SQL Server 2014 с помощью SQL Server Management Studio, Transact-SQL или объектов управления репликацией (RMO).
В этом разделе
Перед началом:
Чтобы просмотреть и изменить свойства статьи, используйте следующее:
Перед началом работы
Ограничения и условия
- Некоторые свойства нельзя изменить после создания публикации, а другие не могут быть изменены, если есть подписки на публикацию. Свойства, которые нельзя изменить, отображаются как доступные только для чтения.
Рекомендации
- После создания публикации некоторые изменения свойств требуют создания нового моментального снимка. Если у публикации есть подписки, некоторые изменения также требуют повторной инициализации всех подписок. Дополнительные сведения см. в статьях Изменение свойств публикации и статьи и Добавление и удаление статей в существующих публикациях.
Использование среды SQL Server Management Studio
Просмотр и изменение свойств статьи в диалоговом окне "Свойства публикации — <публикация> ", которое доступно в Microsoft SQL Server Management Studio и мониторе репликации. Сведения о запуске монитора репликации см. в разделе "Запуск монитора репликации".
Страница "Общие " содержит имя публикации и описание, имя базы данных, тип публикации и параметры срока действия подписки.
Страница "Статьи " соответствует странице "Статьи " в мастере создания публикаций. Эта страница используется для добавления и удаления статей, а также для изменения свойств и фильтрации столбцов для статей.
Страница " Строки фильтра" соответствует странице "Строки таблицы фильтра " в мастере создания публикации. Эта страница используется для добавления, редактирования и удаления статических фильтров строк для всех типов публикаций, а также для добавления, редактирования и удаления параметризованных фильтров строк и фильтров соединений для публикаций типа объединения.
Страница моментального снимка позволяет указать формат и расположение моментального снимка, следует ли сжать моментальный снимок, а также скрипты для запуска до и после применения моментального снимка.
Страница моментальных снимков FTP (для публикаций моментальных снимков и транзакционных публикаций, а также публикаций слияния для издателей, использующих версии SQL Server до 2005 года) позволяет указать, могут ли подписчики скачивать файлы моментальных снимков с помощью протокола FTP.
Страница FTP-обзор и Интернет (для слияния публикаций от издателей, использующих SQL Server 2005 или более поздние версии) позволяет определить, могут ли подписчики загружать файлы обзора через FTP и синхронизировать подписки через HTTPS.
Страница "Параметры подписки" позволяет задать ряд параметров, которые применяются ко всем подпискам. Параметры различаются в зависимости от типа публикации.
Страница списка доступа к публикации позволяет указать, какие имена входа и группы могут получить доступ к публикации.
На странице "Безопасность агента" можно получить доступ к параметрам учетных записей, под которыми работают следующие агенты, и подключаться к компьютерам в топологии репликации: агент моментальных снимков для всех публикаций; агент чтения журналов для всех транзакционных публикаций; и агент чтения очередей для транзакционных публикаций, которые поддерживают обновление подписок через очередь.
Страница Data Partitions (для публикаций слиянием от издателей, использующих SQL Server 2005 или более позднюю версию) позволяет указать, могут ли подписчики публикаций с параметризованными фильтрами запрашивать снимок, если он отсутствует. Кроме того, он позволяет создавать моментальные снимки для одного или нескольких разделов (один раз или по повторяющемуся расписанию).
Просмотр и изменение свойств статьи
На странице "Статьи" диалогового окна "Свойства публикации — публикация>" < выберите статью, а затем щелкните "Свойства статьи".
Выберите, к каким статьям следует применить изменения свойств:
Нажмите «Задать свойства выделенного <объекта типа Статья»>, чтобы запустить диалоговое окно «Свойства статьи - <Имя >объекта»; изменения свойств, внесенные в этом диалоговом окне, применяются только к объекту, выделенному в панели объектов на странице «Статьи».
Нажмите кнопку "Задать свойства всех <статей objectType", чтобы запустить диалоговое окно "Свойства для всех статей objectType><"; изменения свойств, внесенные в этом диалоговом окне, применяются ко всем объектам этого типа на странице "Статьи", включая те, которые еще не выбраны для публикации.>
Замечание
Изменения свойств, внесенные в диалоговое окно "Свойства для всех <статей ObjectType> " , переопределяют все внесенные ранее в диалоговом окне "Свойства статьи — <имя объекта> ". Например, если вы хотите задать ряд значений по умолчанию для всех статей типа объекта, но также хотите задать некоторые свойства для отдельных объектов, задайте значения по умолчанию для всех статей. Затем задайте свойства для отдельных объектов.
Измените свойства, если необходимо, и нажмите кнопку ОК.
Нажмите кнопку "ОК " в диалоговом окне "Свойства публикации — <публикация> ".
Использование Transact-SQL
Статьи можно изменять и возврат их свойств можно выполнять программно с помощью хранимых процедур репликации. Хранимые процедуры, которые вы используете, зависят от типа публикации, к которой принадлежит статья.
Чтобы просмотреть свойства статьи, относящейся к моментальному снимку или транзакционной публикации
Выполните sp_helparticle, указав имя публикации для параметра @publication и имя статьи для параметра @article . Если вы не указываете @article, данные будут возвращены для всех статей в публикации.
Выполните sp_helparticlecolumns для таблиц статей, чтобы перечислить все столбцы, имеющиеся в базовой таблице.
Чтобы изменить свойства статьи, принадлежащей моментальной или транзакционной публикации
Выполните sp_changearticle, указав свойство статьи, измененное в параметре @property , и новое значение этого свойства в параметре @value .
Замечание
Если для изменения требуется создание нового моментального снимка, необходимо также указать значение 1 для @force_invalidate_snapshot, а если изменение требует повторной инициализации подписчиков, необходимо также указать значение 1 для @force_reinit_subscription. Дополнительную информацию о свойствах, которые при изменении требуют нового моментального снимка или повторной инициализации, см. в разделе «Изменение свойств публикации и статьи».
Чтобы просмотреть свойства статьи, принадлежащей объединенной публикации
Выполните sp_helpmergearticle, указав имя публикации для параметра @publication и имя статьи для параметра @article . Если эти параметры не указаны, данные будут возвращены для всех статей в публикации или издателе.
Выполните sp_helpmergearticlecolumn для табличных статей, чтобы перечислить все столбцы, доступные в базовой таблице.
Изменить свойства статьи, принадлежащей публикации слияния
Выполните sp_changemergearticle, указав свойство статьи, измененное в параметре @property , и новое значение этого свойства в параметре @value .
Замечание
Если для изменения требуется создание нового моментального снимка, необходимо также указать значение 1 для @force_invalidate_snapshot, а если изменение требует повторной инициализации подписчиков, необходимо также указать значение 1 для @force_reinit_subscription. Дополнительную информацию о свойствах, которые при изменении требуют нового моментального снимка или повторной инициализации, см. в разделе «Изменение свойств публикации и статьи».
Пример (Transact-SQL)
Этот пример репликации транзакций возвращает свойства опубликованной статьи.
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksProductTran';
USE [AdventureWorks2012]
EXEC sp_helparticle
@publication = @publication;
GO
Этот пример репликации транзакций изменяет параметры схемы для опубликованной статьи.
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @option AS int;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
SET @option = (SELECT CAST(0x0000000002030073 AS int));
-- Change the schema options to replicate schema with XML.
USE [AdventureWorks2012]
EXEC sp_changearticle
@publication = @publication,
@article = @article,
@property = N'schema_option',
@value = @option,
@force_invalidate_snapshot = 1;
GO
В этом примере репликации методом слияния возвращаются свойства опубликованной статьи.
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
USE [AdventureWorks2012]
EXEC sp_helpmergearticle
@publication = @publication;
GO
Этот пример использования репликации слиянием изменяет параметры обнаружения конфликтов для опубликованной статьи.
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @article = N'SalesOrderHeader';
-- Enable column-level conflict tracking.
-- Changing this property requires that existing subscriptions
-- be reinitialized and that a new snapshot be generated.
USE [AdventureWorks2012]
EXEC sp_changemergearticle
@publication = @publication,
@article = @article,
@property = N'column_tracking',
@value = N'true',
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
GO
Использование объектов управления репликацией (RMO)
Статьи можно изменить и получить доступ к их свойствам программным способом с помощью объектов управления репликацией (RMO). Классы RMO, используемые для просмотра или изменения свойств статьи, зависят от типа публикации, к которой принадлежит статья.
Просмотреть или изменить свойства статьи, принадлежащей моментальному снимку или транзакционной публикации
Создайте соединение с издателем с помощью класса ServerConnection .
Создайте экземпляр класса TransArticle.
Установите свойства Name, PublicationNameи DatabaseName .
Установите соединение из шага 1 для свойства ConnectionContext.
Чтобы получить свойства объекта, вызовите метод LoadProperties . Если этот метод возвращается
false
, свойства статьи на шаге 3 были определены неправильно или статья не существует.Чтобы изменить свойства, установите новое значение для одного из свойств TransArticle , которое можно установить (необязательно).
(Необязательно) Если вы указали значение
true
для CachePropertyChanges, вызовите CommitPropertyChanges метод для фиксации изменений на сервере. Если вы указали значениеfalse
( CachePropertyChanges по умолчанию), изменения отправляются на сервер немедленно.
Чтобы посмотреть или изменить свойства элемента статьи, принадлежащей публикации слияния
Создайте соединение с издателем с помощью класса ServerConnection .
Создайте экземпляр класса MergeArticle.
Установите свойства Name, PublicationNameи DatabaseName .
Установите соединение из шага 1 для свойства ConnectionContext.
Чтобы получить свойства объекта, вызовите метод LoadProperties . Если этот метод возвращается
false
, свойства статьи на шаге 3 были определены неправильно или статья не существует.Чтобы изменить свойства, установите новое значение для одного из свойств MergeArticle , которое можно установить (необязательно).
(Необязательно) Если вы указали значение
true
для CachePropertyChanges, вызовите CommitPropertyChanges метод для фиксации изменений на сервере. Если вы указали значениеfalse
( CachePropertyChanges по умолчанию), изменения отправляются на сервер немедленно.
Пример (объекты RMO)
Этот пример изменяет статью слияния, чтобы указать обработчик бизнес-логики, используемый в этой статье.
// Define the Publisher, publication, and article names.
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2012";
string articleName = "SalesOrderHeader";
// Set the friendly name of the business logic handler.
string customLogic = "OrderEntryLogic";
MergeArticle article = new MergeArticle();
// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);
try
{
// Connect to the Publisher.
conn.Connect();
// Set the required properties for the article.
article.ConnectionContext = conn;
article.Name = articleName;
article.DatabaseName = publicationDbName;
article.PublicationName = publicationName;
// Load the article properties.
if (article.LoadProperties())
{
article.ArticleResolver = customLogic;
}
else
{
// Throw an exception of the article does not exist.
throw new ApplicationException(String.Format(
"{0} is not published in {1}", articleName, publicationName));
}
}
catch (Exception ex)
{
// Do error handling here and rollback the transaction.
throw new ApplicationException(String.Format(
"The business logic handler {0} could not be associated with " +
" the {1} article.",customLogic,articleName), ex);
}
finally
{
conn.Disconnect();
}
' Define the Publisher, publication, and article names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2012"
Dim articleName As String = "SalesOrderHeader"
' Set the friendly name of the business logic handler.
Dim customLogic As String = "OrderEntryLogic"
Dim article As MergeArticle = New MergeArticle()
' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)
Try
' Connect to the Publisher.
conn.Connect()
' Set the required properties for the article.
article.ConnectionContext = conn
article.Name = articleName
article.DatabaseName = publicationDbName
article.PublicationName = publicationName
' Load the article properties.
If article.LoadProperties() Then
article.ArticleResolver = customLogic
Else
' Throw an exception of the article does not exist.
Throw New ApplicationException(String.Format( _
"{0} is not published in {1}", articleName, publicationName))
End If
Catch ex As Exception
' Do error handling here and rollback the transaction.
Throw New ApplicationException(String.Format( _
"The business logic handler {0} could not be associated with " + _
" the {1} article.", customLogic, articleName), ex)
Finally
conn.Disconnect()
End Try
См. также
Реализация обработчика бизнес-логики для объединяющей статьи
Публикация объектов данных и баз данных
Изменение свойств публикации и статьи
Основные понятия хранимых процедур системы репликации
Расширенное обнаружение и разрешение конфликтов при слиянии репликаций