随笔 - 74  文章 - 0  评论 - 94  阅读 - 12万

恢复数据库时出现3165错误

今天恢复某个数据库时出现如下的错误:

Msg 208, Level 16, State 1, Procedure sp_MSrestoredbreplication, Line 72
Invalid object name 'master.dbo.MSreplication_options'.
Msg 3165, Level 16, State 1, Line 1
Database 'MYDBNAME' was restored, however an error was encountered while replication was being restored/removed. The database has been left offline. See the topic MSSQL_ENG003165 in SQL Server Books Online.
Msg 3167, Level 16, State 1, Line 1
RESTORE could not start database 'MYDBNAME'.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.

恢复的数据库此时处于脱机状态

---------------------------------------------------------------------------------------------------------------

联机丛书搜索MSSQL_ENG003165

找到如下解决方案:

1. 执行 ALTER DATABASE 以使数据库联机;例如:ALTER DATABASE AdventureWorks SET ONLINE。  有关详细信息,请参阅 ALTER DATABASE (Transact-SQL)。 如果要保留复制设置,请转到步骤 2。 否则,转到步骤 3。

2. 执行 sp_restoredbreplication (Transact-SQL)。  如果此存储过程成功执行,则还原完成。 如果此存储过程未成功执行,请转到步骤 3。

3. 执行 sp_removedbreplication (Transact-SQL) 以删除所有复制设置。  如果需要,请重新配置复制。  如果您根据建议将复制拓扑编写了脚本,请使用脚本来重新配置该拓扑。

我执行到第2步的时候成功删除复制设置了,脚本如下:

ALTER  DATABASE MYDBNAME SET ONLINE 
USE MASTER 
DECLARE @srv_orig AS sysname = 'MYINSNAME' 
DECLARE @db_orig AS sysname ='MYDBNAME' 
EXEC sp_restoredbreplication @srv_orig,@db_orig 
ALTER DATABASE MYDBNAME SET MULTI_USER;

 

posted on   万剑齐发  阅读(665)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示