我有一个数据库,想将.mdf和.ldf文件移动到另一个位置。但我不想停止MSSQLSERVER服务,也不想导出到另一台服务器。
.mdf
.ldf
MSSQLSERVER
我怎样才能做到这一点?
您不必停止 SQL Server 服务来移动数据库文件,但您必须使特定数据库脱机。这是因为您无法在访问文件时移动文件,并且使数据库脱机会阻止 SQL Server 应用程序使用这些文件。
移动它们的过程相当简单。已经描述了分离/附加,但它几乎没有这么复杂。
使用命令更改文件位置ALTER DATABASE:
ALTER DATABASE
USE master; --do this all from the master ALTER DATABASE foo MODIFY FILE (name='DB_Data1',filename='X:\NewDBFile\DB_Data1.mdf'); --Filename is new location ALTER DATABASE foo MODIFY FILE (name='DB_Data1_log',filename='X:\NewDBFile\DB_Data1_log.ldf');
请注意,您不需要在此命令中声明旧位置。更改此路径不会立即生效,但会在下次数据库启动时使用。
将数据库设置为脱机
(我WITH ROLLBACK IMMEDIATE过去常常把所有人踢出去并回滚所有当前打开的交易)
WITH ROLLBACK IMMEDIATE
ALTER DATABASE foo SET OFFLINE WITH ROLLBACK IMMEDIATE;
将文件移动/复制到新位置
只需使用您喜欢的方法复制文件(单击“n 拖动”、XCopy、Copy-Item、Robocopy)
使数据库联机
ALTER DATABASE foo SET ONLINE;