22

我需要将大约 40 个数据库从一台服务器复制到另一台服务器。新数据库应该有新的名称,但所有的表、数据和索引都与原始数据库相同。到目前为止,我一直:

1) 创建每个目标数据库
2) 使用“ Tasks->Export Data ”命令分别为每个数据库创建和填充表
3) 使用 SQL 脚本重建每个数据库的所有索引

每个数据库只有三个步骤,但我敢打赌有一个更简单的方法。那里有任何 MS SQL Server 专家有什么建议吗?

4

11 回答 11

47

鉴于您在多个数据库上执行此操作——您需要一个简单的脚本解决方案,而不是点击式解决方案。

这是我保留的备份脚本。让它为一个文件工作,然后为多个文件修改它。

(on source server...)
BACKUP DATABASE Northwind
  TO DISK = 'c:\Northwind.bak'

(target server...)
RESTORE FILELISTONLY
  FROM DISK = 'c:\Northwind.bak'

(look at the device names... and determine where you want the mdf and
ldf files to go on this target server)

RESTORE DATABASE TestDB
  FROM DISK = 'c:\Northwind.bak'
  WITH MOVE 'Northwind' TO 'c:\test\testdb.mdf',
  MOVE 'Northwind_log' TO 'c:\test\testdb.ldf'
GO
于 2008-09-17T03:34:50.450 回答
14

也许最简单的是分离/重新连接。右键单击数据库上的服务器管理器,任务 --> 分离。然后将 MDF/LDF 文件复制到新服务器,然后通过单击服务器图标和任务--> 附加重新附加。它会要求您提供 MDF 文件 - 确保名称等准确无误。

于 2008-09-17T03:33:43.790 回答
4

为了方便

  • stop server/fcopy/attach 可能是最简单的。
  • 备份/恢复 - 可以非常简单和容易地断开连接
  • 传输 DTS 任务 - 需要文件复制权限
  • 复制 - 最简单的设置

考虑目标服务器上的权限、用户和组的事情,尤其是。如果您正在转移或恢复。

于 2008-09-17T03:38:08.333 回答
4

已经有更好的答案,但这是一个“也跑”,因为它只是另一种选择。

对于免费的低价,您可以查看Microsoft SQL Server 数据库发布向导。此工具允许您编写模式、数据或数据和模式的脚本。Plus 可以从 UI 或命令行运行<-想想 CI 过程。

于 2008-09-17T05:15:39.410 回答
2

备份 -> 恢复是最简单的,如果不使用复制的话。

于 2008-09-17T03:31:35.980 回答
2

如果您使用备份/恢复解决方案,您可能会有孤立的用户,因此请务必查看这篇关于如何修复它们的文章<microsoft>。

于 2008-09-17T11:35:10.903 回答
2

另一个快速简单的检查方法:

简单的 SQL 批量复制

http://projects.c3o.com/files/3/plugins/entry11.aspx

于 2009-11-30T05:48:07.537 回答
1

使用企业管理器中的标准 SQL 备份工具备份数据库,然后当您在第二台服务器上恢复时,您可以指定新数据库的名称。

这是完整维护模式的最佳方式。

于 2008-09-17T03:32:40.097 回答
0

使用备份将数据库恢复到具有新名称的新服务器。

于 2008-09-17T03:32:57.053 回答
0

Redgate SQL 比较和 SQL 数据比较。迄今为止,比较捆绑包是我为之工作的公司所做的最好的投资。移动电子培训内容轻而易举。

于 2008-09-17T03:40:12.400 回答
0

检查这些链接:

于 2009-06-30T17:31:37.817 回答