У меня есть файл с расширением .bak
.
Как я могу импортировать эту дату в базу данных на SQL Server?
У меня есть файл с расширением .bak
.
Как я могу импортировать эту дату в базу данных на SQL Server?
В SQL Server Management Studio
Выполнено.
Файлы .bak - это резервные копии базы данных. Вы можете восстановить резервную копию следующим способом:
Как: восстановить резервную копию базы данных (SQL Server Management Studio) < / а>
Это покажет вам список файлов базы данных, содержащихся в DB.bak:
RESTORE FILELISTONLY
FROM DISK = 'D:\3.0 Databases\DB.bak'
Вам потребуются логические имена из этого списка для операции MOVE
на втором шаге:
RESTORE DATABASE YourDB
FROM DISK = 'D:\3.0 Databases\DB.bak'
и вам нужно переместить соответствующие файлы mdf, ndf и ldf, используя
With Move 'primarydatafilename' To 'D:\DB\data.mdf',
Move 'secondarydatafile' To 'D:\DB\data1.ndf',
Move 'logfilename' To 'D:\DB\log.ldf'
Вы можете просто восстановить эти файлы резервных копий базы данных, используя собственные методы SQL Server, или вы можете использовать инструмент ApexSQL Restore, чтобы быстро виртуально прикрепить файлы и получить к ним доступ как к полностью восстановленным базам данных.
Отказ от ответственности: я работаю инженером по поддержке продуктов в ApexSQL
Вместо того, чтобы выбирать "Восстановить базу данных ...", выберите Восстановить файлы и файловые группы ...
Затем введите имя базы данных, выберите путь к файлу .bak в качестве источника, установите флажок восстановления и нажмите ОК. Если файл .bak действителен, он будет работать.
(Названия параметров восстановления SQL Server не интуитивно понятны для решения очень простой задачи.)
Выполнено
В приведенных выше решениях не указано, где хранить файл резервной копии (.bak). Это должно помочь. У меня это сработало.
Просто используйте
sp_restoredb "Имя вашей базы данных", "Местоположение, в котором вы хотите восстановить"
Пример: sp_restoredb 'omDB', 'D: \ abc.bak'
RESTORE DATABASE
, как в msdn. microsoft.com/en-us/library/ms178099(v=sql.105).aspx?
- person unhammer; 21.06.2017
sp_restoredb
выполнять восстановление даже вашей базы данных, имеющей другую структуру или полностью пустой (новой).
- person Omprakash tomar; 10.11.2017
Хотя гораздо проще восстановить базу данных с помощью SSMS, как указано во многих ответах. Вы также можете восстановить базу данных, используя .bak с запросом SQL-сервера, например
RESTORE DATABASE AdventureWorks2012 FROM DISK = 'D:\AdventureWorks2012.BAK'
GO
В приведенном выше запросе вам нужно помнить о расположении файла .mdf / .ldf. Вы можете получить ошибку
System.Data.SqlClient.SqlError: поиск в каталоге файла C: \ PROGRAM FILES \ MICROSOFT SQL SERVER \ MSSQL.1 \ MSSQL \ DATA \ AdventureWorks.MDF завершился ошибкой операционной системы 3 (система не может найти указанный путь. ). (Microsoft.SqlServer.SmoExtended)
Итак, вам нужно запустить Query, как показано ниже
RESTORE FILELISTONLY
FROM DISK = 'D:\AdventureWorks2012.BAK'
Как только вы запустите выше Query, вы получите местоположение mdf / ldf, используйте его. Восстановите базу данных с помощью запроса.
USE MASTER
GO
RESTORE DATABASE DBASE
FROM DISK = 'D:\AdventureWorks2012.BAK'
WITH
MOVE 'DBASE' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.DBASE\MSSQL\DATA\DBASE.MDF',
MOVE 'DBASE_LOG' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.DBASE\MSSQL\DATA\DBASE_1.LDF',
NOUNLOAD, REPLACE, NOUNLOAD, STATS = 5
GO
Источник: Восстановить базу данных из файла .bak на SQL сервере (со скриптами и без них)
Вы можете использовать пакет node, если вам часто нужно восстанавливать базы данных в процессе разработки.
Установить:
npm install -g sql-bak-restore
Использование:
sql-bak-restore <bakPath> <dbName> <oldDbName> <owner>
Аргументы:
!! Утилита командной строки sqlcmd должна быть в переменной PATH.
https://github.com/vladimirbuskin/sql-bak-restore/