Temp DB
- tags
- #SQLServer #TempDB
- categories
- SQLServer
Работаем с Temp DB SQLServer. Расширение, перенос, обрезка.
Добавление дополнительных tempDB data files
Получить детализированную информацию о файлах БД, логах
use tempDB
go
EXEC SP_HELPFILE;
Добавить файлы для использования в tempDB
USE [master]
GO
ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N'tempdev', NEWNAME = N'tempdb', SIZE = 2097152KB , FILEGROWTH = 512MB )
GO
ALTER DATABASE [tempdb] ADD FILE ( NAME = N'tempdb32', FILENAME = N'N:\TEMPDB\tempdb32.mdf' , SIZE = 2097152KB , FILEGROWTH = 512MB )
GO
Удаление файлов tempDB (не полностью, а только дополнительных)
Restart SQL Server Instances and then execute the following query.
USE tempdb;
GO
DBCC SHRINKFILE('tempdev2', EMPTYFILE)
GO
USE master;
GO
ALTER DATABASE tempdb
REMOVE FILE tempdev2;
This will shrink the tempdb2.mdf data file and remove it. If the error still exists then modify the tempdev2 file by reducing its size to only 1 MB. To modify a temp db size run the following query:
ALTER DATABASE [tempdb] MODIFY FILE (
NAME = N'tempdev2',
SIZE = 1024KB );
Now once again restart the SQL Server Instances and then execute the following query:
USE tempdb;
GO
DBCC SHRINKFILE('tempdev2', EMPTYFILE)
GO
USE master;
GO
ALTER DATABASE tempdb
REMOVE FILE tempdev2;
This will definitely remove the tempdev2 data file.
Shrink TempDB
CHECKPOINT;
GO
DBCC DROPCLEANBUFFERS;
GO
DBCC FREEPROCCACHE;
GO
DBCC FREESYSTEMCACHE ('ALL');
GO
DBCC FREESESSIONCACHE;
GO
DBCC SHRINKFILE (tempdev, 100);
GO
Перенос TempDB - главного файла и логов
USE master;
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = 'T:\MSSQL\DATA\tempdb.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = 'T:\MSSQL\DATA\templog.ldf');
GO
Если переименовали диск, где лежит БД и лохонулись, оставили там tempdb
- Запусить SQL в минимальной конфигурации, без tempdb
NET START MSSQLSERVER /f /T3608
- Перейти в командную строку sql
SQLCMD -S sbvtnsap38 -E
- Теперь снова измените путь
USE master
GO
alter database tempdb
modify file
(
name = tempdev,
filename = 'C:\YourNewTempdbDir\tempdb.mdf'
)
go
alter database tempdb
modify file
(
name = templog,
filename = 'C:\YourNewTempdbDir\templog.ldf'
)
go
Источник <https://qastack.ru/dba/20734/safely-moving-and-creating-new-tempdb-files>