test di replica di SQL Server
-
23-09-2019 - |
Domanda
Mi piacerebbe scrivere uno script SQL per fare un test del fumo di base per verificare che l'installazione di replica sul mio server sia corretto.
Credo che un semplice insieme di operazioni CRUD contro le tabelle che dovrebbero essere replicati otterrà quello che sto cercando e immagino il flusso di lavoro sarà simile a questo:
-
INSERT
una riga in una tabella replicata nel db publisher - Attendere il processo di replica da eseguire?
- Controllare la riga esiste nella tabella nel db abbonato
La mia domanda è, come faccio a fare un passo 2? Credo di poter controllare quando il lavoro in questione è stata eseguita per ultima, cercando nelle tabelle msdb..sysjob*
, ma non sono sicuro che questo è il modo migliore per risolvere il problema.
Soluzione
Per la replica snapshot è possibile controllare se davvero sia i lavori sono stati eseguiti (agente snapshot e agente di distribuzione), ma per unione e transazionale non è possibile in quanto gli agenti correre continuamente.
Per transazionale è possibile inserire un tracciante di token e verificare se il token di traccia è contrassegnato come distribuita al sottoscrittore, utilizzando sp_posttracertoken e sp_helptracertokenhistory .