分类: SQLServer
SQLServer修改数据文件日志文件的位置

由于还原数据库或数据库运行一段时间后,发现当前的磁盘不够用了,需要调整数据文件地址,以下是操作步骤:
1、记录原Logical Name和原来数据库文件位置。
对着数据库右键-》属性-》文件,记录原Logical Name和原来数据库文件的位置。
数据库属性.png

2、设置数据库文件新地址:

USE master;
--语法如下:
ALTER DATABASE 数据库名 
MODIFY FILE(NAME='数据文件逻辑名', FILENAME='数据文件的位置'); 
ALTER DATABASE 数据库名 
MODIFY FILE(NAME='日志文件逻辑名', FILENAME='日志文件的位置');

--设置新路径
ALTER DATABASE DBAutoDeploy MODIFY FILE ( NAME = DBAutoDeploy, FILENAME = 'E:\SQLDATA\DBAutoDeploy.mdf' );  
ALTER DATABASE DBAutoDeploy MODIFY FILE ( NAME = DBAutoDeploy_log, FILENAME = 'E:\SQLLOG\DBAutoDeploy_log.ldf' );  

3、将数据库offline对着数据库右键-》任务-》下线

--脱机下线并断开链接
ALTER DATABASE DBAutoDeploy SET OFFLINE WITH ROLLBACK IMMEDIATE; 

4、将文件移动到新位置,刚才指定的位置;

5、将数据库联机上线:

ALTER DATABASE DBAutoDeploy SET ONLINE;

6、查询文件修改情况:

SELECT name, physical_name AS CurrentLocation, state_desc FROM sys.master_files WHERE database_id = DB_ID(N'DBAutoDeploy');

至此修改完成,如果数据库联机报错“操作系统错误 5:“5(拒绝访问。)”设置下新文件的权限:
找到要附加的mdf文件-》右键-》属性-》安全-》选择当前用户-》编辑,勾选完全控制权限,确定,对log文件相同操作。

VIA:
https://learn.microsoft.com/zh-cn/sql/relational-databases/databases/move-user-databases?view=sql-server-ver16


相关博文:

发表新评论