2012-06-19 3 views
1

Можно создать дубликат:
How can I determine the last time any record changed in a specific Sql Server 2000 database?Проверить доступность последней базы данных?

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

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

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

Проблема у меня в том, что я не уверен, как проверить активность в данной базе данных? Есть ли что-то, что я могу использовать, что говорит мне, если что-то происходит?

+0

Это может помочь вам http://dba.stackexchange.com/questions/2050/how-can-i-tell-if-a-sql-server-database-is-still-being-used – praveen

+0

Спасибо, Кен , Кажется, это повторяющийся вопрос. Я проголосовал за его закрытие. –

ответ

1

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

Однако я обычно считают, что установка подозрительных баз данных в автономном режиме, как правило, вызывает никаких проблем, чтобы показать себя ;-)

+0

Я не знаю, что я согласен с тем, что Profiler «отлично» - неплохо принести ваш сервер на колени, если вы не будете осторожны. Если вы хотите измерить активность в течение более длительного периода времени, я бы предположил, что трассировка на стороне сервера намного лучше (и более «отлично»). Используйте Profiler для настройки трассировки, но не используйте Profiler для запуска трассировки, просмотра активности по мере ее потока на вашем рабочем столе и т. Д. –

+0

@AaronBertrand - Справедливая точка. Я подтвердил ваш ответ –

1

В SQL Server 2000, к сожалению, не так много вы можете сделать по этому поводу. SQL Server не отслеживает это самостоятельно удобным образом, чтобы вы просто запускали запрос. Вы можете настроить трассировку на стороне сервера в течение дня или недели, а затем вывести данные из трассировки и группы по базе данных_id, чтобы узнать, какие базы данных были затронуты в этот период.

Отключение доступа и ожидание, чтобы люди жаловались - это неправильный путь ИМХО. Во-первых, что, если вы откажете в доступе к важной базе данных? Как насчет базы данных, доступ к которой возможен только в конце месяца? Что делать, если единственный человек, который использует эту базу данных, находится в отпуске? Если вы отключите доступ, и вы можете вернуть его достаточно быстро, это может быть хорошо, но я бы очень осторожно относился к этому подходу.

В SQL Server 2005 и выше вы можете запросить DMV в каждой базе данных, например sys.dm_db_index_usage_stats, которая сообщит вам о последнем поиске/проверке/обновлении пользователя. Вы также можете настроить простые проверки. I blogged about this here (хотя это может не помочь вам прямо сейчас).

Смежные вопросы