Как лучше всего разрешить запросам / представлениям видеть, как таблицы выглядели в прошлом на основе отметки даты и времени в SQL Server 2008? - PullRequest
0 голосов
/ 26 февраля 2010

Сценарий. У нас много информации о состоянии сервера (имена, IP-адреса, роли, порты брандмауэра и т. Д.). В настоящее время он хранится в большой рабочей книге Excel на SharePoint, что позволяет легко сравнивать, например, прошлые версии данных с текущими.

мы планируем переместить его в базу данных SQL Server 2008, чтобы упростить доступ к инструментам и средствам автоматизации, а также для улучшения отчетности. Однако, как и следовало ожидать, одним из требований было то, что администраторы хотели бы видеть, как среда выглядела в какой-то момент в прошлом. Некоторая часть волшебства, такая как: sp_getEnvironmentsAsOf ('PERF1', '2009-11-14 00:00:00'), и неожиданно возвращаются все данные, которые были текущими на 14.11.09.

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

По поводу CT / CDC? И какие есть другие варианты, кроме того, чтобы выкрутить собственное решение из безвкусицы и надежды?

Ответы [ 3 ]

3 голосов
/ 26 февраля 2010

Вы должны разработать свою схему для отслеживания этих изменений, а не полагаться на функцию dbms. Что-то вроде:

Devices
  Id
  Description
  Serial number
  Some immutable properties

Properties
  Id
  Description

Device-Properties
  DeviceId
  PropertyId
  Value
  TimeStamp

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

Пример данных:

Devices
1,Server A,1123123
2,Server B,1323454

Properties
1,IP Address
2,Location
3,Rol

Devices-Properties
1,1,192.168.0.10,2010-02-12
1,2,Rack D,2010-02-12
1,3,Proxy,2010-02-12
2,1,192.168.0.105,2010-02-12
2,2,Rack C,2010-02-12
2,3,Mail server,2010-02-12
1,1,192.168.0.11,2010-02-15

В примерах данных Server A IP-адрес был изменен с 192.168.0.10 на 192.168.0.11 на 2010-02-15

Вы можете создавать представления или хранимые процедуры для объединения и фильтрации данных по мере необходимости.

1 голос
/ 26 февраля 2010

CDC подходит, но вы также можете посмотреть AutoAudit на CodePlex.

0 голосов
/ 26 февраля 2010

Мне приходит в голову функция «снимок» (снимок показывает состояние вашей базы данных на момент создания снимка). Однако снимок выглядит как другая база данных (поэтому вы будете запрашивать что-то вроде «MyDBSnapshot_DATE» вместо «MyDB»), и он определенно потребует ресурсы [для отслеживания изменений].

Другой вариант ... сделай сам.

...