SQL Server 中如何移動tempdb到新的位置


操作步驟:
1、檢查tempdb的邏輯名字和它的存在位置。可以使用下面語句:

SELECT name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('tempdb');

 

 

2、停止數據庫服務.


3、拷貝原來tempdb的文件到新的位置(原來文件位置可以通過上述查詢得到)。拷貝完畢后,啟動數據庫服務。


4、執行如下命令:

USE master;
GO
ALTER DATABASE tempdb 
MODIFY FILE (NAME = tempdev, FILENAME = N'D:\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\系統臨時數據庫\tempdb.mdf');

ALTER DATABASE tempdb 
MODIFY FILE (NAME = temp2, FILENAME = N'D:\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\系統臨時數據庫\tempdb_mssql_2.ndf');

ALTER DATABASE tempdb 
MODIFY FILE (NAME = temp3, FILENAME = N'D:\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\系統臨時數據庫\tempdb_mssql_3.ndf');

ALTER DATABASE tempdb 
MODIFY FILE (NAME = temp4, FILENAME = N'D:\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\系統臨時數據庫\tempdb_mssql_4.ndf');

ALTER DATABASE tempdb 
MODIFY FILE (NAME = temp5, FILENAME = N'D:\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\系統臨時數據庫\tempdb_mssql_5.ndf');

ALTER DATABASE tempdb 
MODIFY FILE (NAME = temp6, FILENAME = N'D:\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\系統臨時數據庫\tempdb_mssql_6.ndf');

ALTER DATABASE tempdb 
MODIFY FILE (NAME = temp7, FILENAME = N'D:\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\系統臨時數據庫\tempdb_mssql_7.ndf');

ALTER DATABASE tempdb 
MODIFY FILE (NAME = temp8, FILENAME = N'D:\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\系統臨時數據庫\tempdb_mssql_8.ndf');

GO
ALTER DATABASE  tempdb 
MODIFY FILE (NAME = templog, FILENAME = N'D:\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\系統臨時數據庫\templog.ldf');
GO

在這里,name=tempdev 和templog 等是tempdb的邏輯名字,FILENAME = N'D:\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\系統臨時數據庫\tempdb.mdf'是tempdb的新位置.

執行結果如下:

 

5、然后檢查tempdb移動是否成功。

SELECT name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('tempdb');

 

 

6、接着重啟數據庫服務

 

7、注意在步驟3中,我們重新啟動數據庫服務的時候,還是會在老的tempdb路徑下生成一套tempdb的數據庫文件,現在它們都是沒用的垃圾文件了,我們要去刪掉它們。

 

特別提示:

存放SQL Server數據庫文件及數據庫日志文件的文件夾,必須要開放對Windows用戶組"NT Service\MSSQLSERVER"(也就是SQL Server服務的執行賬戶)的Full control權限,否則會導致上面步驟6中重啟SQL Server服務失敗。

如果你不知道SQL Server服務的執行賬戶是什么,可以通過在Windows服務(services)管理列表中,找到SQL Server數據庫引擎服務(如果你只有一個SQL Server Instance,一般就是"SQL Server (MSSQLSERVER)"),然后查看其"Log On As"列的賬戶:

如果你發現SQL Server執行賬戶不是上圖中的"NT Service\MSSQLSERVER",那么需要將存放SQL Server數據庫文件及數據庫日志文件的文件夾,開放相應Windows賬戶的Full control權限。

這一點要千萬注意,否則SQL Server服務啟動不起來會非常麻煩,如果實在因為移動tempdb到新位置后,SQL Server服務啟動不起來,可以參考下面這個帖子的內容:

How to Start SQL Server without TempDB

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM