Восстановить удаленную запись в SQL Server - PullRequest
3 голосов
/ 14 февраля 2011

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

Я пытался восстановить базу данных из резервной копии, сделанной после удаления. Но я не могу восстановить базу данных с параметром 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 ]

8 голосов
/ 14 февраля 2011

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

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

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

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

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

3 голосов
/ 15 апреля 2013

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

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

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

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

2 голосов
/ 14 февраля 2011

Взято с этой ссылки -

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

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

1 голос
/ 07 мая 2014

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

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

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

...