Published on

May 22, 2009

Отслеживание изменений объектов в SQL Server

Введение:

Как администратор баз данных SQL Server, важно отслеживать изменения, внесенные в объекты баз данных по разным причинам. Будь то обеспечение плавного развертывания объектов из среды разработки в производственную среду или выявление потенциальных проблем, вызванных несанкционированными изменениями, наличие системы для отслеживания изменений объектов может значительно улучшить управление вашими базами данных.

Проблема:

До SQL Server 7 не было встроенного механизма для удобного отслеживания изменений объектов. Таблица sysobjects предоставляла ограниченную информацию, а вновь введенные представления INFORMATION_SCHEMA не включали дату создания или изменения объектов. Это создавало проблему для администраторов баз данных, которым нужно было вести запись об изменениях объектов.

Решение:

После обширного исследования и экспериментов был обнаружен метод отслеживания изменений объектов с использованием таблицы sysobjects. Путем изучения полей base_schema_ver и schema_ver, которые увеличиваются на 16 каждый раз, когда объект изменяется, стало возможным определить, когда объект был изменен.

Реализация:

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

  1. Создайте таблицу для хранения справочных данных об объектах. Эта таблица будет содержать последние известные значения для каждого объекта.
  2. Разработайте хранимую процедуру для загрузки текущих значений из таблицы sysobjects в справочную таблицу.
  3. Создайте другую хранимую процедуру для сравнения текущей информации в таблице sysobjects с справочной таблицей и записи любых различий в таблицу журнала.
  4. Запланируйте задание для выполнения процедуры сравнения, а затем процедуры загрузки, обеспечивая проверку новых объектов сначала, а затем обновление справочной таблицы.

Ограничения:

Важно отметить, что эта система не отслеживает фактические изменения, внесенные в объекты. Она служит системой оповещения, чтобы уведомлять администраторов о том, что произошло изменение. Чтобы определить конкретные изменения, такие как время их возникновения, их характер и автор, следует использовать систему контроля версий или другие средства отслеживания изменений кода в сочетании с этой системой.

Заключение:

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

Автор: Стив Джонс

Дата: Март 2001

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.