查看基本信息
查看tempdb的数据文件和日志文件
select name,physical_name from sys.master_files where database_id=db_id('tempdb')
看tempdb log的使用率
dbcc sqlperf(logspace)
看日志状态
SELECT name,log_reuse_wait_desc FROM sys.databases where name='tempdb'
(日志状态是ACTIVE_TRANSACTION时无法收缩日志。NOTHING时可以开始收缩。)
收缩tempdb
参考官网
https://learn.microsoft.com/zh-cn/sql/relational-databases/databases/shrink-tempdb-database?view=sql-server-ver16
收缩语句:
USE tempdb;
GO
-- This command shrinks the primary data file
DBCC SHRINKFILE (tempdev, '<target_size_in_MB>');
GO
-- This command shrinks the log file, examine the last paragraph.
DBCC SHRINKFILE (templog, '<target_size_in_MB>');
GO
tempdb收缩日志文件示例:
DBCC SHRINKFILE (N'templog' , 10)
tempdb收缩数据文件示例:
DBCC FREESYSTEMCACHE('ALL')
DBCC SHRINKFILE(N'tempdev',100)
DBCC SHRINKFILE(N'temp2',100)
如日志有占用,则需要等进程占用结束。
查看哪个会话占用日志:
DBCC OPENTRAN
GO
SELECT *
FROM sys.dm_exec_sessions AS t2 ,
sys.dm_exec_connections AS t1
CROSS APPLY sys.dm_exec_sql_text(t1.most_recent_sql_handle) AS st
WHERE t1.session_id = t2.session_id
AND t1.session_id > 50
查看216进程信息:
select p.*,s.text
from master.dbo.sysprocesses p
cross apply sys.dm_exec_sql_text(p.sql_handle) s
where spid = 216
能kill的话,直接杀除会话
kill 216
迁移
参考官网:
https://learn.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008-r2/ms345408(v=sql.105)
因为每次启动 SQL Server 服务时都重新创建 tempdb,所以不必实际移动数据和日志文件。在步骤 3 中重新启动服务时,将在新位置中创建这些文件。在重新启动服务之前,tempdb 将继续使用现有位置中的数据和日志文件。重新启动 SQL Server 服务后,可能要从原始位置删除旧的 tempdb 数据和日志文件。
确定 tempdb 数据库的逻辑文件名称以及在磁盘上的当前位置。
SELECT name, physical_name AS CurrentLocation
FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb');
GO
使用 ALTER DATABASE 更改每个文件的位置。
USE master;
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = 'F:\SQLLog\templog.ldf');
GO
停止再重新启动 SQL Server 的实例。
验证文件更改。
SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb');
最后将原始文件删除。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




