Как просмотреть журналы транзакций в SQL Server 2008 [закрыто]

Мне нужно просмотреть журналы транзакций базы данных на SQL Server 2008 чтобы найти транзакцию удаления и, надеюсь, откатить ее.

к сожалению, я понятия не имею, с чего начать, и мне трудно определить, какие из них хороший статьи в Google.

Что делать?

3 ответов


вы можете использовать недокументированные

DBCC LOG(databasename, typeofoutput)

где typeofoutput:

0: Return only the minimum of information for each operation -- the operation, its context and the transaction ID. (Default)
1: As 0, but also retrieve any flags and the log record length.
2: As 1, but also retrieve the object name, index name, page ID and slot ID.
3: Full informational dump of each operation.
4: As 3 but includes a hex dump of the current transaction log row.

например, DBCC LOG (database, 1)

вы также можете попробовать fn_dblog.

для отката транзакции с помощью журнала транзакций я бы посмотрел на сообщение переполнения стека откат транзакции с помощью журнала транзакций.


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

Примечание: это имеет смысл только если ваша база данных находится в режиме полного восстановления.

функции SQL:

DBCC LOG и fn_dblog-подробнее здесь и здесь.

сторонних инструменты:

жаба для SQL Server и Журнал ApexSQL.

вы также можете проверить несколько других тем, где это обсуждалось:


Я случайно удалил целую кучу данных в неправильной среде, и этот пост был одним из первых, которые я нашел.

поскольку я одновременно паниковал и искал решение, я пошел за первым, что увидел - Журналы ApexSQL, что составляло $2000, что было приемлемой стоимостью.

однако с тех пор я узнал, что жаба для Sql Server может генерировать сценарии отмены из журналов транзакций, и это всего лишь $655.

, нашел еще более дешевый вариант SysToolsGroup Log Analyzer и это всего лишь $ 300.