bak文件还原数据库后,导致SQLServer程序安装所在磁盘空间被大量占用,执行大容量文件迁移到其他磁盘的方法
主要是在SSMS上进行命令操作。
(1)将指定数据库设为脱机状态,断开所有连接
ALTER DATABASE [指定的数据库名称] SET OFFLINE;
GO
(2)执行下面命令,查询当前数据库文件的逻辑名称和物理路径(确认一下)
查询结果第一列是逻辑名称,第二列是物理路径
SELECT name, physical_name FROM sys.master_files WHERE database_id = DB_ID('指定数据库名');
GO

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


浙公网安备 33010602011771号