Как администратор баз данных (DBA), важно иметь глубокое понимание внутренней архитектуры SQL Server. Одним из ключевых аспектов SQL Server является журнал транзакций, который играет важную роль в обеспечении целостности данных и возможности их восстановления. В этой статье мы рассмотрим концепции и различия в просмотре журнала транзакций между SQL Server 6.5 и SQL Server 7.0.
SQL Server 6.5
В SQL Server 6.5 журнал транзакций хранится в таблице системы syslogs. Эта таблица используется SQL Server для операций восстановления и продвижения вперед. Однако важно отметить, что таблицу syslogs нельзя изменять вручную.
Для просмотра журнала транзакций в SQL Server 6.5 можно использовать следующий оператор select:
SELECT xactid AS TRAN_ID, op AS LOG_RECORD FROM syslogsСтолбец “op” в таблице syslogs представляет различные типы операций:
- op = 0 – НАЧАЛО ТРАНЗАКЦИИ
- op = 4 – Вставка строки
- op = 5 – Удаление строки
- op = 9 – Изменение строки
- op = 30 – КОНЕЦ ТРАНЗАКЦИИ
SQL Server 7.0
В SQL Server 7.0 журнал транзакций больше не хранится в таблице системы syslogs. Вместо этого он теперь является файлом операционной системы. Поэтому попытка использовать тот же самый оператор select, что и в SQL Server 6.5, приведет к ошибке.
Для просмотра журнала транзакций в SQL Server 7.0 можно использовать следующую неопубликованную команду:
DBCC log ({dbid|dbname}, [, type={0|1|2|3|4}])Параметры для этой команды следующие:
- Dbid или dbname – Введите либо dbid, либо имя интересующей вас базы данных.
- type – Указывает тип вывода:
- 0 – Минимальная информация (операция, контекст, идентификатор транзакции)
- 1 – Больше информации (плюс флаги, теги, длина строки)
- 2 – Очень подробная информация (плюс имя объекта, имя индекса, идентификатор страницы, идентификатор слота)
- 3 – Полная информация о каждой операции
- 4 – Полная информация о каждой операции плюс шестнадцатеричный дамп текущей строки журнала транзакций.
По умолчанию параметр type установлен на 0.
Например, для просмотра журнала транзакций базы данных master в SQL Server 7.0 можно выполнить следующую команду:
DBCC log (master)Четкое понимание того, как просматривать журнал транзакций в разных версиях SQL Server, может быть чрезвычайно полезным для DBA. Это не только помогает в решении проблем, но также предоставляет представление о внутренней работе SQL Server.
Ссылки:
- SQL Server Books Online
- “Как я могу просмотреть журнал SQL Server?” – http://www.ntfaq.com/Faq.cfm?FaqID=686
- “Методы обновления, используемые в MS SQL 6.5” – http://www.databasejournal.com/features/mssql/article.php/1442311
- “Методы обновления, используемые в MS SQL 7.0” – http://www.databasejournal.com/features/mssql/article.php/1443671
Спасибо за прочтение этой статьи. Следите за новыми советами и трюками по SQL Server!