Cómo restaurar la replicación después del bloqueo del servidor

8

Teníamos dos bases de datos en una instancia de SQL Server 2005 con replicación transaccional entre ellas (3 tablas como artículos). Este servidor actuó como editor y distribuidor.

Entonces el RAID en el servidor falló. Sin embargo, logramos separar y copiar casi todos los .mdfarchivos antes del bloqueo.

Después de restaurar el sistema, reinstalamos SQL Server, restauramos las bases de datos del sistema (maestro, modelo, msdb) y colocamos los .mdfarchivos en las mismas rutas. Entonces comenzó.

El problema apareció con la replicación. La carpeta Publicaciones locales estaba vacía, aunque la carpeta Suscripciones locales contenía la suscripción en cuestión. Cuando intenté agregar una nueva publicación, obtuve:

El nuevo asistente de publicación encontró uno o más errores al recuperar los nombres de las publicaciones.

Se produjo una excepción al ejecutar una instrucción o lote de Transact-SQL. (Microsoft.SqlServer.ConnectionInfo)

Nombre de objeto no válido 'dbo.syspublications'. (Microsoft SQL Server, error: 208)

Decidí intentar eliminar la suscripción izquierda (eventualmente lo logré) y deshabilitar la publicación y distribución en el servidor, lo que me dio:

SQL Server no pudo deshabilitar la publicación y distribución en 'someserver'.

Nombre de objeto no válido 'dbo.syssubscriptions'. El recuento de transacciones después de EJECUTAR indica que falta una instrucción COMMIT o ROLLBACK TRANSACTION. Recuento anterior = 0, recuento actual = 1. El recuento de transacciones después de EJECUTAR indica que falta una instrucción COMMIT o ROLLBACK TRANSACTION. Recuento anterior = 0, recuento actual = 1. El recuento de transacciones después de EJECUTAR indica que falta una instrucción COMMIT o ROLLBACK TRANSACTION. Recuento anterior = 0, recuento actual = 1. El recuento de transacciones después de EJECUTAR indica que falta una instrucción COMMIT o ROLLBACK TRANSACTION. Recuento anterior = 0, recuento actual = 1. El recuento de transacciones después de EJECUTAR indica que falta una instrucción COMMIT o ROLLBACK TRANSACTION. Conteo anterior = 0, conteo actual = 1. Cambió el contexto de la base de datos a 'maestro'. (Microsoft SQL Server, error: 208)

Parece que parte de la información no se recuperó de las copias de seguridad de la base de datos del sistema (probablemente a la distributionbase de datos le falte algo).

También intenté seguir la respuesta dada en incapaz de deshabilitar la publicación y distribución . Pero sin éxito. Traté de crear syspublicationstanto en mastery distribution, pero nada cambió.

Entonces, ¿cómo puedo hacer que la replicación funcione en este servidor?

Intenté publicar alguna otra base de datos en el servidor y funcionó. Entonces, el problema parece estar relacionado con la base de datos publicada. ¿Cómo puedo borrarlo para administrar crear una nueva publicación sobre él?

System Tables La subcarpeta de la base de datos problemática pierde las tablas de replicación, que se crean cuando se publica una base de datos.

En el monitor de replicación puedo ver esas suscripciones antiguas, mientras que no están disponibles en la carpeta Replicación .

horgh
fuente

Respuestas:

4

Al final, simplemente hice lo que el servidor quería, es decir, creé todas las tablas de "publicación" (* dbo.MSpeer _ ** y * dbo.sys **) en la base de datos problemática (la que era el editor), a través de Script Table Como -> CREAR en el cuadro de diálogo. Gracias a este servidor me permitió desactivar la publicación y distribución. Entonces solo necesitaba reconfigurar la replicación.

Espero, la próxima vez que se bloquee (en realidad espero que no lo haga), seremos lo suficientemente sabios para hacer copias de seguridad de las tablas involucradas en la replicación a fondo.


Información adicional de Zane , originalmente dejada en un comentario:

Las tablas dbo.MSpeer_ * y dbo.sys * también se pueden crear configurando el distribuidor / editor en un servidor diferente con SQL Server instalado. Esto creará estas tablas en la base de datos que ha establecido para publicación. Consulte -> Tablas -> Tablas del sistema en SSMS.

Luego, genere los esquemas para todas estas tablas y luego cree estas tablas en la base de datos problemática que le permitirá deshabilitar la distribución y publicación y reconfigurar el distribuidor.

horgh
fuente