Откат транзакции с использованием журнала транзакций
Возможен ли откат транзакций с использованием файла 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. Без сторонних продуктов вы, вероятно, ограничены выполнением восстановления на определенный момент времени в отдельной базе данных и последующим ручным копированием записи обратно в производственную базу данных.