将数据库从 MS SQL Server 2003 导入到 MS SQL Server 2008

将数据库从 MS SQL Server 2003 导入到 MS SQL Server 2008

我有 2 个 MS SQL Server 在 2 个不同的域上运行,我正在尝试将数据从其中一个域导入另一个域。第一个 MS SQL Server 在 Windows Server 2003 上运行。第二个 SQL Server 在 Windows Server 2008 R2 上运行。

2008 年,我尝试使用开始->所有程序->Microsoft SQL Server 2008 R2->导入和导出数据(64 位)工具。那里说:
to move or copy databases and their objects from one server instance to another, cancel this wizard and use the Copy Database Wizard instead

我正在寻找复制数据库向导基于本文那里说我应该做以下事情:
In SQL Server Management Studio, in Object Explorer, expand Databases, right-click a database, point to Tasks, and then click Copy Database.

我为此创建了一个数据库,但是当我右键单击它并转到“任务”时,我没有复制数据库任务。

似乎允许我导入数据的唯一两个任务是:
-恢复:我可以尝试恢复在 SQL Server 2003 下创建的数据库的备份,但我收到一条错误消息,提示备份是为其他数据库创建的。我试过此解决方案但没起作用
。-导入数据:这将打开上面提到的导入和导出数据工具。如果我继续,我可以选择SQL 服务器本机客户端 10.0作为数据源,SQL Server 2003 作为服务器名称。但是使用 Windows 身份验证(2 个独立域名)和使用 SQL Server 身份验证选项失败(我仍在调查此问题)。


有人可以帮我指导如何将数据库从 MS SQL Server 2003 导入到在两个独立域上运行的 MS SQL Server 2008 吗?

答案1

首先,不存在 SQL Server 2003 这样的东西。

您需要对源数据库进行完整备份并将其还原到新的 SQL Server,可能使用 WITH MOVE 语法将文件放入正确的驱动器号位置。

不要使用复制数据或复制数据库向导。它们毫无用处。

RESTORE DATABASE [001] FROM DISK = 'C:\path\to\backup.bak' WITH REPLACE,
MOVE '001_Data' TO 'D:\Path\To\File\001.mdf',
MOVE '001_Log' TO 'E:\Path\To\File\001_log.ldf'

您需要找出旧服务器上 dbo.sysfiles 的逻辑文件名,并用正确的逻辑文件名替换 001_Data 和 001_Lo​​g。

答案2

最简单的做法是备份源服务器上的数据库,将备份传输到目标服务器,然后在目标服务器上恢复。这可以直接从 SSMS 完成。

答案3

我知道这已经很晚了,但是为了后人着想,我还是把它写在这里。我发现的最简单的解决方案(作为新手)是一开始就不要创建数据库。而是在 SQL Server Management Studio 中选择“数据库”,右键单击并选择“恢复数据库”,输入新数据库的名称,然后输入备份文件并恢复。我使用的是 SQL Server Management Studio 10

重要的一点是,如果您在 2008 年内创建数据库,然后尝试将旧数据库导入其中,则它们是不兼容的。

本页介绍了该过程。 http://www.techrepublic.com/blog/windows-and-office/how-do-i-restore-a-sql-server-database-to-a-new-server-80916/

相关内容