Windows Internal Database (WID) представляет собой «облегченной» базу данных SQL, основанную на SQL Server Express. Windows Internal Database предлагается в качестве бесплатной базы данных SQL, которую можно использовать в различных продуктах Microsoft (или сторонних разработчиков) в качестве легкого и бесплатного SQL- решения для хранения данных. В частности, WID может использоваться SharePoint или таким ролями Windows Server, как WSUS, ADRMS, ADFS, Connection Broker и т.п.
Windows Internal Database включается в состав серверных ОС Window, начиная с версии Windows Server 2008. В Windows 2008 независимо от разрядности доступна только 32 битная версия WID (устанавливается в C:\Program Files (x86)\Microsoft SQL Server), в Windows Server 2012 версия WID — 64-битная (база находится в каталоге C:\Windows\WID). В качестве отдельного продукта Windows Internal Database пользователям не доступна.
Основные особенности Windows Internal Database:
- База данных WID предполагает только локально использование, удаленно к ней подключиться не получится
- Отсутствуют ограничения на размер файлов БД (в отличии от той же редакции SQL Express)
- Не требует для своего использования лицензии.
Управление базой Windows Internal Database
По задумке разработчиков база WID предназначена только для консольной или скриптовой установки, а все операции с ней должны выполняться через командную строку. Но к счастью базой WID можно управлять и через GUI с помощью SQL Management Studio.
Для этого нужно:
- Скачать и установить SQL Server Management Studio Express 2012 (входит в состав Microsoft SQL Server 2012 Express, но ее можно скачать и отдельно, выбрав ENU\x64\SQLManagementStudio_x64_ENU.exe)
- Запустить консоль Management Studio с правами администратора
- Подключится к базе, указав следующее имя сервера:
- в Windows Server 2008 / R2 —
\\.\pipe\mssql$microsoft##ssee\sql\query
- в Windows Server 2012 / R2 —
\\.\pipe\MICROSOFT##WID\tsql\query
- в Windows Server 2008 / R2 —
Для подключения через sqlcmd.exe следует выполнить такую команду:
sqlcmd -S \\.\pipe\MICROSOFT##WID\tsql\query –E
Как удалить базу WID
После удаления роли Windows, которая использует базу Windows Internal Database, сам инстанс SQL с базой WID не удаляется, причем инструментов для ее удаление в системе нет. Деинсталлировать базу Windows Internal Database можно только при помощи Windows Installer.
Для удаления базы WID на Windows Server 2008 нужно:
- на 32 битной системе:
msiexec /x {CEB5780F-1A70-44A9-850F-DE6C4F6AA8FB} callerid=ocsetup.exe
- на 64 битной системе:
msiexec /x {BDD79957-5801-4A2D-B09E-852E7FA64D01} callerid=ocsetup.exe
В Windows Server 2012 базу WID можно удалить гораздо проще — с помощью Powershell:
Remove-WindowsFeature Windows-Internal-DB
Сами файлы базы данных (.mdb и .ldb) придется удалить вручную – пути к ним указаны в начале статьи.
Определить версию установленную версию WID можно по файлу:
- Для Windows Server 2008: %WINDIR%\SYSMSI\SSEE\MSSQL.2005\MSSQL\LOG
- Для Windows Server 2012: %WINDIR%\WID\Log\error.log
Содержит он примерно такую информацию:
2014-03-22 12:38:11.11 Server Microsoft SQL Server 2012 - 11.0.2100.60 (X64)
Feb 10 2012 19:39:15
Copyright (c) Microsoft Corporation
Windows Internal Database (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
2014-03-22 12:38:11.12 Server (c) Microsoft Corporation.
2014-03-22 12:38:11.12 Server All rights reserved.
2014-03-22 12:38:11.12 Server Server process ID is 1644.
2014-03-22 12:38:11.12 Server System Manufacturer: 'VMware, Inc.', System Model: 'VMware Virtual Platform'.
2014-03-22 12:38:11.14 Server Authentication mode is WINDOWS-ONLY.
2014-03-22 12:38:11.14 Server Logging SQL Server messages in file 'C:\Windows\WID\Log\error.log'.
2014-03-22 12:38:11.14 Server The service account is 'NT SERVICE\MSSQL$MICROSOFT##WID'. This is an informational message; no user action is required.
2014-03-22 12:38:11.14 Server Registry startup parameters:
-w 65535
-T 1617
-K
-e C:\Windows\WID\Log\error.log
-l C:\Windows\WID\Data\mastlog.ldf
-d C:\Windows\WID\Data\master.mdf
Роль для PowerShell в Windows Server 2012 (включая R2) называется не Windows-Internal-DB, а Windows-Internal-Database.
Для подключения к Windows Internal Database в Windows Server 2008 / R2 имя сервера написано неправильно.
\\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query — правильный путь.
Проверяйте данные.
Спасибо, поправил.
Добрый день. У меня периодически на сервере «Служба Sql Server Windos NT 64 (внутренняя база данных Windows)» отжирает 15-30% ЦП. Длится минут 15-20. Что может быть? На сервере стоит SQL Express 2012 с базой данных и самописное ПО. Поднята роль терминального сервера. windows 2012 R2.
Тут нужно разгребать нагрузки в самой базе Sql.
Попробуйте для начала понять какие запросы вызывают высокую нагрузку на SQLSercer, процедура:
EXEC sp_who2
После это нужно погуглить в направлении ресурсоемких запросов.
Может поможет установка всех обновлений, может переустановка службы, может пересоздание базы с перенастройкой терминальной фермы на новую базу
надо
$adfs = gwmi -Namespace root/ADFS -Class SecurityTokenService
$adfs.ConfigurationDatabaseConnectionString
и оттуда брать
:\\.\pipe\microsoft##wid\tsql\query;Initial Catalog=AdfsConfigurationV3
и указывать базу при подключении
Добрый день.
А как удалить WID который использовался на RDS ферме?
RDS удалил, а WID удалить не могу.
Remove-WindowsFeature Windows-Internal-DB — я так понимаю после windows feature надо поставить имя базы или что-то вроде этого. Подскажите куда смотреть?
И спасибо за статью.