Вопрос

В нашей тестовой базе данных внезапно пропали строки.Мы хотим их вернуть.

Есть ли способ проанализировать все, что произошло с базой данных сегодня?Каждый оператор SQL?Я предполагаю, что подобные данные есть в журнале транзакций, но не знаю, как их просмотреть.

Есть ли способ отменить операции удаления?

КСТАТИ:Да, у нас есть резервная копия, но мы бы предпочли также найти причину удаления...

Это было полезно?

Решение

Вы можете сделать это с помощью некоторых Красные воротаинструменты, но это стоит денег.Взгляни на Спасение журнала SQL.

В противном случае у меня возникнет соблазн сделать восстановление.

Другие советы

[поздний ответ, но, надеюсь, полезен]

Существует способ восстановить удаленные строки с помощью журнала транзакций, но только если вы используете сторонние инструменты и только ваша база данных находится в режиме полного восстановления.

Dell (ранее Quest) имеет Жаба для SQL Server и ApexSQL имеет Журнал ApexSQL и Восстановление ApexSQL который также может читать t-log и восстанавливать данные.К сожалению, Log Rescue from Red Gate может читать журналы только на SQL Server 2000.

Существует также способ прочитать t-log с помощью недокументированной команды dbcc log.Посмотреть более подробную информацию здесь.

Учитывая, что у вас уже есть резервные копии базы данных, вы можете восстановить их в отдельной базе данных, а затем использовать один из многих инструментов сравнения данных, существующих на рынке, чтобы вставить недостающие данные в рабочую базу данных.Конечно, это может восстановить только удаление данных до создания резервной копии.

Для этого вам понадобится сторонний инструмент.Инструмент должен иметь возможность заходить в журналы транзакций и просматривать записи журнала, чтобы вы могли видеть, что произошло.Я не использовал ни один из этих инструментов, но для начала я бы попробовал SQL Log Rescue от Red Gate.Попробуйте:

http://www.red-gate.com/products/SQL_Log_Rescue/index.htm

Я бы попробовал ChronicDB с бесплатной версией, а не платил за Red Gate.

http://chronicdb.com/blogs/undelete_from_whoops

Вы можете отменить транзакцию, используя Rollback команда в SQL Server.Но вам необходимо знать, что транзакцию можно откатить, если транзакция была выполнена в течение Begin сделка.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top