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

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

我们正在将 SQL Server 迁移到新硬件。最初我们打算通过备份和恢复来做到这一点,但发现我们必须重新创建所有登录信息。我们不想这样做 :)

停机不是问题,那么是否可以简单地停止新旧服务器并在两者之间复制所有 mdf 文件?这将复制包含登录名的主数据库以及所有数据库。我只是不知道它是否受支持。

我们使用的是 SQL Express,因此没有花哨的功能,但另一方面,停机时间不是问题。

谢谢!

答案1

每个数据库的每个数据库文件的位置都存储在 中master,采用绝对完整路径。这意味着您必须将所有文件复制到确切地在新服务器上使用相同的完整路径(包括驱动器号)。如果可以,则可以复制文件。复制后,@@SERVERNAME将返回旧服务器名称,可以按照中描述的步骤进行更正KB818334。另外要注意的是,如果您使用 DPAPI 机器或服务密钥保存了任何与加密相关的内容(例如链接服务器凭据、代理、数据库主密钥等),则复制后它们将无法访问,因为新主机 DPAPI 将无法解密它们。

总体而言,复制文件(特别是主文件)不是受支持的程序,可能会导致服务器无法使用。复制登录名是一种众所周知的程序,并且受支持(甚至有一个SSIS 任务为了它)。

答案2

我不建议您像计划的那样移动主数据库文件。与移动登录相比,这更麻烦。事实上,如果您按照之前的文章操作,移动登录会更容易。

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

我建议使用 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/

相关内容