c27bharti Ответов: 4

можно ли восстановить удаленные данные из таблиц Sql Server


Можно ли восстановить удаленные данные из sql server 2008.
таблица находится на сервере, а не в локальном.

4 Ответов

Рейтинг:
36

mimran18

Сервер ведет журнал для каждой удаленной записи.Вы можете запросить эти журналы с помощью функции 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' )

Но этот журнал в шестнадцатеричном формате. и вам нужно преобразовать этот шестнадцатеричный формат в ваши фактические данные.
Приведенная ниже статья поможет вам восстановить удаленные записи тем же способом, который был определен выше.

Как восстановить удаленные данные с SQL Server[^]


jaideepsinh

Это одна работа, но не на все времена? в чем же причина?

HardikPatel.SE

Эта ссылка будет полезна для вас : http://www.mssqltips.com/sqlservertip/3160/recover-deleted-sql-server-data-and-tables-with-the-help-of-transaction-log-and-lsns/

Рейтинг:
0

Pandya Anil

контент взят из ссылки...
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. Это не штекеры – как я уже сказал, я не использовал ни один из них, поэтому, пожалуйста, не жалуйтесь, если вы делаете, и они не работают для вас.


c27bharti

спасибо Вам за ответ

Рейтинг:
0

Sandeep Mewara

Если у вас нет резервной копии вашей базы данных, AFAIK вы не можете восстановить удаленные данные.


CHill60

Кроме как с помощью методов, подробно описанных в решениях 1 и 2 от 2 лет назад :-)

Sandeep Mewara

:( Все, что я могу сказать, когда я посетил эту тему, ответа не было. Вы можете попробовать эту ссылку: http://www.codeproject.com/Answers/599155/canplusiplusrecoverplusdeletedplusdataplusfromplus#answer3 на который я наткнулся сегодня на форуме.

CHill60

Я тоже замечал это довольно часто в последнее время - думал, что это просто моя медленная связь. Если я обнаружу его снова я опубликую его на сайте ошибки так как теперь я знаю что я не единственный :-)

Рейтинг:
0

Dave Kreskowiak

Более чем вероятно, не. Пространство будет повторно использовано, и удаленные данные будут перезаписаны.

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