bak文件还原数据库后,导致SQLServer程序安装所在磁盘空间被大量占用,执行大容量文件迁移到其他磁盘的方法

主要是在SSMS上进行命令操作。

(1)将指定数据库设为脱机状态,断开所有连接

ALTER DATABASE [指定的数据库名称] SET OFFLINE;
GO

 

(2)执行下面命令,查询当前数据库文件的逻辑名称和物理路径(确认一下)

查询结果第一列是逻辑名称,第二列是物理路径

SELECT name, physical_name FROM sys.master_files WHERE database_id = DB_ID('指定数据库名');
GO

image

 (3)修改文件的逻辑路径(关键步骤),将其逻辑路径指定到磁盘空间更大的磁盘路径去

-- 将 'YourDB_Data' 和 'YourDB_Log' 替换为上面查询结果中的 'name' 列值
-- 将 'D:\SQL_Data\' 替换为你D盘的实际路径

ALTER DATABASE [指定的数据库名]
MODIFY FILE (NAME = YourDB_Data, FILENAME = 'D:\SQL_Data\XXXXX.mdf');

ALTER DATABASE [指定的数据库名]
MODIFY FILE (NAME = YourDB_Log, FILENAME = 'D:\SQL_Data\XXXXX.ldf');
GO

 

(4)手动移动物理文件到新地址

手动将原来的mdf文件和ldf文件剪切,放到新的大磁盘空间指定路径文件夹中

(就是上面所说的路径: FILENAME = 'D:\SQL_Data\XXXXX.mdf' 和FILENAME = 'D:\SQL_Data\XXXXX.ldf')

 

(5)将数据库重新联机,SQL Server会去你指定的大磁盘空间指定路径新位置寻找文件

ALTER DATABASE [指定的数据库名] SET ONLINE;
GO

 执行后,指定的数据库后面的"(脱机)"字样不再显示。说明大文件迁移成功!

image

 

posted @ 2026-06-04 15:18  上清风  阅读(33)  评论(0)    收藏  举报