Как проверить клиентскую базу данных на соответствие моей схеме базы данных?

StackOverflow https://stackoverflow.com/questions/606500

Вопрос

Наши клиенты используют базы данных SQLServer / Oracle.За эти годы мы отправили им множество сценариев обновления, которые им приходилось запускать вручную.Большую часть времени все шло гладко, но время от времени скрипт запускался не полностью до конца или в нем были какие-то ошибки (которые не были обнаружены во время обновления).Кроме того, иногда даже "умные пользователи" сами добавляли индексы / таблицы в эти базы данных по какой-либо причине.Позже эти нарушения приводят к проблемам.

Теперь мне было поручено найти способ проверки баз данных наших клиентов на соответствие нашей собственной схеме базы данных (таблицы, типы данных, индексы, представления, ...).Результатом должен быть какой-то файл различий, указывающий, чего не хватает / чего не должно быть в базе данных.Я мог бы сделать это в коде (C ++) изнутри нашего приложения или я могу создать внешний инструмент только для этой одной цели.

Теперь, прежде чем я начну кодировать, я хотел спросить, существует ли уже инструмент, который давал бы необходимые результаты или который, по крайней мере, мог бы помочь мне создать приличный xml-файл из наших основных баз данных (Oracle и SQLServer)?Или есть библиотека, которая могла бы помочь мне написать мой собственный инструмент?

Это было полезно?

Решение

Я уже использовал эту технику раньше, и она не требует покупки каких-либо инструментов.

В Enterprise Manager есть функция "Создать сценарий".Выполните это для вашей справочной базы данных и базы данных сравнения.Выберите соответствующие параметры для создания сценариев для объектов, которые вам небезразличны.Затем просто сравните два сгенерированных файла с помощью вашего любимого инструмента diff.

Вы можете выполнить аналогичную процедуру с помощью инструментов Oracle, которые позволяют экспортировать скрипты DDL.

Другие советы

Есть три варианта использования инструментов Red Gate:

  1. Попросите вашего клиента провести сравнение.Вам нужно будет убедить ваших клиентов приобрести лицензию на SQL Сравните и отправьте им схему снимок вашей базы данных.
  2. Напишите собственное приложение, используя Red Пакет SDK для сравнения SQL от Gate (595 долларов США за 10 дистрибутивов), который можно запустить на сайте клиента.
  3. Попросите вашего клиента прислать вам снимок схемы и запустите сравнение самостоятельно, используя свою собственную копию SQL Compare.Red Gate предоставляет бесплатный инструмент для создания моментальных снимков схемы под названием SQL Snapper, который позволяет создавать моментальные снимки, которые затем могут быть отправлены вам по электронной почте вашим клиентом.Поскольку это не включает в себя никаких данных, возможно, это то, что ваш клиент готов рассмотреть.

Инструмент SQL Snapper и образец кода SQL Comparison SDK можно загрузить с нашего веб-сайта labs.red-gate.com.

Совместимость с Oracle теперь доступна в виде сборки с ранним доступом.Если вы заинтересованы или хотели бы опробовать этот инструмент посетите страницу продукта.Вы можете использовать это бесплатно до полного выпуска инструмента.

Дэвид Аткинсон, менеджер по продуктам Red Gate Software.

Для этого мы используем Redgate SQL Compare, и он хорошо служил нам на протяжении многих лет.

Мы также используем Redgate SQL Data Compare для сравнения содержимого таблиц подстановки.

У ребят из redgate есть отличный инструмент под названием Сравнение SQL.

Можете ли вы создать дамп схемы, подобный MySQL ПОКАЗАТЬ СОЗДАНИЕ ТАБЛИЦ?

Если вы пользуетесь Windoze, я уже много лет пользуюсь Advanced Query Tool и могу подтвердить, что за свои деньги он делает больше, чем что-либо другое.В частности, он сгенерирует отчет о различиях между базами данных.Это ODBC / VB6, и он может работать с десятками баз данных.Зацени это.(Нет, я не принадлежу к QueryTool и не владею какой-либо его частью, просто счастливый клиент.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top