我不打算将数据库完全迁移到另一台服务器,而只是将数据文件和日志文件移动到另一个具有更多空间的驱动器。我看到关于如何执行此操作的相互矛盾的说明,因此我正在寻找推荐的正确方法。
最佳答案
分离数据库:
use master
go
sp_detach_db 'mydb'
移动数据库文件(显示 Xcopy 到 xp_cmdshell):
DECLARE @SRCData nvarchar(1000)
SET @SRCData = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\mydb.mdf';
DECLARE @SRCLog nvarchar(1000)
SET @SRCLog = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\mydb_log.ldf';
DECLARE @FILEPATH nvarchar(1000);
DECLARE @LOGPATH nvarchar(1000);
SET @FILEPATH = N'xcopy /Y ' + @SRCData + N' D:\Data';
SET @LOGPATH = N'xcopy /Y ' + @SRCLog + N' E:\Log';
exec xp_cmdshell @FILEPATH;
exec xp_cmdshell @LOGPATH;
重新附加数据库:
sp_attach_db 'mydb', 'D:\Data\mydb.mdf', 'E:\Log\mydb_log.ldf'
这里有更多详细信息 Microsoft KB article .
关于database - 在 SQL Server 2005 中将数据库从一个驱动器移动到另一个驱动器的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1119834/