Данная статья описывает процесс смены расположения файлов системной базы данных tempdb. Если администратор выполняет установку MS SQL Server по умолчанию, то файлы БД располагаются на системном диске, что является плохой практикой, например для сервера MS SQL SERVER 2019 файлы БД находятся в директории:
'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA'
Чтобы перенести данные файлы необходимо сначала получить информацию о них. Это можно сделать следующей командой
use tempdb SELECT name,physical_name,state_desc FROM sys.database_files
Для MS SQL Server 2019 результат будет следующим:
name | physical_name | state_desc |
tempdev | 'C:\Program Files\Microsoft SQL Server\ MSSQL15.MSSQLSERVER\MSSQL\DATA\tempdb.mdf' |
ONLINE |
templog | 'C:\Program Files\Microsoft SQL Server\ MSSQL15.MSSQLSERVER\MSSQL\DATA\templog.ldf' |
ONLINE |
temp2 | 'C:\Program Files\Microsoft SQL Server\ MSSQL15.MSSQLSERVER\MSSQL\DATA\ tempdb_mssql_2.ndf' |
ONLINE |
temp3 | 'C:\Program Files\Microsoft SQL Server\ MSSQL15.MSSQLSERVER\MSSQL\DATA\ tempdb_mssql_3.ndf' |
ONLINE |
temp4 | 'C:\Program Files\Microsoft SQL Server\ MSSQL15.MSSQLSERVER\MSSQL\DATA\ tempdb_mssql_4.ndf' |
ONLINE |
Из результатов данной выборки нам необходимы логические имена фалов БД (NAME) и название файлов. Для примера нам необходимо перенести файлы в папку: D:\SQL\TEMP\. В этом случае скрипты будет иметь вид.
Указываем новое месторасположение для *.mdf и *.ldf файлов
USE master ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'D:\SQL\TEMP\tempdb.mdf') ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'D:\SQL\TEMP\templog.ldf')
В случае если есть *.ndf файлы, то для них так же указываем новое расположение.
ALTER DATABASE tempdb MODIFY FILE (NAME = temp2, FILENAME = 'D:\SQL\TEMP\tempdb_mssql_2.ndf') ALTER DATABASE tempdb MODIFY FILE (NAME = temp3, FILENAME = 'D:\SQL\TEMP\tempdb_mssql_3.ndf') ALTER DATABASE tempdb MODIFY FILE (NAME = temp4, FILENAME = 'D:\SQL\TEMP\tempdb_mssql_4.ndf')
После выполнения скриптов необходимо:
- Остановить MS SQL Server.
- Перенести файлы в новую директорию.
- Запустить MS SQL Server.
Если при запуске MS SQL SERVER в сообщениях Windows появляются следующие ошибки:
Операция CREATE FILE вызвала ошибку операционной системы 5(Отказано в доступе.) при попытке открыть либо создать физический файл «D:\SQL\TEMP\tempdb.mdf».
Операция CREATE FILE вызвала ошибку операционной системы 5(Отказано в доступе.) при попытке открыть либо создать физический файл «E:\SQL\TEMP\templog.ldf».
FCB::Open failed: не удалось открыть файл D:\SQL\TEMP\tempdb.mdf для номера файла 1. Ошибка ОС: 5(Отказано в доступе.).
то необходимо дать права на папку пользователю из-под которого запущен MS SQL SERVER