Как узнать местоположение базы данных (localdb) SQL Server 2012 и создать резервную копию?

Я использую VS2012, и у меня создана база данных:

(localdb)\v11.0 (SQL Server 11.0.2100 - T61\Alan)

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

Вот моя строка подключения:

<add name="DB1Context" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=DB1;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />

Ответы

Ответ 1

Попробуйте этот вариант -

DECLARE 
      @SQL NVARCHAR(1000)
    , @DB_NAME NVARCHAR(100) = 'AdventureWorks2008R2'

SELECT TOP 1 @SQL = '
    BACKUP DATABASE [' + @DB_NAME + '] 
    TO DISK = ''' + REPLACE(mf.physical_name, '.mdf', '.bak') + ''''
FROM sys.master_files mf
WHERE mf.[type] = 0
    AND mf.database_id = DB_ID(@DB_NAME)

PRINT @SQL
EXEC sys.sp_executesql @SQL

Выход -

BACKUP DATABASE [AdventureWorks2008R2] 
TO DISK = 'D:\DATABASE\SQL2012\AdventureWorks2008R2.bak'

Ответ 2

Как вы считаете, вы можете увидеть его в SQL Server Management Studio? Right click on DataBase -> Properties -> Files расскажет вам, где находится ваш жесткий диск. Если вы создаете резервную копию mdf, обязательно создайте резервную копию ldf.

enter image description here

Кроме того, вы можете щелкнуть правой кнопкой мыши по БД и выбрать Tasks -> Backup. Это сделает для вас один файл .bak, и вам не нужно беспокоиться о mdf/ldf.

Ответ 4

http://technet.microsoft.com/en-us/library/hh510202.aspx

Файлы системной базы данных для базы данных хранятся в файлах пользователей, локальный путь AppData, который обычно скрыт. Например C:\Users\- пользователь -\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Экземпляры\LocalDBApp1. Файлы базы данных пользователей хранятся там, где пользователь указывает, как правило, где-то в папке C:\Users\\Documents \ папку.

Ответ 5

Это довольно запутанно для людей, которые впервые сталкиваются с Entity Framework.

Если вы используете Первый код, создается файл mdf, он находится под C:/Users/"username"

Если вы используете База данных сначала, вы создаете базу данных в Проводнике объектов SQL Server (Not Server Explorer!), в mdf >

Ответ 6

Этот PowerShell script предоставит вам местоположение по умолчанию для файлов localdb.mdf:

[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null
(New-Object Microsoft.SqlServer.Management.Smo.Server("(localdb)\$instancename")).DefaultFile

где $instancename - имя экземпляра localdb, который вы хотите проверить. Вы можете получить список экземпляров localdb, запустив

sqllocaldb i

Ответ 7

Откройте редактор реестра Windows и перейдите к клавише HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions. Посмотрите под ключ версии экземпляра SQL Server, на который нацеливается, например. 11.0 для SQL 2012 и см. его значение InstanceAPIPath для расположения файловой системы localdb.

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