Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения:SQL Server
Репликация транзакций — это хорошее решение для перемещения данных между постоянно подключенными серверами. С помощью мастера репликации можно легко настроить и администрировать топологию репликации.
В этом руководстве описано, как настроить топологию для репликации транзакций для постоянно подключенных серверов. Дополнительные сведения о том, как работает репликация транзакций, см. в разделе Общие сведения о репликации транзакций.
Чему вы научитесь
Из этого руководства вы узнаете, как публиковать данные из одной базы данных в другую, используя репликацию транзакций.
В этом учебнике вы узнаете, как:
- создание издателя путем репликации транзакций;
- создание подписчика для издателя транзакций;
- проверка подписки и измерение задержки.
Предварительные требования
Это руководство для пользователей, которые умеют выполнять основные операции с базами данных и которые имеют ограниченный опыт репликации. Перед тем как приступить к работе с этим учебником, необходимо освоить Учебник. Подготовка SQL Server к репликации.
Чтобы выполнить это руководство, вам потребуются SQL Server, SQL Server Management Studio (SSMS) и база данных AdventureWorks:
На сервере-издателе (источник) установите следующее:
- Любой выпуск SQL Server, кроме SQL Server Express или SQL Server Compact. Эти выпуски не могут быть издателями репликации.
- Образец базы данных
AdventureWorks2025. В целях повышения безопасности образцы баз данных по умолчанию не устанавливаются.
На сервере подписчика (назначение) установите любой выпуск SQL Server, кроме SQL Server Compact. SQL Server Compact не может быть подписчиком в репликации транзакций.
Установите SQL Server Management Studio.
Установите редакцию SQL Server 2017 Developer.
Скачайте пример базы данных AdventureWorks. См. дополнительные сведения о восстановлении базы данных в среде SSMS.
Примечание.
Репликация не поддерживается в экземплярах SQL Server, которые отличаются друг от друга больше, чем на две версии.
В SQL Server Management Studio необходимо подключиться к издателю и подписчику с помощью учетной записи, входящей в предопределенную серверную роль sysadmin. Дополнительные сведения о роли см. в статье Роли уровня сервера.
Предполагаемое время выполнения заданий этого учебника: 60 минут
Настройка издателя для репликации транзакций
В этом разделе описано, как создать публикацию транзакций с помощью SQL Server Management Studio для публикации отфильтрованного подмножества таблицы Product в образце AdventureWorks2025 базы данных. Вы также добавляете имя входа SQL Server, используемое агентом распространения, в список доступа к публикации (PAL).
Создание публикации и определение статей
Подключитесь к издателю в SQL Server Management Studio и разверните узел сервера.
Щелкните правой кнопкой мыши элемент Агент SQL Server и выберите пункт Запустить. Прежде чем приступить к созданию публикации, необходимо запустить агент SQL Server. Если при выполнении этого действия агент не запускается автоматически, его нужно запустить вручную с помощью диспетчера конфигурации SQL Server.
Разверните папку Репликация, щелкните правой кнопкой мыши папку Локальные публикации и выберите пункт Создать публикацию. На этом этапе запускается мастер создания новой публикации:
На странице База данных публикации выберите
AdventureWorks2025и нажмите кнопку Далее.На странице Тип публикации выберите Публикация транзакций и нажмите кнопку Далее:
На странице Статьи разверните узел Таблицы и установите флажок Продукт. Затем разверните Product и снимите флажки рядом с ListPrice и StandardCost. Выберите Далее.
На странице Фильтрация строк таблицы нажмите кнопку Добавить.
В диалоговом окне Добавление фильтра выберите столбец SafetyStockLevel. Выберите стрелку вправо, чтобы добавить столбец в предложение WHERE запроса фильтра. После этого вручную введите следующий модификатор предложения WHERE:
WHERE [SafetyStockLevel] < 500
Выберите ОК, затем выберите Далее.
Установите флажок Создать моментальный снимок немедленно и обеспечить доступ к нему для инициализации подписок и нажмите кнопку Далее:
На странице Безопасность агентов снимите флажок Использовать настройки безопасности агента моментальных снимков.
Выберите Настройки безопасности для агента моментальных снимков. Введите <Publisher_Machine_Name>\repl_snapshot в поле Учетная запись процесса, введите пароль для этой учетной записи, а затем нажмите ОК.
Повторите предыдущий шаг, чтобы назначить <Publisher_Machine_Name>\repl_logreader учетной записью процесса для агента чтения журнала. Затем выберите OK.
На странице Завершение работы мастера введите AdvWorksProductTrans в поле Имя публикации и нажмите кнопку Готово:
После создания публикации выберите Закрыть, чтобы завершить работу мастера.
Если при попытке создать публикацию обнаруживается, что агент SQL Server не запущен, может возникнуть следующая ошибка. Эта ошибка указывает на то, что публикация была успешно создана, но запустить агент Snapshot не удалось. В этом случае необходимо запустить агент SQL Server, а затем вручную запустить агент моментальных снимков. Инструкции приведены в следующем разделе.
Просмотрите состояние создания моментального снимка
Подключитесь к издателю в SQL Server Management Studio, разверните узел сервера и разверните папку репликации .
В папке Локальные публикации щелкните правой кнопкой мыши публикацию AdvWorksProductTrans и выберите пункт Просмотр состояния агента моментальных снимков:
Отобразятся сведения о текущем состоянии задания агента моментальных снимков для публикации. Перед тем как перейти к следующему разделу, убедитесь, что задача создания моментального снимка завершилась успешно.
Если служба агент SQL Server не была запущена при создании публикации, то при проверке состояния агента моментальных снимков для вашей публикации вы увидите, что агент моментальных снимков ни разу не запускался. В таком случае выберите Запустить, чтобы запустить агент моментальных снимков:
Если отображается сообщение об ошибке, ознакомьтесь с разделом Устранение неполадок с агентом моментальных снимков.
Добавьте имя входа агента распространения в PAL
Подключитесь к издателю в SQL Server Management Studio, разверните узел сервера и разверните папку репликации .
В папке Локальные публикации щелкните правой кнопкой мыши публикацию AdvWorksProductTrans и выберите пункт Свойства. Откроется диалоговое окно Свойства публикации.
a. Выберите страницу Список доступа к публикации и нажмите кнопку Добавить.
b. В диалоговом окне "Добавление доступа к публикации" выберите <Publisher_Machine_Name>\repl_distribution и нажмите кнопку "ОК".
Дополнительные сведения см. статье Основные понятия программирования репликации.
Создание подписки на публикацию транзакций
В рамках этого раздела к созданной ранее публикации добавляется подписчик. В этом руководстве используется удаленный подписчик (NODE2\SQL2016), но вы также можете локально добавить подписку на издателе.
Создание подписки
Подключитесь к издателю в SQL Server Management Studio, разверните узел сервера и разверните папку репликации .
В папке Локальные публикации щелкните правой кнопкой мыши публикацию AdvWorksProductTrans и выберите команду Создать подписку. Запускается мастер создания подписки:
На странице Публикация выберите публикацию AdvWorksProductTrans и нажмите кнопку Далее:
На странице Расположение агента распространения установите флажок Выполнять все агенты в распространителе и нажмите кнопку Далее. Дополнительные сведения о подписках pull и push см. в разделе Подписка на публикации.
На странице «Подписчики», если имя экземпляра подписчика не отображается, выберите «Добавить подписчика», а затем в раскрывающемся списке выберите «Добавить подписчика SQL Server». После этого откроется диалоговое окно Подключение к серверу. Введите имя экземпляра подписчика, а затем выберите Подключиться.
После добавления подписчика установите флажок рядом с именем экземпляра вашего подписчика. Затем выберите пункт Создать базу данных в разделе База данных подписки.
Откроется диалоговое окно Новая база данных. Введите ProductReplica в поле Имя базы данных, нажмите кнопку ОК и затем кнопку Далее:
На странице Безопасность агента распространения нажмите кнопку с многоточием (…). Введите <Publisher_Machine_Name>\repl_distribution в поле «Учетная запись процесса», введите пароль для этой учетной записи, нажмите ОК, а затем нажмите Далее.
Нажмите кнопку Готово, чтобы принять значения по умолчанию на оставшихся страницах и завершить работу мастера.
Настройка прав доступа к базе данных на подписчике
Подключитесь к подписчику в SQL Server Management Studio. Разверните Безопасность, щелкните правой кнопкой мыши по Имена для входа, а затем выберите Новый вход.
a. На странице «Общие» в разделе «Имя входа» выберите «Поиск» и добавьте имя входа для <Subscriber_Machine_Name\repl_distribution.
b. На странице Сопоставления пользователей назначьте базе данных ProductReplica членство с именем для входа db_owner.
Нажмите кнопку ОК, чтобы закрыть диалоговое окно Создание имени для входа.
Просмотр сведений о состоянии синхронизации подписки
Подключитесь к издателю в SQL Server Management Studio. Разверните узел сервера, а затем разверните папку Репликация.
В папке Локальные публикации разверните публикацию AdvWorksProductTrans, щелкните правой кнопкой мыши подписку в базе данных ProductReplica и выберите пункт Просмотр состояния синхронизации. Отобразятся сведения о текущем состоянии синхронизации подписки:
Если подписка не отображается в разделе AdvWorksProductTrans, нажмите клавишу F5, чтобы обновить список.
Дополнительные сведения см. в разделе:
- Инициализация подписки с помощью моментального снимка
- Создание принудительной подписки
- Подписка на публикации
Измерение задержки репликации
В этом разделе вы используете трассировочные маркеры, чтобы убедиться, что изменения реплицируются на подписчик, и определить задержку. Задержка — это время, которое требуется, чтобы изменение, внесенное у издателя, появилось у подписчика.
Подключитесь к издателю в SQL Server Management Studio. Разверните узел сервера, щелкните правой кнопкой мыши папку Репликация и выберите пункт Запустить монитор репликации:
Разверните группу издателей на левой панели, затем разверните экземпляр издателя и выберите публикацию AdvWorksProductTrans.
a. Откройте вкладку Трассировочные токены.
b. Выберите Вставить трассировщик.
c. Просмотрите затраченное время для трассировочного маркера в следующих столбцах: От издателя к распространителю, От распространителя к подписчику, Общая задержка. Значение Ожидание указывает на то, что маркер еще не достиг указанной точки.
Дополнительные сведения см. в разделе:
- Измерение задержки и проверка правильности соединений для репликации транзакций
- Поиск ошибок в агентах репликации транзакций