SQL Server - Могу ли я загрузить MDF без файла LDF без потери данных?

StackOverflow https://stackoverflow.com/questions/3972092

  •  09-10-2019
  •  | 
  •  

Вопрос

У меня есть файл базы данных резервного копирования (т.е. test.mdf), однако у меня нет файла LDF. Мне сказали, что SQL Server 2008 R2 может загрузить MDF без LDF.

Это правда?

Спасибо

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

Решение

Предполагая, что база данных была очищена чисто, вы должны быть в состоянии использовать sp_attach_single_file_db. или новее Создать базу данных ... для прикрепления синтаксис.

EXEC sp_attach_single_file_db 
    @dbname = 'YourDB', 
    @physname = N'C:\YourFile.mdf';

ИЛИ

CREATE DATABASE YourDB
      ON (FILENAME = 'c:\YourFile.mdf') 
      FOR ATTACH_REBUILD_LOG;

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

Другой вариант sp_attach_single_file_db это Создать базу данных Команда с опцией aphard_rebuild_log.

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

http://forums.ass.ress/t/1903548.aspx.

У вас есть два варианта:

  1. Вы можете создать пустую базу данных с тем же именем и физическим макетом файлов, выключить сервер, своп в файлах, которые вы хотите прикрепить вместо пустых файлов БД, и запускайте сервер. База данных должна придумать в режиме подозреваемого. Затем вы можете изменить аварию набора базы данных, чтобы положить его в аварийный режим, а затем запустить DBCC CheckDB Repail_Allow_data_Loss. Это вытащит как можно больше данных из журнала, чтобы сделать базу данных согласуться, но, возможно, придется удалить некоторые данные для создания базы данных. Это вариант, который, скорее всего, получает максимальные данные.
  2. Вы можете попытаться использовать базу данных CREACE для ACTILL_REBUILD_LOG, чтобы увидеть, вернет ли это. Если база данных была очищена, вы сможете добиться успеха. Существует также вероятность того, что база данных будет непоследовательной или коррумпированной, если есть транзакции, которые не могут быть возвращены. Вы должны в любом случае запустить dbcc checkdb repain_allow_data_loss, чтобы сделать вашу базу данных согласованной. В этом мероприятии SQL Server не предпримет попыток мою информацию из журнала. Это проигнорирует содержимое журнала. Если бы были транзакции в процессе, нет отката, будет возможен, поэтому потребуется allow_data_loss.

Для получения дополнительной информации, пожалуйста, попробуйте обратиться к:

http://blog.sqlauthority.com/2008/07/21/sql-server-fix-Error-9004-an- repror-occurred- Вступает-drocessing-the-log-for-database-if-Possible-Restore- от резервной копии - if-a-backup-не доступно, это может быть необходимым для восстановления - журнал /

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