Я по ошибке удалил около 2 000 000 записей из удаленной таблицы SQL Server 2008. Сервер не предоставляет мне доступ к файлам резервных копий на стороне сервера.
Есть ли способ вернуть эти записи?
Я по ошибке удалил около 2 000 000 записей из удаленной таблицы SQL Server 2008. Сервер не предоставляет мне доступ к файлам резервных копий на стороне сервера.
Есть ли способ вернуть эти записи?
Ответы:
Ваша база данных находится в режиме полного восстановления?
Если да, вы делаете резервные копии журнала транзакций?
Если нет (не в режиме полного восстановления), восстановите последнюю полную резервную копию как базу данных с другим именем. (Не перезаписывайте базу данных, которую вы уже получили.) Оттуда вы сможете восстановить все записи, которые были в сети во время резервного копирования, но с тех пор вы потеряете все изменения.
SQL Server ведет журналы для каждой удаленной записи. Вы можете запросить эти журналы с помощью функции fn_dblog
SQL Server.
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://raresql.com/2011/10/22/how-to-recover-deleted-data-from-sql-sever/
@user1059637
- Как вы относитесь к людям, добавляющим функциональность в ваш код?
К сожалению, мы не сможем помочь вам без дополнительной информации. Но из вашего вопроса я вижу, что вы удалили то, что кажется 2 миллионами записей из вашей базы данных. Скорее всего, вы не сможете восстановить эту информацию, если у вас нет полной регистрации в вашей базе данных и вы не приобрели некоторые очень специфические инструменты.
Если вы сможете более подробно описать, что именно вы думаете, что сделали, и почему вы чувствуете, что не можете получить записи обратно, и можете описать организацию вашей базы данных, то мы можем помочь вам немного больше.
Несколько общих советов: если вы думаете, что удалили 2 миллиона записей, вы, вероятно, сейчас немного взволнованы. Таким образом, вы должны сделать пятиминутный перерыв, успокоиться и вернуться к проблеме. Кроме того, вы должны немедленно сообщить своему боссу, если это разумно (не будите кого-то в 2 часа ночи, чтобы сказать ему), и что вы работаете над решением. Лучше признать, что случилось, чем отчаянно пытаться выздороветь и потенциально усугубить ситуацию и скрыть детали. Знание того, что ваш начальник может помочь, поможет вам решить проблему. Как я уже сказал, просто несколько общих советов.