Откат транзакции с использованием журнала транзакций

Возможен ли откат транзакций с использованием файла Transactionlog для конкретной записи?

Я использую SQL Server 2005.

4 ответа

Решение

Изначально нет. Я полагаю, что есть некоторые дорогостоящие сторонние инструменты для этого.

Кроме того, вы можете восстановить вашу БД из резервной копии, а затем RESTORE LOGS к моменту времени с STOPAT = '6/30/2009 2:30PM' аргумент.

Доступны Apex и SQL Log Rescue. Если ваши журналы не в FULL режим восстановления, тем не менее, вы можете быть ручей, если вы не можете восстановить.

Из того, что я знаю, вы можете выбрать ApexSQL Log (дорогой, но имеет бесплатную пробную версию) или недокументированные команды SQL Server, такие как DBCC Log и fn_dblog.

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

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

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

Проверьте продукт RedGate LogRescue. Без сторонних продуктов вы, вероятно, ограничены выполнением восстановления на определенный момент времени в отдельной базе данных и последующим ручным копированием записи обратно в производственную базу данных.

Другие вопросы по тегам