Ore*_*reo 9 sql-server t-sql tempdb datafile
如何将我的TempDB 数据或日志文件从现在的任何位置移动到不同的驱动器或文件夹?
Ore*_*reo 12
移动 TempDB 文件是一个两步过程:
SQL Server
服务,以使更改生效要告诉 SQL 在哪里创建新的 TempDB 文件,您可以使用:
DECLARE @newDriveAndFolder VARCHAR(8000);
SET @newDriveAndFolder = 'Z:\YourTempDBfolder';
SELECT [name] AS [Logical Name]
,physical_name AS [Current Location]
,state_desc AS [Status]
,size / 128 AS [Size(MB)] --Number of 8KB pages / 128 = MB
,'ALTER DATABASE tempdb MODIFY FILE (NAME = ' + QUOTENAME(f.[name])
+ CHAR(9) /* Tab */
+ ',FILENAME = ''' + @newDriveAndFolder + CHAR(92) /* Backslash */ + f.[name]
+ CASE WHEN f.[type] = 1 /* Log */ THEN '.ldf' ELSE '.mdf' END + ''''
+ ');'
AS [Create new TempDB files]
FROM sys.master_files f
WHERE f.database_id = DB_ID(N'tempdb')
ORDER BY f.[type];
Run Code Online (Sandbox Code Playgroud)
这将生成您需要运行的 T-SQL 语句,以将文件移动到drive:\folder
您想要的新位置。(点击图片放大)
运行移动语句后,您可以再次运行上述查询,以检查该Current Location
列现在是否显示了新的drive:\folder
.
对更改感到满意后,请重新启动 SQL Server 服务。
小智 6
上面脚本中大小(MB)的计算已关闭。不要忘记 sys.master_files 中的大小是 8KB 页面的数量。这是正确的脚本:
DECLARE @newDriveAndFolder VARCHAR(8000);
SET @newDriveAndFolder = 'Z:\YourTempDBfolder';
SELECT [name] AS [Logical Name]
,physical_name AS [Current Location]
,state_desc AS [Status]
,size*8/1024 AS [Size(MB)] --Number of 8KB pages dived by 1024
,'ALTER DATABASE tempdb MODIFY FILE (NAME = ' + QUOTENAME(f.[name])
+ CHAR(9) /* Tab */
+ ',FILENAME = ''' + @newDriveAndFolder + CHAR(92) /* Backslash */ + f.[name]
+ CASE WHEN f.[type] = 1 /* Log */ THEN '.ldf' ELSE '.mdf' END + ''''
+ ');'
AS [Create new TempDB files]
FROM sys.master_files f
WHERE f.database_id = DB_ID(N'tempdb')
ORDER BY f.[type];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5616 次 |
最近记录: |