[英]How best to copy entire databases in MS SQL Server?
我需要从一台服务器复制大约40个数据库到另一台服务器。 新数据库应具有新名称,但与原始数据库具有相同的表,数据和索引。 到目前为止我一直在:
1)创建每个目标数据库
2)使用“ 任务 - >导出数据 ”命令分别为每个数据库创建和填充表
3)使用SQL脚本重建每个数据库的所有索引
每个数据库只有三个步骤,但我敢打赌,这是一种更简单的方法。 有任何MS SQL Server专家有什么建议吗?
鉴于您在多个数据库上执行此操作 - 您需要一个简单的脚本解决方案,而不是点击解决方案。
这是我保留的备份脚本。 让它适用于一个文件,然后对其进行修改。
(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
也许最容易分离/重新连接。 右键单击DB上的服务器管理器,任务 - >分离。 然后将MDF / LDF文件复制到新服务器,然后通过单击服务器图标和任务 - >附加来重新附加。 它会询问您MDF文件 - 确保名称等是准确的。
为了方便
要考虑目标服务器上的权限,用户和组的事情。 如果您正在转移或恢复。
已有更好的答案,但这是一个'也跑',因为它只是另一种选择。
对于免费的低价格,您可以查看Microsoft SQL Server数据库发布向导 。 此工具允许您编写架构,数据或数据和架构的脚本。 Plus可以从UI或命令行运行< - 思考CI过程。
备份 - >还原是最简单的,如果不使用复制。
如果您使用备份/还原解决方案,则可能会有孤立用户,因此请务必查看本文 <microsoft>,了解如何解决这些问题。
使用Enterprise Manager中的标准SQL备份工具备份数据库,然后在第二台服务器上还原时,可以指定新数据库的名称。
这是完整维护模式的最佳方法。
使用备份将数据库还原到具有新名称的新服务器。
Redgate SQL比较和SQL数据比较。 对比套装是迄今为止我工作过的最好的投资公司。 移动电子培训内容轻而易举。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.