Транзакционная репликация Это не страшно Евгений Хабаров 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: [email protected] 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: [email protected] Ресурсы 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