Как читать журналы транзакций?
На этой странице
- Что такое журналы транзакций?
- Чтение журналов транзакций
- Чтение журналов транзакций с помощью fn_dblog()
- Чтение журналов транзакций с помощью fn_dump_dblog()
- Чтение журналов транзакций с помощью Database Consistency Checker (DBCC) PAGE.
- Эффективно ли вы отслеживаете журналы транзакций?
Что такое журналы транзакций?
Журналы транзакций содержат информацию обо всех транзакциях, выполненных на сервере SQL Server. Журналы транзакций хранятся в одном файле LDF в папке базы данных по умолчанию C:\Program Files\Microsoft SQL Server\MSSQL. Каждая запись журнала транзакций имеет уникальный связанный с ней номер последовательности журнала (LSN). Файл журнала транзакций содержит огромный объем данных, и его анализ вручную - сложный процесс.
Чтение журналов транзакций
Microsoft не предоставила специального инструмента для просмотра, мониторинга и аудита журналов транзакций SQL Server. Однако есть несколько методов чтения журналов транзакций. Это
- fn_dblog()
- fn_dump_dblog()
- Команда DBCC PAGE.
Чтение журналов транзакций с помощью fn_dblog()
Функция fn_dblog() при вызове в базе данных позволяет просматривать онлайн-журналы и активные журналы транзакций. Эта функция принимает два параметра, которые указывают LSN первой и последней записей журнала, которые нужно извлечь. Чтобы просмотреть все активные и онлайн-журналы, можно просто указать (NULL, NULL) в качестве параметров в функции fn_dblog().
Функцию можно выполнить следующим образом:
SELECT * FROM fn_dblog(NULL,NULL)
Эта функция возвращает таблицу со 129 столбцами по умолчанию.
Чтение журналов транзакций с помощью fn_dump_dblog()
Функция fn_dump_dblog() позволяет просматривать онлайн-журналы транзакций и журналы резервных копий. Она использует 63 параметра, и все они должны быть указаны для выполнения этой функции. Для получения всех журналов транзакций можно использовать значение DEFAULT для всех параметров.
Эту функцию можно выполнить следующим образом:
SELECT * FROM fn_dump_dblog
(NULL,NULL,NULL,NULL,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,
DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,
DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,
DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,
DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,
DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,
DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT,
DEFAULT,DEFAULT,DEFAULT,DEFAULT, DEFAULT)
Эта функция также возвращает таблицу со 129 столбцами по умолчанию.
Преимущество использования fn_dump_dblog() заключается в том, что она позволяет восстановить базу данных на определенный момент времени с помощью оператора WITH STOPBEFOREMARK. Это позволяет администраторам БД исправлять ошибки транзакций или отменять изменения, влияющие на производительность базы данных.
Чтение журналов транзакций с помощью Database Consistency Checker (DBCC) PAGE
Команда DBCC page используется для просмотра любой страницы на сервере SQL Server. Необходимо включить флаг трассировки 3604, который помогает перенаправить вывод в окно результатов для просмотра журналов транзакций с помощью этой команды. Команда DBCC page для просмотра журналов транзакций может быть следующей:
DBCC TRACEON (3604, -1)
DBCC PAGE ( {'Database name' | DB_ID}, File_number, Page_number [, output={0|1|2|3} ])
Эта команда отображает страницу журналов транзакций, которую все еще сложно интерпретировать и анализировать.
Эффективно ли вы отслеживаете журналы транзакций?
Все упомянутые выше методы не документированы корпорацией Microsoft, и вы можете использовать их на свой страх и риск. Просмотр и анализ журналов транзакций с помощью функций fn_dblog() и fn_dump_dblog() затруднен, поскольку обе эти функции по умолчанию возвращают 129 столбцов. Эти данные необходимо дополнительно детализировать с помощью запросов для получения релевантной и необходимой информации. Для администраторов БД становится практически сложно просматривать, интерпретировать и анализировать журналы транзакций для выявления аномалий. Аудит журналов транзакций с использованием этих методов неэффективен. Вместо этого вы можете использовать решение для управления журналами для чтения и аудита журналов транзакций.
EventLog Analyzer - это решение для управления журналами, которое может собирать, анализировать, индексировать и анализировать журналы транзакций. Оно создает комплексные отчеты о журналах транзакций SQL Server, включая отчет о резервном копировании журнала транзакций. С помощью EventLog Analyzer можно настроить оповещения в режиме реального времени об аномальных действиях, происходящих в экземпляре SQL. Это позволяет уведомить администраторов БД посредством SMS и электронной почты о потенциальной угрозе или атаке. Ознакомьтесь с возможностями аудита SQL Server в EventLog Analyzer.