Базовая информация о сервере и БД

Базовая информация о сервере и БД

Бывают моменты когда вам необходимо начать работать с БД, о которой вы или ничего не знаете или знаете очень мало. Обычно у вас есть 2 варианта: или вы работаете очень давно и чётко понимаете что вам нужно и где это искать или начинаются поисики по интернету. Первый случай скорее всего является проверенным на множестве серверов и его можно считать более менее надёжным, а вот со вторым часто возникают вопросы. Кроме больших затратов времени, ваши поиски могут не дать полную картину и чтобы вы не тратили время в пустую, я решил помочь вам.

Олег написал интересную статью с названием «Исследуем базы данных с помощью T-SQL» (ссылка на статью). В статье вы узнаете как легко получить следующую информацию:

  1. Когда был последний backup всех БД
  2. Список всех Linked Servers
  3. Активные пользовательские соединения
  4. Где лежат файлы БД
  5. Количество записей в таблицах
  6. Активность таблиц
  7. Есть ли синонимы
  8. Какие check-ограничения, значения по-умолчанию и вычисляемые столбцы присутствуют
  9. Рекомендумые индексы для вашей системы
  10. Зависимости
  11. и т.д.

Статья очень объёмная, каждый сможет найти что-то полезное. Так как я сам являюсь Администраторам Баз Данных, то считаю, что при первом осмотре системы будет интересно узнать дату последнего backup, иногда результаты очень удивляют. Вот небольшая вырезка из статьи по этому вопросу:

Каждый хороший dba должен узнать есть ли у него свежий бэкап.

SELECT  @@Servername AS ServerName ,
        d.Name AS DBName ,
        MAX(b.backup_finish_date) AS LastBackupCompleted
FROM    sys.databases d
        LEFT OUTER JOIN msdb..backupset b
                    ON b.database_name = d.name
                       AND b.[type] = 'D'
GROUP BY d.Name
ORDER BY d.Name;

Будет лучше, если вы сразу узнаете путь к файлу с последним бэкапом.

SELECT  @@Servername AS ServerName ,
        d.Name AS DBName ,
        b.Backup_finish_date ,
        bmf.Physical_Device_name
FROM    sys.databases d
        INNER JOIN msdb..backupset b ON b.database_name = d.name
                                        AND b.[type] = 'D'
        INNER JOIN msdb.dbo.backupmediafamily bmf ON b.media_set_id = bmf.media_set_id
ORDER BY d.NAME ,
        b.Backup_finish_date DESC; 

GO

Ещё раз сылка на статью

Запись опубликована в рубрике Полезно и интересно с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Войти с помощью: