Восстановление базы данных из .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.
Если да: тогда как я могу это сделать?
Спасибо.
Ответы
Ответ 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'