SQLServer修改系统库的路径

Posted 萧叶秋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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盘的文件可以正常删除了。

以上是关于SQLServer修改系统库的路径的主要内容,如果未能解决你的问题,请参考以下文章

缺少 SQL SERVER 2014 代码片段

捕获mssqlservice 修改表后的数据,统一存储到特定的表中,之后通过代码同步两个库的数据

修改maven本地仓库路径

修改maven本地仓库路径

只有mdf文件,怎么恢复SQLSERVER数据库?

是否可以从代码中获取依赖库的位置