如何最好地在MS SQL Server中复制整个数据库?
我需要将大约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