Есть ли бесплатный (или очень дешевый) инструмент для выделения изменений в данных для сервера SQL? - PullRequest
3 голосов
/ 17 ноября 2010

Примечание для вознаграждения: отвечайте, только если вы знаете инструмент, который может отслеживать изменения в одном и том же БД, не упоминайте инструменты, которые сравнивают 2 БД. Приветствуется визуальный инструмент, такой как Embarcadero Change Manager.

Мне бы хотелось иметь инструмент, который позволяет мне видеть только «что изменилось» в БД при заданном действии.

Сценарий может быть:

1) запуск мониторинга (с помощью инструмента)

2) пользователь выполняет действие в графическом интерфейсе (например, нажав кнопку «Применить» после изменения номера телефона клиента)

3) прекратить мониторинг: показать изменения (с помощью инструмента) (в этом случае я должен видеть только то, что поле Адрес было изменено)

Менеджер изменений Embarcadero делает это, но делает и много других вещей, и это дорого. Я ищу более простой инструмент, который делает только это.

Примечание: мне не нужно сравнение схем, просто сравнение данных.

Ответы [ 6 ]

3 голосов
/ 23 ноября 2010

Если у вас есть SQL Server 2008 Enterprise Edition, вы можете использовать Change Data Capture, чтобы предоставить журнал транзакций в более удобном формате, чем DBCC LOG dbname,3.См. http://msdn.microsoft.com/en-us/library/bb522489.aspx для получения дополнительной информации.

2 голосов
/ 17 ноября 2010

Ознакомьтесь с Lite / Free версией различных инструментов xSQL:

http://www.xsqlsoftware.com/LiteEdition.aspx

Имеется сравнение уровня объекта , а также инструмент для сравнения данных .

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

1 голос
/ 29 ноября 2010

Вы можете сделать снимки базы данных (достаточно быстро), а затем сравнить с работающей БД. Обе проблемы можно решить с помощью бесплатных инструментов .

1 голос
/ 26 ноября 2010

Самый очевидный инструмент - это SQL Profiler. Он будет следить за каждым оператором SQL и, следовательно, за каждым изменением данных, которое отправляется на сервер, и отображает метрики этого оператора, учетную запись, под которой был выполнен оператор, и множество других фрагментов информации, и он поставляется бесплатно с большинством SQL Версии сервера. Если вы хотите видеть только изменения данных, вы можете добавить фильтры для отображения только операторов вставки, обновления и удаления.

Если вы пытаетесь сравнить две базы данных, чтобы увидеть, какие данные отличаются между ними, я бы порекомендовал что-то вроде сравнения данных в Red-Gate (нет, я не работаю для них). Это не бесплатно, но неоценимо для этого типа значения столбца при сравнении значений столбца.

1 голос
/ 23 ноября 2010

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

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

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

1 голос
/ 22 ноября 2010

Бесплатно, одним из вариантов является использование DBCC LOG dbname,3 для вывода журнала транзакций.

Возможно, будет весело интерпретировать вывод, но, безусловно, выполнимо.

...