背景
數據庫默認安裝在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盤的文件可以正常刪除了。