Расположение файлов для экземпляра по умолчанию и именованных экземпляров SQL Server
Установка SQL Server состоит из одного или нескольких отдельных экземпляров. Как экземпляр по умолчанию, так и именованный экземпляр имеет собственный набор программных файлов и файлов данных, а также набор общих файлов, используемых всеми экземплярами SQL Server , установленными на компьютере.
Для экземпляра SQL Server , включающего Компонент Database Engine, Службы Analysis Servicesи Службы Reporting Services, каждый компонент имеет полный набор файлов данных и исполняемых файлов, а также общие файлы, используемые всеми компонентами.
Чтобы изолировать друг от друга папки установки, формируется уникальный идентификатор экземпляра для каждого из компонентов экземпляра SQL Server.
Программные файлы и файлы данных не могут быть установлены на съемном диске, в файловой системе со сжатием данных, в каталоге расположения системных файлов, а также на общих дисках экземпляра отказоустойчивого кластера.
Может потребоваться настроить программное обеспечение, например антивирусное и антишпионское приложения, чтобы исключить из проверки типы файлов и папки SQL Server. Дополнительные сведения см. в этой статье службы поддержки: Настройка антивирусного программного обеспечения на компьютерах, где выполняется SQL Server.
Системные базы данных (Master, Model, MSDB и TempDB) и пользовательские базы данных компонента Компонент Database Engine можно установить с использованием протокола SMB в качестве хранилища файлового сервера Server Message Block (SMB). Это относится как к изолированному варианту установки SQL Server , так и к установке кластеров отработки отказа SQL Server . Дополнительные сведения см. в разделе Установка SQL Server с общей папкой SMB в качестве хранилища.
Не удаляйте следующие каталоги или их содержимое: Binn, Data, Ftdata, HTML или 1033. При необходимости можно удалить другие каталоги, однако возможно, что не удастся вернуть утраченную функциональность или восстановить потерянные данные без удаления и повторной установки SQL Server. Не удаляйте и не изменяйте HTM-файлы в каталоге HTML. Они необходимы для правильной работы средств SQL Server .
Общие файлы для всех экземпляров SQL Server
Общие файлы, используемые всеми экземплярами на одном компьютере, устанавливаются в папку диск>:\Program Files\Microsoft SQL Server\nnn\. диск> — это буква диска, на который устанавливаются компоненты. Обычно по умолчанию диск C. Значение nnn указывает версию. В следующей таблице перечислены версии для путей. — значение версии, используемое в идентификаторе экземпляра, и путь реестра.
Версия | *nnn* | |
---|---|---|
SQL Server 2022 (16.x) | 160 | 16 |
SQL Server 2019 (15.x) | 150 | 15 |
SQL Server 2017 (14.x); | 140 | 14 |
SQL Server 2016 (13.x); | 130 | 13 |
SQL Server 2014 (12.x) | 120 | 12 |
SQL Server 2012 (11.x) | 110 | 11 |
Расположение файлов и сопоставление данных реестра
Во время установки SQL Server для каждого компонента сервера создается идентификатор экземпляра. В этой версии SQL Server сервер состоит из компонента Компонент Database Engine, служб Службы Analysis Servicesи Службы Reporting Services.
Идентификатор экземпляра по умолчанию указывается в следующем формате.
- Для компонента Компонент Database Engine— MSSQL, за которым следуют основной номер версии, символ подчеркивания и дополнительный номер версии (если применимо), затем точка и имя экземпляра.
- Для служб Службы Analysis Services— MSAS, за которым следуют основной номер версии, символ подчеркивания и дополнительный номер версии (если применимо), затем точка и имя экземпляра.
- Для служб Службы Reporting Services— MSRS, за которым следуют основной номер версии, символ подчеркивания и дополнительный номер версии (если применимо), затем точка и имя экземпляра.
Ниже приведены примеры идентификаторов экземпляров по умолчанию для данной версии SQL Server .
- MSSQL.MSSQLSERVER — экземпляр SQL Server по умолчанию.
- MSAS.MSSQLSERVER — экземпляр по умолчанию служб SQL Server Analysis Services.
- MSSQL.MyInstance — именованный экземпляр SQL Server с именем «MyInstance».
Именованный экземпляр SQL Server , в состав которого входит компонент Компонент Database Engine и службы Службы Analysis Services, имеет имя «MyInstance» и устанавливается каталоге по умолчанию, имеет следующую структуру каталогов.
- C:\Program Files\Microsoft SQL Server\MSSQL.MyInstance\
- C:\Program Files\Microsoft SQL Server\MSAS.MyInstance\
В качестве идентификатора экземпляра может быть указано любое значение, следует только избегать применения специальных символов и зарезервированных ключевых слов.
Идентификатор экземпляра, отличный от заданного по умолчанию, можно указать во время установки SQL Server . Если пользователь хочет изменить каталог установки по умолчанию, вместо \\Microsoft SQL Server используется \Microsoft SQL Server. Следует заметить, что идентификаторы экземпляров, начинающиеся с символа подчеркивания (_) или содержащие символ решетки (#) или знак доллара ($), не поддерживаются.
Службы Integration Services и клиентские компоненты не привязаны к экземпляру, поэтому им не присваивается идентификатор экземпляра. По умолчанию компоненты, не связанные с определенным экземпляром, устанавливаются в общий каталог: «\диск>:\Program Files\Microsoft SQL Server\nnn\». Изменение пути установки для одного компонента приводит к его изменению и для всех остальных компонентов. При последующих установках компоненты, не зависящие от экземпляра, устанавливаются в каталог исходной установки.
SQL Server Службы Analysis Services — это единственный компонент SQL Server, который поддерживает переименование экземпляра после установки. При переименовании экземпляра служб Службы Analysis Services его идентификатор экземпляра не изменится. После переименования экземпляра в каталогах и разделах реестра по-прежнему используется идентификатор экземпляра, созданный во время установки.
Куст реестра создается в HKLM\Software\Microsoft\Microsoft SQL Server\Instance_ID> для компонентов, привязанных к экземпляру. Например,
- HKLM\Software\Microsoft\Microsoft SQL Server\MSSQL.MyInstance
- HKLM\Software\Microsoft\Microsoft SQL Server\MSAS.MyInstance
- HKLM\Software\Microsoft\Microsoft SQL Server\MSRS.MyInstance
В реестре также хранится сопоставление идентификаторов экземпляров с именами экземпляров. Сопоставление идентификатора экземпляра с именем экземпляра осуществляется следующим образом:
- [HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL] «»=»MSSQL»
- [HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\OLAP] «»=»MSAS»
- [HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\RS] «»=»MSRS»
Указание путей к файлам
В ходе установки вы можете изменить путь установки для следующих компонентов:
Путь установки отображается в программе установки только для компонентов с пользовательской целевой папкой.
Компонент | Путь по умолчанию | Настраиваемый или фиксированный путь |
---|---|---|
Компонент Database Engine компоненты сервера | \Program Files\Microsoft SQL Server\MSSQL.\ | Настраивается |
Компонент Database Engine файлы данных | \Program Files\Microsoft SQL Server\MSSQL.\ | Настраивается |
Службы Analysis Services сервер | \Program Files\Microsoft SQL Server\MSAS.\ | Настраивается |
Службы Analysis Services файлы данных | \Program Files\Microsoft SQL Server\MSAS.\ | Настраивается |
Службы Reporting Services сервер отчетов | \Program Files\Microsoft SQL Server\MSRS.\Reporting Services\ReportServer\Bin\ | Настраивается |
Службы Reporting Services диспетчер отчетов | \Program Files\Microsoft SQL Server\MSRS.\Reporting Services\ReportManager\ | Фиксированный путь |
Службы Integration Services | \nnn\DTS\ 1 | Настраивается |
Клиентские компоненты (за исключением bcp.exe и sqlcmd.exe) | \nnn\Tools\ 1 | Настраивается |
Клиентские компоненты (bcp.exe и sqlcmd.exe) | \Client SDK\ODBC\nnn\Tools\Binn | Фиксированный путь |
Объекты COM для репликации и размещения на сервере | диск>:\Program Files\Microsoft SQL Server\nnn\COM\ 2 | Фиксированный путь |
Службы Integration Services библиотеки DLL служб для механизмов преобразования данных в реальном режиме времени и конвейерного преобразования данных и программа командной строки dtexec | диск>:\Program Files\Microsoft SQL Server\nnn\DTS\Binn | Фиксированный путь |
Библиотеки DLL, которые обеспечивают управляемое соединение, поддерживаемое для служб Службы Integration Services | диск>:\Program Files\Microsoft SQL Server\nnn\DTS\Connections | Фиксированный путь |
Библиотеки DLL для каждого типа перечислителей, которые поддерживают службы Службы Integration Services | диск>:\Program Files\Microsoft SQL Server\nnn\DTS\ForEachEnumerators | Фиксированный путь |
SQL Server , поставщики инструментария WMI | диск>:\Program Files\Microsoft SQL Server\nnn\Shared\ | Фиксированный путь |
Компоненты, которые разделены между всеми экземплярами SQL Server | диск>:\Program Files\Microsoft SQL Server\nnn\Shared\ | Фиксированный путь |
Убедитесь, чтобы папка \Program Files\Microsoft SQL Server\ была защищена ограниченными разрешениями.
Диск по умолчанию для расположений файлов — systemdrive, обычно диск C. Пути установки дочерних компонентов определяются путем установки родительского компонента.
1 Используется общий путь установки для Службы Integration Services и клиентских компонентов. Изменение пути установки для одного компонента влечет изменение пути для других компонентов. При последующих установках компоненты устанавливаются в расположение исходной установки.
2 Этот каталог используется всеми экземплярами SQL Server на компьютере. При применении обновления к любому из экземпляров на компьютере все файловые изменения коснутся каждого из них. При добавлении компонентов в существующую конфигурацию невозможно ни изменить расположение ранее установленного компонента, ни указать расположение нового. Необходимо либо установить дополнительные компоненты в каталоги, созданные программой установки, либо удалить продукт и установить его заново.
Для кластеризованных конфигураций необходимо выбрать локальный диск, доступный на всех узлах кластера.
При задании пути установки во время установки компонентов сервера или файлов данных программа установки использует идентификатор экземпляра в дополнение к заданному положению для программ и файлов данных. Программа установки не пользуется идентификаторами экземпляров для средств и других общих файлов. Идентификатор экземпляра также не используется для программ и файлов данных служб Службы Analysis Services , но используется для репозитория служб Службы Analysis Services .
При указании пути установки для компонента Компонент Database Engine программа установки SQL Server использует этот путь в качестве корневого каталога этой установки для всех папок, относящихся к экземпляру, включая файлы данных SQL. Если в этом случае указать в качестве корневого каталога C:\Program Files\Microsoft SQL Server\MSSQL.\MSSQL\, то каталоги, относящиеся к данному экземпляру, будут добавлены в конец этого пути.
Поэтому при использовании функции обновления USESYSDB в мастере установки SQL Server (режим установки с пользовательским интерфейсом) можно попасть в ситуацию, когда продукт окажется установленным в рекурсивной структуре папок. Например, SQLProgramFiles>\MSSQL14\MSSQL\MSSQL10_50\MSSQL\Data\. Поэтому при использовании функции USESYSDB вместо компонента Компонент Database Engine необходимо указывать путь установки файлов данных SQL.
Обычно файлы данных можно найти в дочернем каталоге с именем Data. Например, чтобы при обновлении указать путь к корневому каталогу данных системных баз данных, задайте C:\Program Files\Microsoft SQL Server\MSSQL.\, тогда файлы данных будут расположены в каталоге C:\Program Files\Microsoft SQL Server\MSSQL.\MSSQL\Data.
Как узнать путь до файлов базы данных MySQL/MariaDB в Linux и Windows
Файлы базы MySQL/MariaDB данных хранятся на жёстком диске. По умолчанию это папка data внутри директории исполнимых файлов MySQL (в Windows) или в директории /var/lib/mysql/ (Linux).
В настройках можно указать любое расположение базы данных MySQL — необязательно в папке с установленной программой, это может быть произвольная папка. Более того, на серверах с высокой нагрузкой рекомендуется файлы баз данных выносить на отдельный диск, чтобы не снижалась производительность из-за одновременного доступа к диску для чтения баз данных и для запуска исполнимых файлов.
Иногда непросто разобраться в сложной структуре веб-сервера, иногда нужно в скрипте реализовать возможность определять путь до файлов баз данных — например, в целях настройки автоматического резервного копирования.
Далее будет показано, как в командной строке можно определить, где расположены файлы баз данных MySQL в Windows и в Linux.
Определение пути без подключения к серверу СУБД
В Windows
В ОС Windows для получения пути до базы данных введите команду:
.\mysqld --verbose --help | findstr /b "datadir"
datadir c:\Server\data\DB\data\
Если вы получите сообщение, что команда mysqld не найдена, значит нужно указать путь до исполнимого файла mysqld или перейти в директорию с исполнимым файлом. Предположим, MySQL/MariaDB установлена в папке C:\Server\bin\mariadb, тогда переходим в поддиректорию bin, содержащую исполнимые файлы, и выполняем там указанную выше команду:
cd C:\Server\bin\mariadb\bin .\mysqld --verbose --help | findstr /b "datadir"
В Linux
В операционной системе Linux выполните следующую команду и она покажет вам путь до базы данных:
mysqld --verbose --help | grep ^datadir
Переменная @@datadir;
Этот способ работает на всех системах одинаково. Нужно выполнить подключение к системе управления базой данных. Например, для пользователя root это делается так:
mysql -u root -p
И затем в консоли MySQL/MariaDB выполните:
select @@datadir;
Как видно на скриншоте, путь до файлов базы данных на сервере, где введена команда, c:\Server\data\DB\data\.
Ещё один вариант выполнения данной команды:
mysql -u root -p -e "select @@datadir;"
Как узнать настройки директорий в MySQL/MariaDB
Чтобы показать информацию о всех настройках директорий СУБД сервера, выполнит команду:
mysql -u root -p -e "SHOW VARIABLES WHERE Variable_Name LIKE '%dir'"
Пример вывода в Windows для MariaDB:
+---------------------------+---------------------------------------+ | Variable_name | Value | +---------------------------+---------------------------------------+ | aria_sync_log_dir | NEWFILE | | basedir | C:\Server\bin\mariadb\ | | character_sets_dir | C:\Server\bin\mariadb\share\charsets\ | | datadir | c:\Server\data\DB\data\ | | innodb_data_home_dir | | | innodb_log_group_home_dir | .\ | | innodb_tmpdir | | | lc_messages_dir | | | plugin_dir | C:\Server\bin\mariadb\lib\plugin\ | | slave_load_tmpdir | C:\Windows\TEMP | | tmpdir | C:\Windows\TEMP | +---------------------------+---------------------------------------+
Чтобы вывести только datadir выполните команду:
mysql -u root -p -e "SHOW VARIABLES WHERE Variable_Name = 'datadir'"
Как узнать путь до базы данных MySQL/MariaDB в скрипте
Если вы используете полученное значение пути до папки баз данных, например, в скрипте, то есть вам нужно только значение без лишних символов псевдографики, которая имитирует таблицу, то примените следующую команду:
mysql -s -N -u root -p information_schema -e "SELECT Variable_Value FROM GLOBAL_VARIABLES WHERE Variable_Name = 'datadir'"
Примечание: если в Linux у вас проблемы с последними командами, то инвертируйте (поменяйте местами) одинарные и двойные кавычки.
Также не забывайте менять пользователя root на имя вашего пользователя.
Связанные статьи:
- Как импортировать и экспортировать базы данных в MySQL или MariaDB (57.5%)
- Как установить веб-сервер Apache с PHP 7, MariaDB/MySQL и phpMyAdmin (LAMP) на Ubuntu (57.5%)
- Изучение MySQL / MariaDB для начинающих (57.5%)
- 20 команд MySQL (mysqladmin) для администратора базы данных в Linux (57.5%)
- Как переместить директорию с данными MySQL/MariaDB в новое расположение на Ubuntu 16.10 или 17.04 (57.5%)
- Как разрешить доступ пользователю только к определённым таблицам в MySQL (MariaDB) (RANDOM — 57.5%)
Где находятся файлы Базы Данных SQL ?
Создал БД в Visual Studio 2010. Файл БД надо отправить по почте. Но не знаю где он находится. В свойствах БД в обозревателе серверов нету. В поиск вбивал .mdf — не нашел. Где мне найти созданный файл или файлы Базы Данных? Срочно надо отправить. Подскажите пожалуйста. Заранее благодарен.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как правильно настроить Genymotion и где потом искать файлы базы данных?
Здравствуйте. В проекте нужно создать базу данных. Как правильно настроить Genymotion и где.
Где находятся .pas файлы?
Простой вопрос, где находиться .pas файлы? К примеру Windows.pas,Variants.pas и т.д
Где находятся конфигурационые файлы Dock?
привет 1.подскажите где находяться конфигурационые файлы Dock на mac os. конкретней меня.
Где находятся файлы компонентов Delphi xe2
Возможно, глупый вопрос, но все же: где находятся файлы компонентов в Delphi XE2. У меня возник.
6046 / 3455 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
Тут два варианта:
1) БД создалась в папке с проектом
2) БД создалась в папке, которая по умолчанию выставлена в настройках сервера, как каталог для БД
Регистрация: 18.04.2013
Сообщений: 127
А как узнать где эта папка по умолчанию? я просто не помню что указал когда устанавливал.
6046 / 3455 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
попробуй поискать .mdf на диске C
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
Удобнее было бы забэкапить базу, нежели отправлять почтой сами файлы БД.
Но если так хочется отправить файлы, можно посмотреть результат выполнения запроса sp_HelpDB имябазы,
во втором датасете он перечислит все файлы базы. Ну или на базе правая кнопка мыши — свойства.
По умолчанию обычно базы кладутся в туда, куда им сказали быть при установке SQL сервера.
Обычно это директория Data по соседству с директорией самого сервера.
Например, C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA
Но это мой частный случай.
И по умолчанию нельзя надеяться, что все файлы базы окажутся там, где они по умолчанию и даже что все файлы базы будут расположены на одном диске.
Где хранятся базы данных MySQL
Файлы баз данных в СУБД MySQL хранятся на жёстком диске. По умолчанию все файлы с базами хранятся в директории /var/lib/mysql. Однако это путь можно изменить.
В данной статье будет показано как посмотреть, где хранятся файлы баз данных в СУБД MySQL в операционной системе Ubuntu 20.04.
Где хранятся базы данных MySQL
По умолчанию все файлы с базами хранятся в директории /var/lib/mysql. Однако, чтобы убедиться в этом можно выполнить команду sudo grep -R ‘datadir’ /etc/mysql/ которая отобразит полный путь до файлов, в которых хранятся базы данных:
sudo grep -R ‘datadir’ /etc/mysql/
Если перейти по предложенному пути — /var/lib/mysql то в директории будут расположены все необходимые файлы c баз данных. Команду для перехода в директорию необходимо выполнять из-под пользователя root иначе будет ошибка Permission denied:
Теперь вы знаете где находятся базы данных MySQL. Также можно выполнить команду mysqld с параметрами —verbose и —help которая отобразит путь хранения файлов с базами данных. Данная команда аналогична предыдущей команде.
mysqld —verbose —help | grep ^datadir
Если есть необходимость в изменении пути хранения файлов баз данных, то необходимо открыть конфигурационный файл MySQL от имени суперпользователя (root) при помощи любого текстового редактора. В данном примере, как мы узнали выше, конфигурационный файл находится по пути /etc/mysql/mysql.conf.d/mysqld.cnf. Команда для его редактирования будет выглядеть следующим образом:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
В открывшемся файле необходимо найти блок [mysqld] и в нем параметр с именем datadir в котором можно пописать нужный путь, где будут храниться базы данных. После того как путь был задан необходимо сохранить изменения, закрыть текстовый редактор и перезапустить СУБД при помощи команды:
sudo systemctl restart mysql
Выводы
В данной короткой статье было рассмотрено, где хранятся базы данных в СУБД MySQL. Также при желании можно изменить директорию для хранения. Есть ли у вас опты работы с СУБД MySQL? Расскажите в комментариях!