Sauvegarder la base ESBExceptionDB avec le job Backup BizTalk Server

David GROSPELIER
Publié par David GROSPELIER
Catégorie : BizTalk
18/07/2017

L’ESB Toolkit de BizTalk (quelle que soit la version) contient un excellent pattern de gestion d’erreurs, reposant notamment sur une base de données pour le stockage des erreurs survenues dans l’environnement. Il s’agit de la base de données SQL Sever EsbExceptionDb.
Cette base de données contient notamment :
      – les erreurs survenues : détail de l’erreur, message(s) en erreur, …
      – les actions réalisées sur ces erreurs : est-ce que l’erreur a été traitée par un opérateur, est-ce que le message a été relancé dans le système.
Cette base de données devient donc tout aussi critique que les autres bases de données BizTalk et il convient d’adopter une stratégie de sauvegarde adaptée.
Vous pouvez certes créer un plan de maintenance pour réaliser le backup « standard » SQL Server mais je vous conseille d’opter pour le backup BizTalk : le job de backup BizTalk Server effectue la sauvegarde des bases de données BizTalk (en garantissant une cohérence dans les sauvegardes de toutes les bases de données et vous pouvez le configurer pour qu’il intègre également des bases de données tierces. Voici comment procéder pour la base de données EsbExceptionDb.

 

1. CRÉER LA TABLE MARKLOG DANS LA BASE ESBEXCEPTIONDB

 

Lorsque le job de Backup BizTalk s’exécute sur une base de données, et avant de réaliser le backup effectif, il met à jour le contenu de la table MarkLog. Cette table doit donc être présente dans la base EsbExceptionDb (comme dans toutes les autres bases de données intégrées au job de Backup).
Pour créer cette table, exécutez simplement le script nommé Backup_Setup_All_Tables.sql situé dans le répertoire Schema du répertoire d’installation de BizTalk.

 

2. CRÉER LES PROCÉDURES STOCKÉES DANS LA BASE ESBEXCEPTIONDB

 

Le backup effectif de la base de données et la mise à jour de la table MarkLog sont effectués par un ensemble de procédures stockées devant être créées dans la base EsbExceptionDb.
Pour cela, exécutez le script Backup_Setup_All_Procs.sql situé lui aussi dans le répertoire Schema du répertoire d’installation de BizTalk.

 

3. CONFIGURER LE JOB DE BACKUP

 

Afin que le job de backup BizTalk intègre la base EsbExceptionDb dans le processus de sauvegarde, vous devez simplement mettre à jour la table adm_OtherBackupDatabases de la base de données BizTalkMgmtDb :

 

Ajoutez une entrée dans cette table pour votre base de données comme illustré ci-dessous :

 

Vous devez bien entendu personnaliser l’occurrence ajoutée à la table pour qu’elle corresponde à votre environnement :
      – le champ ServerName doit contenir le nom de l’instance SQL Server,
      – le champ BTSServerName doit contenir le nom du serveur BizTalk.

 

4. TESTER LE JOB

 

Exécutez ce job pour tester la sauvegarde. Vous obtiendrez un fichier de sauvegarde pour la base EsbExceptionDb : en configuration traditionnelle, vous aurez un full backup une fois par jour et un backup des logs toutes les 15 minutes.

 

BONNE PRATIQUE

 

Bien entendu cette procédure s’applique à toutes les bases de données tierces (base de configuration, données de transcodification, autres bases de données de l’ESB Toolkit…).
C’est une bonne pratique d’utiliser le job de backup BizTalk car il assure une cohérence dans les sauvegardes. Si vous utilisez le BizTalk Log Shipping pour un site de secours, toutes les bases de données sauvegardées par le job BizTalk seront automatiquement restaurées sur le site de secours sans effort