sql-server - 使用 Management Studio 在 SQL Server 2012 中的同一服务器中以不同名称恢复正在运行的数据库
问题描述
我在带有 .NET 框架 4.0 的 Windows 2012 R2(64 位)(NT 6.3)上运行 SQL Server 2012(64 位)(MSSQL11)。
它有一个名为 db_X 的数据库,并且由于这是一个实时生产数据库,它始终在运行并且停止它不是一个选项。
这是我实际拥有的唯一 SQL Server 数据库服务器。
我想对 db_X(我知道该怎么做)进行备份(即完整备份),并在同一 SQL Server 数据库服务器中以不同的名称(例如 db_Y)恢复该备份(即 .bak 文件)。
我创建了一个名为 db_Y 的新数据库,然后右键单击 db_Y,然后转到 Tasks --> Restore --> Database...
然后我给出了该 .bak 文件的路径(作为源)并尝试通过将 db_Y 作为目标来恢复它(使用选项 - 覆盖现有数据库,即 WITH REPLACE)
但这不起作用。它给出了一个错误。
它说数据库 db_Y 的恢复失败。System.Data.SqlClient.SqlError:无法覆盖文件 C:...\db_X1.mdf。数据库 db_X 正在使用它。Microsoft.SqlServer.SmoExtended。
但我仍然相信这可以使用 Management Studio 来完成。或者至少使用脚本。(因为这是一个常见的要求。)
当我明确将 db_Y 作为我的目的地时,为什么它试图在 db_X 上恢复?这不是有点可怕,因为 db_X 是我的实时数据库(因为我可能会丢失一些数据)?
如何在 SQL Server 2012 中(在 SQL Server 中以不同的名称拥有现有和正在运行的数据库的副本,或者换句话说)恢复现有和正在运行的数据库在 SQL Server 2012 中具有不同名称的备份?
如果有人可以解释如何使用 Management Studio 或至少使用脚本来完成,我将不胜感激。
解决方案
推荐阅读
- r - 比较箱线图中的特定行和整行
- c - 原因不明的分段错误 (C)
- c - 为什么最后一个'printf'函数没有执行?
- docker - 主机和 docker nginx https 设置
- python - 使用python脚本在abaqus中提取节点集坐标
- python - 为什么我的获胜者检查功能无法正常工作?
- flutter - Flutter SocketException:操作系统错误:连接被拒绝,errno = 111
- linux - perf intel_pt 无法解析 .plt 部分的符号
- android - 无法从 android 设备创建设备组
- botium-box - Botium 语音处理中的文本到语音 API,在 Swagger UI 中进行测试时给了我一个 ECONNREFUSEDError 作为响应