我正在使用SQL Server 2008,其中运行着近15个数据库。由于空间不足,我希望将数据路径移动到另一个驱动器上。请问这样做的最佳实践是什么?如果需要包括任何SQL命令,请详细说明,因为我对SQL Server管理相对较新。
注意 - 我已经从SQL Management Studio 2008更改了SQL Server属性的路径,以便使用新路径。但我也希望现有的数据库驻留在新路径中。
我正在使用SQL Server 2008,其中运行着近15个数据库。由于空间不足,我希望将数据路径移动到另一个驱动器上。请问这样做的最佳实践是什么?如果需要包括任何SQL命令,请详细说明,因为我对SQL Server管理相对较新。
注意 - 我已经从SQL Management Studio 2008更改了SQL Server属性的路径,以便使用新路径。但我也希望现有的数据库驻留在新路径中。
首先,分离数据库:
USE master;
GO
-- Important! We need to drop the existing connections.
ALTER DATABASE DBName SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
EXEC sp_detach_db @dbname = N'DBName';
GO
接下来,复制此数据库的 .mdf 和 .ldf 文件到新位置。
然后附加数据库:
USE master;
EXEC sp_attach_db @dbname = N'dbName',
@filename1 = N'', --path do .mdf
@filename2 = N''; --path to .ldf
GO
如果您不想逐个附加和分离数据库,可以使用在sys.databases动态管理视图中搜索的游标生成SQL脚本来附加和分离您所需的所有数据库(当然除了系统数据库),但别忘了复制数据库文件。