我试过用谷歌搜索这个问题的答案,但一无所获。
我有一个 SQL Server 实例,其复制设置为FooDatabase
. 我有第二个实例,其复制设置为FooDatabase
第一个实例的订阅者。复制更新工作。我想要做的是备份订阅FooDatabase
,在订阅者实例上删除它,然后恢复备份。但是,当我这样做并尝试恢复备份时,我收到以下错误:
服务器“DAVEG1525-162”的恢复失败。(Microsoft.SqlServer.SmoExtended)
System.Data.SqlClient.SqlError:对象名称“master.dbo.MSreplication_options”无效。(Microsoft.SqlServer.Smo)
我已经检查并dbo.MSreplication_options
确实作为系统表存在于生产实例的master
数据库中,但不存在于订阅实例上。
我的问题是:如果订阅实例上不存在它,为什么它会包含在从 SQL Server 订阅实例制作的备份中?我该如何解决这个问题?
据我所知,
master.dbo.MSreplication_options
无论您是否设置了复制,该表以及其他各种与复制相关的表都应该存在于任何 SQL Server 2008 r2 安装中。不知何故,我的 SQL Server 实例上的那个被删除了。我最终在 Google(缓存!)上找到了这个方便的脚本,它“修复”了各种复制的东西,包括master.dbo.MSreplication_options
如果它不存在则重新创建:After I ran this, I was able to import my backed-up DB on the subscriber without error.