- Überblick
- Anforderungen
- Bereitstellungsvorlagen
- Anleitung: Vorbereiten der Installation
- Anleitung: Vorbereiten der Installation
- Schritt 2: Konfigurieren der OCI-konformen Registrierung für Offline-Installationen
- Schritt 3: Konfigurieren des externen Objektspeichers
- Schritt 4: Konfigurieren des High Availability Add-on
- Schritt 5: Konfigurieren von SQL-Datenbanken
- Schritt 6: Konfigurieren des Lastausgleichs
- Schritt 7: Konfigurieren des DNS
- Schritt 8: Konfigurieren der Datenträger
- Schritt 9: Konfigurieren der Einstellungen auf Kernel- und Betriebssystemebene
- Schritt 10: Konfigurieren der Knotenports
- Schritt 11: Anwenden verschiedener Einstellungen
- Schritt 12: Validieren und Installieren der erforderlichen RPM-Pakete
- Schritt 13: Generieren von cluster_config.json
- Zertifikatkonfiguration
- Datenbankkonfiguration
- Konfiguration des externen Objektspeichers
- Vorsignierte URL-Konfiguration
- Konfiguration der Kerberos-Authentifizierung
- Externe OCI-konforme Registrierungskonfiguration
- Disaster Recovery: Aktiv/Passiv- und Aktiv/Aktiv-Konfigurationen
- Konfiguration des High Availability Add-ons
- Spezifische Orchestrator-Konfiguration
- Insights-spezifische Konfiguration
- Process Mining-spezifische Konfiguration
- Spezifische Konfiguration für Document Understanding
- Spezifische Konfiguration für Automation Suite Robots
- Konfiguration der Überwachung
- Optional: Konfigurieren des Proxyservers
- Optional: Aktivieren der Widerstandsfähigkeit gegen zonale Ausfälle in einem HA-fähigen Produktionscluster mit mehreren Knoten
- Optional: Übergeben einer benutzerdefinierten resolv.conf-Datei
- Optional: Erhöhen der Fehlertoleranz
- install-uipath.sh-Parameter
- Hinzufügen eines dedizierten Agent-Knotens mit GPU-Unterstützung
- Hinzufügen eines dedizierten Agent-Knotens für Task Mining
- Verbinden einer Task Mining-Anwendung
- Hinzufügen eines dedizierten Agentenknotens für Automation Suite-Roboter
- Schritt 15: Konfigurieren der temporären Docker-Registrierung für Offline-Installationen
- Schritt 16: Validieren der Voraussetzungen für die Installation
- Manuell: Durchführen der Installation
- Nach der Installation
- Clusterverwaltung
- Verwalten von Produkten
- Erste Schritte mit dem Clusterverwaltungsportal
- Migrieren vom clusterinternen zum externen High Availability Add-on
- Migrieren von der clusterinternen Registrierung zu einer externen OCI-konformen Registrierung
- Manueller Wechsel zum sekundären Cluster in einem Aktiv-/Passiv-Setup
- Disaster Recovery: Durchführen von Vorgängen nach der Installation
- Umwandlung einer bestehenden Installation in eine Multi-Site-Einrichtung
- Richtlinien zum Upgrade einer Aktiv/Passiv- oder Aktiv/Aktiv-Bereitstellung
- Leitlinien zum Sichern und Wiederherstellen einer Aktiv-/Passiv- oder Aktiv/Aktiv-Bereitstellung
- Umleitung des Datenverkehrs für die nicht unterstützten Dienste auf den primären Cluster
- Skalieren einer Bereitstellung mit einem einzelnen Knoten (Auswertung) zu einer Bereitstellung mit mehreren Knoten (HA).
- Überwachung und Warnungen
- Migration und Upgrade
- Schritt 1: Verschieben der Identitätsorganisationsdaten von einer eigenständigen in die Automation Suite
- Schritt 2: Wiederherstellen der eigenständigen Produktdatenbank
- Schritt 3: Sichern der Plattformdatenbank in der Automation Suite
- Schritt 4: Zusammenführen von Organisationen in der Automation Suite
- Schritt 5: Aktualisieren der migrierten Produktverbindungszeichenfolgen
- Schritt 6: Migrieren des eigenständigen Orchestrators
- Schritt 7: Migrieren von eigenständigen Insights
- Schritt 8: Migrieren des eigenständigen Test Managers
- Schritt 9: Löschen des Standardmandanten
- Durchführen der Migration eines einzelnen Mandanten
- Migrieren von der Automation Suite unter Linux zur Automation Suite unter EKS/AKS
- Aktualisieren der Automation Suite
- Herunterladen der Installationspakete und Übertragen aller Dateien auf den ersten Serverknoten
- Abrufen der zuletzt angewendeten Konfiguration aus dem Cluster
- Aktualisieren der Clusterkonfiguration
- Konfigurieren der OCI-konformen Registrierung für Offline-Installationen
- Ausführen des Upgrades
- Durchführen von Vorgängen nach dem Upgrade
- Produktspezifische Konfiguration
- Verwenden des Orchestrator-Konfiguratortools
- Konfigurieren von Orchestrator-Parametern
- Orchestrator-appSettings
- Konfigurieren von AppSettings
- Konfigurieren der maximalen Anforderungsgröße
- Überschreiben der Speicherkonfiguration auf Clusterebene
- Konfigurieren von Anmeldeinformationsspeichern
- Konfigurieren der Verwendung von einem Verschlüsselungsschlüssel pro Mandant
- Bereinigen der Orchestrator-Datenbank
- Best Practices und Wartung
- Fehlersuche und ‑behebung
- Fehlerbehebung bei Diensten während der Installation
- Deinstallieren des Clusters
- Löschen von Offline-Artefakten für mehr Speicherplatz
- So löschen Sie Redis-Daten
- So können Sie die Istio-Protokollierung aktivieren
- Verschieben von Ceph aus dem schreibgeschützten Modus
- So löschen Sie alte Protokolle, die im sf-logs-Bucket gespeichert sind
- So deaktivieren Sie Streaming-Protokolle für das AI Center
- Fehlerbehebung bei fehlgeschlagenen Automation Suite-Installationen
- So löschen Sie Bilder aus dem alten Installationsprogramm nach dem Upgrade
- Deaktivieren von TX-Prüfsummen-Offloading
- Upgrade von Automation Suite 2022.10.10 und 2022.4.11 auf 2023.10.2
- So legen Sie die ArgoCD-Protokollebene manuell auf Info fest
- So erweitern Sie den AI Center-Speicher
- So wird der codierte pull_secret_value für externe Registrierungen generiert
- Umgang mit schwachen Verschlüsselungen in TLS 1.2
- So arbeiten Sie mit Zertifikaten
- Weiterleiten von Anwendungsprotokollen an Splunk
- So löschen Sie ungenutzte Docker-Images aus Registrierungs-Pods
- Sammeln von DU-Nutzungsdaten mit dem clusterinternen Objektspeicher (Ceph)
- So installieren Sie RKE2 SELinux in Air-Gap-Umgebungen
- So löschen Sie alte differenzielle Sicherungen auf einem NFS-Server
- Es kann keine Offlineinstallation auf RHEL 8.4 OS ausgeführt werden.
- Fehler beim Herunterladen des Pakets
- Die Offlineinstallation schlägt aufgrund fehlender binärer Dateien fehl
- Voraussetzungsprüfung für das Selinux-iscsid-Modul schlägt fehl
- Azure-Datenträger nicht als SSD markiert
- Fehler nach der Zertifikatsaktualisierung
- Virenschutz verursacht Probleme bei der Installation
- Automation Suite funktioniert nach Betriebssystem-Upgrade nicht
- Bei der Automation Suite muss „backlog_wait_time“ auf 0 gesetzt werden.
- Volume nicht bereitstellbar, da es nicht für Workloads bereit ist
- Fehler bei der Protokollsammlung des Supportpakets
- SQL-Verbindungszeichenfolge der Testautomatisierung wird ignoriert
- DNS-Einstellungen werden von CoreDNS nicht berücksichtigt
- Datenverlust bei der Neuinstallation oder Aktualisierung von Insights nach dem Automation Suite-Upgrade
- Das Upgrade eines einzelnen Knotens schlägt in der Fabric-Phase fehl
- Upgrade schlägt aufgrund eines fehlerhaften Ceph . fehl
- Datenträger kann nicht verbunden werden und verbleibt im Status der „Attach/Detach“-Schleife
- Upgrade schlägt aufgrund von klassischen Objekten in der Orchestrator-Datenbank fehl
- Ceph-Cluster in beeinträchtigtem Status nach parallelem Upgrade
- Fehlerhafte Insights-Komponente verursacht Fehlschlag der Migration
- Dienst-Upgrade schlägt für Apps fehl
- Timeouts beim direkten Upgrade
- Docker-Registrierungsmigration bleibt in PVC-Löschphase hängen
- AI Center-Bereitstellungsfehler nach Upgrade auf 2023.10 oder höher
- Upgrade schlägt in Offline-Umgebungen fehl
- SQL-Validierung schlägt während des Upgrades fehl
- Snapshot-controller-crds Pod im Status CrashLoopBackOff nach dem Upgrade
- Fehler beim Upgrade/Neuinstallationsfehler des Longhorn REST API-Endpunkts
- Upgrade schlägt aufgrund überschriebener Insights-PVC-Größen fehl
- Das Dienst-Upgrade schlägt während der Skriptausführung vor dem Dienst fehl
- Fehler beim Hoch- oder Herunterladen von Daten im Objektspeicher
- Die Größenänderung eines PVC bewirkt keine Korrektur von Ceph
- Fehler beim Ändern der Größe von objectstore PVC
- Fehler beim Anhängen eines StatefulSet-Volumes
- Rook Ceph oder Looker-Pod hängen im Init-Status fest
- Fehler beim Komprimieren von Metriken aufgrund beschädigter Blöcke in Thenos
- Festlegen eines Timeout-Intervalls für die Verwaltungsportale
- Die Authentifizierung funktioniert nach der Migration nicht
- kinit: KDC kann für Realm <AD Domain> beim Abrufen der ersten Anmeldeinformationen nicht gefunden werden
- Kinit: Keytab enthält keine geeigneten Schlüssel für *** beim Abrufen der ersten Anmeldeinformationen
- GSSAPI-Vorgang aufgrund eines ungültigen Statuscodes fehlgeschlagen
- Alarm für fehlgeschlagenen Kerberos-tgt-update-Auftrag erhalten
- SSPI-Anbieter: Server in Kerberos-Datenbank nicht gefunden
- Anmeldung eines AD-Benutzers aufgrund eines deaktivierten Kontos fehlgeschlagen
- ArgoCD-Anmeldung fehlgeschlagen
- Fehler beim Abrufen des Sandbox-Abbilds
- Pods werden nicht in der ArgoCD-Benutzeroberfläche angezeigt
- Redis-Testfehler
- RKE2-Server kann nicht gestartet werden
- ArgoCD wechselt nach der ersten Installation in den Status „In Bearbeitung“.
- Manuelle Schadensbegrenzung bei ArgoCD NetworkPolicy (GHSA-47m3-95c7-g2g8)
- Fehlerhafte Dienste nach Clusterwiederherstellung oder Rollback
- Fehlende Ceph-rook-Metriken in Überwachungs-Dashboards
- Pods können nicht mit FQDN in einer Proxy-Umgebung kommunizieren
- Fehler beim Konfigurieren von E-Mail-Warnungen nach dem Upgrade
- Kein normales Upstream-Problem
- Fehler beim Hinzufügen von Agent-Knoten in Offline-Umgebungen
- Beim Zugriff auf den FQDN wird RBAC zurückgegeben: Zugriff verweigert
- Document Understanding erscheint nicht auf der linken Leiste der Automation Suite
- Fehlerstatus beim Erstellen einer Datenbeschriftungssitzung
- Fehlerstatus beim Versuch, eine ML-Fähigkeit bereitzustellen
- Migrationsauftrag schlägt in ArgoCD fehl
- Die Handschrifterkennung mit dem Intelligent Form Extractor funktioniert nicht oder arbeitet zu langsam
- Fehler bei der Bereitstellung von ML-Fähigkeiten aufgrund des Ablaufs des Tokens
- Ausführen von Hochverfügbarkeit mit Process Mining
- Die Process Mining-Datenaufnahme ist bei der Anmeldung über Kerberos fehlgeschlagen
- Nach Disaster Recovery funktioniert Dapr für Process Mining nicht mehr ordnungsgemäß
- Konfigurieren von Dapr mit Redis im Clustermodus
- Verbindung mit der Datenbank „AutomationSuite_ProcessMining_Lager“ über eine Verbindungszeichenfolge im pyodbc-Format nicht möglich
- Die Airflow-Installation schlägt mit „sqlaldemy.exc.ArgumentError“ fehl: URL konnte nicht analysiert werden rfc1738 aus Zeichenfolge „
- So fügen Sie eine IP-Tabellenregel hinzu, um den SQL Server-Port 1433 zu verwenden
- Dem Automation Suite-Zertifikat des Servers, auf dem CData Sync ausgeführt wird, wird nicht vertraut
- Ausführen des Diagnosetools
- Verwenden des Automation Suite-Supportpakets
- Erkunden von Protokollen
Bereinigen der Orchestrator-Datenbank
Übersicht über die Wartungsskripts der Orchestrator-Datenbank, die für die Automation Suite verfügbar sind, mit Bereinigungsaufgaben und Konfigurationsoptionen.
Die folgenden Skripts ersetzen alle vorherigen Skripts zur Datenbankbereinigung. Sie decken alle erforderlichen Wartungsaufgaben ab und können nach Bedarf konfiguriert werden.
Sie können die Wartungsskripts der Orchestrator-Datenbank aus dem Customer Portal herunterladen.
SQL-Skript
Voraussetzungen
Sie benötigen Folgendes, um das Skript CreateOrchestratorCleanupObjects.sql ausführen zu können:
- Sie müssen Zugriff auf die Archivdatenbank im Kontext Ihrer Orchestrator-Datenbank haben.
- Sie müssen mit 3-teiligen Namen auf das Archiv zugreifen können, zum Beispiel
Archive.dbo.QueueItemsTableArchive.
Verwendungsweise
- Führen Sie das SQL-Skript
CreateOrchestratorCleanupObjects.sqlaus, um die folgenden Objekte zu erstellen:- Die Tabelle
dbo.__CleanupLog, welche die Ausführungsprotokolle enthält. - Das Verfahren
dbo.GetOrCreateArchiveTable, das die Archivtabelle erstellt oder zurückgibt. - Das Verfahren
dbo.RunOrchestratorCleanup, welches das Löschen und optional auch das Archivieren alter Daten durchführt.
- Die Tabelle
- Führen Sie
dbo.RunOrchestratorCleanupmit der Planungs-XML-Konfigurationsdatei aus, um die Bereinigung durchzuführen. Weitere Informationen zur XML-Datei finden Sie im Abschnitt Planen der Bereinigung .
Sie können auch SQL Server Agent verwenden, um die Bereinigung durchzuführen.
Skriptbeispiel
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';
PowerShell-Skript
Das ist für Fälle geeignet, in denen Sie das SQL-Skript nicht verwenden können.
Das PowerShell-Skript ist mit PowerShell 5.1 kompatibel und kann mit Azure Automation-Runbooks verwendet werden.
Voraussetzungen
Das Skript RunOrchestratorCleanup.ps1 muss mit diesen beiden Verbindungszeichenfolgen kommunizieren können:
SourceConnectionString– Das ist die Orchestrator-Datenbank-Verbindungszeichenfolge.DestinationConnectionString– Das ist die Archivdatenbank-Verbindungszeichenfolge. Beachten Sie, dass die Archivdatenbank im Voraus erstellt und eingerichtet werden muss.
Erstellte Objekte
- Die Tabelle
dbo.__CleanupLog, welche die Ausführungsprotokolle enthält. - Die Tabelle
dbo.__CleanupIds, in der ein temporärer Batch von IDs gespeichert wird, die bereinigt werden müssen.
Einschränkungen
Das Skript öffnet zwei Verbindungen: eine zur Orchestrator-Datenbank (über SourceConnectionString) und eine zur Archivdatenbank (über DestinationConnectionString). Es erfolgt keine tatsächliche Transaktion, da die Daten vom Orchestrator in das Archiv kopiert und anschließend aus dem Orchestrator gelöscht werden. Wenn also eine Ausnahme irgendwo zwischen den beiden Aktionen ausgelöst wird, wodurch das Skript erneut ausgeführt wird, könnten dieselben Daten erneut kopiert werden, wodurch Duplikate in der Archivdatenbank entstehen. Da die Eindeutigkeit in der Archivdatenbank jedoch nicht erzwungen wird, führt dies zu keinen Problemen.
Skriptbeispiel
.\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>'
Planen der Bereinigung
Sie können unter anderem auswählen, welche Daten wann in Ihrer Datenbank bereinigt werden sollen und wie lange die Bereinigungsaktivität jeweils ausgeführt werden soll. Verwenden Sie dazu die folgende XML-Datei entweder mit dem SQL- oder dem PowerShell-Skript. Sie ist mit unseren empfohlenen Parametern vorkonfiguriert, aber Sie können sie bei Bedarf bearbeiten, um erweiterte Funktionen zu erhalten. Vergewissern Sie sich, dass Sie die Funktionen der einzelnen Parameter verstehen, bevor Sie das Skript bearbeiten, da dies schwerwiegende Folgen haben kann.
<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>
Auch wenn es mit einer Ausführung nur teilweise gelingt, eine oder mehrere Tabellen zu bereinigen, werden nachfolgende Ausführungen die Bereinigung fortsetzen, bis das Skript den gesamten Rückstand aufholt. Daher ist es wichtig, dass sich kein größerer Rückstand ansammelt, als das Skript verarbeiten kann. In diesem Fall sollten Sie eine häufigere Ausführung des Skripts planen.
XML-Parameter der Bereinigung
| Parameter | Erklärung | Mögliche Werte |
|---|---|---|
|
| Die maximale Anzahl von Minuten einer Ausführung, während der das Skript für alle Tabellen ausgeführt werden darf. | Muss größer als 1 sein. |
|
| Der Name der Tabelle mit den Daten, die Sie löschen möchten. | Beispiel: QueueItems |
|
| Die maximale Anzahl von Minuten einer Ausführung, während der das Skript für eine bestimmte Tabelle ausgeführt werden darf. Die hier festgelegte Zeit kann manchmal um ein paar Minuten überschritten werden. totalRunMaxMinutes Vorrang und wird immer erzwungen, selbst wenn Sie diesen Parameter auf -1 festlegen. | -1 : Das Skript wird für eine unbegrenzte Anzahl von Minuten ausgeführt. 0 : Das Skript wird für diese spezifische Tabelle nicht ausgeführt. >0 (d. h. eine von Ihnen gewählte Zahl): Die maximale Anzahl von Minuten, für die das Skript ausgeführt wird. |
|
| Die ID der Spalte, welche die Daten enthält, die Sie löschen möchten. | Beispiel: Id aus der Tabelle QueueItems |
|
| Hängt vom Datentyp ab. daysOld verwendet. | Beispiel: CreationTime für QueueItems |
|
| Eine gültige SQL-Anweisung für einen Filter. Kann leer gelassen werden. | Zum Beispiel: Status IN (2, 3, 4, 5, 6). Ist in unserer empfohlenen XML-Datei enthalten. |
daysOld | Ermöglicht es Ihnen, Daten für eine bestimmte Anzahl von Tagen aufzubewahren. dateTimeColumn verwendet. | Muss mindestens auf 2 festgelegt werden. Beispiel: Wenn Sie diesen Parameter auf 5 festlegen, werden alle Daten aufbewahrt, die 5 Tage alt sind. |
|
| Die Anzahl der Tabellenzeilen, die in einer Iteration gelöscht werden sollen. Wird nicht für Tabellen verwendet, für die Fremdschlüssel definiert sind. | Beispiel: Wenn Sie diesen Parameter für die Tabelle QueueItems auf 50 festlegen, werden 50 Elemente aus dieser spezifischen Tabelle gelöscht. |
forceCascade | Ermöglicht die Ausführung des Skripts für Tabellen, in denen Fremdschlüssel definiert sind. forceCascade für die Tabellen, in denen es erforderlich ist. Deshalb müssen Sie dies nicht ändern. | 0 : Nicht kaskadieren. 1: Kaskadieren. Wenn Sie diese Option beispielsweise für die Tabelle QueueItems festlegen, werden die Tabellen QueueItemEvents sowie QueueItemComments verarbeitet. |
shouldArchive | Ermöglicht Ihnen die Auswahl, ob Sie die Daten archivieren möchten. | 0 : Nicht archivieren. 1: Archivieren. |
SQL- und PowerShell-Skripte im Vergleich
| Funktionen | SQL-Skript | PowerShell-Skript |
|---|---|---|
| Bereinigungs-XML | Beide verwenden die Logik, die im Abschnitt Planen der Bereinigung beschrieben ist. | |
| Ausführungsprotokoll | Beide erstellen die Tabelle dbo.__CleanupLogs , um die Protokolle der Ausführung zu speichern. Sie können die Protokolle einer Ausführung abfragen mit SELECT * FROM dbo.__CleanupLog WHERE ExecutionId = '<execution_id>' ORDER BY Id . Ob eine Ausführung Fehler enthielt, können Sie überprüfen mit SELECT * FROM dbo.__CleanupLog WHERE ExecutionId = '<execution_id>' AND IsError = 1 . Der Parameter ExecutionId wird bei jeder Ausführung eines dieser Skripte generiert. | |
| Archivtabelle | Die Archivtabelle enthält keine Indizes, Fremdschlüssel oder Identitätsspalten. Spalten vom Typ Zeitstempel werden nicht archiviert. | |
| Archivtabellenname | Die Namen folgen der gleichen Logik und enthalten eine Zeichenfolge, die auf dem Tabellenschema basiert. | |
| Batch von IDs zum Archivieren/Löschen | Wird in einer temporären Tabelle gespeichert. | Wird in der Tabelle dbo.__CleanupIds gespeichert. |
| Transaction | Für jeden Batch wird eine einzelne Transaktion durchgeführt, bei der die Daten archiviert sowie gelöscht werden. batchSize definiert. | SqlMassCopy wird verwendet, um die Daten zu kopieren. Es wird keine einzelne Transaktion zum Archivieren und Löschen durchgeführt. |