Перемещение базы данных TEMPDB в MSSQL


TEMPDB представляет собой системную базу данных Microsoft SQL Server, в которой хранятся временные таблицы, созданные как самим сервером, так и пользователями. Эта база данных создается заново при каждом перезапуске Microsoft SQL Server. По умолчанию размер этой базы данных неограничен и увеличение его осуществляется при необходимости автоматически, порциями по 10% от текущего размера TEMPDB. Однако эти параметры могут быть переопределены пользователем. По умолчанию, минимальный размер этой базы данных, который устанавливается при старте Microsoft SQL Server, определяется размером системной базы данных MODEL. Очистка журнала транзакций в этой базе данных производится автоматически, при этом удаляются только неактивные записи журнала транзакций. 

При работе сервера широко используются временные таблицы, кроме того, TEMPDB используется в Microsoft SQL Server при выполнении запросов, использующих операторы GROUP BY, UNION, DISTINCT и т.п.


В процессе работы сервера MSSQL возможно значительное увеличение размера базы данных TEMPDB. Если размер диска, на котором расположена база данных TEMPDB, окажется недостаточным, сервер может завершиться аварийно. 

Решение

Если эта проблема проявляется регулярно, то рекомендуется переместить TEMPDB на другой диск большего размера.

Эту операцию можно выполнить следующим способом:

  • определить логические имена файлов базы данных TEMPDB (колонка "NAME" результата выполнения процедуры). Для этого нужно в Query Analyzer выполнить следующую команду: 
USE tempdb
GO
EXEC sp_helpfile
GO
  • изменить месторасположение файлов базы данных TEMPDB с помощью команды ALTER DATABASE. Для этого нужно в Query Analyzer выполнить следующую последовательность команд:
USE master
GO
ALTER DATABASE tempdb 
MODIFY FILE (NAME = tempdev, FILENAME = 'Новый_Диск:\Новый_Каталог\tempdb.mdf')
GO
ALTER DATABASE  tempdb 
MODIFY FILE (NAME = templog, FILENAME = 'Новый_Диск:\Новый_Каталог\templog.ldf')
GO
ALTER DATABASE tempdb 
MODIFY FILE (NAME = temp2, FILENAME = 'Новый_Диск:\Новый_Каталог\temp2.ndf')
GO
ALTER DATABASE tempdb 
MODIFY FILE (NAME = temp3, FILENAME = 'Новый_Диск:\Новый_Каталог\temp3.ndf')
GO
ALTER DATABASE tempdb 
MODIFY FILE (NAME = temp4, FILENAME = 'Новый_Диск:\Новый_Каталог\temp4.ndf')
GO
ALTER DATABASE tempdb 
MODIFY FILE (NAME = temp5, FILENAME = 'Новый_Диск:\Новый_Каталог\temp5.ndf')
GO
ALTER DATABASE tempdb 
MODIFY FILE (NAME = temp6, FILENAME = 'Новый_Диск:\Новый_Каталог\temp6.ndf')
GO
ALTER DATABASE tempdb 
MODIFY FILE (NAME = temp7, FILENAME = 'Новый_Диск:\Новый_Каталог\temp7.ndf')
GO
ALTER DATABASE tempdb 
MODIFY FILE (NAME = temp8, FILENAME = 'Новый_Диск:\Новый_Каталог\temp8.ndf')
GO
  1. Перезапустить Microsoft SQL Server.

Похожие новости

Комментариев 0

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.