首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库还原失败-表不包含标识列

问数据库还原失败-表不包含标识列
EN

Database Administration用户
提问于 2019-07-31 13:25:15
回答 1查看 426关注 0票数 1

我已经创建了一个本地Server实例(使用Server 2017)。为了测试目的,我正在尝试还原在server 2012服务器上创建的数据库的备份。

问题是,当我试图恢复它时,它给了我一个错误:

标题:数据库“XXXX”还原失败。(Microsoft.SqlServer.Management.RelationalEngineTasks)(Microsoft.SqlServer.SmoExtended)

有人知道怎样才能恢复它吗?这可能与服务器配置有关吗?非常感谢。

@Max Vernon,我按照您的建议检查了日志,我确实发现,虽然消息说“还原失败”,但是日志中的内容有点不同:错误: 3165,严重性: 16,状态: 1。数据库'XXXX‘被恢复,但是在复制被恢复/删除时遇到了错误。数据库已处于脱机状态。请参阅Server联机丛书中的主题MSSQL_ENG003165。

因此,我刷新了数据库节点,以了解DB是否真的存在,离线。我刚把它放到网上,从“单用户”改为“多用户”,它运行良好:)关于实际错误(3165.)我现在不知道为什么会发生这种情况,但te DB只是用于测试,而且它正在工作,所以我暂时不担心它。非常感谢你的帮助。所有这些“堆栈交换”社区都令人惊叹。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2019-07-31 15:22:07

使用that和恢复数据库。语句进行还原--这将提供一个更有意义的错误。

简而言之,还原数据库的工作方式如下:

代码语言:javascript
复制
RESTORE DATABASE [database_name]
FROM DISK = N'\Path\to\the\backup\file.bak'
WITH RECOVERY
   , MOVE N'file name' TO N'new\path\for\this\file.mdf'
.
.
.

我编写了一个自动创建RESTORE DATABASE语句的D3。您只需将代码指向现有的数据库备份文件,它将生成一个有效的restore命令,然后您可以使用该命令来还原数据库。

使用to还原数据库将提供比使用SSMS更细粒度的错误消息集。

此外,我还会检查Server错误日志,以查看是否有任何相关的细节。我还编写了一个带有快速脚本的博客文章,它可以用于显示错误日志中的细节。

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/244224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档