Skip to main content
SQL Server 2016 Express LocalDB
 

LocalDB в Microsoft SQL Server 2016 Express — это компонент SQL Server Express, ориентированный на разработчиков. Он доступен в SQL Server 2016 Express с дополнительными службами.

При установкеLocalDB выполняется копирование минимального набора файлов, необходимых для запуска компонента Компонент SQL Server Database Engine. После установки LocalDB вы можете установить соединение с помощью специальной строки подключения. При соединении необходимая инфраструктура SQL Server создается и запускается автоматически, что позволяет приложению использовать базу данных без выполнения сложной настройки. Средства разработчика позволяют использовать Компонент SQL Server Database Engine для написания и проверки кода Transact-SQL без необходимости управления полным экземпляром сервера SQL Server.

  • Чтобы скачать и установить SQL Server 2016 Express, перейдите в Центр загрузки. Компонент LocalDB выбирается во время установки. В Центре загрузки LocalDB доступен для выборочной установки или при скачивании носителя. Если вы скачиваете носитель, выберите Express Advanced или пакет LocalDB.

  • Есть учетная запись Azure? Затем перейдите сюда, чтобы запустить виртуальную машину с уже установленным SQL Server 2016.

Установите LocalDB с помощью мастера установки или программы SqlLocalDB.msi. Параметр LocalDB применяется для установки SQL Server 2016 Express.

Выберите LocalDB на странице Выбор компонентов/общие компоненты во время установки. Двоичные файлы LocalDB можно устанавливать лишь по одному разу для каждой основной версии Компонент SQL Server Database Engine . Можно запускать несколько процессов Компонент Database Engine , которые будут использовать одни и те же двоичные файлы. Экземпляр Компонент SQL Server Database Engine , запущенный как LocalDB , имеет те же ограничения, что и SQL Server Express

Управление экземпляром SQL Server Express LocalDB осуществляется с помощью служебной программы SqlLocalDB.exe. SQL Server Express LocalDB следует использовать вместо устаревшей функции пользовательского экземпляра SQL Server Express .

Программа установки LocalDB использует программу SqlLocalDB.msi для установки необходимых файлов на компьютере. После установки LocalDB становится экземпляром SQL Server Express , который способен создавать и открывать базы данных SQL Server . Файлы системной базы данных, как правило, хранятся в каталоге AppData пользователя, который обычно скрыт. Например, C:\Users\<пользователь>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\. Файлы пользовательской базы данных хранятся в месте, указанном пользователем, как правило, в папке C:\Users\<пользователь>\Documents\.

Дополнительные сведения о включении LocalDB в приложение см. в документации Visual Studio  Общие сведения о локальных данных, Пошаговое руководство. Создание базы данных LocalDB SQL Server и Пошаговое руководство. Подключение к данным в базе данных LocalDB SQL Server (формы Windows).

Дополнительные сведения об API LocalDB см. в разделах Справочник по API экземпляра SQL Server Express LocalDB и Функция LocalDBStartInstance.

Служебная программа SqlLocalDb позволяет создавать экземпляры LocalDB, запускать и останавливать экземпляр LocalDB, а также включает параметры для управления LocalDB. Дополнительные сведения о программе SqlLocalDb см. в разделе Программа SqlLocalDB.

Параметры сортировки экземпляра для LocalDB заданы в SQL_Latin1_General_CP1_CI_AS и не могут быть изменены. Параметры сортировки на уровне базы данных, на уровне столбца и на уровне выражения поддерживаются обычным образом. Содержащиеся базы данных следуют правилам метаданных и параметрам сортировки tempdb, определенным Contained Database Collations.

Ограничения

LocalDB не может быть подписчиком в репликации слиянием.

LocalDB не поддерживает FILESTREAM.

ДляLocalDB разрешены только локальные очереди компонента Service Broker.

Экземпляр LocalDB, принадлежащий встроенным учетным записям, например NT AUTHORITY\SYSTEM, может иметь проблемы с управляемостью из-за перенаправления файловой системы Windows. Вместо этого следует использовать обычную учетную запись Windows в качестве владельца.

Автоматические и именованные экземпляры

LocalDB поддерживает два типа экземпляров: автоматические и именованные.

  • Автоматические экземпляры LocalDB являются общедоступными. Они создаются и обслуживаются автоматически и могут использоваться любым приложением. Для каждой версии LocalDB , установленной на компьютере пользователя, существует один автоматический экземпляр LocalDB . Автоматические экземпляры LocalDB обеспечивают удобное управление экземплярами. Нет необходимости создавать экземпляр. Он просто работает. Это упрощает установку приложения и его перенос на другой компьютер. Если на целевом компьютере установлена указанная версия LocalDB , то там также будет доступен автоматический экземпляр LocalDB . Автоматические экземпляры LocalDB именуются по специальному шаблону, принадлежащему зарезервированному пространству имен. Это позволяет избежать возникновения конфликтов имен с именованными экземплярами LocalDB. Автоматический экземпляр имеет имя MSSQLLocalDB.

  • Именованные экземпляры LocalDB — закрытые. Они принадлежат одному приложению, которое отвечает за создание экземпляра и управление им. Именованные экземпляры обеспечивают изоляцию от других экземпляров и способствуют повышению производительности за счет снижения уровня конфликта за ресурсы с другими пользователями базы данных. Пользователь должен создавать именованные экземпляры явным образом с помощью API управления LocalDB или неявным образом через файл app.config управляемого приложения (при необходимости управляемое приложение также может использовать API). Каждый именованный экземпляр LocalDB имеет связанную с ним версию LocalDB , которая указывает на соответствующий набор двоичных файлов LocalDB . Имя экземпляра LocalDB имеет тип данных sysname и может содержать до 128 символов (в отличие от обычных именованных экземпляров SQL Server, где допускается использование только обычных имен NetBIOS из 16 символов ASCII). Имя экземпляра LocalDB может содержать любые символы Юникода, допустимые в имени файла. Именованный экземпляр, в котором используется имя автоматического экземпляра, становится автоматическим экземпляром.

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

Если нескольким пользователям компьютера требуется доступ к одному экземпляру LocalDB, то в LocalDB поддерживается общий доступ к экземплярам. Владелец экземпляра может разрешить другим пользователям компьютера соединяться со своим экземпляром. Общими могут быть как автоматические, так и именованные экземпляры LocalDB . Для организации общего доступа к экземпляру LocalDB пользователь должен указать его общее имя (псевдоним). Поскольку общее имя видно всем пользователям компьютера, то оно должно быть уникальным на этом компьютере. Общее имя экземпляра LocalDB имеет тот же формат, что и для именованного экземпляра LocalDB.

Только администратор компьютера может создавать общие экземпляры LocalDB. Администратор или владелец общего экземпляра LocalDB может отменить общий доступ к экземпляру LocalDB. Открытие и отмена общего доступа к экземпляру LocalDB производится с помощью методов LocalDBShareInstance и LocalDBUnShareInstance API LocalDB либо с помощью соответствующих параметров программы SqlLocalDb.

Подключение к автоматическому экземпляру

Самым простым способом использования LocalDB является подключение к автоматическому экземпляру, владельцем которого является текущий пользователь, с помощью строки подключения "Server=(localdb)\MSSQLLocalDB;Integrated Security=true". Подключиться к определенной базе данных, используя имя файла, можно с помощью строки подключения, подобной следующей: "Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true; AttachDbFileName=D:\Data\MyDB1.mdf".

System_CAPS_ICON_note.jpg Примечание


При первом подключении пользователя компьютера к LocalDBнеобходимо создать и запустить автоматический экземпляр. Дополнительное время, необходимое для создания экземпляра, может стать причиной того, что попытка соединения завершится с ошибкой истечения времени ожидания. В этом случае подождите несколько секунд до завершения процесса создания экземпляра, а затем подключитесь снова.

Создание и подключение к именованным экземплярам

Помимо автоматических экземпляров, LocalDB также поддерживает именованные экземпляры. Используйте программу SqlLocalDB.exe для создания, запуска и остановки именованного экземпляра LocalDB. Дополнительные сведения об SqlLocalDB.exe см. в разделе Программа SqlLocalDB.

REM Create an instance of LocalDB  
"C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe" create LocalDBApp1  
REM Start the instance of LocalDB  
"C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe" start LocalDBApp1  
REM Gather information about the instance of LocalDB  
"C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe" info LocalDBApp1  

Вышеуказанная последняя строка возвращает информацию, аналогичную следующей.

Название«LocalDBApp1»
Версия<Текущая версия>
Общее имя""
Владелец"<ваш пользователь Windows>"
Автоматическое созданиеНет
Состояниезапуск
Время последнего запуска<Дата и время>
Имя канала экземпляраnp:\\.\pipe\LOCALDB#F365A78E\tsql\query
System_CAPS_ICON_note.jpg Примечание


Если приложение использует версию .NET ранее 4.0.2, то необходимо устанавливать соединение непосредственно с именованным каналом LocalDB. Значение "Имя канала экземпляра" — это именованный канал, который прослушивает экземпляр LocalDB. Часть имени канала экземпляра, следующая после LOCALDB#, будет изменяться при каждом запуске экземпляра LocalDB. Для подключения к экземпляру LocalDB с помощью SQL Server Management Studio введите имя канала экземпляра в поле Имя сервера диалогового окна Соединение с Компонент Database Engine. Можно установить соединение с экземпляром LocalDB из пользовательской программы с использованием строки подключения, аналогичной SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");

Соединение с общим экземпляром LocalDB

Чтобы установить соединение с общим экземпляром LocalDB , добавьте в строку подключения сочетание .\ (точка + обратная косая черта), чтобы указать пространство имен, зарезервированное для общих экземпляров. Например, чтобы соединиться с общим экземпляром LocalDB с именем AppData , укажите в строке подключения (localdb)\.\AppData . Пользователь, устанавливающий соединение с общим экземпляром LocalDB , который ему не принадлежит, должен иметь имя входа для проверки подлинности Windows или SQL Server .

Дополнительные сведения по устранению неполадок в работе LocalDBсм. в разделе Устранение неполадок в работе SQL Server 2012 Express LocalDB.

Экземпляр SQL Server 2016 ExpressLocalDB является экземпляром, созданным пользователем для собственного использования. Любой пользователь компьютера может создать базу данных в экземпляре LocalDB, сохранив файлы в своем пользовательском профиле и запустив процесс со своими учетными данными. По умолчанию доступ к экземпляру LocalDB ограничен его владельцем. Данные, содержащиеся в LocalDB , защищаются средствами файловой системы. Если файлы пользовательской базы данных хранятся в общей папке, то базу данных может открыть любой пользователь, имеющий доступ к этой папке, с помощью собственного экземпляра LocalDB . Если файлы базы данных хранятся в защищенном месте, например в папке пользовательских данных, то базу данных может открыть только сам пользователь, а также администратор, обладающий правами доступа к данной папке. Файлы LocalDB могут быть открыты одновременно только одним экземпляром LocalDB .

System_CAPS_ICON_note.jpg Примечание


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

Программа SqlLocalDB