爱子日志

如何移动数据库文件到别的盘符?

如何更改数据库文件的物理存储位置?

在SQL Server应用中,有时候会碰到这样的情况:数据库文件存放的磁盘空间不够,需要把部分的文件挪到其他磁盘上去以分担磁盘开销;老的磁盘读写I/O速度太慢,需要用的新磁盘代替以提高读写速度等。

下面以AdventureWorks2008R2数据库为例,演示了移动数据库文件的操作过程:

①查看当前数据库文件物理存储位置;

USE AdventureWorks2008R2;
GO
SELECT
 DB_NAME(database_id) AS Database_Name,
 name AS Logical_Name,
 physical_name AS Physical_Name,
 type_desc AS Type_Description
FROM sys.master_files WHERE database_id = DB_ID();
GO


②将数据库更改成离线状态;

USE master;
GO
ALTER DATABASE AdventureWorks2008R2 SET OFFLINE;
GO


③根据上面的获取的数据库文件物理存储位置,手动将目标文件移动到目标路径;

④更新数据库文件物理位置;

USE master;
GO
ALTER DATABASE AdventureWorks2008R2
MODIFY
FILE (NAME = AdventureWorks2008R2_Data,
FILENAME = 'C:\AdventureWorks2008R2\AdventureWorks2008R2_Data.mdf');
GO


⑤将数据库更改成在线状态;

USE master;
GO
ALTER DATABASE AdventureWorks2008R2 SET ONLINE;
GO


⑥执行第一步操确认文件被成功移动到新的物理位置。

http://social.microsoft.com/Forums/zh-CN/sqlserverzhchs/thread/3b674503-0f92-44fc-bcd6-f831bdafaf74

聚划算