David Basarab Asked: 2009-05-02 09:58:10 +0800 CST2009-05-02 09:58:10 +0800 CST 2009-05-02 09:58:10 +0800 CST 如何复制 SQL Server 2005 数据库? 772 在我的环境中,我需要将数据库从一台服务器复制到另一台服务器。通常是我本地盒子的 QA 机器。 我无权访问 QA 机器。我可以连接到数据库,但不能将 RDP 插入框中。 将数据库从 QA 服务器复制到我的机器的最佳方法是什么? sql-server copy 8 个回答 Voted Best Answer berberich 2009-05-02T10:35:35+08:002009-05-02T10:35:35+08:00 我会尝试通过 SQL Management Studio 提供的复制数据库向导命令。这可以在没有 RDP 访问的情况下完成。 Microsoft 也有一个 MSDN 页面,用于在服务器之间复制数据,这可能会有所帮助。 Astra 2009-05-02T10:22:53+08:002009-05-02T10:22:53+08:00 如果您有权访问 SQL Server 机器上的文件共享或管理文件共享(即 c$),则可以使用 SQL Server Management Studio 将备份运行到服务器驱动器,然后将其复制到本地计算机。 Sql Server Management Studio(示例来自 SSMS 2008,应该与 2005 类似): 登录到数据库服务器 右键单击要备份的数据库 -> 任务 -> 备份 在“目标”组中,选择“备份到:光盘” 点击“添加...” 在“文件名:”下指定要备份的位置以及文件名(.bak 文件) 点击“确定” 点击“确定” 完成后,将文件复制到本地计算机。 还有一个 SSMS 2008 附带的导入/导出向导,它可能能够直接从一个数据库复制到另一个数据库(即 QA 到本地),但我没有使用太多,因为我一直可以访问数据库服务器。 MarlonRibunal 2009-05-02T11:18:44+08:002009-05-02T11:18:44+08:00 在这种情况下,最简单的方法也是最安全的方法是备份数据库并将 .bak 文件恢复到您的计算机上。 这是我在为 SSRS 报告或简单地测试或简单地涉足某事编写存储过程时通常会特别做的事情。而且,当然,我总是确保我只连接到我的开发实例。我不想弄乱实时数据库。所以,我通常会在午夜备份到特定的数据库,将其 SFTP 到我的机器上,然后进行快速恢复。当一切都经过测试并且在开发中一切正常时,这就是我在实时实例和数据库上运行脚本的时间;-) Christian Specht 2009-05-04T14:06:31+08:002009-05-04T14:06:31+08:00 如果您可以连接到源数据库,但不能将 RDP 连接到运行它的机器,您可以使用Microsoft Database Publishing Wizard。 这是 MS 提供的免费工具,可为您创建完整数据库的 SQL 脚本。 然后,您可以在您的机器上运行该脚本。 jdiaz 2009-05-02T10:11:01+08:002009-05-02T10:11:01+08:00 我之前使用过 powershell 创建备份并自动将其复制到我的本地驱动器。 您可能可以 google powershell sql 备份,但这里有一些链接可以帮助您入门: 数据库日志 Powershell 数据库脚本 Brian 2009-05-02T13:01:05+08:002009-05-02T13:01:05+08:00 您可以通过复制安装的 /Data 目录中的文件来完成此操作吗? WaldenL 2009-05-02T13:50:09+08:002009-05-02T13:50:09+08:00 我支持“备份”的想法,但是我不会为此进行新的备份。获取昨晚的备份。您不仅可以节省额外的备份时间,而且是对昨晚备份的考验。如果这是一项常规要求,那么要求 DBA 将备份副本留在您可以获得的地方是合理的。 Brettski 2009-05-03T15:44:10+08:002009-05-03T15:44:10+08:00 如果您的数据库相对较小,您可以从 Management Studio 生成创建脚本以在目标 SQL 服务器上执行。当您编写数据脚本时,这些可能会变得非常大,但它确实有效。 右键单击数据库并选择任务和生成脚本... 选择您的数据库,然后单击底部标记为“为所选数据库中的所有对象编写脚本”的框 这是最重要的部分,仔细阅读选项,确保包含数据(默认为false),触发器等。如果您有一个复杂的数据库,您可能会发现脚本在执行时会出错。对于大多数常见的数据库模式,情况并非如此。 我经常将这种方法用于不向外界开放 SQL 端口的 Web 主机。它只有文字,易于处理 快乐复制。 布雷特
我会尝试通过 SQL Management Studio 提供的复制数据库向导命令。这可以在没有 RDP 访问的情况下完成。
Microsoft 也有一个 MSDN 页面,用于在服务器之间复制数据,这可能会有所帮助。
如果您有权访问 SQL Server 机器上的文件共享或管理文件共享(即 c$),则可以使用 SQL Server Management Studio 将备份运行到服务器驱动器,然后将其复制到本地计算机。
Sql Server Management Studio(示例来自 SSMS 2008,应该与 2005 类似):
完成后,将文件复制到本地计算机。
还有一个 SSMS 2008 附带的导入/导出向导,它可能能够直接从一个数据库复制到另一个数据库(即 QA 到本地),但我没有使用太多,因为我一直可以访问数据库服务器。
在这种情况下,最简单的方法也是最安全的方法是备份数据库并将 .bak 文件恢复到您的计算机上。
这是我在为 SSRS 报告或简单地测试或简单地涉足某事编写存储过程时通常会特别做的事情。而且,当然,我总是确保我只连接到我的开发实例。我不想弄乱实时数据库。所以,我通常会在午夜备份到特定的数据库,将其 SFTP 到我的机器上,然后进行快速恢复。当一切都经过测试并且在开发中一切正常时,这就是我在实时实例和数据库上运行脚本的时间;-)
如果您可以连接到源数据库,但不能将 RDP 连接到运行它的机器,您可以使用Microsoft Database Publishing Wizard。
这是 MS 提供的免费工具,可为您创建完整数据库的 SQL 脚本。
然后,您可以在您的机器上运行该脚本。
我之前使用过 powershell 创建备份并自动将其复制到我的本地驱动器。
您可能可以 google powershell sql 备份,但这里有一些链接可以帮助您入门:
数据库日志
Powershell 数据库脚本
您可以通过复制安装的 /Data 目录中的文件来完成此操作吗?
我支持“备份”的想法,但是我不会为此进行新的备份。获取昨晚的备份。您不仅可以节省额外的备份时间,而且是对昨晚备份的考验。如果这是一项常规要求,那么要求 DBA 将备份副本留在您可以获得的地方是合理的。
如果您的数据库相对较小,您可以从 Management Studio 生成创建脚本以在目标 SQL 服务器上执行。当您编写数据脚本时,这些可能会变得非常大,但它确实有效。
右键单击数据库并选择任务和生成脚本...
选择您的数据库,然后单击底部标记为“为所选数据库中的所有对象编写脚本”的框
这是最重要的部分,仔细阅读选项,确保包含数据(默认为false),触发器等。如果您有一个复杂的数据库,您可能会发现脚本在执行时会出错。对于大多数常见的数据库模式,情况并非如此。
我经常将这种方法用于不向外界开放 SQL 端口的 Web 主机。它只有文字,易于处理
快乐复制。
布雷特