• Для скачивания ресурсов Форума пользователь должен написать не менее 5 полезных сообщений и получить 5 симпатий.
    Если Вы не хотите выполнять условия, Вы должны купить переход в группу "Работяга" или любое наше дополнение и сможете скачивать ресурсы, перевод происходит по email, который указывается при оплате.

Перемещение и удаление базы данных TEMPDB в Microsoft SQL Server

baltun

Администратор
Сообщения
7.206
Реакции
1.889
Баллы
1.833
В процессе работы 1С:Предприятия 8 возможно значительное увеличение размера базы данных TEMPDB. Если размер диска, на котором расположена база данных TEMPDB, окажется недостаточным, работа 1С:Предприятия 8 может завершиться аварийно. Если эта проблема проявляется регулярно, то рекомендуется переместить TEMPDB на другой диск большего размера.
Эту операцию можно выполнить следующим способом:
определить логические имена файлов базы данных TEMPDB (колонка "NAME" результата выполнения процедуры). Для этого нужно в Query Analyzer выполнить следующую команду:
SQL:
USE tempdb
GO
EXEC sp_helpfile
GO

изменить месторасположение файлов базы данных TEMPDB с помощью команды ALTER DATABASE. Для этого нужно в Query Analyzer выполнить следующую последовательность команд:
SQL:
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
Перезапустить Microsoft SQL Server.

Для удаление TEMPDB уменьшаем файл до размера 1МБ:
SQL:
ALTER DATABASE [tempdb] MODIFY FILE (
NAME = N'tempdev2',
SIZE = 1024KB );

И потом его удаляем:
SQL:
USE tempdb;
GO
DBCC SHRINKFILE('tempdev2', EMPTYFILE)
GO
USE master;
GO
ALTER DATABASE tempdb
REMOVE FILE tempdev2;
Перезапускаем Microsoft SQL Server.

Если вы делали сжатие папки MSSQL\DATA тогда вы можете столкнуться при запуске SQL Server при просмотре событий с такой ошибкой:
SQL Server (MSSQLSERVER) %%5118
Ее решение уберите сжатие папки MSSQL\DATA и снова запустите SQL Server.

Если после переноса TEMPDB у вас по каким то причинам не запускается сервер, тогда его можно запустить в однопользовательском режиме:
Код:
NET START MSSQLSERVER /f /T3608
NET START MSSQL$instancename /f /T3608

Вызовите через командную строку подключение под учетной записью Windows, имеющей права SYSADM (в моем случае это будет administrator)
Код:
SQLCMD -s COMPUTERNAME\administrator

Теперь снова измените путь:
SQL:
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
 
Последнее редактирование:
Верх Низ