Persistance
Persistance pour PowerShell Universal.
PowerShell Universal stocke la sortie et les entrées des tâches, les identités et les jetons d'application dans la base de données.
SQLite
SQLite ne passe pas à l'échelle et n'est recommandé que pour les petites instances ou les environnements de test. Nous recommandons de sélectionner MS SQL ou PostgreSQL pour les environnements de production.
Lors de l'utilisation de SQLite, PowerShell Universal stocke toutes les données dans un fichier de base de données unique local à l'application PowerShell Universal. Nous recommandons SQLite plutôt que LiteDB pour les nouvelles installations, car il est plus largement utilisé et pris en charge.
Vous pouvez configurer SQLite en mettant à jour le fichier appsettings.json.
"Plugins": [
"SQLite"
],
"Data": {
"ConnectionString": "Data Source=%ProgramData%\\UniversalAutomation\\psu.db",
},Résolution des problèmes de taille de base de données importante
Les bases de données SQLite volumineuses peuvent résulter d'un long historique de tâches, de tâches qui écrivent de manière excessive dans la sortie du pipeline ou dans les flux de sortie PowerShell, d'informations obsolètes sur les ordinateurs, les processus ou les espaces d'exécution, ou de tables de journaux volumineuses.
À mesure que la base de données croît, les performances de PowerShell Universal seront affectées. Afin de déterminer ce qui cause cette croissance, utilisez l'outil SQLite_Analyzer. Vous pouvez télécharger SQLite_Analyzer dans le fichier ZIP des outils sur la page de téléchargement de SQLite.
Une fois téléchargé, exécutez l'analyseur sur votre fichier de base de données PowerShell Universal pour obtenir une liste détaillée d'informations sur l'état de votre base de données. Nous recommandons d'arrêter PowerShell Universal avant d'exécuter la commande suivante.
.\sqlite_analyzer.exe C:\ProgramData\UniversalAutomation\database.dbLa commande inclura des informations sur la taille des tables et des index dans la base de données. Cela permettra d'identifier précisément l'emplacement où la grande quantité de données est stockée.
Réduction de la taille de la base de données
SQLite conserve l'espace inutilisé dans la liste libre (freelist) de la base de données après la mise à jour ou la suppression d'enregistrements. Les bases de données qui exécutent de nombreuses tâches ou qui fonctionnent depuis plus longtemps peuvent avoir un fichier de base de données volumineux avec une liste libre importante. Vous pouvez exécuter l'outil sqlite_analyzer pour déterminer l'espace utilisé par la liste libre.
L'exemple de base de données ci-dessous occupe 23 Go, mais 99,946 % de cet espace est inutilisé.
Pour récupérer cet espace, SQLite peut utiliser la fonctionnalité vacuum pour reconstruire la base de données et réduire la taille de la liste libre. La fonctionnalité auto-vacuum n'est pas activée dans les bases de données PowerShell Universal. Si vous rencontrez des problèmes de taille de base de données, vous pouvez exécuter la commande VACUUM; dans l'outil Base de données de l'outil de support.
Nous recommandons de sauvegarder votre fichier de base de données avant d'effectuer un VACUUM. Cette commande reconstruit la base de données, la défragmente et supprime la liste libre du fichier.
Cliquez sur Help \ Support Tools \ Tools \ Database \ Execute. Entrez la commande suivante et exécutez-la.
SQL
La prise en charge de SQL nécessite une licence.
Vous pouvez configurer PowerShell Universal pour stocker les données dans une base de données Microsoft SQL. Cela vous permet de faire évoluer votre base de données et vos instances PowerShell Universal. PowerShell Universal exécutera automatiquement les tâches sur le pool d'agents. Vous pouvez mettre à jour le fichier appsettings.json de PowerShell Universal comme suit pour vous connecter à un serveur SQL central.
Les instances PowerShell Universal partageront une seule file d'attente de tâches et une seule instance exécutera une tâche, que ce soit selon la planification, en tant que déclencheur ou manuellement. Toutes les données relatives aux tâches seront stockées dans la base de données centralisée.
Azure SQL
Nous recommandons d'utiliser les identités gérées Azure lors de l'utilisation d'Azure SQL. Un exemple de chaîne de connexion est présenté ci-dessous.
Un guide sur l'utilisation de l'identité gérée pour Azure SQL est disponible ici.
Installation et mise à jour manuelles du schéma
Dans certains environnements, le service PSU peut ne pas avoir accès pour créer le schéma dans la base de données. Dans ce cas, vous pouvez installer et mettre à jour manuellement le schéma en exécutant les fichiers SQL inclus avec PowerShell Universal. Dans le dossier d'installation de PowerShell Universal, vous trouverez un répertoire SQL contenant deux fichiers SQL.
Exécutez ces fichiers sur votre base de données avant de mettre à niveau PowerShell Universal. Vous devrez arrêter PowerShell Universal pendant cette opération. Vous pouvez les exécuter dans n'importe quel ordre. Les deux scripts sont idempotents.
Par défaut, PowerShell Universal tentera de mettre à jour le schéma de la base de données. Pour désactiver complètement cette fonctionnalité, vous pouvez définir le paramètre RunMigrations à false dans appsettings.json.
Questions fréquemment posées
Privilèges du compte de base de données
Quel est le niveau de permission maximal requis pour un compte utilisateur de base de données lors des installations ou des mises à niveau ?
Lors du démarrage du serveur PowerShell Universal, la base de données sera installée et mise à niveau, si nécessaire. Si la base de données existe déjà, vous aurez besoin de db_owner pour créer et modifier des tables. Si la base de données n'existe pas encore, vous aurez besoin de dbcreator.
Quel est le niveau de permission maximal requis une fois la ou les bases de données créées pour les activités quotidiennes ?
PowerShell Universal effectue des opérations de base de données limitées lors des activités quotidiennes. Celles-ci consistent à insérer, mettre à jour, supprimer et consulter des données dans les tables créées. Vous n'aurez besoin que des rôles suivants : db_datawriter, db_datareader
Installation et prise en charge de la base de données et du système d'exploitation
Quelles versions de SQL Server sont prises en charge ? Y a-t-il une version minimale requise ?
PowerShell Universal prend en charge Microsoft SQL Server 2016 et versions ultérieures.
Quelles versions de compatibilité de base de données prenez-vous en charge ?
PowerShell Universal nécessite la version de compatibilité de base de données 130 ou une version ultérieure.
D'autres composants SQL Server doivent-ils être installés en plus du moteur de base de données ?
Aucun
Quelles versions de Windows Server sont prises en charge ?
Les versions actuellement prises en charge par Microsoft — Windows Server 2016 et versions ultérieures. Actuellement, la date de fin de support étendu pour 2012 R2 par Microsoft est le 10 octobre 2023, date à laquelle nous cesserons de prendre en charge ce système d'exploitation.
Maintenance et sauvegarde de la base de données
Dans quel délai les données doivent-elles être récupérées ?
Les données sont principalement destinées aux rapports, à l'exception des jetons d'application, de sorte qu'elles n'ont pas besoin d'être récupérées immédiatement. Selon l'utilisation des jetons d'application, certains systèmes peuvent perdre l'accès au serveur lors de la récupération de la base de données.
Conception de la base de données
Quelle sera la taille de la ou des bases de données lors du chargement initial ?
La base de données initiale ne contient pas un grand ensemble de données initiales et n'occupera principalement que l'espace du schéma.
Quelle est la croissance estimée par mois/année de chaque base de données ?
La croissance estimée dépend de nombreux facteurs, notamment le nombre de tâches exécutées par mois, la quantité de journaux de tâches et de sorties de pipeline stockées, et l'agressivité du nettoyage des données.
La taille de la base de données dépasse rarement 2 Go avec les paramètres par défaut. L'extension des paramètres de nettoyage pour conserver un historique plus long des tâches, l'exécution plus fréquente des tâches et le stockage de données telles que l'historique du terminal peuvent augmenter la taille de la base de données.
Votre application prend-elle en charge l'utilisation de la compression SQL Server (au niveau des lignes ou des pages) ?
Oui. Nous utilisons un client de base de données standard et il n'y a aucune limitation sur la compression au niveau des lignes et des pages.
Utilisation de la base de données
S'agit-il d'une base de données transactionnelle (OLTP) ou de rapports (OLAP) ?
Il s'agit principalement d'une base de données de rapports qui contient des informations telles que l'historique des tâches, la sortie des tâches et les jetons d'application.
Quel est le nombre total de connexions utilisateur/appareil ?
Un pool de connexions par serveur PSU. 1024 connexions maximum par serveur.
Quel est le nombre maximum de connexions utilisateur/appareil simultanées ?
Un pool de connexions par serveur PSU. 1024 connexions maximum par serveur.
PostgreSQL
Vous pouvez activer PostgreSQL avec l'extension PostgreSQL.
Mis à jour
Ce contenu vous a-t-il été utile ?