Bonjour tout le monde.
J'ai une replication transactionnelle entre un système ERP et un système de gestion de stock.
Le but de cette réplication c'est que le système de stock ne surcharge pas le système ERP (en Resources ou ne provoque pas des Deadlocks).
Ce système tourne 24h/24 et 7j/7.
Il arrive qu'une erreur bloque la replication. Lorsque ca arrive, j obtiens un email. Si je suis présent, je peux résoudre assez vite le probème.
En général: reinitialiser la souscription avec un nouveau Snapshot suffit.
Je voudrais maintenant automatiser cette action (en T-SQL).
Pour ce faire j 'ai ce script:
Il me reste encore à détécter l'erreur. Je me suis préparé quelques scripts pour trouver à quel endroits je peux détécter une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 USE ERPDB exec sp_reinitsubscription @publication = N'ERPCopy4StockDB' , @subscriber = N'SERVERP2' --, @publisher = N'SERVERP2' , @invalidate_snapshot = 1 , @destination_db = N'ERPCopy' GO -- Start job to "load last snapshot" execute msdb.dbo.sp_start_job @job_name=N'SERVERP2-ERPDB-ERPCopy4StockDB-4'
Exemples:
Je n'ai actuellement pas d'erreur et donc je ne peux vérifier les différents endroits où je suppose pouvoir détécter une erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 exec dbo.sp_replmonitorsubscriptionpendingcmds @publisher = N'SERVERP2', @publisher_db = N'ERPDB', @publication = N'ERPCopy4StockDB', @subscriber = 'SERVERP2', @subscriber_db = 'ERPCopy', @subscription_type = 0 --0=push, 1=pull select top 10 * from distribution.dbo.MSrepl_errors ORDER BY time DESC select * from ERPCopy.dbo.Msreplication_subscriptions Select * from distribution.dbo.Msrepl_commands where xact_seqno > 0x0019E9DC00004DE40011 Select * from ERPCopy.dbo.MSreplication_objects Select * from distribution.dbo.MSdistribution_agents Select * from distribution.dbo.MSlogreader_agents Select * from distribution.dbo.MSqreader_agents Select * from distribution.dbo.MSsnapshot_agents --?exec sp_MSload_replication_status
Je suppose que quelqu'un à déjà abordé ce problème et pourrait également partagé son expérience la-dessus.
Merci d'avance pour toutes informations ou commentaires
Partager