Порівняння і синхронізація схем двох баз даних SQL Server

Параметри порівняння та синхронізації схем двох баз данных SQL Server, включно з вибірковим порівнянням за типами об'єктів, виконання підготовчих скриптів, порівняння згідно COLLATION, налаштування опцій порівняння тіла об'єктів та обчислюваних виразів, ахівування БД, тест на сумістність

Завдання

Назва завдання та теки виведення завдання в теці проекту. Його можна змінити до виконання завдання.

[Цільова база даних]

Цільова база даних для порівняння та синхронізації. Ви можете встановити з'єднання з базою даних онлайн або вибрати файл структури бази даних.

Затверджувати цільову базу даних

Дозволити використання обраної онлайн-бази даних в якості цільової для цього завдання? Ця функція призначена для фільтрації вибору цільової бази даних, щоб запобігти випадковому виконання на "не тій" базі або на базі, яка не відповідає визначеним вимогам. Наприклад, ми можемо перевірити, чи належить вона до нашого продукту, чи має необхідну версію або інші необхідні складові і т.д. Зазвичай ця функція використовується в пакетах оновлень.

Дивіться на прикладі у файлі-шаблоні для отримання додаткової інформації. Ви можете його зберегти за допомогою діалогового вікна як новий файл і відредагувати вручну, слідуючи інструкціям в коментарях.

Тестувати на сумісність

Перевіряти сумісність застосунка з функціоналом баз даних. AutosyncDB охоплює найбільш часто використовувані види об'єктів, їх властивості та функціональні можливості, що дозволяє ефективно порівнювати і синхронізувати їх. Однак є певний функціонал, який ще не підтримуються, використовуються дуже рідко або є занадто локалізованим для синхронізації.

Даний тест може виявити тільки ВІДОМІ проблеми сумісності і надати додаткову інформацію по ним. Кожне повідомлення має унікальний код і характеризується рівнем серйозності (не плутати з рівнем серйозності помилок в SQL), порогові значення для якого можна вказати в налаштуваннях завдання.

Тест на сумісність виконується після виконання підготовчого скрипта, але до етапу порівняння, експорту або виконання скрипта синхронізації.

Рівні серйозності варіюються від 1 до 5. Чим вище рівень, тим він серйозніше. Рівні призначаються на основі оцінки ризику неявного перезапису або можливої втрати функціоналу під час синхронізації; його значення для реалізації конкретної архітектури; приналежності до "основного" або "додаткового" функціоналу; складності підтримки цього функціоналу за допомогою ручного скрипта і ступеня залежності від іншого функціоналу бази даних. Також рівень може бути підвищений, якщо функціонал безпосередньо пов'язаний з безпекою.

Макс. дозволений рівень серйозності

Задає максимально дозволений рівень серйозності. Значення повинні знаходитися в діапазоні від 0 до 5, де нуль не допускає несумісності, а 5 допускає будь-яку.

Тест на сумісність виконується після виконання підготовчого скрипта, але до етапу порівняння, експорту або виконання скрипта синхронізації. Якщо тест на сумісність виявить рівні серйозності вище даного значення, то завдання буде зупинено, за винятком завдань тільки з одного порівняння.

Протоколювати, коли рівень серйозності

Задає найнижчий рівень серйозності повідомлень, починаючи з якого їх вже слід протоколювати. Значення мають бути в діапазоні від 1 до 5.

Ігнорувати типи сповіщень

Задає типи повідомлень, які слід ігнорувати. Значення розділяються комою.

Архівувати

Створювати резервну копію цільової бази даних в місці розташування сервера за замовчуванням перед її зміною.

Виконувати скрипти

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

Ви можете вибрати один SQL-файл або лістинг SQL- файлів. Для того щоб створити лістинг SQL-файлів, – просто виберіть їх в необхідному порядку в Діалозі.

Крім того, цю функцію можна просто використовувати для виконання потрібних SQL-файлів на цільовій базі даних без процесу синхронізації.

Порівняти з

Порівнювати і синхронізувати структуру цільової бази даних з структурою шаблонної бази даних.

[Шаблонна база даних]

Шаблонна база даних, з якою порівнювати та синхронізувати. Ви можете встановити з'єднання з базою даних онлайн або вибрати файл структури бази даних. Також структура бази даних може бути взята із файлу пакета (структура шаблонної бази даних у пакеті).

Загальні параметри

Змінювати COLLATION бази даних

Використовуйте цю опцію разом з опцією режиму доступу SINGLE_USER для синхронізації параметрів сортування бази даних за замовчуванням. Зміна параметрів сортування бази даних за замовчуванням не змінює параметрів сортування стовпців. Для приведення у відповідність параметрів сортування стовпців – використайте опцію для стовпців.

Якщо ця опція не встановлена, то алгоритм порівняння забезпечує порівняння баз даних, ґрунтуючись на параметрах сортування за замовчуванням цільової бази даних. В іншому випадку, він використовує параметри сортування шаблонної бази даних.

Змінювати COLLATION за замовчуванням в стовпцях

Використовуйте цю опцію аби привести в повну відповідність параметри сортування всіх стовпців з параметрами сортування тих же стовпців в шаблонній базі даних. Якщо ця опція не встановлена, то алгоритм порівняння буде вважати рівними різні параметри сортування, якщо вони співпадають з параметрами сортування за замовчуванням в їхніх базах даних.

Застосовувати режим доступу SINGLE_USER

Вимикати AUTO_UPDATE_STATISTICS_ASYNC і застосовувати режим доступу SINGLE_USER для цільової бази даних зі значенням ROLLBACK після 5 секунд. Всі значення будуть відновлені в кінці.

Усувати конфлікти

Видаляти об'єкти в цільовій базі даних, які конфліктують з об'єктами в шаблонній, якщо останні необхідно створити або змінити. Цей параметр вмикає перевірку на наявність конфліктів імен об'єктів, конфліктів кластерного ключа/індексу, конфліктів в призначенні об'єктів (не може бути більше одного кластерного ключа в таблиці або обмеження за замовчуванням для стовпця, двох об'єктів з однаковим ім'ям і т.д.)

Перезаписувати таблиці на views або table functions

Дозволити заміну таблиць на views або table-functions, якщо вони мають однакові імена

Вирішувати залежності

Ця опція контролює вирішення залежностей між залежними об'єктами. Завжди використовуйте її, щоб побудувати вірний скрипт синхронізації. Ви можете відключати цю опцію лише в порівняльному аналізі, щоб отримати звіт без перестворення залежних об'єктів.

Часто, щоб змінити один об'єкт слід видалити (а потім заново створити) інші об'єкти, які залежать від першого. Наприклад: щоб змінити стовпець – слід попередньо видалити індекс; щоб заново створити скалярну функцію – слід видалити констрейни за замовчуванням, де вона використовується, і т.д.

Порівняння тіла об'єктів

Додаткові правила порівняння тіла об’єктів.

Ігнорувати зовнішні проміжки та розриви рядків

Ігнорувати проміжки і розриви рядків на початку і в кінці.

Ігнорувати всі проміжки та розриви рядків

Ігнорувати будь-які проміжки і розриви рядків за межами 'рядкових літералів', "рядкових літералів або ідентифікаторів в подвійних лапках" та [ідентифікаторів].

Ігнорувати коментарі

Ігнорувати коментарі.

Порівнювати згідно COLLATION

Порівнювати тіла об'єктів на основі параметрів сортування бази даних за замовчуванням, за винятком 'рядкових літералів' та "рядкових літералів або ідентифікаторів в подвійних лапках". В іншому випадку буде використовуватися правило суворої відповідності.

Порівняння обчислювальних виразів

Додаткові правила порівняння обчислюваних виразів.

Ігнорувати зовнішні круглі дужки

Ігнорувати зовнішні круглі дужки на початку і в кінці.

DISABLED

Встановіть цю опцію, щоб змінити властивість об'єктів DISABLED. Інакше алгоритм порівняння спробує успадкувати ці значення від існуючих об'єктів.

Не рекомендується наявність вимкнених ключових констрейнів та індексів в шаблонній базі даних. Вони накладають зайві залежності на таблиці або вью, для яких були створені, можуть вимикати інші залежні індекси, та не завжди можуть бути належним чином оброблені алгоритмом порівняння.

NOT FOR REPLICATION

Встановіть цей параметр, щоб змінити властивість об'єктів NOT FOR REPLICATION. В іншому випадку алгоритм порівняння спробує успадкувати ці значення від існуючих об'єктів.