通过备份恢复克隆 SQL 数据库:“恢复...”需要很长时间

通过备份恢复克隆 SQL 数据库:“恢复...”需要很长时间

我需要另一个名称下的数据库的精确副本。我选择使用 SQL Mgt Studio 2008 通过备份-恢复克隆 SQL 数据库。首先,在恢复数据库时,我收到一个错误。

SqlError: The backup set holds a backup of a database other than the existing 'Pro_SSRS' database. (Microsoft.SqlServer.Smo)

然后我发现我必须选择“覆盖现有数据库”选项,可以在各个站点上看到,例如这里: http://www.nikhedonia.com/notebook/entry/solving-the-sql-server-restoring-database-error/

现在,我在数据库名称旁边看到“(正在恢复...)”,这已经过去了半个小时。我甚至无法查看数据库的属性,大多数选项都显示“不可用”。

有人能解释一下吗?或者这是正常的吗?(数据库大约 20MB..)提前谢谢!

答案1

您要做的是删除所有这些并按照以下步骤操作:

  1. 创建数据库的完整备份,确保选中“备份后验证”以确保 BAK 正常。将其命名为 ORIGINAL.BAK。记住它的位置。(您也可以使用“T-SQL”)

    将数据库“YourDBName”备份到磁盘 = 'C:\ORIGINAL.BAK'; // 或类似

  2. 现在返回 Management Studio,右键单击数据库,然后单击“恢复数据库...”

  3. 在出现的对话框中,恢复目标:到数据库:MyNewDatabase

  4. 在里面恢复源,选择“从设备”,然后单击[…]按钮。

  5. 一个新的弹出窗口(微软的弹出窗口是怎么回事?),将备份媒体保留为“文件”,但单击添加按钮并找到您的 ORIGINAL.BAK。如果您使用 Management Studio 备份,则可能位于同一位置。选择它并单击“确定”。然后再次单击“确定”。

  6. 现在返回第一个恢复屏幕,单击“选择要恢复的备份集”框中的复选框(恢复)(您的数据库应该列在那里)。先不要单击“确定”!

  7. 现在,在这个弹出窗口的左侧,有一个列表框,上面写着:选择一个页面。还有两个“页面”:常规和选项。点击选项

  8. 单击覆盖现有数据库。

  9. 在“将数据库文件还原为”中,确保 .mdf 和 .ldf 不与其他文件冲突。您可以根据需要更改其位置。

  10. 单击确定。您的数据库 20mb 应该在 10 秒内恢复。

如果这不起作用怎么办?

偶尔你可能会遇到问题。这通常不是一个好兆头,你应该运行 DBCC CHECKDB(阅读帮助文件以了解更多相关信息)以确保你的主数据库正常。

您也可以尝试直接“附加”数据库:

  1. 暂停 SQL Server(以确保没有人使用数据库,不知道是否有必要但...)
  2. 右键单击数据库(在 Management STudio 中),并选择附加,然后选择添加。
  3. 找到您想要复制的数据库的 .MDF,单击“确定”,然后在“数据库详细信息”(添加按钮下方)上检查并更改当前文件路径和/或重命名 .MDF 和 .LDF(不能与其他数据库相同)。
  4. 单击“确定”。

笔记:如果这不起作用,您可能需要先 DEATACH 原始数据库。执行 4 个步骤,然后重命名数据库。然后继续重新连接原始数据库。

希望这可以帮助。

答案2

您的问题是,在使用新数据库名称进行恢复时,您需要为所有数据文件指定新的文件位置。如果您在 T-SQL 中执行此操作,则称为 WITH MOVE。将具有不同名称的数据库恢复到同一位置是没有意义的。您需要为文件指定新的位置/名称。

您的数据库似乎在恢复过程中崩溃了。查看活动监视器,看看是否有任何恢复发生(或系统进程),可能没有。如果是这种情况,那么您应该能够删除(DROP)数据库并重新启动。

答案3

另一个选项是您可以对数据库进行快照。这会是即时的,但仅提供数据库的静态只读副本(通常用于报告)。

仅适用于企业版。

http://msdn.microsoft.com/en-us/library/ms175158.aspx

相关内容