服务器崩溃后如何还原复制


8

我们在一个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文件夹中不可用 。

Answers:


4

最后,我只是做了服务器想要的操作,即通过脚本表在有问题的数据库(即发布者)中创建了所有“发布”表(* dbo.MSpeer _ **和* dbo.sys **)。 -> 创建到对话框。由于有了这个服务器,我才能禁用发布和分发。然后,我只需要重新配置复制。

希望,下次崩溃时(实际上我希望不会崩溃),我们将明智地彻底备份涉及复制的表。


Zane的附加信息,最初留在评论中:

还可以通过在安装了SQL Server的其他服务器上配置分发服务器/发布服务器来创建表dbo.MSpeer_ *和dbo.sys *。这将在您设置用于发布的数据库中创建这些表。请参阅->表-> SSMS中的系统表。

然后,为所有这些表生成模式,然后在有问题的数据库中创建这些表,这将允许您禁用分发和发布以及重新配置分发服务器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.