Published on

July 20, 2000

Понимание журналов транзакций SQL Server

Как администратор баз данных (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.

Ссылки:

  1. SQL Server Books Online
  2. “Как я могу просмотреть журнал SQL Server?” – http://www.ntfaq.com/Faq.cfm?FaqID=686
  3. “Методы обновления, используемые в MS SQL 6.5” – http://www.databasejournal.com/features/mssql/article.php/1442311
  4. “Методы обновления, используемые в MS SQL 7.0” – http://www.databasejournal.com/features/mssql/article.php/1443671

Спасибо за прочтение этой статьи. Следите за новыми советами и трюками по SQL Server!

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.