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盘的文件可以正常删除了。

posted @ 2019-12-18 10:10  萧叶秋  阅读(996)  评论(0编辑  收藏  举报