如何最好地复制MS SQL Server中的整个数据库?

时间:2008-09-17 03:30:38

标签: sql-server database

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

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

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

11 个答案:

答案 0 :(得分:44)

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

这是我保留的备份脚本。 让它适用于一个文件,然后对其进行修改。

(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

答案 1 :(得分:14)

也许最容易分离/重新连接。右键单击DB上的服务器管理器,任务 - >分离。然后将MDF / LDF文件复制到新服务器,然后通过单击服务器图标和任务 - > gt; attach重新附加。它会询问您MDF文件 - 确保名称等准确无误。

答案 2 :(得分:4)

为了轻松

  • 停止服务器/ fcopy / attach可能最简单。
  • 备份/恢复 - 可以完全断开连接,简单易行
  • 转移DTS任务 - 需要文件复制权限
  • 复制 - 从简单到设置最远

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

答案 3 :(得分:4)

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

对于免费的低价格,您可以查看Microsoft SQL Server Database Publishing Wizard。此工具允许您编写架构,数据或数据和架构的脚本。 Plus可以从UI或命令行运行< - 思考CI流程。

答案 4 :(得分:2)

备份 - >如果不使用复制,则还原是最简单的。

答案 5 :(得分:2)

如果您使用备份/还原解决方案,则可能会有孤儿用户,因此请务必查看this article< microsoft>如何解决它们。

答案 6 :(得分:2)

另外一个快速而简单的方法:

简单SQL BULK复制

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

答案 7 :(得分:1)

使用Enterprise Manager中的标准SQL备份工具备份数据库,然后在第二台服务器上还原时,可以指定新数据库的名称。

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

答案 8 :(得分:0)

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

答案 9 :(得分:0)

Redgate SQL Compare和SQL数据比较。对比套装是迄今为止我工作过的最好的投资公司。移动电子培训内容轻而易举。

答案 10 :(得分:0)