Как восстановить базу данных, случайно удаленную с помощью sql server 2008?
Эта ссылка отвечает на некоторые общие вопросы, связанные с этим:
Слоган:
Для отката изменений вам потребуется полная резервная копия. Если у вас нет полной резервной копии, вы не сможете вернуться назад. Сожалею.
Это будет немного долго, в надежде на то, что предмет будет более конкретным, чем другие ответы.
Когда вы удаляете базу данных, лежащие в ее основе файлы не перемещаются в корзину, а фактически удаляются. «Удалено» означает, что записи каталога, которые файловая система NTFS использует для описания местоположения и длины, удаляются, и, что касается ОС, пространство на диске, где находятся эти файлы, становится свободным для использования в любых целях. Там могут быть записаны другие файлы, которые перезапишут данные, которые вы хотите «вернуть».
Возможно, удастся «восстановить» файлы данных и журналов с помощью сторонней утилиты восстановления. Проблема заключается в том, что эти утилиты часто не возвращают файл на 100% в целости и сохранности, поскольку данные могли уже быть записаны в область на диске, где файл был ранее расположен. Это особенно верно, если система продолжала работать некоторое время после удаления файлов при удалении базы данных. (Лучшим, но не лучшим вариантом было бы выключить систему сразу после удаления базы данных. Я предполагаю, что этого не произошло.)
Если файлы не на 100% должным образом восстановлены утилитой восстановления, ваши данные и / или внутренняя структура файлов баз данных будут повреждены. SQL Server может заметить это, когда файлы возвращаются в оперативный режим (с помощью команды присоединения), а затем помечает базу данных как подозрительную. Вы бы вернулись туда, где были, без рабочей базы данных.
Даже если SQL Server успешно переведет базу данных в оперативный режим, это не гарантирует, что ваши данные не были повреждены. Первое, что вы должны сделать после того, как подключите потенциально опасную базу данных с помощью команды присоединения, - это запустить для нее DBCC CHECKDB (). Если эта команда работает без проблем, вероятно, все в порядке (и вам следует немедленно сделать резервную копию). Более вероятно, что он обнаружит повреждение, которое невозможно исправить.
Если вам абсолютно необходимо вернуть данные, в Интернете есть статьи, в которых рассказывается о различных героических действиях, пытающихся извлечь как можно больше не поврежденных данных из поврежденной базы данных. Вы можете дать им шанс, или вам может быть лучше позвонить специалисту или даже Microsoft (который, вероятно, просто укажет вам на своего партнера).
Хотя «героизм» интересен с технической точки зрения, лучше всего избегать ситуаций, когда вам приходится прибегать к необычным средствам, чтобы вернуть свои данные. (Это верно вдвойне (фактически в три раза) для людей, которые не администрируют базы данных на постоянной основе.) Самое простое, что можно сделать, - это регулярно делать резервные копии данных любыми необходимыми средствами и тестировать процесс восстановления. Дисковое пространство кажется дорогим, пока вы не поймете, насколько дорого обходится получение данных через сторонних специалистов.
У вас есть резервная копия? Если да, восстановите из этого.
В противном случае у вас нет других вариантов. Файлы MDF и LDF удаляются (см. УДАЛИТЬ БАЗУ ДАННЫХ)
Одно из возможных решений (это сработает, только если сделать это немедленно):
Если это не сработает, ваш единственный вариант - обратиться в какую-нибудь профессиональную компанию по восстановлению данных.
если транзакция, которую вы случайно удалили, была выполнена в Begin
транзакция и не зафиксирована, можно восстановить с помощью функции fn_dblog (). вы можете применить приведенную ниже команду для просмотра случайно удаленных данных.
SELECT
[Current LSN],
[Transaction ID],
[Operation],
[Context],
[AllocUnitName]
FROM fn_dbLog(NULL, NULL)
WHERE [Operation] = 'LOP_DELETE_ROWS'
Однако процесс слишком долгий и трудоемкий. это легко сделать, используя бесплатная программа просмотра файлов SQL ldf, что даст вам более подходящий результат, а также восстановит удаленные записи базы данных за несколько кликов.
Если с момента удаления на этот диск ничего не было записано, они все еще там. Просто выделение в файловой системе ушло. Пытаться https://www.ccleaner.com/recuva/download - Работал у меня :-)