Как определить, какие базы данных используются в SQL Server 2000 - PullRequest
6 голосов
/ 13 октября 2010

У меня есть блок SQL Server 2000, в котором находятся несколько баз данных, некоторые из которых, вероятно, больше не используются. Я хотел бы привести в порядок вещи, сначала отключив их, а затем удалив их все вместе. Проблема в том, что я не знаю, как определить, какие из них все еще активно используются (внешние источники могут подключаться или не подключаться, использовать их и т. Д.)

Есть ли способ узнать время последней активности в каждой базе данных? Я знаю, что SQL Server хранит записи некоторых вещей в таблицах sys, но я не уверен, что именно там хранится. Если то, что мне нужно, не может быть найдено там, могу ли я что-то настроить для отслеживания использования с этого момента? В идеале я хотел бы видеть использование «до этого момента времени», но «с этого момента» было бы лучше, чем ничего. Спасибо.

Ответы [ 2 ]

2 голосов
/ 14 октября 2010

Попробуйте включить аудит для входа в SqlServer. На основе используемых учетных записей пользователей вы можете увидеть, используется ли эта база данных или нет. Аудит можно найти здесь:

EnterpriseManager -> Right click database server -> Properties 
-> Security -> Audit Level -> set to All

Это заполнит журналы, которые вы можете увидеть под /Management/SqlServerLogs, и этот журнал обычно также сохраняется здесь C:\Program Files\Microsoft SQL Server\MSSQL\log\, чтобы вы могли анализировать и искать его.

0 голосов
/ 13 октября 2010

Насколько я знаю, в SQL Server нет ничего встроенного, чтобы дать вам дату и время "последнего использования". В дальнейшем вы можете отслеживать использование, выполняя такой запрос на регулярной основе.

select db_name(dbid), count(*) 
    from master..sysprocesses 
    group by db_name(dbid)
    order by db_name(dbid)
...