如何复制SQL Server 2005数据库?

在我的环境中,我需要将数据库从一台服务器复制到另一台服务器。 通常是一个QA机器到我的本地盒子。

我无法访问QA机器。 我可以连接到数据库,但不能将RDP放入框中。

将数据库从QA服务器复制到我的机器的最佳方法是什么?

我会尝试通过SQLpipe理Studio可用的复制数据库向导命令。 这可以在没有RDP访问的情况下完成。

Microsoft还有一个MSDN页面, 用于在服务器之间复制可能有用的数据。

如果您有权访问SQL Server框中的文件共享或pipe理文件共享(即c $),则可以使用SQL Server Management Studio将备份运行到服务器驱动器,然后将其复制到本地计算机。

Sql Server Management Studio(例子来自SSMS 2008,应该类似于2005):

  • login到数据库服务器
  • 右键点击您要备份的数据库 – >任务 – >备份
  • 在“目标”组中,select“备份到:光盘”
  • 点击“添加…”
  • 在“文件名称”下指定您想要备份的位置以及文件名(.bak文件)
  • 点击“确定”
  • 点击“确定”

完成后,将文件复制到本地计算机。

还有一个SSMS 2008附带的导入/导出向导,可以直接从一个数据库拷贝到另一个数据库(即QA到本地),但是我没有使用太多,因为我一直可以访问DB服务器。

最简单的方法,也许最安全的方法是备份数据库并将.bak文件恢复到您的机器。

当我为SSRS报告写入存储过程时,或者只是简单地testing或者简单地涉及某些事情时,我通常会这样做。 而且,当然,我总是确保我只连接到我的开发实例。 我不想乱动的数据库。 所以,我通常会在午夜时分对某个特定的数据库进行备份,然后将其备份到我的机器上,然后快速恢复。 当一切都经过testing,一切都在开发工作正常,那就是我现场实例和数据库上运行的脚本/ – ;)

如果可以连接到源数据库,但不能连接到正在运行的计算机的RDP,则可以使用Microsoft数据库发布向导 。
这是来自MS的免费工具,它为您创build完整数据库的SQL脚本。
然后你可以在你的机器上运行这个脚本。

我之前使用过powershell创build备份并自动将其复制到我的本地驱动器。

你可以谷歌PowerShell的SQL备份,但这里有一些链接,让你开始:

数据库杂志

Powershell数据库脚本

你可以通过复制安装目录中的文件来完成这个任务吗?

我第二个“备份”的想法,但是我不会为此做一个新的备份。 获取昨晚的备份。 您不仅可以节省额外的备份时间,而且是对昨晚备份的testing。 如果这是一个常规要求,那么让DBA在备份的某个地方留下备份副本是合理的。

如果你的数据库相对较小,你可以从management studio生成创build脚本以在目标SQL服务器上执行。 当您编写数据脚本时,这些可能会变得非常大,但它确实有效。

右键单击数据库并select任务和生成脚本…

select您的数据库,然后单击标记为“在选定数据库中脚本所有对象”的底部的框

这是最重要的部分, 仔细阅读选项 ,确保包含数据(默认为false),触发器等。如果您有一个复杂的数据库,您可能会发现脚本执行时会出错。 对于大多数常见的数据库模式,情况并非如此。

我经常使用这种方法与不开放SQL端口到外部世界的networking主机。 它只是文字,而且容易处理

快乐复制。

布雷特