Восстановление удаленной записи в SQL Server

я случайно удалил строку в таблице и хотите восстановить его. Я нашел решение здесь:как восстановить удаленные записи в MS SQL server

Я пытался восстановить базу данных из резервной копии после удаления. Но я не могу восстановить базу данных с опцией STOPAT:

RESTORE LOG database FROM  DISK = N'X:\database.BAK' WITH
STOPAT = N'2011-02-12T00:00:00', RECOVERY

у меня есть следующая ошибка:

Msg 3117, Level 16, State 4, Line 1
The log or differential backup cannot be restored because no files are
ready to rollforward.
Msg 3013, Level 16, State 1, Line 1
RESTORE LOG is terminating abnormally.

4 ответа:

Я пытался восстановить базу данных из резервное копирование после удаления.

вы не можете восстановить удаленные записи из резервной копии, сделанной после удалить. Вам нужно:

  • последняя полная резервная копия взята до удалить
  • все резервные копии журналов, сделанные между последней полной резервной копией до первой резервной копии журнала, взятой один после удалить
  • база данных должна быть в полном объеме режим восстановления

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

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

Если ваша база данных была в режиме полного восстановления, то вы можете попробовать прочитать журнал транзакций и восстановить данные оттуда с помощью коммерческого инструмента, такого как Журнал ApexSQL или команды sql server, такие как DBCC LOG или fn_log.

также вы можете попробовать посмотреть на эти сообщения для более подробной информации:

как отменить операцию удаления в SQL Server 2005?

как просматривать журналы транзакций в SQL Server 2008

принято от этой ссылке -

разностная резервная копия, содержащая только измененные страницы данных с момента последней полной резервной копии базы данных, может быть восстановлена только в сочетании с полной резервной копией, аналогичной использованию резервных копий журналов. У вас нет возможности восстанавливать только отдельные таблицы или объекты, но вы можете восстановить их на уровне базы данных, файловой группы, файла и страницы. Вы также можете восстановить до определенного момента времени из любой резервной копии (при условии, что вы восстановили необходимые предшествующие полные, diff, журналы).

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

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

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

отказ от ответственности: я работаю инженером поддержки продукта в ApexSQL