GetDBApp : Automatisation du téléchargement de la base de données Octopus

AFFICHER TOUT LE CONTENU

Table des matières

Introduction

Le programme GetDBApp (ESI.Octopus.GetDBApp.exe) permet de télécharger la base de données Octopus à partir d’une base de données hébergée sur nos serveurs. Le programme peut être automatisé à partir du planificateur de tâche dans Windows pour télécharger et restaurer la base de données tous les jours. Veuillez prendre note que la base de données Octopus est au format SQL.

Cet article explique comment utiliser le programme GetDBApp.

Prérequis

Avant de passer à la partie technique, il faut valider l'accès à cette option. 

À partir d'Octopus, aller dans le menu Outils > Obtenir la base de données et vérifier si l'option est disponible ou grisée.
* La permission " Exécuter l'application GetDatabase " est requise pour télécharger le fichier.  

Voir en image

Si l'option est grisée, il faut faire la demande d'activer cette option au Centre de services Octopus. Une fois l'option disponible, on peut passer aux étapes suivantes. 
 

Avant d'utiliser le programme GetDBApp il faut :

  • Avoir un serveur SQL sous la version 2014 Standard SP1 minimum.
    • Activer la fonctionnalité suivante : Extraction en texte intégral et extraction sémantique de recherche (Full Text Search Engine). 
  • S'assurer de fournir à GetDB un compte ayant le droit de supprimer et de créer des bases de données.
  • Posséder un répertoire partagé (share) sur le serveur SQL dans lequel GetDBApp copiera le fichier backup téléchargé à partir du serveur Octopus (Exemple : \\MySqlServer\OctopusBackups\).
  • Avoir un ordinateur/serveur qui exécutera le programme GetDBApp (le client Octopus doit être préalablement installé sur le poste).
  • À partir de la version 4.2.190 :
    • Installer la version la plus récente du composant Microsoft SqlPackage : Télécharger et installer SqlPackage.exe (lien en anglais seulement).
    • Ajouter le répertoire d'installation (correspondant à la version de Windows) dans la variable système "PATH" de Windows dans les variables système.​
      • Exemple de répertoires d'installation : "C:\Program Files\Microsoft SQL Server\150\DAC\bin" ou "C :\Program Files (x86)\Microsoft SQL Server\150\DAC\bin".
      • Clic droit sur l’icône Ordinateur de votre bureau (ou dans le panel de gauche de l’explorateur de fichiers) et dans le menu contextuel, allez sur Propriétés.
      • Dans la fenêtre qui s’ouvre, cliquer sur le lien Paramètres système avancés dans la liste de gauche.
      • Dans la nouvelle fenêtre ainsi ouverte, cliquer sur le bouton Variables d’environnement.

Description du fonctionnement

Lorsque le programme GetDBApp est exécuté, les étapes suivantes sont effectuées :

  1. Connexion au serveur Octopus.
  2. Téléchargement de la sauvegarde (backup) de votre base de données Octopus dans un répertoire temporaire sur votre PC.
  3. Copie du fichier téléchargé vers le répertoire partagé sur votre serveur SQL.
  4. Déconnexion au serveur Octopus.
  5. Décompression du fichier téléchargé dans le répertoire identifié dans les prérequis.
  6. Connexion à votre serveur SQL.
  7. Suppression de la base de données SQL existante.
  8. Création de la base de données Octopus à partir du fichier téléchargé dans le dossier par défaut du serveur.
  9. Déconnexion du serveur SQL.
  10. Suppression des fichiers téléchargés et décompressés dans votre répertoire partagé (il existe une option à la ligne de commande pour ne pas effacer le fichier téléchargé).
ATTENTION : La sauvegarde des bases de données Octopus est effectuée tous les soirs. À l’exécution du programme GetBDApp, vous obtenez donc une copie de la veille.

Noter que quelques fois par année, nous faisons du ménage dans nos outils afin d'éviter la production de sauvegarde inutilement. Cette opération requiert beaucoup de temps et ressources de notre côté. Lorsqu'un client ne télécharge pas activement sa base de données, nous désactivons cette option. 

Utilisation du programme GetDBApp

GetDBApp est un programme de type ligne de commande (DOS). Il est conçu ainsi pour être facile à automatiser (la section ExécuterGetDBApp à partir d'une ligne de commande décrit comment automatiser l'exécution du programme). 

  • Le nom complet du programme GetDBApp est : ESI.Octopus.GetDBApp.exe
  • Il est situé dans le répertoire local d'Octopus (C:\Program Files\Octopus) ou dans (\%homepath%\AppData\Local\Octopus).
  • Exemple du répertoire où peut se trouver Octopus : C:\Users\slevesque\AppData\Local\Octopus.

Ce qu'il faut savoir :

À chaque exécution du programme un fichier .LOG est créé avec le format NomDeL'Outil_AAAAMMJJ_HHMMSS.log,

  • Par exemple GetDBApp_20190618_105242.log.

Utiliser ce fichier pour voir les résultats d'exécution de la commande et les erreurs s'il y en a. 

Voir aussi l'article OutilsOctopus | Entretien des fichiers logs sur l'importance de faire la gestion de ses fichiers. 

Paramètres

Il y a 7 paramètres disponibles dont 4 obligatoires pour exécuter GetDBApp :

Paramètres obligatoires

  • /Login
    • Nom d’utilisateur Octopus.
  • /Password
    • Mot de passe de l’utilisateur Octopus.
  • /ConfigFilePath
    • Chemin vers le fichier de configuration. 
  • /Team
    • ​Le numéro de l'équipe à mettre à jour. Par défaut, l'équipe TI est l'équipe numéro 1.

La prochaine section explique comment préparer le fichier de configuration.

Paramètres facultatifs

  • /KeepDownloadedBackup
    • Permet de conserver le fichier (backup) téléchargé dans votre répertoire partagé après l'avoir restauré sur votre serveur SQL. Sans ce paramètre, GetDBApp le supprime. Selon l'infrastructure où votre base de données est hébergée, votre fichier pourrait ne pas être horodaté. Le cas échéant, vous aurez à renommer votre fichier pour ne pas empêcher l'exécution suivante de GetDB - celui-ci bloque si le fichier existe déjà.
  • /LogFilePath
    • Remplace l'emplacement du fichier de journalisation. Par défaut, le fichier se nomme GetDBApp_AAAAMMJJ_HHMMSS.log et sera situé dans le répertoire d’Octopus où se trouve l'exécutable de l'application GetDBApp. Si vous déplacez le fichier dans un autre répertoire que celui d'Octopus, assurez-vous que ce répertoire existe (le système ne peut créer le répertoire). De plus, le chemin doit contenir le nom du fichier.
  • /NoRestore
    • Permet de ne pas restaurer la base de données. Cette option permet seulement de télécharger le fichier.
  • /PurgeLogs
    • Permet d'effacer automatiquement les vieux fichiers de logs. 
    • Le paramètre permet de déterminer le nombre de jours de fichiers logs qu'on désire conserver.
    • Pour plus d'information, voir l'article OutilsOctopus | Entretien des fichiers logs.

Journal des opérations

Fichier généré à l'exécution du programme GetDBApp :

  • GetDBApp_AAAAMMJJ_HHMMSS.log 
    • Journal des opérations (LOG) généré automatiquement chaque fois que le programme est exécuté.

Fichier de configuration (XML)

Le fichier de configuration est un fichier texte qui contient l'information sur le serveur SQL, l'emplacement du répertoire partagé et d'autres paramètres nécessaires au programme. Ce fichier utilise le format XML.

ATTENTION : Avant de commencer la création du fichier de configuration, prenez soin de ne pas briser le format du fichier en modifiant les étiquettes ou la structure du fichier. Un seul "/" ou "<" ou ">" manquant ou additionnel pourra rendre le fichier inutilisable. Assurez-vous que les valeurs spécifiées sont valides. Ne laissez pas d'espaces vides avant ou après les valeurs. En cas d'erreur avec le fichier de configuration, le logiciel va s'arrêter sans problème. Cependant, le logiciel n'est pas très clair dans la façon qu'il avise les erreurs, alors des erreurs pourront être difficiles à trouver. Une vérification diligente des valeurs est recommandée avant de démarrer le programme.
  • Ouvrir le fichier modèle suivant dans Notepad : GetDBAppConfiguration.txt
  • Vous devez modifier les sections en jaune SEULEMENT. Ces balises sont expliquées dans la section suivante.

Explication des balises

  • <serverBackupLocationUNC>\\MySqlServer\OctopusBackups</serverBackupLocationUNC>
    • Nom du serveur de sauvegarde
      • Remplacer \\MySqlServer\OctopusBackups avec le nom du répertoire partagé où la sauvegarde de la base de données sera sauvegardée.
  • <serverName>MySqlServer</serverName>
    • Nom du serveur SQL
      • Remplacer MySqlServer par le nom du serveur où la base de données doit être restaurée.
  • <databaseName>OctopusDatabase</databaseName>
    • Nom de la base de données
      • Remplacer OctopusDatabase par le nom de la base de données où sera restaurée la BD Octopus.
  • <autenticationMode>sql</autenticationMode>
    • Mode d’authentification
      • La balise autenticationMode peut être mise à la valeur integrated. Dans ce cas, les balises userName et password ne seront pas utilisées. Ce mode peut seulement être utilisé s'il est supporté dans la configuration de SQL Server. Dans le cas contraire, utilisé SQL et assurez-vous d'avoir un nom d'utilisateur et mot de passe sur la base de données.
  • <userName>sa</userName>
    • Nom d'utilisateur SQL propriétaire de la base de données (DB_Owner)
  • <password>password</password>
    • Mot de passe de l'utilisateur SQL
  • <sqlPackageAdditionalArguments>commandes</sqlPackageAdditionalArguments>
    • Arguments additionnels à ajouter à la ligne de commande pour SQLPackage (pourrait s'avérer nécessaire dans certains scénarios précis selon vos besoins)
  • <trustServerCertificate>[True|False]</trustServerCertificate>
    • Lorsque cette balise a True comme valeur, l'application va injecter, dans la chaîne de connexion, la valeur suivante : TrustServerCertificate=True
    • Cette balise peut être utilisée si le serveur SQL destination n'a pas de certificat ou n'est pas signé par un émetteur de confiance

Exécuter GetDBApp à partir d'une ligne de commande

ATTENTION : Avant de tester GetDBApp, il est recommandé de tester la connexion à votre serveur SQL.

 

Pour lancer l'exécutable GetDBApp, vous devez ouvrir une fenêtre d'invite de commande (DOS) et vous positionner dans le répertoire d'Octopus. Par la suite, vous devez entrer la ligne de commande suivante :

ESI.Octopus.GetDBApp.exe /login:system /password:AbCd123 /ConfigFilePath:C:\Program Files\Octopus\GetDBAppConfiguration.xml /team:1

Comment automatiser GetDBApp pour télécharger chaque jour

Pour automatiser l'exécution de GetDB, référez-vous à l'article Tâches planifiées Windows.

Veuillez noter que toutes les nuits, une nouvelle copie de sauvegarde est générée. Cette copie contient toutes les données présentes en date de la journée précédente 23:59. Cette copie est rendu disponible à partir de 4h00 AM (UTC -5:00).

 

Dépannage

La présente section décrit des pistes de solution pour vous aider à dépanner votre import lorsque celui-ci ne fonctionne pas.

  • Avant toute chose...
    • Avant de tenter de dépanner l'application, assurez-vous avoir la version la plus récente de SqlPackage disponible. Si ce n'est pas le cas, débuter par la mise à jour.
  • RegQueryValueEx() returned error 2, 'The system cannot find the file specified.'
    • Ce message fait partie du processus normal de restauration de votre base de données.
  • Device dropped.
    • Ce message fait partie du processus normal de restauration de votre base de données.

 

X
Aidez-nous à améliorer l’article