- Überblick
- Anforderungen
- Installation
- Voraussetzungsprüfungen
- Herunterladen der Installationspakete
- uipathctl-Cluster
- uipathctl-Clusterwartung
- uipathctl cluster maintenance disable
- uipathctl cluster maintenance enable
- uipathctl cluster maintenance is-enabled
- uipathctl-Cluster-Upgrade
- uipathctl config
- uipathctl config-Warnungen
- uipathctl config Alerts add-email
- uipathctl config alerts remove-email
- uipathctl config alerts update-email
- uipathctl config additional-ca-certificates get
- uipathctl config tls-certificates get
- uipathctl config Orchestrator
- uipathctl config Orchestrator get-config
- uipathctl config orchestrator update-config
- uipathctl config additional-ca-certificates update
- uipathctl config tls-certificates update
- UiPathctl-Zustand
- Uipathctl-Gesundheitspaket
- Uipathctl-Zustandsprüfung
- uipathctl health diagnose
- uipathctl health test
- uipathctl Identity
- uipathctl identity add-host-admin
- uipathctl Identity Enable-Basisauthentifizierung
- uipathctl identity get-saml-certificate
- uipathctl identity get-token-signing-certificate
- uipathctl identity rotate-saml-certificates
- uipathctl identity rotate-token-signing-certificates
- uipathctl identity update-saml-certificate
- uipathctl identity update-token-signing-certificate
- uipathctl-Manifest
- uipathctl manifest apply
- uipathctl manifest diff
- uipathctl manifest get
- uipathctl Manifest list-applications
- uipathctl manifest render
- uipathctl-Voraussetzung
- uipathctl prereq create
- uipathctl prereq run
- „uipathctl“-Ressource
- uipathctl-Ressourcenbericht
- uipathctl-Snapshot
- uipathctl-Snapshot-Sicherung
- uipathctl snapshot backup create
- uipathctl snapshot backup disable
- uipathctl snapshot backup enable
- uipathctl snapshot delete
- uipathctl snapshot list
- uipathctl snapshot restore
- uipathctl snapshot restore create
- uipathctl snapshot restore delete
- uipathctl snapshot restore history
- uipathctl snapshot restore logs
- uipathctl SSO
- uipathctl ssoGenerate-Connector
- uipathctl sso generate-overlays
- uipathctl sso generate-rbac
- uipathctl-Version
- Nach der Installation
- Migration und Upgrade
- Aktualisieren der Automation Suite auf EKS/AKS
- Migrationsoptionen
- 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 von eigenständigen Insights
- Schritt 7: Löschen des Standardmandanten
- B) Migration von einzelnen Mandanten
- Überwachung und Warnungen
- Clusterverwaltung
- Produktspezifische Konfiguration
- Bereinigen der Orchestrator-Datenbank
- Fehlersuche und ‑behebung
Bereinigen der Orchestrator-Datenbank
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.
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
.
CreateOrchestratorCleanupObjects.sql
aus, 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.
dbo.RunOrchestratorCleanup
mit der Planungs-XML-Konfigurationsdatei aus, um die Bereinigung durchzuführen. Weitere Informationen zur XML-Datei finden Sie unten im Abschnitt Planen der Bereinigung.
Sie können auch SQL Server Agent verwenden, um die Bereinigung durchzuführen.
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';
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.
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.
-
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.
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.
.\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>'
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.
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. Wichtig:
Die hier festgelegte Zeit kann manchmal um ein paar Minuten überschritten werden. Zudem hat
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 (also 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. Wird in Kombination mit
daysOld verwendet.
|
Beispiel:
CreationTime für QueueItems |
|
Eine gültige SQL-Anweisung für einen Filter. Kann leer gelassen werden. |
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. Dies wird in Kombination mit
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. Wichtig:
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. Wichtig:
Das Beispiel verwendet bereits
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.
|
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. Die Batchgröße, also die Anzahl der zu verarbeitenden Tabellenzeilen, wird in der XML-Datei über den Parameter
batchSize definiert.
|
SqlBulkCopy wird zum Kopieren der Daten verwendet. Es wird keine einzelne Transaktion zum Archivieren und Löschen durchgeführt. |