SQL Server Express – 通过复制数据文件夹移动?

我们正在将我们的SQL Server移动到新的硬件上。 最初我们只是通过备份和恢复来做到这一点,但注意到我们必须重新创build所有login。 我们不想这样做:)

停机时间不是一个问题,那么可以简单地停止旧的和新的服务器,并复制两者之间的所有mdf文件? 这将复制具有login的主数据库以及所有的数据库。 我只是不知道是否支持。

我们使用的是SQL Express,所以没有花俏的花里胡哨的东西,但另一方面,停机时间不是问题。

谢谢!

每个数据库的每个数据库文件的位置都以绝对完整path存储在master中。 这意味着您将不得不在新服务器上完全复制所有文件(包括驱动器号)。 如果这是可能的,那么你可以复制这些文件。 复制完成后, @@SERVERNAME将返回旧的服务器名称,并且可以按照KB818334中描述的过程进行更正 。 另外需要注意的是,如果您有任何可能使用DPAPI机器或服务密钥(例如,链接的服务器凭证,代理服务器,数据库主密钥等)保存的encryption相关信息,则复制后将无法访问新的主机DPAPI将无法解密它们。

总体而言,复制文件(特别是主文件)不是受支持的过程,可能会导致服务器不可用。 复制login是一个众所周知的过程和支持(甚至有一个SSIS任务 )。

我不会推荐你像你打算做的那样移动master数据库文件。 它比移动login更混乱。 事实上,如果你按照之前的文章,移动login就更容易了。

http://support.microsoft.com/kb/918992

我build议使用DETACH并使用CREATE DATABASE FOR ATTACH。

http://weblogs.sqlteam.com/dang/archive/2009/01/18/Dont-Use-sp_attach_db.aspx http://www.sqlservercentral.com/articles/Administration/65896/