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

时间:2020-03-05 18:57:50  来源:igfitidea点击:

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

1)创建每个目标数据库
2)使用"任务->导出数据"命令分别为每个数据库创建和填充表
3)使用SQL脚本为每个数据库重建所有索引

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

解决方案

回答

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

回答

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

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

回答

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

回答

也许最容易的是分离/重新连接。右键单击数据库上的服务器管理器,单击任务->分离。然后将MDF / LDF文件复制到新服务器,然后通过单击服务器图标和任务->添加来重新添加。它将要求我们提供MDF文件,以确保名称等正确。

回答

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

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

(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

回答

为了方便

  • 停止服务器/ fcopy /添加可能是最简单的。
  • 备份/还原-断开连接即可完成,非常简单容易
  • 传输DTS任务-需要文件复制权限
  • 复制-从简单到设置最远

关于权限,用户和目标服务器esp上的组的注意事项。如果我们要转移或者还原。

回答

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

回答

已经有更好的答案了,但这是"还可以"的原因,因为这只是另一种选择。

对于低廉的免费价格,我们可以查看Microsoft SQL Server数据库发布向导。该工具允许我们编写模式,数据或者数据和模式的脚本。 Plus可以从UI或者命令行<think CI进程中运行。

回答

如果使用"备份/还原"解决方案,则我们可能会有孤立的用户,因此请务必查看有关如何修复它们的本文<microsoft>。

回答

检查那些链接:

  • 对于多个数据库的备份
  • 和单数据库还原

回答

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

简单的SQL BULK复制

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