在我的环境中,我需要将数据库从一台服务器复制到另一台服务器。 通常是一个QA机器到我的本地盒子。
我无法访问QA机器。 我可以连接到数据库,但不能将RDP放入框中。
将数据库从QA服务器复制到我的机器的最佳方法是什么?
我会尝试通过SQLpipe理Studio可用的复制数据库向导命令。 这可以在没有RDP访问的情况下完成。
Microsoft还有一个MSDN页面, 用于在服务器之间复制可能有用的数据。
如果您有权访问SQL Server框中的文件共享或pipe理文件共享(即c $),则可以使用SQL Server Management Studio将备份运行到服务器驱动器,然后将其复制到本地计算机。
Sql Server Management Studio(例子来自SSMS 2008,应该类似于2005):
完成后,将文件复制到本地计算机。
还有一个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主机。 它只是文字,而且容易处理
快乐复制。
布雷特