Introduction▲
Microsoft SQL Server 2005 est doté d'un outil d'intégration de données (d'une source en passant par une transformation optionnelle des données, vers une destination) appelé SSIS. Il permet de communiquer des données de systèmes d'information différents, ce qui répond bien aux besoins actuels en terme de système d'information et de transfert de données.
Il est très courant que ce type de traitement soit répétitif, quotidien voire plus, et donc nécessite une automatisation. SSIS couplé à SQL Server Agent permettent de réaliser ce type d'opération assez aisément. SSIS pour le traitement des données et SQL Server Agent pour l'automatisation de ce traitement. Nous allons, à partir d'un package SSIS que nous appellerons SSIS_automatisation, procéder à son déploiement et sa planification.
Nous allons débuter par une présentation de SQL Server Agent, son rôle, etc. Puis, nous verrons à travers notre exemple SSIS_automatisation comment le déployer sur notre MS SQL Server et planifier son exécution automatique.
I. Présentation de SQL Server Agent▲
Prérequis :
Notre exemple se base sur l'automatisation de l'exécution d'un package SSIS. Vous disposez de toutes les bases nécessaires à la pratique de SSIS dans Présentation de SQL Server Integration Services : SSIS
I-A. À quoi sert SQL Server Agent▲
L'Agent SQL Server est un service de SQL Server qui permet de stocker des informations sur des travaux. Ces travaux peuvent être constitués d'une ou plusieurs étapes ou tâches en fonction de l'objectif. SQL Server Agent permet l'exécution de ces travaux sur demande (manuelle) ou de manière automatique. Il permet entre autres de gérer les sauvegardes, les plans de maintenance, les travaux planifiés, la surveillance de la base, les alertes administratives, etc.
Dans notre cas, il nous permet d'automatiser le traitement de notre package SSIS_automatisation.
Ce service demandant beaucoup de ressource, il n'est pas démarré par défaut sauf si l'administrateur ou utilisateur a choisi de démarrer automatiquement le service. Pour pouvoir l'utiliser, il faut donc démarrer le service.
I-B. Comment démarrer le service SQL Server Agent ?▲
Il y a trois possibilités pour démarrer le service SQL Server Agent. En fait 2, car la première consiste à mettre en automatique le démarrage de ce service de façon à ce qu'il se lance à chaque démarrage de SQL Server. Par défaut ce n'est pas le cas, comme expliqué précédemment.
- Pour un démarrage automatique
Pour programmer le démarrage automatique de SQL Server Agent, aller dans Démarrer>Exécuter puis saisir services.msc dans la zone de texte comme suit et valider :
Cette action nous ouvrira une nouvelle fenêtre contenant tous les services dont SQL Server Agent sur lequel nous nous rendons :
Ensuite, sur la ligne correspondante à SQL Server Agent, cliquer droit pour sélectionner Propriétés :
Dans les propriétés, il nous est possible de démarrer ce service en manuel, automatique (début différé), automatique ou encore de le désactiver. Pour le démarrage automatique, nous choisirons donc automatique et nous validons. Voilà notre service se démarre de manière automatique.
- Pour un démarrage manuel, deux possibilités
Soit SQL Server Agent est en mode manuel, nous répétons alors l'opération précédente, sauf qu'il nous suffit de cliquer droit et de sélectionner Démarrer afin de démarrer le service.
Soit nous utilisons SQL Server Management Studio (en administrateur ou ayant droit). Nous nous connectons au serveur de base de données. Dans l'explorateur, nous pouvons voir SQL Server Agent en rouge (le service n'est pas démarré). Nous cliquons droit sur celui-ci et nous pouvons alors sélectionner Démarrer. SQL Server agent passe alors en vert (le service est démarré).
Après une brève présentation de SQL Server Agent et de ses modes de démarrage, nous allons passer à notre objectif principal : l'automatisation du traitement de notre package SSIS_automatisation.
II. Automatisation de l'exécution de notre package SSIS▲
Prérequis :
Avant de pouvoir planifier l'exécution d'un package SSIS, il faut le déployer. Si vous ne connaissez pas la démarche à adopter, rendez-vous dans ce tutoriel : Déploiement du package SSIS.
Étape 1 : Démarrer notre SQL Server 2005
Pour cela, nous exécutons la commande net start mssqlserver. Et pour l'arrêter, net stop mssqlserver.
Une fenêtre d'invite de commande apparait/disparait très rapidement.
Étape 2 : Démarrer notre SQL Server Agent
Et bien à cette étape, nous pouvons reprendre la manière que l'on souhaite, manuelle ou automatique, tant que notre SQL Server Agent est démarré.
Étape 3 : Connexion avec SQL Server Management Studio
Ouvrir SQL Server Management studio, choisir le type de serveur Base de données, et remplir les informations nécessaires soit login et mot de passe comme suit :
Étape 4 : Création d'un nouveau Job
Pour créer notre nouveau job qui nous permettra de planifier l'exécution de notre package SSIS, au niveau de l'arborescence, se placer sur le SQL Server Agent. Cliquer droit et choisir new >Job.
Remarque : notre SQL Server Agent est effectivement démarré et celui-ci apparait en vert.
Au niveau de l'onglet général, nous nommons notre job Job_SSIS-automatisation comme suit :
Au niveau de l'onglet steps, nous allons ajouter un nouveau « pas ». Il nous faut saisir les informations demandées comme suit, en sélectionnant le type d'identification voulue (dans notre cas SQL Server) et choisir le package concernant SSIS_automatisation :
Concernant les autres onglets à configurer, je vous laisse le soin de choisir vos options par vous-même, car elles sont assez explicites (options d'exécution, contraintes de vérification, etc.).
Ensuite, nous nous rendons au niveau de l'onglet schedules. C'est avec cette option qu'est déterminée la fréquence d'exécution du package ( par mois, par semaine, par jour ainsi que l'heure d'exécution, etc.).
Dans notre cas, nous avons décidé que le package s'exécuterait tous les jours à 2 h du matin.
Les onglets alertes et notifications permettent d'améliorer la gestion d'erreurs et de contrôler le bon état d'avancement de l'exécution automatique des packages. Il est fortement recommandé de les utiliser, ainsi qu'une vérification des journaux d'erreurs au niveau du serveur. En effet, ce n'est pas parce que le traitement est automatisé que l'erreur est impossible, en particulier quand celle-ci se produit au niveau du package SSIS lui-même.
Après avoir validé le tout, nous pouvons constater dans l'explorer, que notre nouveau job s'est bien ajouté. Notons aussi les différents journaux apparaissant et permettant de vérifier la bonne ou mauvaise exécution de nos packages entre autres.
Conclusion▲
Ce tutoriel nous permet donc d'avoir un avant-goût sur les possibilités de SQL Server Agent. Il nous simplifie grandement la vie et l'automatisation de package, en particulier SSIS, n'en est que facilitée. SSIS couplé à SQL Server Agent permet de garder une cohérence dans le système d'information et de manager les résultats.
Bien entendu, je vous invite à vous pencher davantage sur tout ce qui touche à la gestion d'erreurs, car paramétrer ce genre de dispositif simplifie la vie et permet surtout un gain de temps.
Liens utiles▲
Présentation de SQL Server Integration Services : SSIS
SSIS : Générer des fichiers textes à partir du contenu d'une colonne
Remerciements▲
Je remercie Adrien Artero et Bruno2r pour leurs corrections et remarques constructives.