跳到主要内容
系统常识 SQL Server数据库文件迁移

数据库文件位置怎么迁移

SQL Server 数据库 .mdf/.ndf 文件迁移到新卷的标准步骤:改物理路径 + 分离附加,以及日志文件收缩的注意点。

发布于 2026/11/11 所属频道 SQL Server

结论先行

官方支持的文件迁移路线只有一条:分离 → 挪文件 → 附加(ATTACH),不需要重建数据库。迁移前先查清每个文件当前的物理路径,目标是把数据文件与日志文件规划到 I/O 独立的卷上。

查清现状(迁移前必做)

-- 当前各文件逻辑名、物理路径、大小
SELECT name, physical_name, size/128.0 AS mb
FROM sys.master_files
WHERE database_id = DB_ID(N'Sales');

分离—移动—附加三步走

  1. 确保无连接:ALTER DATABASE Sales SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
  2. 分离(不删数据文件)。在 SSMS 管理工具条目 中右键数据库 → 分离,勾选保留文件;或执行:
USE master;
EXEC sp_detach_db N'Sales'; -- 仅登记分离,不删除 .mdf/.ndf/.ldf
  1. 把 .mdf、.ndf、.ldf 物理拷到新卷(可跨卷复制)。
  2. 附加回来,指定新路径:
CREATE DATABASE Sales ON
  (FILENAME = N'D:\data\Sales.mdf'),
  (FILENAME = N'D:\data\Sales_ndf1.ndf')
LOG ON (FILENAME = N'E:\log\Sales_log.ldf');

附加时文件数必须与备份时一致,少一个直接报错;文件损坏会在附加时暴露。

容易翻车的点

  • 日志文件不能跨卷拆分:一个 .ldf 只能整体放一个卷。
  • 大库挪文件耗时长(物理拷贝),避开业务高峰。
  • 分离后忘了附加直接关机,数据文件裸露在共享目录——有明文数据泄露风险。
  • 迁移完做整库备份,旧位置的文件确认无误后再删。

SQL Server 2022 Developer 条目环境下分离附加操作完整可用;分离附加的具体向导路径另见「分离附加数据库怎么操作」相关条目,SQL Server 产品族条目 中各引擎行为一致。

相关链接

本文内容基于公开资料整理,仅供参考;涉及授权与合规的操作请以厂商官方文档为准。

相关推荐下载

按本文主题匹配的官方原版镜像条目

配套 PE 工具

制作启动盘、备份数据、修复引导

其他常识文章

同一集合内的相近主题,按标签与关键词匹配