Questione : Scritto di stato latente della replica - SQL 2005

Ciao esperti,
I che prova a fornire uno scritto semplice (ms SQL 2005) controllare lo stato latente del mio caso di replication.
The: il
There è una base di dati della pubblicazione denominata PubDB e una replica di necessità denominata PubDB di ReplDB.
I di interrogare una tabella in TABLE1 denominato PubDB, colonna LastUpdate, quindi fa lo stessi sul ReplDB e confronta i due valori (le due date risultanti). il
If la differenza fra PubDb e ReplDB è più di minuto 90 un allarme del email dovrebbe trasmettere un email.
Please ritiene libero di costruire sui frammenti forniti di codice o di fornire un solution.

Thanks, il

del
RICUser class= > " libero " del
> " del codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
class= " del id= " codeSnippet951695 del
--Ciò si allontana da PubDB

USARE PubDB

selezionare il lastupdate del principale 1

da TABLE1 (NOLOCK)

ordine dal desc del lastupdate 

 

/*
Il seguente fa lo stessi nel ReplDB ripiegato via Server.Would collegato non che sia è migliore qui usare OPENQUERY, in modo da posso usare il suggerimento (NOLOCK)?
*/

selezionare il lastupdate del principale 1

da [REM_SERVER]. [ReplDB] .dbo.TABLE1

ordine dal desc del lastupdate 

--ora i due risultati assomiglieranno a quello (appena un esempio)

--PubDB
2010-08-21 03:30: 000

--ReplDB
2010-08-21 01:30: 000

--Ora il confronto dovrebbe seguire e se PubDB meno --ReplDB >90 minuto un email dovrebbe informare [email protected]
class= del

Risposta : Scritto di stato latente della replica - SQL 2005

Se lo capisco bene, dovete appena sottrarre i due valori datetime ed è facile.

La posta che trasmette lo PS è descritta a molti posti, per esempio http://www.sqlteam.com/article/sending-smtp-mail-using-a-stored-procedure o http://classicasp.aspfaq.com/email/how-do-i-send-e-mail-from-sql-server.html
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
--Ciò si allontana da PubDB

DICHIARARE il datetime del @PubTime, datetime del @ReplTime

USARE PubDB

REGOLARE il @PubTime = (lastupdate prescelto del principale 1 da ordine TABLE1 (NOLOCK) dal desc del lastupdate) 


/*
Il seguente fa lo stessi nel ReplDB ripiegato via Server.Would collegato non che sia è  migliore qui usare OPENQUERY, in modo da posso usare il suggerimento (NOLOCK)?
*/

REGOLARE il @ReplTime = 
 (lastupdate prescelto del principale 1 da [REM_SERVER]. [ReplDB] ordine .dbo.TABLE1 dal desc del lastupdate)


--ora i due risultati assomiglieranno a quello (appena un esempio)

--PubDB
2010-08-21 03:30: 000

--ReplDB
2010-08-21 01:30: 000

--Ora il confronto dovrebbe seguire  e se  PubDB meno --ReplDB >90 minuto un email dovrebbe informare [email protected]

SE DATEDIFF (minuto, @ReplTime, @PubTime) > 90
  sp_SMTPMail di EXEC….
Altre soluzioni  
 
programming4us programming4us