Aviso de expiração de assinatura do SQL Server 2005 Replication

3

Esta semana, uma das minhas inscrições de replicação expirou porque eu não recebia nenhum alerta dizendo que havia um erro de login (corrigi esses alertas e o erro). O que eu gostaria agora é, no caso de isso acontecer novamente, poder enviar um alerta dizendo que uma assinatura está prestes a expirar (ou seja, ela expirará em 1 ou 2 dias). Eu tenho um alerta configurado para quando uma assinatura expira, mas isso é após o fato. Eu olhei através de sys.messages para qualquer texto que tenha "Expir", mas ainda não encontrei um código de erro apropriado. Alguém seria capaz de me apontar na direção certa?

Obrigado.

    
por Aaron 27.05.2010 / 20:23

2 respostas

1

Aqui você vai ... Esta é a maneira que eu iria sobre isso ... você precisará do DB Mail habilitado e um perfil criado e alterar essas seções de acordo com o seu ambiente abaixo ... também altere a variável @ MaxOfflineInHours = para qualquer quantidade de horas de inatividade em que você gostaria de alertar ... Crie o procedimento armazenado usp_GetExpiringSubscribersList e, em seguida, coloque o script de e-mail abaixo em um job SQL e programe-o. O script de email é projetado para retornar um conjunto de resultados para você por email. Deixe-me saber se você tem algum problema com isso e eu posso trabalhar com isso com você. Deixe-me saber se você precisar de mais alguma coisa. Obrigado! -VM

- ============================================= =================================

Create Procedure dbo.usp_GetExpiringSubscribersList

AS



declare @maxOffLineInHours int

set @maxOffLineInHours = 72 -- <SET YOUR NUMBER OF HOURS TO ALERT ON HERE>

SELECT srvname,

Max_start_time,

DATEDIFF(hh, Max_start_time, getdate())

FROM distribution.dbo.msmerge_sessions

JOIN ( SELECT agent_id,

Max_start_time = MAX(start_time)

FROM distribution.dbo.msmerge_sessions

GROUP BY agent_id

) AS k ON k.agent_id = 
distribution.dbo.msmerge_sessions.agent_id

AND distribution.dbo.msmerge_sessions.start_time = max_Start_Time

JOIN ( SELECT id AS agent_id,

srvname

FROM distribution.dbo.msmerge_agents

JOIN sys.sysservers ON sys.sysservers.srvid = distribution.dbo.msmerge_agents.Subscriber_ID

) AS l ON l.agent_id = k.agent_id

WHERE DATEDIFF(hh, max_start_time, GETDATE()) > @maxOffLineInHours 

ORDER BY DATEDIFF(hh, max_start_time, GETDATE()) DESC 





--====================================================================

-- Put this code in a SQL Job to run daily or whatever interval suits you



EXEC msdb.dbo.sp_send_dbmail

@profile_name = 'AdventureWorks2008R2 Administrator',

@recipients = '[email protected]',

@query = 'exec dbo.usp_GetExpiringSubscribersList' ,

@subject = 'usp_GetExpiringSubscribersList',

@attach_query_result_as_file = 1 ;
    
por 07.06.2010 / 06:58
1

O ID do evento que eu acredito que você está procurando é 14160. Você pode configurar um alerta do SQL Server Agent para disparar quando esse evento ocorrer, e você pode configurar o Agente para enviar por email ou paginar você.

Estas são as informações sobre o evento: link

Veja algumas instruções para configurar um alerta: link

    
por 04.06.2010 / 20:44
Como posso limitar os downloads do CloudFront ___ qstnhdr __ Round-Robin DNS em redes móveis ______ qstntxt ___

Depois de ler as alternativas de distribuição de carga e dar minhas habilidades limitadas na área que estou inclinado para a estratégia de DNS round-robin.

Pelo que entendi, um dos principais aspectos do DNS Round-Robin é definir um valor TTL baixo, evitando o armazenamento em cache.

A minha principal preocupação é que todo o meu tráfego vem de redes móveis, quase 30% do que vem do t-mobile 3G. Algumas perguntas:

1) Existe uma chance de que quase todos os clientes na mesma rede móvel sejam redirecionados para o mesmo IP no quadro TTL? Isso mataria a técnica de distribuição.

2) Se eu escolher um TTL realmente baixo (zero ou um). Isso impacta diretamente no desempenho do cliente? Ele falha no DNS toda vez ou é uma configuração que afeta apenas os servidores DNS?

Qualquer ajuda seria muito apreciada. Obrigado

    
______ azszpr261773 ___
  1. Cada consulta sucessiva irá reordenar os registros A e a maioria dos clientes interpretará uma resposta de registro multa A para usar o primeiro da lista. Se você tiver muitos clientes usando o mesmo servidor DNS de cache DNS, poderá ver o desequilíbrio de carga.

O Android por padrão armazenará o DNS em cache por 10 minutos. Algo a considerar.

  1. Definir um TTL baixo afetará a carga do seu servidor DNS, mas como o protocolo é tão leve, isso não importa, a menos que você esteja em uma escala enorme.

Além disso, considere o caso em que um dos IPs na lista de registros A falha.

    
______ azszpr261794 ___

Eu recomendo que você dê uma olhada neste pergunta , que pode lhe dar algumas idéias sobre como funciona o round-robin do DNS e suas principais desvantagens.

Com relação a suas perguntas específicas:

  1. Esta é uma das principais desvantagens do round-robin do DNS, pois os registros são armazenados em cache não apenas na própria hierarquia do DNS, mas também em sistemas operacionais, navegadores ou outros aplicativos. A combinação de todos esses níveis de cache pode ser muito difícil de gerenciar.

  2. Eu diria que o impacto é baixo, mas mensurável, mas eu não recomendaria isso, pois não resolve o problema real. Há coisas a serem consideradas: muitos resolvedores de DNS não honram o TTL definido no DNS autoritativo e usam sua própria política e, como dito acima, há outros níveis de cache a serem considerados (OS, broswer, etc). Aqui está um bom par de respostas para uma pergunta semelhante .

Se você estiver considerando o DNS Round-Robin para aplicativos da web, recomendamos que você dê uma olhada em HAProxy , que pode implementar redundância barata mas real.

Espero que isso ajude!

    
___