我们在一个SQL Server 2005实例上有两个数据库,它们之间具有事务复制(作为文章有3个表)。该服务器既充当发布者又充当分发者。
然后服务器上的RAID发生故障。但是.mdf
,在崩溃之前,我们设法分离并复制了几乎所有文件。
还原系统后,我们重新安装了SQL Server,还原了系统数据库(主数据库,模型数据库,msdb数据库)并将.mdf
文件放置在相同的路径中。就这样开始了。
复制出现问题。尽管“ 本地订阅”文件夹包含有问题的订阅,但“ 本地出版物”文件夹为空。当我尝试添加新出版物时,我得到了:
新发布向导在检索发布名称时遇到一个或多个错误。
执行Transact-SQL语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionInfo)
无效的对象名称“ dbo.syspublications”。(Microsoft SQL Server,错误:208)
我决定尝试删除左侧订阅(最终我设法做到了)并禁用服务器上的发布和分发,这给了我:
SQL Server无法禁用“ someserver”上的发布和分发。
无效的对象名称“ dbo.syssubscriptions”。EXECUTE之后的事务计数表明缺少COMMIT或ROLLBACK TRANSACTION语句。上一个计数= 0,当前计数=1。EXECUTE之后的事务计数指示缺少COMMIT或ROLLBACK TRANSACTION语句。上一个计数= 0,当前计数=1。EXECUTE之后的事务计数指示缺少COMMIT或ROLLBACK TRANSACTION语句。上一个计数= 0,当前计数=1。EXECUTE之后的事务计数指示缺少COMMIT或ROLLBACK TRANSACTION语句。上一个计数= 0,当前计数=1。EXECUTE之后的事务计数指示缺少COMMIT或ROLLBACK TRANSACTION语句。先前计数= 0,当前计数=1。将数据库上下文更改为'master'。(Microsoft SQL Server,错误:208)
似乎某些信息未从系统数据库备份中恢复(可能distribution
数据库可能丢失了某些内容)。
我也尝试遵循无法禁用发布和分发中给出的答案。但是没有成功。我尝试syspublications
同时在master
和中创建distribution
,但未更改。
那么,如何使复制在该服务器上工作?
试图在服务器上发布一些其他数据库,并且可以正常工作。因此,问题似乎与已发布的数据库有关。如何清除它以管理在其上创建新出版物?
System Tables
问题数据库的子文件夹将丢失发布数据库时创建的复制表。
在复制监视器中,我可以看到那些旧的订阅,但在Replication文件夹中不可用 。