Поделиться через


SQL Server Express LocalDB (локальная база данных)

Область применения:SQL Server

LocalDB в Microsoft SQL Server Express — это компонент SQL Server Express, ориентированный на разработчиков. В SQL Server 2025 (17.x) и более поздних версиях LocalDB входит в выпуск SQL Server Express. В SQL Server 2022 (16.x) и более ранних версиях LocalDB доступен в выпуске SQL Server Express с расширенными службами.

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

Установочный носитель

LocalDB — это компонент, выбираемый во время установки SQL Server Express и доступный при загрузке с носителя. Для SQL Server 2025 (17.x) и более поздних версий LocalDB включен в установочный пакет редакции Express. Для SQL Server 2022 (16.x) и более ранних версий выпуск называется Express Advanced, и при скачивании можно выбрать этот или автономный пакет LocalDB .

Установщик SqlLocalDB.msi LocalDB доступен на установочном носителе для всех выпусков, кроме Express Core. Он расположен в папке <installation_media_root>\<LCID>_ENU_LP\x64\Setup\x64. LCID — это идентификатор локали или код языка. Например, значение LCID 1033 относится к языковому стандарту en-US.

Кроме того, LocalDB можно установить с помощью Visual Studio Installer в составе рабочей нагрузки Хранение и обработка данных, рабочей нагрузки ASP.NET и веб-разработка или как отдельный компонент.

Установка LocalDB

Для установки LocalDB используйте мастер установки или программу SqlLocalDB.msi. LocalDB подходит при установке SQL Server Express LocalDB.

Выберите LocalDB на странице Выбор компонентов или "Общие компоненты" во время установки. Для каждой основной версии СУБД SQL Server может существовать только одна установка двоичных файлов LocalDB. Можно запустить несколько процессов ядра СУБД, и все они используют одни и те же двоичные файлы. Экземпляр ядра базы данных SQL Server, запущенный в качестве 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 пути, который обычно скрыт. Например, %LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\. Файлы пользовательской базы данных хранятся в месте, указанном пользователем, как правило, в папке %LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances\<InstanceName>.

Дополнительные сведения о том, как включить LocalDB в приложение, см. в обзоре локальных данных Visual Studio, создании базы данных и добавлении таблиц в Visual Studio.

Дополнительные сведения об API LocalDB см. в справочнике по SQL Server Express LocalDB.

Служебная программа SqlLocalDB позволяет создавать новые экземпляры LocalDB, запускать и останавливать работу экземпляров, а также использовать функции для управления LocalDB. Дополнительные сведения о служебной программе см. в разделе "Служебная SqlLocalDBпрограмма SqlLocalDB".

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

Ограничения

  • LocalDB не может управляться удаленно с помощью SQL Server Management Studio.

  • 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 длиной в 15 символов ASCII.) Имя экземпляра LocalDB может содержать любые символы Unicode, которые являются допустимыми в имени файла. Именованный экземпляр, в котором используется имя автоматического экземпляра, становится автоматическим экземпляром.

Общие экземпляры LocalDB

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

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

Запуск LocalDB и подключение к LocalDB

В этом разделе описывается, как подключиться к автоматическому экземпляру, именованному экземпляру или общему экземпляру.

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

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

Примечание.

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

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

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

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

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

Категория Значение
Имя LocalDBApp1
Версия <Current version>
Общее имя ""
Ответственное лицо <Your Windows user>
Автоматическое создание No
Состояние Running
Последнее время запуска <Date and time>
Имя канала экземпляра np:\\.\pipe\LOCALDB#F365A78E\tsql\query

Примечание.

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

Подключение к общему экземпляру LocalDB

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

Устранение неполадок

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

Обновление до последней версии

Многие распространенные проблемы LocalDB устраняются путем обновления до последней версии SQL Server Express. Скачайте последнюю версию из раздела установочного носителя и установите LocalDB. Более новая версия заменяет существующие двоичные файлы LocalDB и включает исправления известных проблем стабильности и совместимости.

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

sqllocaldb stop MSSQLLocalDB
sqllocaldb delete MSSQLLocalDB
sqllocaldb create MSSQLLocalDB
sqllocaldb start MSSQLLocalDB

Предостережение

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

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

Выполните следующие команды, чтобы подтвердить установку LocalDB и проверить состояние экземпляра:

sqllocaldb info
sqllocaldb info MSSQLLocalDB

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

Чтобы запустить неработающий экземпляр, выполните следующие действия.

sqllocaldb start MSSQLLocalDB

Просмотр журналов ошибок

LocalDB записывает журналы ошибок в папку пользователя AppData :

%LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB\error.log

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

Разрешения

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

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