如何复制SQL Server数据库

时间:2009-11-16 18:19:46

标签: sql sql-server

我想知道我对复制SQL Server数据库的选择是什么。如果这是重复,我将删除我的问题,但在使用搜索时找不到答案。

这是我已经尝试过的:

- 将数据库写入sql脚本。
当我这样做时,我似乎总是遇到一个问题,我必须手动调整东西。像密钥或整理冲突的问题一样。

这似乎也很慢。我的上一个脚本文件是1.5Mb,但运行时间为1小时。在90%时遇到错误也很烦人。

我主要是使用sql脚本工作,但感觉我浪费了大量时间来修复小错误并等待sql执行。

- 在Microsoft SQL Server Management Studio上使用导出功能
如果我是正确的,这不会复制存储过程,视图和/或密钥。

-Detach / Attach
认为在只有一个数据库的共享主机上这通常是不可能的,这是正确的吗?尝试这个时我遇到了许可问题。

这就是我尝试过的一切。

提前致谢,

Pickels

5 个答案:

答案 0 :(得分:5)

我发现最简单的方法是使用“备份/还原”选项。备份数据库,将文件复制到新服务器,然后执行还原。您需要首先在第二台服务器上创建一个空白数据库,但不需要定义任何表或任何内容。然后,右键单击新的空白数据库,并从第一台服务器上备份的文件中选择“还原和还原”。

执行还原时,如果原始数据库文件存储在新服务器上不存在的路径中,或者您要还原到某个路径,则可能需要转到“选项”页面并设置“还原为”路径。不同的位置。默认情况下,它会尝试将数据库还原到与原始服务器上相同的路径。

答案 1 :(得分:5)

这取决于您的托管服务提供商允许的内容。一些允许附加/恢复,一些不允许,一些允许它但按事件收费。即使允许,数据库版本也是极其重要的,因为引擎能够升级数据库,但它无法降级版本,因此您的开发版本最多只能是提供者的版本,而不是更新版本。

但最终这是一个发展过程的问题。您永远不应该通过修改数据库来开发,而是创建保持在源代码管理下的脚本,以应用任何应用程序架构更改(包括所有过程和所有目录数据)。应用程序应该能够从这些脚本升级数据库模式,包括初始部署。我的建议是在扩展属性中使用应用程序定义的版本,并使用脚本来更新应用程序模式版本:Version Control and your Database

但是现在猫已经不在了,你已经做了不好的练习,你最好的选择是一个很好的第三方脚本/比较工具,比如SQL Compare

答案 2 :(得分:3)

如果要迁移到MS SQL Server 2008,可以选择“复制数据库”,您可以选择复制所有或选定的数据库。

右键单击数据库 - >任务 - >复制数据库。完成向导并选择“分离和附加”方法或“SQL管理方法”(如果您希望数据库保持在线状态)。

但请注意,这只适用于目标SQL是MsSQL 2008的情况。

答案 3 :(得分:0)

尝试完整备份和恢复。

答案 4 :(得分:0)

尝试DBSourceTools。 http://dbsourcetools.codeplex.com
它的开源,专门用于编写整个数据库的脚本 - 表,视图,磁盘的触发器 然后,您需要做的就是创建一个部署目标 单击deploy - 该工具将数据库复制到新目标 通过使用SQL批量复制来上传数据,它可以在几秒钟内完成10000条记录。

玩得开心