Подтвердить что ты не робот

Восстановление базы данных из .mdf и .ldf файлов SQL Server 2008

По какой-то причине мне нужно удалить SQL Server 2008 R2, но до этого я скопировал два файла (.mdf и .ldf) моей базы данных из

C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.MSSQL2008\MSSQL\DATA

Теперь возникает вопрос: возможно ли восстановить базу данных из этих файлов в моем новом установленном SQL Server 2008 R2.

Если да: тогда как я могу это сделать?

Спасибо.

4b9b3361

Ответ 1

Да, это возможно. Шаги:

  • Сначала поместите файл .mdf и .ldf в папку C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\

  • Затем перейдите к sql-программному обеспечению, щелкните правой кнопкой мыши "Базы данных" и нажмите "Прикрепить", чтобы открыть диалоговое окно "Прикрепить базы данных"

  • Нажмите кнопку "Добавить", чтобы открыть и найти файлы базы данных из папки C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\

  • Нажмите кнопку "ОК". SQL Server Management Studio загружает базу данных из файла .mdf.

Ответ 2

Первый поиск в Google дал мне этот ответ. Поэтому я подумал об обновлении этой версии с новой версией прикрепления, отсоединением.

Create database dbname 
On 
(   
Filename= 'path where you copied files',   
Filename ='path where you copied log'
)
For attach; 

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

Create database dbname 
    On 
    (   
    Filename= 'path where you copied files'   
    )
    For attach; 

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

Вот что MSDN должен сказать об этом.

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

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

Операции 1.attach-and-detach также отключают цепочку владения междоменной базой данных для базы данных
2. Надежность базы данных отключена
3.Добавление базы данных только для чтения теряет информацию о дифференциальных основах дифференциальных резервных копий.

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

Литература:
https://msdn.microsoft.com/en-in/library/ms190794.aspx

Ответ 3

Из script (тот, который работает):

CREATE DATABASE Northwind
ON ( FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\Northwind.mdf' )
LOG ON ( FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\Northwind_log.ldf')
GO

очевидно, обновить путь:

C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA

Где находятся ваши .mdf и .ldf.

Ответ 4

У меня есть ответ для вас Да, возможно.

Перейдите к

SQL Server Management Studio > выберите "База данных" > нажмите "Прикрепить"

Затем выберите и добавьте файлы .mdf и .ldf. Нажмите "ОК".

Ответ 5

use test
go
alter proc restore_mdf_ldf_main (@database varchar(100), @mdf varchar(100),@ldf varchar(100),@filename varchar(200))
as
begin 
begin try
RESTORE DATABASE @database FROM DISK = @FileName
with norecovery,
MOVE @mdf TO 'D:\sql samples\sample.mdf',
MOVE @ldf TO 'D:\sql samples\sample.ldf'
end try
begin catch
SELECT ERROR_MESSAGE() AS ErrorMessage;
print 'Restoring of the database ' + @database + ' failed';
end catch
end

exec restore_mdf_ldf_main product,product,product_log,'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\product.bak'