- Vue d'ensemble (Overview)
- Prérequis
- Recommandé : modèles de déploiement
- Manuel : Préparation de l'installation
- Manuel : Préparation de l'installation
- Étape 1 : Configuration du registre compatible OCI pour les installations hors ligne
- Étape 2 : configuration du magasin d'objets externe
- Étape 3 : Configuration de High Availability Add-on
- Étape 4 : configurer Microsoft SQL Server
- Étape 5 : configurer l’équilibreur de charge
- Étape 6 : configurer le DNS
- Étape 7 : configuration des disques
- Étape 8 : configurer les paramètres au niveau du noyau et du système d’exploitation
- Étape 9 : configuration des ports de nœud
- Étape 10 : appliquer divers paramètres
- Étape 12 : Valider et installer les packages RPM requis
- Étape 13 : génération du fichier cluster_config.json
- Exemple Cluster_config.json
- Configuration générale
- Profile configuration
- Configuration du certificat
- Configuration de la base de données
- Configuration du magasin d'objets externe
- Configuration d'URL pré-signée
- Configuration d'ArgoCD
- Configuration du registre externe compatible OCI
- Disaster Recovery : configurations actif/passif et actif/actif
- Configuration de High Availability Add-on
- Configuration spécifique à Orchestrator
- Configuration spécifique à Insights
- Configuration spécifique à Process Mining
- Configuration spécifique à Document Understanding
- Configuration spécifique à Automation Suite Robots
- Configuration spécifique à AI Center
- Configuration de la surveillance
- Facultatif : configuration du serveur proxy
- Facultatif : Activation de la résilience aux échecs locaux dans un cluster en mode production multi-nœuds compatible haute disponibilité
- Facultatif : Transmettre le fichier personnalisé resolv.conf
- Facultatif : augmentation de la tolérance aux pannes
- Ajout d'un nœud d'agent dédié avec prise en charge GPU
- Ajout d'un nœud d'agent dédié pour Task Mining
- Connexion de l'application Task Mining
- Ajout d'un nœud d'agent dédié pour les Automation Suite Robots
- Étape 15 : configuration du registre Docker temporaire pour les installations hors ligne
- Étape 16 : validation des prérequis de l’installation
- Manuel : Exécution de l'installation
- Post-installation
- Administration du cluster
- Gestion des produits
- Premiers pas avec le portail d'administration du cluster
- Migration d'un magasin d'objets d'un volume persistant vers des disques bruts
- Migration de High Availability Add-on du cluster vers une version externe
- Migration des données entre les librairies
- Migration d'un magasin d'objets intégré au cluster vers un magasin d'objets externe
- Migration vers un registre externe compatible OCI
- Basculer manuellement vers le cluster secondaire dans une configuration actif/passif
- Disaster Recovery : exécution d'opérations post-installation
- Conversion d'une installation existante en configuration multi-sites
- Recommandations pour mettre à niveau un déploiement actif/passif ou actif/actif
- Recommandations pour sauvegarder et restaurer un déploiement actif/passif ou actif/actif
- Surveillance et alerte
- Migration et mise à niveau
- Migrating between Automation Suite clusters
- Mettre à niveau Automation Suite
- Téléchargement des packages d'installation et obtention de l'ensemble des fichiers sur le premier nœud de serveur
- Récupération de la dernière configuration appliquée à partir du cluster
- Mise à jour de la configuration du cluster
- Configuration du registre compatible OCI pour les installations hors ligne
- Exécution de la mise à niveau
- Exécution d'opérations post-mise à niveau
- Appliquer un correctif
- Configuration spécifique au produit
- 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
- 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
- Bonnes pratiques et maintenance
- Résolution des problèmes
- Comment résoudre les problèmes des services lors de l'installation
- Comment désinstaller le cluster
- Comment nettoyer les artefacts hors ligne pour améliorer l'espace disque
- Comment effacer les données Redis
- Comment activer la journalisation Istio
- Comment nettoyer manuellement les journaux
- Comment nettoyer les anciens journaux stockés dans le compartiment sf-logs
- Comment désactiver les journaux de diffusion pour AI Center
- Comment déboguer les installations d'Automation Suite ayant échoué
- Comment supprimer des images de l’ancien programme d’installation après la mise à niveau
- Comment désactiver le déchargement de la somme de contrôle txt
- Comment définir manuellement le niveau de journalisation d’ArgoCD sur Info
- Comment augmenter le stockage d’AI Center
- Comment générer la valeur pull_secret_value encodée pour les registres externes
- Comment résoudre les chiffrements faibles dans TLS 1.2
- How to check the TLS version
- Impossible d'exécuter une installation hors ligne sur le système d'exploitation RHEL 8.4
- Erreur lors du téléchargement du bundle
- L'installation hors ligne échoue en raison d'un fichier binaire manquant
- Problème de certificat dans l'installation hors ligne
- Erreur de validation de la chaîne de connexion SQL
- Échec de la vérification des prérequis pour le module selinux iscsid
- Disque Azure non marqué comme SSD
- Échec après la mise à jour du certificat
- L'antivirus provoque des problèmes d'installation
- Automation Suite ne fonctionne pas après la mise à niveau du système d'exploitation
- Automation Suite requiert que backlog_wait_time soit défini sur 0
- Volume impossible à monter car il n'est pas prêt pour les charges de travail
- Échec de la collecte du journal du pack d'assistance
- Échec de la mise à niveau du nœud unique à l’étape Fabric
- Échec de la mise à niveau en raison d’un Ceph défectueux
- RKE2 ne démarre pas en raison d'un problème d'espace
- Le volume ne peut pas être monté et reste à l'état de boucle d'attachement/détachement
- La mise à niveau échoue en raison d’objets classiques dans la base de données Orchestrator
- Cluster Ceph trouvé dans un état dégradé après une mise à niveau côte à côte
- Un composant Insights défectueux entraîne l’échec de la migration
- La mise à niveau du service échoue pour Apps
- Délais d'attente de mise à niveau sur place
- Migration du registre Docker bloquée lors de la suppression du PVC
- AI Center provisioning failure after upgrading to 2023.10 or later
- La mise à niveau échoue dans les environnements hors ligne
- Échec de la validation SQL lors de la mise à niveau
- Le pod d'instantané-contrôleur-crds dans l'état CrashLoopBackOff après la mise à niveau
- Échec du chargement ou du téléchargement des données dans l'objectstore
- Le redimensionnement de la PVC ne répare pas Ceph
- Échec du redimensionnement du PVC objectstore
- Rook Ceph ou pod Looker bloqué dans l'état Init
- Erreur de pièce jointe du volume Ensembles d'états.
- Échec de la création de volumes persistants
- Définition d'un délai d'expiration pour les portails de gestion
- L'authentification ne fonctionne pas après la migration
- kinit : Impossible de trouver le KDC pour le domaine <AD Domain> lors de l'obtention des informations d'identification initiales
- Kinit : Keytab ne contient aucune clé appropriée pour *** lors de l'obtention des informations d'identification initiales
- L'opération GSSAPI a échoué en raison d'un code de statut non valide
- Alarme reçue pour l'échec de la tâche Kerberos-tgt-update
- Fournisseur SSPI : serveur introuvable dans la base de données Kerberos
- La connexion a échoué pour l'utilisateur AD en raison d'un compte désactivé
- Échec de connexion à ArgoCD
- Mettre à jour les connexions du répertoire sous-jacent
- Impossible d'obtenir l'image du bac à sable
- Les pods ne s'affichent pas dans l'interface utilisateur ArgoCD
- Échec de la sonde Redis
- Le serveur RKE2 ne démarre pas
- Secret introuvable dans l'espace de noms UiPath
- ArgoCD passe à l'état Progression (Progressing) après la première installation
- Pods MongoDB en mode CrashLoopBackOff ou enregistrement PVC en attente après suppression
- Pods bloqués dans Init:0/X
- Métriques Ceph-rook manquantes dans les tableaux de bord de surveillance
- Document Understanding n'est pas affiché sur la barre de gauche d'Automation Suite
- État Échec (Failed) lors de la création d'une session de labellisation des données
- État Échec (Failed) lors de la tentative de déploiement d'une compétence ML
- La tâche de migration échoue dans ArgoCD
- La reconnaissance de l'écriture manuscrite avec l'Extracteur de formulaires intelligents (Intelligent Form Extractor) ne fonctionne pas
- Exécution de la haute disponibilité avec Process Mining
- Échec de l’ingestion de Process Mining lors de la connexion à l’aide de Kerberos
- Après Disaster Recovery, Dapr ne fonctionne pas correctement pour Process Mining et Task Mining
- Impossible de se connecter à la base de données AutomationSuite_ProcessMining_Authentication à l'aide d'une chaîne de connexion au format pyodbc
- L'installation d'airflow échoue avec sqlalchemy.exc.ArgumentError: impossible d'analyser l'URL rfc1738 de la chaîne ''
- Comment ajouter une règle de table d'adresse IP pour utiliser le port SQL Server 1433
- Le certificat Automation Suite n'est pas approuvé depuis le serveur sur lequel CData Sync est en cours d'exécution
- Exécution de l'outil de diagnostic
- Using the Automation Suite support bundle
- Explorer les journaux
Nettoyer la base de données Orchestrator
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.
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
.
CreateOrchestratorCleanupObjects.sql
pour 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.
dbo.RunOrchestratorCleanup
avec le fichier de configuration XML de planification pour effectuer le nettoyage. Pour plus de détails sur le fichier XML, consultez la section Planification du nettoyage ci-dessous.
Vous pouvez également utiliser SQL Server Agent pour effectuer le nettoyage.
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';
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'automatisation Azure.
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.
-
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.
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.
.\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>'
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="LedgerDeliveries" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="LastUpdatedTime" 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="LedgerDeliveries" runMaxMinutes="-1" idColumn="Id" dateTimeColumn="LastUpdatedTime" 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.
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. Important :
Le délai défini ici peut parfois être dépassé de quelques minutes. De plus, le paramètre
totalRunMaxMinutes a priorité et sera toujours appliqué, même si vous le définissez sur -1 .
|
-1 : le script sera exécuté pendant un nombre illimité de minutes.
0 : le script ne s'exécutera pas pour cette table en particulier.
>0 (autrement dit, un nombre choisi par vous) : le nombre maximum de minutes pendant lesquelles le script s'exécutera.
|
|
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. Ce paramètre est utilisé en combinaison avec
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. Ce paramètre est utilisé en combinaison avec
dateTimeColumn .
|
Ce paramètre doit être défini sur
2 au minimum.
Exemple : si vous définissez ce paramètre sur
5 , toutes les données datant de 5 jours seront conservées.
|
|
Le nombre de lignes de la table à supprimer dans une itération. Important :
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. Important :
L'exemple utilise déjà
forceCascade pour les tables qui le requièrent. Vous n'avez donc pas besoin de le modifier.
|
0 : pas de cascade.
1 : cascade. Par exemple, la définition de cette option pour la table QueueItems la table traitera les tables QueueItemEvents et QueueItemComments .
|
shouldArchive |
Permet de choisir si vous souhaitez archiver les données. |
0 : ne pas archiver.
1 : archiver.
|
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
dbo.__CleanupLogs pour stocker les journaux d'exécution.
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. La taille du lot, c'est-à-dire le nombre de lignes de la table à traiter, est définie dans le fichier XML, via le paramètre
batchSize .
|
SqlBulkCopy est utilisé pour copier les données. Aucune transaction unique n'est effectuée pour l'archivage et la suppression. |