Sqllocaldb как проверить работу
Кроме полноценного MS SQL Server в версиях Developer или Express мы также можем установить облегченную легковесную версию SQL Server Express — движок LocalDB , который предназначен специально для целей разработки. Например, LocalDB может применяться для разработки программ на различных языках программирования для тестирования их работы с базой данных MS SQL Server, когда нет необходимости в большинстве возможностей стандартного MS SQL Server. И в этих условиях естественно проще установить небольшой легковесный движок, чем полноценный MS SQL Server.
Формально SQLLocalDB представляет компонент MS SQL Server Express, тем не менее есть несколько вариантов, как можно установить LocalDB.
Установка через программу усстановки SQL Server Express
Первый вариант представляет установка LocalDB через программу усстановки SQL Server Express. Так, загрузим с адреса https://www.microsoft.com/en-us/sql-server/sql-server-downloads установщик для SQL Server Express. На стартовом экране установщика выберем пункт «Скачать носитель»:
Нам откроется окно для выбора компонентов для установки. Выберем на нем пункт LocalDB :

После нажатия на кнопку «Скачать» в указанную в окне папку будет загружен файл SqlLocalDB.msi . И после запуска этого файла будет установлен LocalDB.
Установка через мастер установки Visual Studio
Если вы вдруг работаете с Visual Studio, в частности, с платформой ASP.NET, то вы можете установить LocalDB через программу установки Visual Studio. В частности, на вкладке «Отдельные компоненты» можно выбрать соответствующий пункт (конкретная версия LocalDB может отличаться):

Подключение к LocalDB
После установки LocalDB к этой версии SQL Server также можно подключиться из SQL Server Management Studio. Для этого при запуске программы в окне подключения к серверу в поле «Server name» в качестве имени сервера необходимо указать (localdb)\MSSQLLocalDB

Если в этом поле выпадающий список не содержит «(localdb)\MSSQLLocalDB», однако LocalDB тем не менее был ранее установлен, то можно просто ввести в это поле «(localdb)\MSSQLLocalDB».
И после этого мы сможем работать с LocalDB в SQL Server Management Studio в рамках установленых для этого движка ограничений:
Устранение повреждений базы данных модели в SQLLocalDB
В этой статье описывается известная проблема в служебной программе SQLLocalDB , которая может помешать запуску службы ADSync из-за поврежденной Model базы данных. Эта проблема в основном затрагивает Microsoft Entra Connect 2.x серверов, работающих в Локальной базе данных Microsoft SQL Server 2019.
Проблема вызвана ошибкой в логике резервного копирования SQL Server, которая создает несогласованное состояние на начальной странице базы данных SQL Server Model . После резервного копирования Model база данных устанавливается в FULL режим восстановления ( dbi_status == 0x40010000), а dbi_dbbackupLSN для (номер последовательности журнала (LSN) для резервной копии базы данных) устанавливается значение, указывающее на файл журнала. Однако фактический режим восстановления, управляемый базой Master данных, — . SIMPLE
В SIMPLE режиме восстановления журналы базы данных усекаются автоматически. В FULL режиме восстановления журналы усекаются только после резервного копирования. При перезапуске SQLLocalDB после усечения файла журнала обнаруживается резервный номер LSN, который находится раньше самого раннего файла журнала. Поэтому служба не запускается.
Ознакомьтесь с рекомендациями в следующих разделах, чтобы узнать, как выполнять следующие задачи:
- Правильно определите, не запускается ли служба Microsoft Entra Connect (ADSync) из-за Model повреждения базы данных.
- Устранение проблемы путем восстановления Model базы данных из поврежденного состояния.
- Примените постоянное исправление, чтобы убедиться, что это Model повреждение базы данных не повторится.
Симптомы
Вы можете убедиться, что проблема основана на следующих событиях на сервере Microsoft Entra Connect:
-
Просмотр событий: Application, EventID 528, Источник: SQLLocalDB 15.0
WaitForMultipleObjects 575 The application was unable to start correctly (0x%lx). Click OK to close the application. 3714
0x8023044a OriginalError=0x80004005 OLEDB Provider error(s): Description = 'Login timeout expired' Failure Code = 0x80004005
spid14s The resource database build version is 15.00.4138. This is an informational message only. No user action is required. spid8s Starting up database 'msdb'. spid14s Starting up database 'model'. spid14s Error: 9003, Severity: 20, State: 1. spid14s The log scan number (41:488:1) passed to log scan in database 'model' is not valid. This error may indicate data corruption or that the log file (.ldf) does not match the data file (.mdf). If this error occurred during replication, re-create the publication. Otherwise, restore from backup if the problem results in a failure during startup. spid14s SQL Trace was stopped due to server shutdown. Trace . This is an informational message only; no user action is required.
Устранение рисков
Примените описанные здесь действия по устранению рисков, только если выполняются все следующие условия:
- Версия Microsoft Entra Connect — 2.0.x.x.
- Microsoft Entra Connect устанавливается вместе с SQL LocalDB.
- Присутствуют все условия, перечисленные в разделе Симптомы .
Чтобы восстановить Model базу данных из поврежденного состояния, выполните следующие действия.
- Перейдите в одно из следующих расположений профиля службы ADSync в зависимости от используемой учетной записи службы (например, учетная запись домена, учетная запись виртуальной службы или управляемая учетная запись службы):
- C:\Users\\
- C:\Users\ADSyncMSAxxxx$\
- C:\Windows\ServiceProfiles\ADSync\
- Откройте файл error.log из папки экземпляра ADSync2019 по следующему пути к каталогу: службы\AppData\Local\Microsoft\Microsoft SQL Server Локальная база данных\Экземпляры\ADSync2019\
- Найдите в журнале следующую запись об ошибке, чтобы убедиться, что Model база данных повреждена:
spid14s Error: 9003, Severity: 20, State: 1. spid14s The log scan number (41:488:1) passed to log scan in database 'model' is not valid. This error may indicate data corruption or that the log file (.ldf) does not match the data file (.mdf). If this error occurred during replication, re-create the publication. Otherwise, restore from backup if the problem results in a failure during startup.
Решение
Корпорация Майкрософт представила исправление этой проблемы в Microsoft Entra Connect версии 2.1.1.0. Если не удается запустить службу синхронизации (ADSync), необходимо выполнить действия, описанные в разделе Устранение рисков, прежде чем можно будет обновить Microsoft Entra Connect.
Чтобы избежать проблем с повреждением базы данных SQLLocalDB Model , установите последнюю сборку Microsoft Entra Connect, которая доступна на странице Microsoft Entra Connect: журнал выпусков версий.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.
SQL Server 2012 Express LocalDb
После установки новенькой Windows 8 и Visual Studio 2012 Ultimate я столкнулся с проблемой отсутствия привычного сервиса SQLEXPRESS. Его заменой для меня стал SqlLocalDb.
Для его использования нужно выполнить несколько простых действий, которые я опишу ниже.
Для начала необходимо проверить, установлен ли сервер LocalDb. Для этого откройте командную строку (Win+R -> введите cmd и нажмите ENTER), введите команду: SqlLocalDb info. В результате выполнения этой команды Вы должны увидеть v11.0. Это значит, что сервер у Вас присутствует.
Если же сервера нет, необходимо перейти на официальный сайт Microsoft, скачать инсталлятор и установить сервер на свой ПК: http://www.microsoft.com/en-us/download/details.aspx?id=29062.
Для начала использования сервера необходимо прописать комманды:
- SqlLocalDb create «MyInstance»,где MyInstance любое имя. Вы увидите подобный результат:

SqlLocalDb start «MyInstance». Вы увидите такой результат:

Теперь можно заходить в SQL Management Studio 2012 Express и вводить вместо привычного .\SQLEXPRESS адресс нашего сервера:
SQL Server Express LocalDB
LocalDB в Microsoft SQL Server Express — это компонент SQL Server Express, ориентированный на разработчиков. Он доступен в SQL Server Express с дополнительными службами.
Установка LocalDB копирует минимальный набор файлов, необходимых для запуска ядро СУБД SQL Server. После установки LocalDB вы можете установить соединение с помощью специальной строки подключения. При подключении необходимая инфраструктура SQL Server автоматически создается и запускается, что позволяет приложению использовать базу данных без сложных задач конфигурации. Средства разработчика позволяют использовать ядро СУБД SQL Server для создания и проверки кода Transact-SQL без обязательств по управлению полноценным экземпляром сервера SQL Server.
Установочный носитель
LocalDB — это компонент, выбираемый во время установки SQL Server Express и доступный при загрузке с носителя. Если вы скачиваете носитель, выберите Express Advanced или пакет LocalDB .
- SQL Server Express 2022
- SQL Server Express 2019
- SQL Server Express 2017
- SQL Server Express 2016
Клиенты Visual Studio 2019 и 2022 должны установить SQL Server Express 2019.
Установщик SqlLocalDB.msi LocalDB доступен на установочном носителе для всех выпусков, кроме Express Core. Он находится в папке \_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, которая не рекомендуется.
Description
Программа установки 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\ .
Дополнительные сведения об API LocalDB см. в разделе Справочник по SQL Server Express LocalDB.
Служебная программа SqlLocalDB позволяет создавать новые экземпляры LocalDB, запускать и останавливать работу экземпляров, а также использовать функции для управления LocalDB. Дополнительные сведения о служебной программе SqlLocalDB см. в разделе Программа SqlLocalDB.
Параметры сортировки экземпляра для LocalDB заданы SQL_Latin1_General_CP1_CI_AS и не могут быть изменены. Параметры сортировки на уровне базы данных, на уровне столбца и на уровне выражения поддерживаются обычным образом. Автономные базы данных следуют правилам метаданных и параметрам сортировки tempdb , определенным Contained Database Collations.
Ограничения
- LocalDB не может управляться удаленно с помощью SQL Server Management Studio.
- LocalDB не может быть подписчиком слияния реплика tion.
- 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 может содержать любые символы Юникода, которые являются законными в имени файла. Именованный экземпляр, в котором используется имя автоматического экземпляра, становится автоматическим экземпляром.
Разные пользователи одного и того же компьютера могут иметь экземпляры с одинаковыми именами. Каждый экземпляр запускается в качестве соответствующего пользователя в собственном процессе.
Общие экземпляры 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 в SQL Server 2014 (12.x). Ранее именем экземпляра был один символ v, за которым следует LocalDB и номер версии. Начиная с SQL Server 2014 (12.x), этот формат имени экземпляра больше не поддерживается, а вместо него следует использовать строка подключения упоминание ранее.
При первом подключении пользователя компьютера к 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 |
| Версия | |
| Общее имя | «» |
| Ответственное лицо | «» |
| Автоматическое создание | No |
| State | Running |
| Время последнего запуска | |
| Имя канала экземпляра | np:\\.\pipe\LOCALDB#F365A78E\tsql\query |
Если приложение использует версию .NET до 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, добавьте \.\ (backslash + dot+ backslash) в строка подключения, чтобы ссылаться на пространство имен, зарезервированное для общих экземпляров. Например, чтобы подключиться к общему экземпляру LocalDB с именем AppData , укажите (localdb)\.\AppData в строке подключения. Пользователь, подключающийся к общему экземпляру LocalDB, которому он не владеет, должен иметь имя входа проверки подлинности Windows или проверки подлинности SQL Server.
Устранить неполадки
Способы устранения неполадок в работе LocalDB см. в статье Troubleshoot SQL Server 2012 Express LocalDB (Устранение неполадок в работе SQL Server 2012 Express LocalDB).
Разрешения
SQL Server Express LocalDB — это экземпляр, созданный пользователем для самостоятельного использования. Любой пользователь компьютера может создать базу данных с помощью экземпляра LocalDB, сохранив файлы в своем пользовательском профиле и запустив процесс со своими учетными данными. По умолчанию доступ к экземпляру LocalDB имеет только его владелец. Данные, содержащиеся в LocalDB, защищены средствами файловой системы. Если файлы пользовательской базы данных хранятся в общем расположении, база данных может быть открыта любым пользователем с доступом к файловой системе в этом расположении с помощью экземпляра LocalDB, которому они принадлежат. Если файлы базы данных хранятся в защищенном месте, например в папке пользовательских данных, то базу данных может открыть только сам пользователь, а также администратор, обладающий правами доступа к данной папке. Файлы LocalDB могут быть одновременно открыты только одним экземпляром LocalDB.
LocalDB всегда запускается в контексте безопасности пользователя. Это означает, что LocalDB никогда не будет запускаться с учетными данными группы локальных администраторов. То есть доступ ко всем файлам базы данных, используемыми экземпляром LocalDB, возможен по учетной записи их владельца-пользователя Windows, не учитывая принадлежности к группе локальных администраторов.
