我已经创建了一个本地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只是用于测试,而且它正在工作,所以我暂时不担心它。非常感谢你的帮助。所有这些“堆栈交换”社区都令人惊叹。
发布于 2019-07-31 15:22:07
使用that和恢复数据库。语句进行还原--这将提供一个更有意义的错误。
简而言之,还原数据库的工作方式如下:
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错误日志,以查看是否有任何相关的细节。我还编写了一个带有快速脚本的博客文章,它可以用于显示错误日志中的细节。
https://dba.stackexchange.com/questions/244224
复制相似问题