- Vue d'ensemble (Overview)
- Prérequis
- Pré-installation
- Préparation de l'installation
- Téléchargement des packages d'installation
- Configuration du registre conforme à OCI
- Octroi d'autorisations d'installation
- Installation et configuration du service Mesh
- Installer et configurer l'outil GitOps
- Installation de l'opérateur de clés secrètes externes dans Kubernetes
- Application de diverses configurations
- Exécution de uipathctl
- Installation
- Post-installation
- Migration et mise à niveau
- Surveillance et alerte
- Administration du cluster
- Configuration spécifique au produit
- Configuration avancée d'Orchestrator
- Configuration des paramètres d'Orchestrator
- Configuration des paramètres d'application
- Configuration de la taille maximale de la requête
- Remplacement de la configuration du stockage au niveau du cluster
- Configuration de NLog
- Enregistrement des journaux du robot dans Elasticsearch
- Configuration des magasins d'informations d'identification
- Configuration de la clé de chiffrement par locataire
- Nettoyer la base de données Orchestrator
- Ignorer l’installation de la bibliothèque hôte
- Rotation des informations d’identification de stockage d’objets blob
- Désactivation de l'utilisation d'URL pré-signées lors du téléchargement de données vers le stockage Amazon S3
- Configuration de la sécurité de l'application de processus
- Configurer une authentification Kerberos avec l’authentification MSSQL de base pour Process Mining
- AI Trust Layer
- Résolution des problèmes
- Échec de l’enregistrement d’AI Center après la mise à niveau vers la version 2023.10 ou une version ultérieure
- Volumes Insights créés dans deux zones différentes après la migration
- La mise à niveau échoue en raison du remplacement des tailles de PVC Insights
- Les composants de sauvegarde Velero restent après la mise à niveau sur AKS depuis Automation Suite 2024.10.x
- La configuration de sauvegarde ne fonctionne pas en raison d’un échec de connexion à Azure Government
- Pods dans l'espace de noms uipath bloqués lors de l'activation des rejets de nœuds personnalisés
- Impossible de lancer Automation Hub et Apps avec la configuration proxy
- La sauvegarde de Velero échoue avec l'erreur FailedValidation
- Résolution des problèmes de clés secrètes externes
- Résolution des problèmes de Temporel en tant que service
- Les pods AI Center et Document Understanding ne démarrent pas avec la vérification du certificat TLS activée
- Erreurs de validation du certificat TLS
- Fluentd n’exporte pas les journaux dans les environnements IPv6
- Studio Desktop ne peut pas charger les connecteurs et activités Integration Service
- Atténuation manuelle de la politique réseau ArgoCD
- Configurer les requêtes et les limites de ressources pour les charges de travail créées par uipathctl
Nettoyer la base de données Orchestrator
Effectuez le nettoyage de la base de données pour Orchestrator à l’aide de scripts SQL ou PowerShell avec des politiques de rétention configurables sur EKS/AKS.
Les scripts suivants remplacent l'ensemble des scripts de nettoyage de la base de données antérieurs. Ils couvrent toutes les tâches de maintenance nécessaires et peuvent être configurés en fonction des besoins.
Vous pouvez télécharger les scripts de maintenance de la base de données Orchestrator à partir du Customer Portal.
Script SQL
Prérequis
Voici ce qu'il faut savoir pour exécuter le script CreateOrchestratorCleanupObjects.sql :
- Vous devez avoir accès à la base de données d'archives dans le contexte de votre base de données Orchestrator.
- Vous devez pouvoir accéder à l'archive à l'aide de noms en 3 parties, tels que
Archive.dbo.QueueItemsTableArchive.
Comment l’utiliser
-
Exécutez le script SQL
CreateOrchestratorCleanupObjects.sqlpour créer les objets suivants :- La table
dbo.__CleanupLog, qui héberge les journaux d'exécution. - La procédure
dbo.GetOrCreateArchiveTable, qui crée ou renvoie la table d'archives. - La procédure
dbo.RunOrchestratorCleanup, qui effectue la suppression et, éventuellement, l'archivage des anciennes données.
- La table
-
Exécutez
dbo.RunOrchestratorCleanupavec le fichier de configuration XML de planification pour effectuer le nettoyage. Pour plus de détails sur le fichier XML, reportez-vous à la section Planification du nettoyage .Remarque :Vous pouvez également utiliser l'agent SQL Server pour effectuer le nettoyage.
Exemple de script
DECLARE @cleanupConfigXml XML =
'<CleanupConfig totalRunMaxMinutes="180">
<table name="QueueItems" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="CreationTime" additionalFilter="Status IN (2, 3, 4, 5, 6)" daysOld="180" batchSize="50" forceCascade="1" shouldArchive="1" />
</CleanupConfig>';
EXEC dbo.RunOrchestratorCleanup
@cleanupConfigXml = @cleanupConfigXml,
@archiveDatabaseName = 'OrchestratorArchive';
DECLARE @cleanupConfigXml XML =
'<CleanupConfig totalRunMaxMinutes="180">
<table name="QueueItems" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="CreationTime" additionalFilter="Status IN (2, 3, 4, 5, 6)" daysOld="180" batchSize="50" forceCascade="1" shouldArchive="1" />
</CleanupConfig>';
EXEC dbo.RunOrchestratorCleanup
@cleanupConfigXml = @cleanupConfigXml,
@archiveDatabaseName = 'OrchestratorArchive';
script PowerShell
Ce scénario est adapté aux situations où vous ne pouvez pas utiliser le script SQL.
Le script PowerShell est compatible avec Powershell 5.1 et peut être utilisé avec les runbooks d'Azure Automation.
Prérequis
Le script RunOrchestratorCleanup.ps1 doit être capable de communiquer avec ces deux chaînes de connexion:
SourceConnectionString: il s(agit de la chaîne de connexion de votre base de données Orchestrator.DestinationConnectionString: il s'agit de la chaîne de connexion de la base de données d'archives. Notez que la base de données d'archives doit être créée et configurée à l'avance.
Objets créés
- La table
dbo.__CleanupLog, qui héberge les journaux d'exécution. - La table
dbo.__CleanupIds, qui stocke un lot temporaire d'ID qui doivent être nettoyés.
Limitations
Le script ouvre deux connexions : l'une à la base de données Orchestrator (via SourceConnectionString), et l'autre à la base de données d'archives (via DestinationConnectionString). Ainsi, aucune transaction réelle n'est impliquée, puisque les données sont copiées depuis Orchestrator dans l'archive, puis supprimées d'Orchestrator. Cela signifie que, si une exception est levée quelque part entre les deux actions, entraînant la réexécution du script, les mêmes données peuvent être à nouveau copiées, ce qui entraîne des doublons dans la base de données d'archives. Cependant, comme le caractère unique n'est pas appliquée à la base de données d'archives, cela ne génère aucun problème.
Exemple de script
.\RunOrchestratorCleanup
-SourceConnectionString "Data Source=.;Initial Catalog=UiPath;User ID=sa;Password=******"
-DestinationConnectionString "Data Source=.;Initial Catalog=<OrchestratorArchive>;User ID=sa;Password=******"
-CleanupConfigXml '<CleanupConfig totalRunMaxMinutes="180"><table name="QueueItems" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="CreationTime" additionalFilter="Status IN (2, 3, 4, 5, 6)" daysOld="180" batchSize="50" forceCascade="1" shouldArchive="1" /></CleanupConfig>'
.\RunOrchestratorCleanup
-SourceConnectionString "Data Source=.;Initial Catalog=UiPath;User ID=sa;Password=******"
-DestinationConnectionString "Data Source=.;Initial Catalog=<OrchestratorArchive>;User ID=sa;Password=******"
-CleanupConfigXml '<CleanupConfig totalRunMaxMinutes="180"><table name="QueueItems" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="CreationTime" additionalFilter="Status IN (2, 3, 4, 5, 6)" daysOld="180" batchSize="50" forceCascade="1" shouldArchive="1" /></CleanupConfig>'
Planification du nettoyage
Vous pouvez choisir les données à nettoyer à partir de votre base de données, le moment et la durée de l'activité de nettoyage pour chaque exécution, entre autres paramètres. Pour ce faire, utilisez le fichier XML suivant avec le script SQL ou PowerShell. Il est préconfiguré avec nos paramètres recommandés, mais vous pouvez le modifier si vous souhaitez des fonctionnalités plus avancées. Assurez-vous de bien comprendre le rôle de chaque paramètre avant de modifier le script, car cela peut avoir de graves conséquences.
<CleanupConfig totalRunMaxMinutes="180">
<table name="QueueItems" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="CreationTime" additionalFilter="Status IN (2, 3, 4, 5, 6)" daysOld="180" batchSize="50" forceCascade="1" shouldArchive="1" />
<table name="Jobs" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="CreationTime" additionalFilter="State IN (4, 5, 6)" daysOld="180" batchSize="50" forceCascade="1" shouldArchive="1" />
<table name="Logs" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="TimeStamp" additionalFilter="" daysOld="90" batchSize="1000" forceCascade="0" shouldArchive="1" />
<table name="AuditLogs" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="ExecutionTime" additionalFilter="" daysOld="365" batchSize="25" forceCascade="1" shouldArchive="1" />
<table name="Tasks" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="DeletionTime" additionalFilter="IsDeleted = 1" daysOld="180" batchSize="10" forceCascade="0" shouldArchive="1" />
<table name="QueueProcessingRecords" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="ProcessingTime" additionalFilter="ReportType != -1" daysOld="30" batchSize="1000" forceCascade="0" shouldArchive="0" />
<table name="Sessions" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="ReportingTime" additionalFilter="" daysOld="180" batchSize="50" forceCascade="1" shouldArchive="0" />
<table name="RobotLicenseLogs" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="StartDate" additionalFilter="" daysOld="180" batchSize="1000" forceCascade="0" shouldArchive="0" />
<table name="UserNotifications" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="CreationTime" additionalFilter="" daysOld="90" batchSize="1000" forceCascade="0" shouldArchive="0" />
<table name="TenantNotifications" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="CreationTime" additionalFilter="" daysOld="90" batchSize="1000" forceCascade="0" shouldArchive="0" />
<table name="Ledger" runMaxMinutes="-1" idColumn="LedgerId" dateTimeColumn="CreationTime" additionalFilter="" daysOld="7" batchSize="1000" forceCascade="0" shouldArchive="0" />
<table name="Assets" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="DeletionTime" additionalFilter="IsDeleted = 1" daysOld="120" batchSize="50" forceCascade="1" shouldArchive="0" />
<table name="__CleanupLog" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="ExecutionTimeUtc" additionalFilter="" daysOld="7" batchSize="1000" forceCascade="0" shouldArchive="0" />
</CleanupConfig>
<CleanupConfig totalRunMaxMinutes="180">
<table name="QueueItems" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="CreationTime" additionalFilter="Status IN (2, 3, 4, 5, 6)" daysOld="180" batchSize="50" forceCascade="1" shouldArchive="1" />
<table name="Jobs" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="CreationTime" additionalFilter="State IN (4, 5, 6)" daysOld="180" batchSize="50" forceCascade="1" shouldArchive="1" />
<table name="Logs" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="TimeStamp" additionalFilter="" daysOld="90" batchSize="1000" forceCascade="0" shouldArchive="1" />
<table name="AuditLogs" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="ExecutionTime" additionalFilter="" daysOld="365" batchSize="25" forceCascade="1" shouldArchive="1" />
<table name="Tasks" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="DeletionTime" additionalFilter="IsDeleted = 1" daysOld="180" batchSize="10" forceCascade="0" shouldArchive="1" />
<table name="QueueProcessingRecords" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="ProcessingTime" additionalFilter="ReportType != -1" daysOld="30" batchSize="1000" forceCascade="0" shouldArchive="0" />
<table name="Sessions" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="ReportingTime" additionalFilter="" daysOld="180" batchSize="50" forceCascade="1" shouldArchive="0" />
<table name="RobotLicenseLogs" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="StartDate" additionalFilter="" daysOld="180" batchSize="1000" forceCascade="0" shouldArchive="0" />
<table name="UserNotifications" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="CreationTime" additionalFilter="" daysOld="90" batchSize="1000" forceCascade="0" shouldArchive="0" />
<table name="TenantNotifications" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="CreationTime" additionalFilter="" daysOld="90" batchSize="1000" forceCascade="0" shouldArchive="0" />
<table name="Ledger" runMaxMinutes="-1" idColumn="LedgerId" dateTimeColumn="CreationTime" additionalFilter="" daysOld="7" batchSize="1000" forceCascade="0" shouldArchive="0" />
<table name="Assets" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="DeletionTime" additionalFilter="IsDeleted = 1" daysOld="120" batchSize="50" forceCascade="1" shouldArchive="0" />
<table name="__CleanupLog" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="ExecutionTimeUtc" additionalFilter="" daysOld="7" batchSize="1000" forceCascade="0" shouldArchive="0" />
</CleanupConfig>
Même si une exécution ne parvient à nettoyer que partiellement une ou quelques tables, les exécutions suivantes poursuivront le nettoyage, jusqu'à ce que le script rattrape son retard. Il est donc important que vous n'accumuliez pas de retard plus important que le script ne peut gérer. Si cela se produit, envisagez de planifier le script pour qu'il s'exécute plus fréquemment.
Nettoyer les paramètres XML
| Paramètre | Explication | Valeurs possibles |
|---|---|---|
|
| Le nombre maximal de minutes pendant lesquelles le script est autorisé à s'exécuter pour toutes les tables lors d'une exécution. | Doit être supérieure à 1. |
|
| Le nom de la table contenant les données à supprimer. | Exemple : QueueItems |
|
| Le nombre maximal de minutes pendant lesquelles le script est autorisé à s'exécuter pour une table particulière lors d'une seule exécution. Le délai défini ici peut parfois être dépassé de quelques minutes. totalRunMaxMinutes a priorité et sera toujours appliqué, même si vous le définissez sur -1. |
|
|
| L'ID de la colonne qui contient les données que vous souhaitez supprimer. | Exemple : Id de la table QueueItems |
|
| Cela diffère selon le type de données. daysOld. | Exemple : CreationTime pour QueueItems |
|
| Toute instruction SQL valide pour un filtre. Ce paramètre peut être laissé vide. | Exemple : Status IN (2, 3, 4, 5, 6). Cette valeur est incluse dans le fichier XML recommandé par nos soins. |
daysOld | Vous permet de conserver l'équivalent d'un certain nombre de jours de données. dateTimeColumn. | Ce paramètre doit être défini sur 2 au minimum. Exemple : si vous définissez ce paramètre sur |
|
| Le nombre de lignes de la table à supprimer dans une itération. Ce paramètre n'est pas utilisé pour les tables où des clés externes sont définies. | Exemple : la définition de ce paramètre sur 50 pour la table QueueItems supprime 50 éléments de cette table spécifique. |
forceCascade | Permet d'exécuter le script pour les tables où des clés externes sont définies. forceCascade pour les tables qui le requièrent. Vous n'avez donc pas besoin de le modifier. |
Par exemple, la définition de cette option pour la table |
shouldArchive | Permet de choisir si vous souhaitez archiver les données. |
|
Comparaison des scripts SQL et PowerShell
| Fonctionnalités | Script SQL | script PowerShell |
|---|---|---|
| Nettoyage XML | Ils utilisent tous les deux la logique décrite dans la section Planification du nettoyage. | |
| Journal d'exécution | Ils créent tous les deux une table Vous pouvez interroger les journaux d'une exécution en utilisant SELECT * FROM dbo.__CleanupLog WHERE ExecutionId = '<execution_id>' ORDER BY Id.Vous pouvez vérifier si une exécution contenait des erreurs en utilisant SELECT * FROM dbo.__CleanupLog WHERE ExecutionId = '<execution_id>' AND IsError = 1. Le paramètre ExecutionId est généré à chaque exécution de l'un de ces scripts. | |
| Archivage de table | La table d'archives ne contient pas d'index, de clés externes et de colonnes d'identité. Les colonnes de type Horodatage (Timestamp) ne sont pas archivées. | |
| Archivage de nom de table | Les noms suivent la même logique et incluent une chaîne basée sur le schéma de table. | |
| Lot d'ID à archiver/supprimer | Stocké dans une table temporaire. | Stocké dans la table dbo.__CleanupIds. |
| Transaction | Une seule transaction est effectuée pour chaque lot, au cours de laquelle les données sont à la fois archivées et supprimées. batchSize. | Sql BulkCopy est utilisé pour copier les données. Aucune transaction unique n'est effectuée pour l'archivage et la suppression. |