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 .mdf
archivos 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 .mdf
archivos 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 distribution
base 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 syspublications
tanto en master
y 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 .