使用 Microsoft SQL Server Management Studio 将 SQL 服务器数据库转储(数据和模型)从一个环境传输到另一个环境

Transporting a SQL Server database dump (of data and models) from one environment to another using Microsoft SQL Server Management Studio

奇怪的是,我在 Whosebug 或其他地方没有找到 简洁 方法,所以请允许我问一下。

我想使用 Microsoft SQL Server Management Studio (SSMS) 将完整的 SQL 服务器数据库从一个环境传输到另一个环境。

我想我需要一个完整的数据库转储(模型和数据),例如来自生产环境,然后我将其恢复,例如关于预生产环境。

我更像是 MongoDB 的人,而且很直接。但是如何使用 SSMS 快速备份、传输和恢复完整的 T-SQL 数据库(上下文)?问题是我应该向其他人解释该怎么做,因为我没有权利自己尝试。

官方文档on backup and restore is rather lengthy, but I get the concept, I hope. Except for the copy only backup,也许吧。定义如下:

Copy-only full backups (all recovery models)

A copy-only backup cannot serve as a differential base or differential backup and does not affect the differential base. Restoring a copy-only full backup is the same as restoring any other full backup.

出于我的目的,我是否需要仅复制备份?如果是,为什么?

配方草稿

  1. 在源服务器上的 SSMS 中,打开对象资源管理器 (F8),右键单击要传输的数据库(例如 myDB)并选择 任务> 备份...

  2. 在弹出窗口window中,选择备份类型:完整。在目标下,选择备份到:磁盘并添加一个文件夹。

  3. 导航到存储 .bak 文件的文件夹,例如C:\Program Files\Microsoft SQL Server\MSSQL 14.MSSQLSERVER\MSSQL\Backups\,将其传输到目标服务器的类似位置。

  4. 在目标服务器上,打开对象资源管理器 (F8)。确保您没有名为 myDB 的数据库上下文,然后右键单击另一个上下文,选择 Task > Restore > Database... 然后是什么?

我还需要最后一步的帮助。弹出窗口 window 显示在顶部 No backup set selected to be restored.,如果我想选择 myDB.bak 文件,它会一直冻结。

参考资料

如果您不想弄乱可能存在的备份集,您应该使用 COPY_ONLY。例如,如果您有一些备份解决方案在完全备份之间进行差异备份(日志备份)。如果您要手动进行完整备份,则需要使用 COPY_ONLY,否则您将使差异备份无用,直到您的备份解决方案执行下一次完整备份(或者您必须使用完整备份在时间点还原的情况下,您的备份与差异备份一起使用,但您可能会在使用普通备份解决方案时遇到问题。