SQLServer修改系統庫的路徑


背景

數據庫默認安裝在C盤,由於復制訂閱或者大容量更新查詢等導致tempdb系統庫、distribution系統庫容量過大,C盤容量不足,需要將部分系統庫進行遷移,以distribution庫為例進行系統庫遷移,其他庫類似操作即可。

查詢當前系統庫信息

use distribution
go
 
--查詢邏輯名與當前路徑
SELECT name, physical_name 
FROM sys.database_files

 

當前系統庫路徑為C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data,指定遷移到路徑D:\db

--修改到指定路徑
ALTER DATABASE distribution MODIFY FILE (NAME = 'distribution',  FILENAME = 'D:\db\distribution.mdf')
ALTER DATABASE distribution MODIFY FILE (NAME = 'distribution_log',  FILENAME = 'D:\db\distribution.LDF') 

注意,如果是tempdb系統庫遷移,可能會有多個ndf日志文件

--修改到指定路徑
ALTER DATABASE tempdb MODIFY FILE (NAME = 'tempdev',  FILENAME = 'D:\db\tempdb.mdf')
ALTER DATABASE tempdb MODIFY FILE (NAME = 'templog',  FILENAME = 'D:\db\templog.ldf') 
ALTER DATABASE tempdb MODIFY FILE (NAME = 'temp2',  FILENAME = 'D:\db\tempdb_mssql_2.ndf') 
ALTER DATABASE tempdb MODIFY FILE (NAME = 'temp3',  FILENAME = 'D:\db\tempdb_mssql_3.ndf') 
ALTER DATABASE tempdb MODIFY FILE (NAME = 'temp4',  FILENAME = 'D:\db\tempdb_mssql_4.ndf') 
ALTER DATABASE tempdb MODIFY FILE (NAME = 'temp5',  FILENAME = 'D:\db\tempdb_mssql_5.ndf') 
ALTER DATABASE tempdb MODIFY FILE (NAME = 'temp6',  FILENAME = 'D:\db\tempdb_mssql_6.ndf') 
ALTER DATABASE tempdb MODIFY FILE (NAME = 'temp7',  FILENAME = 'D:\db\tempdb_mssql_7.ndf') 
ALTER DATABASE tempdb MODIFY FILE (NAME = 'temp8',  FILENAME = 'D:\db\tempdb_mssql_8.ndf')  

遷移

關閉MSSQLSERVER服務

將相關文件拷貝到新的地址

開啟MSSQLSERVER服務

驗證

use distribution
go
 
--查詢邏輯名與當前路徑
SELECT name, physical_name 
FROM sys.database_files

 

 原C盤的文件可以正常刪除了。


免責聲明!

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



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