Хабрахабр

Сравнение компараторов для синхронизации схем и данных баз данных MS SQL Server

Синхронизация схем баз данных

После открытия студии, перейдите на вкладку «Database Sync» и создайте новое подключение, нажав по кнопке «New Connection»:

Обратите внимание, что помимо аутентификации MS SQL Server, Windows, Active Directory, появилась возможность аутентификации через MFA. В открывшемся окне настроек подключения необходимо ввести необходимые данные для подключения к экземпляру MS SQL Server (серверу-источнику). После заполнения всех необходимых полей, нажмите на кнопку «Test Connection» для проверки соединения:

После установки соединения будет выведено следующее диалоговое окно:

Далее нажмите на кнопку «ОК» в диалоговом окне и на такую же кнопку в окне настроек подключения.

Теперь появилось новое подключение:

Аналогичным образом необходимо подключить все нужные экземпляры MS SQL Server (в данном примере нужно создать подключение для сервера-приемника).

После этого необходимо нажать на «New Schema Comparison» для настройки процесса сравнения схем базы данных на сервере-источнике и базы данных на сервере-приемнике:

Появится окно настроек для сравнения схем.

На вкладке «Source and Target» слева в панели Source необходимо выбрать:

  1. тип
  2. подключение
  3. базу данных источника

Справа в панели Target необходимо выбрать:

  1. тип
  2. подключение
  3. базу данных приемника

Обратите внимание, что в типе можно выбрать не только базу данных, но также каталог скриптов, снимок, контроль версий и резервную копию. В нашем случае выбираем в типе «база данных».

После выбора всех настроек необходимо нажать на кнопку «Next» для продолжения настройки синхронизации схем баз данных.

Если сравниваются две изначально одинаковые базы данных, то можно сразу приступать к сравнению схем, нажав на кнопку «Compare».

При необходимости можно перейти к любой вкладке настроек, кликнув на соответствующий элемент слева окна.

На любом этапе можно сохранить настройки в виде bat-файла, нажав на кнопку «Save Command Line» слева внизу окна.

Но для исследования функционала необходимо нажать «Next»:
В большинстве случаев при накатывании изменений между изначально одинаковыми базами данных, достаточно сразу нажать на кнопку «Compare».

Во вкладке «Options» можно выставить различные настройки или оставить их по умолчанию:

Во вкладке «Schema Mapping» можно настроить сопоставление схем по имени:

Во вкладке «Table Mapping» можно настроить сопоставление таблиц и столбцов:

Во вкладке «Object Filter» можно задать объекты для сравнения.

После этого, при необходимости можно вернуться к предыдущим шагам.

В конце необходимо нажать на кнопку «Compare» для запуска процесса сравнения схем заданных баз данных:

Окно настроек сравнения схем баз данных исчезнет, и появится окно с индикатором процесса выполнения сравнения:

Можно изменить настройки сравнения, нажав на кнопку «Edit Comparison» в левом верхнем углу окна. В конце процесса обратите внимание на окно. Также чуть ниже располагаются все зарегистрированные ранее сервера:
Справа от этой кнопки располагается круг со стрелкой — это кнопка обновления, которая запускает вновь процесс сравнения схем.

Через главное меню в File можно сохранить настройки сравнения схем в виде файла с расширением scomp.

Здесь галочками нужно выбрать необходимые объекты для синхронизации. Теперь обратим внимание на центральную часть окна. Внизу аналогичным образом располагается код определения объектов. Слева располагаются объекты источника, а справа-приемника. Поэтому данный объект находится в секции «Different»:
Объекты для сравнения разделены на 4 секции с подсчетом количества этих объектов в каждой секции.
Здесь выбрана для просмотра кода определения таблица, которая есть и в источнике, и в приемнике.

Поэтому данный объект находится в секции «Only in source» и справа для него нет кода определения:
При выборе данного объекта, его код определения слева будет перенесен вправо при синхронизации схем баз данных для приемника.
Здесь для просмотра кода определения выбрано представление, которое есть только в источнике.

Поэтому данный объект находится в секции «Only in target» и слева для него нет кода определения:
При выборе такого объекта, его код создания будет сгенерирован для приемника.
Здесь для просмотра кода определения выбрано представление, которое есть только в приемнике.

При выборе такого объекта, его код удаления будет сгенерирован для приемника.
Далее, для запуска самого процесса синхронизации схем баз данных необходимо нажать на одну из кнопок, выделенных красным на картинке:

Обычно выбирается генерация скрипта в студию или в файл. Во вкладке «Output» необходимо указать, как будет происходить процесс синхронизации. Рекомендуется внимательно проходить последовательность всех вкладок по настройке процесса синхронизации:
В нашем случае выберем первый вариант.

изменения будут применяться полностью либо не применяться вовсе:
Во вкладке «Options» можно задать различные настройки для синхронизации схем баз данных.
Обычно убираются все настройки из группы «Database backup».
По умолчанию в группе настроек «Transactions» выставлено «Use a single transaction» и «Set transaction isolation level to SERIALIZABLE», что предотвращает ситуации, в которых могут быть применены только части изменений – т.е.

При необходимости можно вернуться к предыдущим пунктам.
Обратите внимание, что настройки по синхронизации схем баз данных также можно сохранить в bat-файл, нажав на кнопку «Save Command Line» слева внизу окна.
В конце необходимо нажать на кнопку «Synchronize» для начала процесса генерации скрипта синхронизации схем баз данных:
Во вкладке «Summary» отображаются итоги выбора настроек синхронизации.

По завершению, будет сгенерирован скрипт в новое окно:

Его можно применить на сервере-приемнике или сохранить в файл для последующего применения на сервере-приемнике. Данный скрипт и есть код для переноса изменений схемы базы данных с источника на приемник. Сделать это можно с помощью групп зарегистрированных серверов в SSMS, отправив получившийся скрипт сразу на всю нужную группу серверов:
Как правило, в любом случае данный скрипт сохраняют, чтобы после всех проверок применить его сразу на нескольких серверах для одной и той же базы данных.

После синхронизации, выбранные ранее объекты, должны исчезнуть из окна сравнения схем:

Синхронизация данных баз данных

Предполагается, что были созданы нужные подключения как описывалось выше в «Синхронизация схем баз данных».

После этого необходимо нажать «New Data Comparison» для настройки процесса сравнения данных базы данных на сервере — источнике и базы данных на сервере — приемнике:

Появится окно настроек для сравнения данных.

На вкладке «Source and Target» слева в панели Source необходимо выбрать:

  1. тип
  2. подключение
  3. базу данных источника

Справа в панели Target необходимо выбрать:

  1. тип
  2. подключение
  3. базу данных приемника

Обратите внимание, что в типе можно выбрать не только базу данных, но также каталог скриптов и резервную копию. В нашем случае выбираем в типе «база данных».

После выбора всех настроек необходимо нажать «Next» для продолжения настройки синхронизации данных баз данных.

В отличие от сравнения схем, при сравнении данных рекомендуется пройти все шаги настроек последовательно.

При необходимости можно перейти к любой вкладке настроек, кликнув на соответствующий элемент окна слева.

На любом этапе можно сохранить настройки в виде bat — файла, нажав «Save Command Line» слева внизу окна.

После настройки вкладки “Source and Target” необходимо нажать «Next»:

Во вкладке «Options» можно выставить различные настройки или оставить их по умолчанию:

Восклицательными знаками отмечены те таблицы, в которых нет первичного ключа. Во вкладке «Mapping» дается список таблиц для синхронизации данных. Для этого выберите нужную строку (таблицу) и справа нажмите на многоточие:
Для таких таблиц сопоставление нужно делать вручную.

Появится окно сопоставления:

После этого при необходимости можно вернуться к предыдущим шагам.
В конце необходимо нажать «Compare» для запуска процесса сравнения данных заданных баз данных:

Окно настроек сравнения данных баз данных исчезнет и появится окно с индикатором процесса выполнения сравнения:

Можно изменить настройки сравнения, нажав «Edit Comparison» в левом верхнем углу окна. В конце процесса обратите внимание на окно. Также чуть ниже располагаются все зарегистрированные ранее сервера:
Справа от этой кнопки располагается круг со стрелкой — это кнопка обновления, которая запускает процесс сравнения данных вновь.

Через главное меню в File можно сохранить настройки сравнения схем в виде файла с расширением dcomp.

Здесь галочками нужно выбрать необходимые объекты для синхронизации. Теперь обратим внимание на центральную часть окна. Слева располагаются объекты источника, а справа — приемника:

Внизу отображается следующая информация:

  1. для вставляемых строк — данные вставляемых строк:
  2. для изменяемых строк — сравнение строк:
  3. для удаляемых строк — данные удаляемых строк:

Внизу слева при необходимости можно выбрать не все строки для изменений, а нужные. По умолчанию выбираются все строки:

Также можно переходить между добавляемыми, изменяемыми и удаляемыми строками с помощью вкладок над самой таблицей данных:

Для управления видимостью нужных столбцов (полей) есть необходимый функционал:

По умолчанию выбраны все столбцы.

Далее для запуска самого процесса синхронизации данных баз данных необходимо нажать на одну из кнопок, выделенных красным на картинке:

Обычно выбирается генерация скрипта в студию или в файл. Во вкладке «Output» необходимо указать, как будет происходить процесс синхронизации. Рекомендуется внимательно проходить последовательность всех вкладок по настройке процесса синхронизации:
В нашем случае выберем первый вариант.

Во вкладке «Options» можно задать различные настройки для синхронизации.

Обычно убираются все настройки из группы «Database backup».

изменения будут применяться полностью либо не применяться вовсе:
По умолчанию в группе настроек «Transactions» выставлено «Use a single transaction» и «Set transaction isolation level to SERIALIZABLE», что предотвращает ситуации, в которых могут быть применены только части изменений – т.е.

При необходимости можно вернуться к предыдущим пунктам. Во вкладке «Summary» отображаются итоги выбора настроек синхронизации.

Обратите внимание, что настройки по синхронизации схем баз данных также можно сохранить в bat — файл, нажав «Save Command Line» слева внизу окна.

В конце необходимо нажать «Synchronize» для начала процесса генерации скрипта синхронизации:

По завершении будет сгенерирован скрипт в новое окно:

Его можно применить на сервере — приемнике или сохранить в файл для последующего применения на сервере — приемнике. Данный скрипт и есть код для переноса изменений данных с источника на приемник.

После синхронизации выбранные ранее объекты должны исчезнуть из окна сравнения данных.

Краткий обзор инструмента dbForge Compare Bundle for SQL Server

Помимо самой dbForge Studio for SQL Server для сравнения данных и схем баз данных можно использовать инструмент dbForge Compare Bungle for SQL Server от компании Devart, который встраивается в SQL Server Management Studio (SSMS). Рассмотрим пример использования данного инструмента в SSMS:

После этого установить выбранную базу данных как источник или как приемник. Здесь нужно нажать правой кнопкой мыши на нужную базу данных и выбрать необходимое действие: сравнение данных или сравнение схемы. Аналогичным образом выбрать вторую базу данных как приемник или как источник.

После установки источника и приемника для начала настройки синхронизации данных или схемы баз данных необходимо нажать на зеленую стрелку посередине экрана:

После этого появится привычное окно настроек синхронизации данных или схем баз данных в зависимости от того, что было выбрано ранее.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»