можно ли восстановить удаленные данные из таблиц Sql Server
Можно ли восстановить удаленные данные из sql server 2008.
таблица находится на сервере, а не в локальном.
Сервер ведет журнал для каждой удаленной записи.Вы можете запросить эти журналы с помощью функции SQL server 'fn_dblog' с именем таблицы, и она выдаст вам все удаленные записи из журнала.
Select [RowLog Contents 0] FROM sys.fn_dblog(NULL, NULL) WHERE AllocUnitName = 'dbo.TableName' AND Context IN ( 'LCX_MARK_AS_GHOST', 'LCX_HEAP' ) AND Operation in ( 'LOP_DELETE_ROWS' )
Это одна работа, но не на все времена? в чем же причина?
Эта ссылка будет полезна для вас : http://www.mssqltips.com/sqlservertip/3160/recover-deleted-sql-server-data-and-tables-with-the-help-of-transaction-log-and-lsns/
контент взят из ссылки...
http://thehobt.blogspot.com/2008/12/recovering-deleted-data-in-sql-server.html[^]
Резервное копирование и восстановление журнала транзакций с помощью предложения STOPAT
Если ваша база данных настроена на использование модели полного восстановления, у вас может быть опция резервного копирования и восстановления, даже если вы не делали резервную копию до изменения данных. Для того чтобы это сделать:
1.Резервное копирование заключительного фрагмента журнала транзакций, используя обычный синтаксис журнала резервного копирования и задание с параметром norecovery. В разделе резервные копии заключительного фрагмента журнала на сайте MSDN.
2.восстановите самую последнюю полную резервную копию, не забыв указать NORECOVERY.
3.Восстановление последней разностной резервной копии, выбрав параметр norecovery.
4.восстановите каждую резервную копию журнала транзакций, сделанную с момента последней полной или дифференциальной резервной копии. Для окончательной резервной копии журнала используйте предложение STOPAT, чтобы остановить восстановление непосредственно перед изменением данных. Прежде чем получить доступ к базе данных, вам необходимо выполнить восстановление, поэтому вы можете сделать это либо как часть этого восстановления, либо как отдельную операцию. Для получения дополнительной информации взгляните на восстановление до определенного момента времени на MSDN.
Это, конечно, уничтожит любую активность, которая имела место после отметки time/LSN/, указанной в предложении STOPAT.
Используйте обозреватель журналов или аналогичный инструмент восстановления для создания сценариев отмены
Ряд поставщиков предлагают инструменты, позволяющие просматривать журнал транзакций и создавать сценарии отмены для отката изменений данных. Я сам имел случай использовать любую из этих утилит, однако наиболее часто рекомендуемыми утилитами являются RedGate SQL Log Rescue и ApexSQL ApexSQL Log. Это не штекеры – как я уже сказал, я не использовал ни один из них, поэтому, пожалуйста, не жалуйтесь, если вы делаете, и они не работают для вас.
спасибо Вам за ответ
Если у вас нет резервной копии вашей базы данных, AFAIK вы не можете восстановить удаленные данные.
Кроме как с помощью методов, подробно описанных в решениях 1 и 2 от 2 лет назад :-)
:( Все, что я могу сказать, когда я посетил эту тему, ответа не было. Вы можете попробовать эту ссылку: http://www.codeproject.com/Answers/599155/canplusiplusrecoverplusdeletedplusdataplusfromplus#answer3 на который я наткнулся сегодня на форуме.
Я тоже замечал это довольно часто в последнее время - думал, что это просто моя медленная связь. Если я обнаружу его снова я опубликую его на сайте ошибки так как теперь я знаю что я не единственный :-)
Более чем вероятно, не. Пространство будет повторно использовано, и удаленные данные будут перезаписаны.
Лучший способ избежать этой ситуации-регулярное резервное копирование данных.