SQL Server: как получить последние 12 часов журналов с помощью fn_dblog?

Случайно аннулировав столбец в MS SQL 2012, я рассмотрю, как использовать fn_dblog в первый раз. Я ранее поддерживал таблицу и удалял ее сегодня утром. Я использую режим полного восстановления (код ниже для тех, кто в будущем хотел бы узнать):

SELECT name, recovery_model_desc  
   FROM sys.databases  
      WHERE name = 'model' ;  
GO

Можно ли отменить транзакцию DROP TABLE, которая была совершена в течение последних 12 часов?

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

SELECT [Current LSN],
       [Operation],
       [Transaction ID],
       [Parent Transaction ID],
       [Begin Time],
       [Transaction Name],
       [Transaction SID]
FROM fn_dblog(NULL, NULL)
WHERE [Operation] = 'LOP_BEGIN_XACT'

Как вернуть предыдущие транзакции с помощью этого запроса?

Здесь я на незнакомой территории. О чем еще я должен думать?

  • Как узнать, существуют ли журналы и не были усечены?
  • Легче восстановить таблицу вместо удаления столбца?
  • В чем опасность использования fn_fblog? В сообщении в блоге я нашел это ( https://raresql.com/2013/04/15/sql-server-undocumented-function-fn_dblog/ ):

    «Без сомнения, fn_dblog является одной из полезных недокументированных функций, но не использует эту функцию на рабочем сервере, если не требуется иное». Что является причиной этого?

=== EDIT ===

На стороне примечание, очень полезная статья здесь: Очень полезное введение в регистрацию MS SQL: http://www.sqlshack.com/reading-sql-server-transaction-log/

sql-server,transaction-log,

0

Ответов: 0

SQL Server: как получить последние 12 часов журналов с помощью fn_dblog?

Случайно аннулировав столбец в MS SQL 2012, я рассмотрю, как использовать fn_dblog в первый раз. Я ранее поддерживал таблицу и удалял ее сегодня утром. Я использую режим полного восстановления (код ниже для тех, кто в будущем хотел бы узнать):

SELECT name, recovery_model_desc  
   FROM sys.databases  
      WHERE name = 'model' ;  
GO

Можно ли отменить транзакцию DROP TABLE, которая была совершена в течение последних 12 часов?

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

SELECT [Current LSN],
       [Operation],
       [Transaction ID],
       [Parent Transaction ID],
       [Begin Time],
       [Transaction Name],
       [Transaction SID]
FROM fn_dblog(NULL, NULL)
WHERE [Operation] = 'LOP_BEGIN_XACT'

Как вернуть предыдущие транзакции с помощью этого запроса?

Здесь я на незнакомой территории. О чем еще я должен думать?

  • Как узнать, существуют ли журналы и не были усечены?
  • Легче восстановить таблицу вместо удаления столбца?
  • В чем опасность использования fn_fblog? В сообщении в блоге я нашел это ( https://raresql.com/2013/04/15/sql-server-undocumented-function-fn_dblog/ ):

    «Без сомнения, fn_dblog является одной из полезных недокументированных функций, но не использует эту функцию на рабочем сервере, если не требуется иное». Что является причиной этого?

=== EDIT ===

На стороне примечание, очень полезная статья здесь: Очень полезное введение в регистрацию MS SQL: http://www.sqlshack.com/reading-sql-server-transaction-log/

00SQL-сервер, журнала транзакций,