Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server Управляемый экземпляр SQL Azure
В этой статье описывается, как создать и применить первоначальный снимок в SQL Server с помощью SQL Server Management Studio, Transact-SQL или Replication Management Objects (RMO). Публикации слиянием, использующие параметризованные фильтры, требуют моментальных снимков, состоящих из двух частей. Дополнительные сведения см. в статье Создание моментального снимка для публикации типа слияния с параметризованными фильтрами.
После создания публикации агент моментальных снимков создает моментальные снимки. Вы можете генерировать снимки:
- Немедленно. По умолчанию Мастер новых публикаций сразу после создания публикации генерирует снимок публикации слияния.
- По расписанию. Укажите расписание на странице Агент моментальных снимков мастера создания новой публикации или при использовании хранимых процедур либо объектов управления репликацией (RMO).
- Вручную. Запустите агент моментальных снимков из командной строки или из SQL Server Management Studio. Дополнительные сведения о выполнении агентов см. в разделе "Основные понятия агента репликации" и "Запуск и остановка агента репликации" (SQL Server Management Studio).
Для репликации слияния агент моментальных снимков генерирует снимок каждый раз при запуске. Для транзакционной репликации генерация снимков зависит от настройки свойства публикации immediate_sync. Если свойство установлено в TRUE (по умолчанию при использовании мастера новой публикации), агент моментальных снимков генерирует снимок каждый раз при запуске и может применить снимок к подписчику в любой момент. Если свойство установлено в FALSE (по умолчанию при использовании sp_addpublication), агент моментальных снимков генерирует снимок только если с момента последнего агент моментальных снимков добавлена новая подписка; Подписчикам необходимо дождаться завершения агент моментальных снимков, прежде чем синхронизироваться.
По умолчанию агент моментальных снимков сохраняет сгенерированные снимки в папке snapshot, расположенной на Distributor. Вы также можете сохранять файлы снимков на съемных носителях, таких как съёмные диски, CD-ROM, или в местах, отличных от папки с изображением по умолчанию. Вы также можете сжать файлы, чтобы облегчить их хранение и перенос, а также запускать скрипты до или после того, как агент моментальных снимков применит снимок у подписчика. Дополнительные сведения об этих параметрах см. в разделе Snapshot Options.
Если снимок предназначен для публикации слияния с использованием параметризованных фильтров, агент моментальных снимков создаёт снимок с помощью двухчастного процесса. Во-первых, он создаёт снимок схемы, содержащий скрипты репликации и схему опубликованных объектов, но не данные. Каждая подписка затем инициализируется с помощью снимка, включающего скрипты и схему, скопированные из снимка схемы, а также данные, входящие в раздел подписки. Дополнительные сведения см. в статье Snapshots for Merge Publications with Parameterized Filters.
После того как агент моментальных снимков создаёт снимок у Publisher и хранит его в стандартном или альтернативном месте снимка, вы можете передать снимок подписчику и применить его. Агент агент распространения (для моментального снимка или транзакционной репликации) либо агент агент слияния (для репликации слиянием) передаёт моментальный снимок и применяет схему и файлы данных к базе данных подписки на подписчике при начальной синхронизации. По умолчанию начальная синхронизация происходит сразу после создания подписки, если вы используете мастер новой подписки. Опция «Инициализация когда » на странице «Инициализация подписок » мастера управляет этим поведением. Когда агент моментальных снимков создает моментальные снимки после того, как подписка инициализирована, он не применяет их к Подписчику, если только вы не пометите подписку как требующую повторной инициализации. Дополнительные сведения см. в статье Повторная инициализация подписок.
После того, как агент распространителя или агент слияния применяет исходный моментальный снимок, агент распространяет последующие обновления и другие изменения данных. Когда снимки распространяются и применяются к подписчикам, затрагиваются только те подписчики, которые ожидают начальные или новые снимки. Другие подписчики этой публикации (те, кто уже получает вставки, обновления, удаления или другие изменения опубликованных данных) не подвергаются этому влиянию.
Чтобы просмотреть или изменить расположение папки снимков по умолчанию, см.
SQL Server Management Studio: Изменить параметры снимка
Программирование репликации и программирование RMO: Настройка публикации и распространения
Расположение снимков по умолчанию
Задайте местоположение моментальных снимков по умолчанию на странице Папка моментальных снимков мастера настройки распространителя. Дополнительные сведения об использовании этого мастера см. в статье Настройка публикации и распространения. При создании публикации на сервере, не настроенном в качестве распространителя, задайте местоположение моментальных снимков по умолчанию на странице Папка моментальных снимков мастера создания публикаций. Дополнительные сведения об использовании мастера см. в статье Создание публикации.
Измените расположение снимков по умолчанию на странице > диалогового окна Свойства распространителя — распространитель. Дополнительные сведения см. в статье Просмотр и изменение свойств издателя и распространителя. Задайте папку снимков для каждой публикации в диалоговом окне «Свойства публикации — <Публикация>». Дополнительные сведения см. в статье View and Modify Publication Properties.
Изменение местоположения моментальных снимков по умолчанию
На странице Издатели диалогового окна Свойства распространителя — <Distributor> нажмите кнопку свойств (...) для издателя, для которого нужно изменить расположение моментального снимка по умолчанию.
В диалоговом окне Свойства издателя — >Издатель введите значение для свойства Папка моментальных снимков по умолчанию.
Примечание.
агент моментальных снимков требует разрешения на запись для указанного вами каталога, а агент распространения или агент слияния — права на чтение. Если вы используете pull-подписки, необходимо указать общий каталог как путь универсальной конвенции именования (UNC), например, \\computername\snapshot. Дополнительные сведения см. в статье Организация безопасности папки моментальных снимков.
Нажмите ОК.
Создать моментальный снимок
По умолчанию, если работает агент SQL Server, агент моментальных снимков генерирует снимок сразу после создания публикации с помощью мастера новой публикации. По умолчанию агент распространения (для снимков и транзакционной репликации) или агент слияния (для подписок на слияние) затем применяет снимок ко всем подпискам. Вы также можете сгенерировать снимок, используя SQL Server Management Studio и Replication Monitor. Сведения о том, как запустить монитор репликации, см. в разделе Запуск монитора репликации.
Использование среды SQL Server Management Studio
- Подключитесь к издателю в Management Studio и разверните узел сервера.
- Раскройте папку Репликация , а затем папку Локальные публикации .
- Кликните правой кнопкой мыши по публикации, для которой хотите создать снимок, и выберите View агент моментальных снимков Status.
- В диалоговом окне View агент моментальных снимков Status - <Публикация> выберите Start.
Когда агент моментальных снимков завершает генерацию снимка, он отображает сообщение, например: «[100%] Сгенерирован снимок 17 статей().»
В мониторе репликации
- В мониторе репликации раскройте группу издателей на левой панели, а затем раскройте нужного издателя.
- Кликните правой кнопкой мыши по публикации, для которой хотите сгенерировать снимок, и выберите Generate Snapshot.
- Чтобы просмотреть статус агент моментальных снимков, выберите вкладку Agents. Для получения более подробной информации кликните правой кнопкой мыши по агент моментальных снимков в сетке, а затем выберите View Details.
Использование Transact-SQL
Вы можете создавать начальные снимки программно, создавая и запуская задание агент моментальных снимков или запуская исполняемый файл агент моментальных снимков из пакетного файла. После создания начального моментального снимка он передается подписчику и применяется при первой синхронизации подписки. Если вы запускаете агент моментальных снимков из командной строки или пакетного файла, вам нужно заново запускать агент, когда существующий снимок становится недействительным.
Внимание
По возможности предлагайте пользователям вводить учетные данные системы безопасности во время выполнения приложения. Если нужно хранить учетные данные в файле скрипта, для этого файла необходимо обеспечить защиту, чтобы исключить несанкционированный доступ.
Создайте публикацию моментального снимка, публикацию транзакций или публикацию слияния. Дополнительные сведения см. в разделе Create a Publication.
Выполнить sp_addpublication_snapshot (Transact-SQL). Укажите параметр @publication и следующие параметры.
@job_login — указывает учетные данные для проверки подлинности Windows, под которыми запускается агент моментальных снимков на распространителе.
@job_password— является паролем для указанных учетных данных Windows.
(Необязательно) Значение 0 для@publisher_security_mode, если агент использует SQL Server Аутентификацию при подключении к Publisher. В этом случае в параметрах @publisher_login и @publisher_passwordнужно также указать данные имени входа для проверки подлинности SQL Server.
(Необязательно) Расписание синхронизации для задания агента моментальных снимков. Дополнительные сведения см. в статье Specify Synchronization Schedules.
Внимание
Когда вы настраиваете Publisher с помощью удалённого дистрибьютора, значения, которые вы предоставляете для всех параметров, включая job_login и job_password, отправляются дистрибьютору в виде простого текста. Зашифруйте соединение между Publisher и его удалёным дистрибьютором перед выполнением этой сохранённой процедуры. Дополнительные сведения см. в статье Включение шифрования соединений в компоненте ядро СУБД (диспетчер конфигурации SQL Server).
Добавьте статьи к публикации. Дополнительные сведения см. в статье определить статью.
На издателе в базе данных публикаций выполните sp_startpublication_snapshot (Transact-SQL), указав значение @publication из шага 1.
Применить снимок
Использование среды SQL Server Management Studio
После создания снимка синхронизируйте подписку с агент распространения или агент слияния, чтобы применить её:
Если агент работает непрерывно (по умолчанию для транзакционной репликации), он автоматически применяет снимок после его генерации.
Если агент работает по расписанию, он применяет снимок при следующем запуске.
Если агент работает по запросу, он применяет снимок при следующем запуске.
Дополнительные сведения о синхронизации подписок см. в разделах Synchronize a Push Subscription и Synchronize a Pull Subscription.
Использование Transact-SQL
Создайте публикацию моментального снимка, публикацию транзакций или публикацию слияния. Дополнительные сведения см. в разделе Create a Publication.
Добавьте статьи к публикации. Дополнительные сведения см. в статье определить статью.
Из командной строки или из пакетного файла запустите агент моментальных снимков репликации, выполнив snapshot.exe и указав следующие аргументы командной строки:
- -Публикация
- -Publisher
- -Дистрибьютор
- -PublisherDB
- -ReplicationType
Если вы используете аутентификацию SQL Server, также укажите следующие аргументы:
- -DistributorLogin
- -DistributorPassword
- -РежимБезопасностиРаспространителя = 0
- -PublisherLogin
- -PublisherPassword
- -Режим безопасности издателя = 0
Примеры (Transact-SQL)
В этом примере показано, как создавать публикации транзакций и добавлять задания агента моментальных снимков к новым публикациям (с помощью переменных скрипта sqlcmd ). Этот пример также запускает задание.
-- To avoid storing the login and password in the script file, the values
-- are passed into SQLCMD as scripting variables. 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".
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks2022'; --publication database
SET @publication = N'AdvWorksCustomerTran'; -- transactional publication name
SET @login = $(Login);
SET @password = $(Password);
USE [AdventureWorks]
-- Enable transactional and snapshot replication on the publication database.
EXEC sp_replicationdboption
@dbname = @publicationDB,
@optname = N'publish',
@value = N'true';
-- Execute sp_addlogreader_agent to create the agent job.
EXEC sp_addlogreader_agent
@job_login = @login,
@job_password = @password,
-- Explicitly specify the security mode used when connecting to the Publisher.
@publisher_security_mode = 1;
-- Create new transactional publication, using the defaults.
USE [AdventureWorks2022]
EXEC sp_addpublication
@publication = @publication,
@description = N'transactional publication';
-- Create a new snapshot job for the publication, using the defaults.
EXEC sp_addpublication_snapshot
@publication = @publication,
@job_login = @login,
@job_password = @password;
-- Start the Snapshot Agent job.
EXEC sp_startpublication_snapshot @publication = @publication;
GO
В этом примере создается публикация слияния и добавляется задание агента snapshot (с помощью переменных sqlcmd) для этой публикации. Этот пример также запускает задание.
-- To avoid storing the login and 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".
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks2022';
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @login = $(Login);
SET @password = $(Password);
-- Enable merge replication on the publication database.
USE master
EXEC sp_replicationdboption
@dbname = @publicationDB,
@optname=N'merge publish',
@value = N'true';
-- Create new merge publication, using the defaults.
USE [AdventureWorks]
EXEC sp_addmergepublication
@publication = @publication,
@description = N'Merge publication.';
-- Create a new snapshot job for the publication, using the defaults.
EXEC sp_addpublication_snapshot
@publication = @publication,
@job_login = @login,
@job_password = @password;
-- Start the Snapshot Agent job.
EXEC sp_startpublication_snapshot @publication = @publication;
GO
Следующие аргументы командной строки используются для запуска агент моментальных снимков с целью создания снимка для публикации слияния.
Примечание.
Были добавлены разрывы строк для улучшения читаемости. В пакетном файле нужно создавать команды в одной строке.
REM -- Declare variables
SET Publisher=%InstanceName%
SET PublicationDB=AdventureWorks2022
SET Publication=AdvWorksSalesOrdersMerge
REM --Start the Snapshot Agent to generate the snapshot for AdvWorksSalesOrdersMerge.
"C:\Program Files\Microsoft SQL Server\120\COM\SNAPSHOT.EXE" -Publication %Publication%
-Publisher %Publisher% -Distributor %Publisher% -PublisherDB %PublicationDB%
-ReplicationType 2 -OutputVerboseLevel 1 -DistributorSecurityMode 1
Использование объектов управления репликацией (RMO)
агент моментальных снимков генерирует снимки после создания публикации. Вы можете программно генерировать эти снимки с помощью объектов управления репликацией (RMO) и прямого управляемого кода к функциям репликационных агентов. Какие именно объекты при этом применяются, зависит от типа репликации. Вы можете запускать агент моментальных снимков синхронно, используя объектSnapshotGenerationAgent, или асинхронно с помощью задачи агента. После создания первоначального снимка агент моментальных снимков передаёт его абоненту и применяет при первой синхронизации подписки. Вам нужно перезапускать агент всякий раз, когда существующий снимок больше не содержит достоверных и актуальных данных. Дополнительные сведения см. в статье Обслуживание публикаций.
Внимание
По возможности предлагайте пользователям вводить учетные данные системы безопасности во время выполнения приложения. Если необходимо хранить учетные данные, используйте криптографические службы, предоставляемые Microsoft Windows .NET Framework.
Чтобы создать начальный моментальный снимок для публикации моментальных снимков или транзакционной публикации, запустив задание агента моментальных снимков (асинхронно)
Создайте соединение с издателем с помощью класса ServerConnection .
Создайте экземпляр класса TransPublication. Задайте свойства Name и DatabaseName для публикации, а затем установите для свойства ConnectionContext значение «соединение», созданное на шаге 1.
Вызовите метод LoadProperties , чтобы загрузить оставшиеся свойства объекта. Если этот метод даёт false, либо свойства публикации на шаге 2 определены неправильно, либо публикация не существует.
Если значение SnapshotAgentExists равно false, вызовите CreateSnapshotAgent, чтобы создать задание агента моментального снимка для этой публикации.
Вызовите метод StartSnapshotGenerationAgentJob, чтобы запустить задание агента, которое формирует моментальный снимок для данной публикации.
(Необязательно) Если значение SnapshotAvailable равно true, моментальный снимок доступен подписчикам.
Создать начальный моментальный снимок для публикации моментальных снимков или транзакционной публикации путем запуска агента моментальных снимков (синхронно)
Создайте экземпляр класса SnapshotGenerationAgent и укажите следующие необходимые свойства.
Publisher — имя издателя.
PublisherDatabase — имя базы данных публикации.
Publication — имя публикации.
Distributor — имя распространителя.
PublisherSecurityMode — значение Integrated для использования проверки подлинности Windows при подключении к Издателю или значение Standard и значения PublisherLogin и PublisherPassword для использования проверки подлинности SQL Server при подключении к Издателю. Рекомендуется использовать проверку подлинности Windows.
DistributorSecurityMode — значение Integrated для использования проверки подлинности Windows при подключении к распространителю или значение Standard и значения для DistributorLogin и DistributorPassword для использования проверки подлинности SQL Server при подключении к распространителю. Рекомендуется использовать проверку подлинности Windows.
Укажите значение Transactional или Snapshot в параметре ReplicationType.
Вызовите метод GenerateSnapshot .
Создать исходный моментальный снимок для публикации слиянием, запустив задание агента моментальных снимков (асинхронно)
Создайте соединение с издателем с помощью класса ServerConnection .
Создайте экземпляр класса MergePublication. Задайте свойства Name и DatabaseName для публикации, а затем установите для свойства ConnectionContext значение «соединение», созданное на шаге 1.
Вызовите метод LoadProperties , чтобы загрузить оставшиеся свойства объекта. Если этот метод даёт false, либо свойства публикации на шаге 2 определены неправильно, либо публикация не существует.
Если значение SnapshotAgentExists равно false, вызовите CreateSnapshotAgent, чтобы создать задание агента моментального снимка для этой публикации.
Вызовите метод StartSnapshotGenerationAgentJob, чтобы запустить задание агента, которое формирует моментальный снимок для данной публикации.
(Необязательно) Если значение SnapshotAvailable равно true, моментальный снимок доступен подписчикам.
Чтобы создать исходный моментальный снимок для публикации слияния, запустите агент моментальных снимков (синхронно)
Создайте экземпляр класса SnapshotGenerationAgent и укажите следующие необходимые свойства.
Publisher — имя издателя.
PublisherDatabase — имя базы данных публикации.
Publication — имя публикации.
Distributor — имя распространителя.
PublisherSecurityMode — значение Integrated для использования проверки подлинности Windows при подключении к Издателю или значение Standard и значения PublisherLogin и PublisherPassword для использования проверки подлинности SQL Server при подключении к Издателю. Рекомендуется использовать проверку подлинности Windows.
DistributorSecurityMode — значение Integrated для использования проверки подлинности Windows при подключении к распространителю или значение Standard и значения для DistributorLogin и DistributorPassword для использования проверки подлинности SQL Server при подключении к распространителю. Рекомендуется использовать проверку подлинности Windows.
Укажите значение Merge в параметре ReplicationType.
Вызовите метод GenerateSnapshot .
Примеры (RMO)
В этом примере агент агент моментальных снимков запускается синхронно для создания начального моментального снимка для публикации транзакций.
// Set the Publisher, publication database, and publication names.
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks2022";
string publisherName = publisherInstance;
string distributorName = publisherInstance;
SnapshotGenerationAgent agent;
try
{
// Set the required properties for Snapshot Agent.
agent = new SnapshotGenerationAgent();
agent.Distributor = distributorName;
agent.DistributorSecurityMode = SecurityMode.Integrated;
agent.Publisher = publisherName;
agent.PublisherSecurityMode = SecurityMode.Integrated;
agent.Publication = publicationName;
agent.PublisherDatabase = publicationDbName;
agent.ReplicationType = ReplicationType.Transactional;
// Start the agent synchronously.
agent.GenerateSnapshot();
}
catch (Exception ex)
{
// Implement custom application error handling here.
throw new ApplicationException(String.Format(
"A snapshot could not be generated for the {0} publication."
, publicationName), ex);
}
' Set the Publisher, publication database, and publication names.
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2022"
Dim publisherName As String = publisherInstance
Dim distributorName As String = publisherInstance
Dim agent As SnapshotGenerationAgent
Try
' Set the required properties for Snapshot Agent.
agent = New SnapshotGenerationAgent()
agent.Distributor = distributorName
agent.DistributorSecurityMode = SecurityMode.Integrated
agent.Publisher = publisherName
agent.PublisherSecurityMode = SecurityMode.Integrated
agent.Publication = publicationName
agent.PublisherDatabase = publicationDbName
agent.ReplicationType = ReplicationType.Transactional
' Start the agent synchronously.
agent.GenerateSnapshot()
Catch ex As Exception
' Implement custom application error handling here.
Throw New ApplicationException(String.Format( _
"A snapshot could not be generated for the {0} publication." _
, publicationName), ex)
End Try
В этом примере асинхронно запускается задание агента для создания начального моментального снимка транзакционной публикации.
// Set the Publisher, publication database, and publication names.
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks2022";
string publisherName = publisherInstance;
TransPublication publication;
// Create a connection to the Publisher using Windows Authentication.
ServerConnection conn;
conn = new ServerConnection(publisherName);
try
{
// Connect to the Publisher.
conn.Connect();
// Set the required properties for an existing publication.
publication = new TransPublication();
publication.ConnectionContext = conn;
publication.Name = publicationName;
publication.DatabaseName = publicationDbName;
if (publication.LoadProperties())
{
// Start the Snapshot Agent job for the publication.
publication.StartSnapshotGenerationAgentJob();
}
else
{
throw new ApplicationException(String.Format(
"The {0} publication does not exist.", publicationName));
}
}
catch (Exception ex)
{
// Implement custom application error handling here.
throw new ApplicationException(String.Format(
"A snapshot could not be generated for the {0} publication."
, publicationName), ex);
}
finally
{
conn.Disconnect();
}
' Set the Publisher, publication database, and publication names.
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2022"
Dim publisherName As String = publisherInstance
Dim publication As TransPublication
' Create a connection to the Publisher using Windows Authentication.
Dim conn As ServerConnection
conn = New ServerConnection(publisherName)
Try
' Connect to the Publisher.
conn.Connect()
' Set the required properties for an existing publication.
publication = New TransPublication()
publication.ConnectionContext = conn
publication.Name = publicationName
publication.DatabaseName = publicationDbName
If publication.LoadProperties() Then
' Start the Snapshot Agent job for the publication.
publication.StartSnapshotGenerationAgentJob()
Else
Throw New ApplicationException(String.Format( _
"The {0} publication does not exist.", publicationName))
End If
Catch ex As Exception
' Implement custom application error handling here.
Throw New ApplicationException(String.Format( _
"A snapshot could not be generated for the {0} publication." _
, publicationName), ex)
Finally
conn.Disconnect()
End Try
Блокировка при применении начального снимка
Если у вас есть несколько публикаций, которые публикуют данные в одной базе данных у подписчиков, вы заметите, что только одно издание может применять свой снимок одновременно при применении начальных снимков.
При просмотре активности SQL вы можете увидеть ресурс ожидания, похожий на следующий:
ПРИЛОЖЕНИЕ: 18:16384:[snapshot_delivery_in_progress_Tr]:(9bcdaf92)
ПРИЛОЖЕНИЕ: 5:16384:[snapshot_delivery_in_progress_Er]:(3c3b7db9)
Запрос на поведение блокировки может показывать ресурсы, похожие на следующие:
APP 16384:[appname]:(fbe42d68) XAPP 16384:[snapshot_del]:(9bcdaf92) X
Такое поведение предусмотрено программой. Это происходит, поскольку блокировка на уровне приложения используется для предотвращения одновременного применения несколькими агентами репликации снимков разных публикаций к одной и той же базе данных подписчика. Поскольку блокировка приложения содержит имя базы данных подписчиков, любые публикации, публикующиеся в той же базе данных подписчиков, будут затронуты. Результатом является то, что в базу данных подписчика можно вставить только один моментальный снимок в определенное время.
Эксклюзивные блокировки используются в этой ситуации, чтобы предотвратить возможность взаимоблокировки агентов репликации.
Чтобы обойти эту проблему, укажите другую базу данных подписчика для каждой публикации.
Связанный контент
- Создание публикации
- Создайте pull-подписку
- Создание принудительной подписки
- Указание расписаний синхронизации
- Инициализируйте подписку с помощью снимка новой публикации
- Концепции объектов управления репликацией
- Рекомендации по обеспечению безопасности репликации
- Основные понятия хранимых процедур системы репликации
- Использование sqlcmd с переменными скриптов