Агенты репликации

advertisement
Транзакционная репликация
Это не страшно
Евгений Хабаров
Say Thank you to Volunteers:
 They spend their FREE time to give you this
event.
 Because they are love our COMMUNITY.
 Because they want YOU
to learn from the BEST IN THE WORLD.
 If you see one of these guys in the hall – buy
them a beer/wine, they deserve it.
Vitaliy Popovych
Olena Smoliak
Maksim Garnets
Yevhen Nedashkivskyi
Oksana Borysenko
3 Sponsor Sessions at 12:30
 Don’t miss them, they might be
providing some interesting and
valuable information!
 Bakotech (Dell) – Room “AE”
 Intapp – Room “F”
 DevArt – Room “Lazurny”
Our Sponsors:
Докладчик
 Just a DBA
 That’s all.
 Email: sql@dev.ms
 Blog: http://sql.dev.ms
 Twitter: @gR4mm
О чем это доклад

Определение репликации








Примеры использования
Компоненты репликации
Взаимодействие компонентов
Настройка репликации
Устранение ошибок
Мониторинг
Изменение репликации
Ограничения
Что такое репликация?
 Репликация - механизм, который позволяет
синхронизировать данные и некоторые другие
объекты БД между Публикатором и подписчиками в
режиме почти реального времени.
 Существует несколько видов репликации
 Transactional
 Snapshot
 Merge
 Peer-To-Peer (Enterprise only)
Транзакционная репликация
 Вид репликации, который для синхронизации
объектов использует транзакционный лог.
 После инициализации последовательные
изменения данных на базе-источнике
передаются подписчикам в режим почти
реального времени
 При этом гарантируется транзакционная
консистентность данных в рамках одной
публикации
В каких случаях применяется
 DWH и Reporting
 Филиальная сеть
 Межбазовое обеспечение целостности данных
В каких случаях НЕ применяется
 HA/DR
 Не поддерживает автоматическое
исправление данных
 Не поддерживает автоматическое
распределение нагрузки
 Не поддерживает Failover/Failback
 Данные на подписчике могут быть изменены
Компоненты репликации
 Основные – условно, это серверы, базы
данных и таблицы между которыми
перемещаются данные
 Агенты – набор программ, который
осуществляет работу по перемещению
данных
 Служебные джобы – выполняют работу по
очистке, мониторингу и т.д.
Компоненты репликации: установка
Компоненты репликации: основные
 Publisher – инстанс SQL сервера, который
содержит публикации
 Publication - набор статей (articles),
изменения в которых
передаются подписчикам
 Article - реплицируемый объект базы, будь то
таблица, представление, хранимая
процедура или функция
Компоненты репликации: основные
 Distributor - инстанс SQL сервера,
который для агрегации данные
передаваемых Подписчикам
 Содержит базу distribution
 Часто Publisher и Distributor это один и тот же
инстанс.
Компоненты репликации: основные
 Subscriber - инстанс SQL сервера,
который получает обновления
Публикатора
 Subscription – объект подключения к
определенной подписке
 Бывает двух видов
 PUSH
 PULL
Компоненты репликации: Агенты

Агенты репликации - по сути, набор программ, которые выполняют
различные действия.

Типы запуска:



Джоб (по умолчанию)
CMD
RMO

Snapshot агент - служит для первоначальной инициализации репликации
и при добавлении новых объектов в репликацию.

Log reader агент - переносит транзакции отмеченные как реплицируемые
из транзакционного лога базы Publisher’а в базу distribution. Для каждой
публикуем БД создается по одному агенту данного типа

Distribution агент - служит для применения созданного снимка БД на
подписчике, а также для доставки данных из базы distributor подписчикам
репликации - на подписчике
Компоненты репликации: Джобы
 Джобы агентов:
 Log Reader: <Publisher>-<PublicationDatabase>-<integer>
 Snapshot: <Publisher>-<PublicationDatabase>-<Publication><integer>
 Distribution
 PUSH: <Publisher>-<PublicationDatabase>-<Publication><Subscriber>-<integer>
 PULL : <Publisher>-<PublicationDatabase>-<Publication><Subscriber>-<SubscriptionDatabase>-<GUID>
Компоненты репликации: Джобы
 Служебные






Agent history clean up: <distribution database>
Distribution clean up: <distribution database>
Expired subscription clean up
Reinitialize subscriptions having data validation failures
Replication agents checkup
Replication monitoring refresher for<distribution database>
Взаимодействие компонентов
DEMO
НАСТРОЙКА РЕПЛИКАЦИИ
DEMO
ЛОМАТЬ НЕ СТРОИТЬ
DEMO
ВАЛИДАЦИЯ ПОДПИСКИ
DEMO
ДОБАВЛЕНИЕ СТАТЬИ
Tips & Tricks




Initialize with backup
sp_configure, ‘max text repl size (B)’
Profiler
Snapshot/Distribution Agent profile -MaxBCPThread
Спасибо!
 Blog: http://sql.dev.ms/
 Twitter: @gr4mm
 Email: sql@dev.ms
Ресурсы

http://www.sqlservercentral.com/stairway/72401/


http://www.replicationanswers.com/


Regenerating Custom Transactional Procedures to Reflect Schema Changes
https://msdn.microsoft.com/en-us/library/ms151227.aspx


Enable Initialization with a Backup for Transactional Publications
https://technet.microsoft.com/en-us/library/ms152552(v=sql.105).aspx


Frequently Asked Questions for Replication Administrators
https://technet.microsoft.com/en-us/library/ms152556.aspx


Microsoft SQL Server Replication Support Team
https://msdn.microsoft.com/en-us/library/ms151740.aspx


Script and articles by Paul Ibison
http://blogs.msdn.com/b/repltalk/archive/2010/02/07/repltalk-start-here.aspx


Stairway to SQL Server Replication by Sebastian Meine
Replication Security Best Practices
http://www.sqlskills.com/blogs/paul/category/replication/

Paul Randall blog
Download