Как прочитать данные файла .TRN? - PullRequest
0 голосов
/ 06 марта 2012

Я восстановил две базы данных, используя два разных файла .BAK (разные ночные файлы резервных копий)

У меня есть ряд данных, которые исчезли из последнего восстановленного .BAK.

Необходимо выяснитьпочему.

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

Ответы [ 2 ]

4 голосов
/ 06 марта 2012

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

Есть также недокументированная функция внутри SQl Server. См. Это сообщение для более подробной информации.

DBCC LOG(databasename, typeofoutput)
2 голосов
/ 06 марта 2012

Пол Рэндал писал об использовании недокументированной функции, чтобы выяснить, кто отбросил таблицу с помощью журнала транзакций , возможно, вы сможете использовать ту же концепцию.

В своем посте он искал пропущенный стол, поэтому я поиграл с ним в моей локальной системе и обнаружил, что вы будете фильтровать для WHERE [Tranaction Name] = 'DELETE', для удаления записи из таблицы.

Итакэтот запрос:


SELECT [Current LSN], [Begin Time], SPID, [Database Name], [Transaction Begin], [Transaction ID], [Transaction Name], [Transaction SID], Context, Operation
FROM ::fn_dblog (null, null)
WHERE [Transaction Name] = 'DELETE'
GO

Возвращает этот вывод


Current LSN Begin Time  SPID    Database Name   Transaction Begin   Transaction ID  Transaction Name    Transaction SID Context Operation
00000474:00000239:0001  2012/03/06 10:09:19:547 58  NULL    NULL    0001:000a67be   DELETE  0x010500000000000515000000628ADB6E31CC6098F269B2B9F8060000  LCX_NULL    LOP_BEGIN_XACT
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...