Resurrect SQL Server Agent after repair an instance

For Spanish version visit this link Resucitar Agente SQL Server después de reparar una instancia
 
After a failed update from SQL Server 2005 to SQL Server 2008 R2 SP1, I decided to use the Repair option of the installer, the SQL Server resource was repaired correctly, but the SQL Server Agent couldn’t start.
 
 
Read more of this post
Advertisements

Resucitar Agente SQL Server después de reparar una instancia

For English version visit this link Resurrect SQL Server Agent after repair an instance
 
Después de una actualización fallida desde SQL Server 2005 a SQL Server 2008 R2 SP1, decidí usar la opción de Repair del instalador de SQL Server, el recurso SQL Server se reparó correctamente, pero el de SQL Server Agent no conseguia iniciarlo.
 
 
Read more of this post

Scripts: Jobs Not Executed in the Last Year / Job Activity Details

For Spanish version visit this link Scripts: Jobs no ejecutados en el último año / Actividad de Jobs Detallada
 
A few days ago i was looking for a script to let me know when was the last execution of a job, so I can review the jobs that were not executed in the last year and delete the ones not needed, but i couldn’t find anything valid, so i had to create one.
 
 I use the columns last_run_date and last_run_time from sysjobservers table to get this value, the scripts that i found on Internet used other columns from other tables which i will describe why i not chose:
 
Read more of this post

Scripts: Jobs no ejecutados en el último año / Actividad de Jobs Detallada

For English version visit this link Scripts: Jobs Not Executed in the Last Year / Job Activity Details
 
Hace unos días estuve buscando un script que me permitiera saber cuando fue la última ejecución de un job, para así poder revisar los jobs que llevaran más de 1 año sin ejecutarse y poder borrar los que no fueran necesarios, pero no encontré lo que buscaba por lo que tuve que crear uno.
 
He usado las columnas last_run_date y last_run_time de la tabla sysjobservers para sacar este dato, los scripts que encontré por Internet usaban otras columnas de otras tablas que paso a describir por qué no las elegí:
 
Read more of this post

¿Cómo saber que tablas están replicadas?

For English version visit this link How to know which tables are replicated?
 
A veces es necesario conocer todas las tablas que están replicadas en una BBDD, para ello utiliza estos scripts, ejecutar en la BBDD que este replicada:
--Que tablas están publicadas en Réplica de Mezcla y sus subscriptores
SELECT
b.name AS [Table],
DB_NAME() AS PublisherDB,
a.subscriber_server AS Subscriber,
a.db_name AS SubscriberDB
from sysmergesubscriptions a, sysmergearticles b
where a.pubid=b.pubid
order by a.subscriber_server

--Que tablas están publicadas en Réplica Transaccional y sus subscriptores
SELECT
a.name AS [Table],
is_published AS is_tran_published,
DB_NAME() AS PublisherDB,
c.srvname AS Subscriber,
c.dest_db AS SubscriberDB
FROM sys.tables a
INNER JOIN dbo.sysarticles b ON a.object_id = b.objid
INNER JOIN dbo.syssubscriptions c ON b.artid = c.artid
WHERE is_published = 1

How to know which tables are replicated?

For Spanish version visit this link ¿Cómo saber que tablas están replicadas?
 
Sometimes you need to know all the tables that are replicated in a DB, for that use this scripts, run it in the replicated DB:
--Which tables are published for Merge Replication and his subscribers
SELECT
b.name AS [Table],
DB_NAME() AS PublisherDB,
a.subscriber_server AS Subscriber,
a.db_name AS SubscriberDB
from sysmergesubscriptions a, sysmergearticles b
where a.pubid=b.pubid
order by a.subscriber_server

--Which tables are published for Transactional Replication and his subscribers
SELECT
a.name AS [Table],
is_published AS is_tran_published,
DB_NAME() AS PublisherDB,
c.srvname AS Subscriber,
c.dest_db AS SubscriberDB
FROM sys.tables a
INNER JOIN dbo.sysarticles b ON a.object_id = b.objid
INNER JOIN dbo.syssubscriptions c ON b.artid = c.artid
WHERE is_published = 1

Error Resolutor de Conflictos

For English version visit this link Conflict Resolutor Error
 
Hemos encontrado un error en la replicación de tipo Mezcla que paso a describir:
 
Cuando un subscriptor SQL Server 2005 Express replica contra un publicador SQL Server 2008 R2 con una publicación con artículos filtrados, la opción use_partition_groups en true y contiene un artículo con un resolutor de conflictos distinto al default, ocurre el siguiente error:
 
The process could not initialize ‘Microsoft SQLServer Stored Procedure Resolver’. Verify that the component is registered correctly
 
Se ha probado a subir el SQL Server 2008 R2 a SP1 CU2 que es el último que ha salido, así como se ha probado a subir SQL Server 2005 Express a SP4 CU3 y el error se sigue reproduciendo.
El error no se produce si el subscriptor es SQL Server 2008 R2 RTM.
 
Ha sido reportado a Microsoft y han reconocido que es un bug, el cual esta arreglado en Denali, pero por el momento no hay fecha para el fix en 2008 R2.