- Overview
- Requirements
- Pre-installation
- Preparing the installation
- Installing and configuring the service mesh
- Downloading the installation packages
- Configuring the OCI-compliant registry
- Granting installation permissions
- Installing and configuring the GitOps tool
- Deploying Redis through OperatorHub
- Applying miscellaneous configurations
- Running uipathctl
- Installation
- Post-installation
- Migration and upgrade
- Upgrading Automation Suite
- Migrating standalone products to Automation Suite
- Step 1: Restoring the standalone product database
- Step 2: Updating the schema of the restored product database
- Step 3: Moving the Identity organization data from standalone to Automation Suite
- Step 4: Backing up the platform database in Automation Suite
- Step 5: Merging organizations in Automation Suite
- Step 6: Updating the migrated product connection strings
- Step 7: Migrating standalone Orchestrator
- Step 8: Migrating standalone Insights
- Step 9: Migrating standalone Test Manager
- Step 10: Deleting the default tenant
- Performing a single tenant migration
- Migrating between Automation Suite clusters
- Monitoring and alerting
- Cluster administration
- Performing database maintenance
- Setting up Kerberos authentication
- Configuring the FQDN post-installation
- Product-specific configuration
- Orchestrator advanced configuration
- Configuring Orchestrator parameters
- Configuring appSettings
- Configuring the maximum request size
- Overriding cluster-level storage configuration
- Configuring NLog
- Saving robot logs to Elasticsearch
- Configuring credential stores
- Configuring encryption key per tenant
- Cleaning up the Orchestrator database
- Skipping host library creation
- Troubleshooting

Automation Suite on OpenShift installation guide
Performing database maintenance
It is important to keep your databases free from clutter. To do this, we recommend performing the following operations:
Using SQL Server Maintenance Solution
SQL Server Maintenance Solution is a set of scripts that enable you to run backups, integrity checks, and index and statistics maintenance on all editions of Microsoft SQL Server, starting with the 2005 version. For details, see this GitHub project.
Backing up the database
We recommend implementing regular backups of the SQL Server database, such as full weekly or daily incremental backups.
Additionally, we recommend using the DatabaseBackup stored procedure that is created using the script at this location.
Deleting old data periodically
Shared Suite Capabilities
Create a separate database in which to save items before you delete them. This database acts as an archive for the items you may need to store for certain reasons, such as audits.
-
Create a new database called, for example,
UiPathArchives:create database UiPathArchivescreate database UiPathArchives -
Create the following backup tables:
ArchiveAuditEventwith the same structure as theAuditEventtable:SELECT * INTO [UiPathArchives].[dbo].[ArchiveAuditEvent] from [AutomationSuite_Platform].[adt].[AuditEvent] where 1 = 2SELECT * INTO [UiPathArchives].[dbo].[ArchiveAuditEvent] from [AutomationSuite_Platform].[adt].[AuditEvent] where 1 = 2
-
Archive the data:
-
Archive audit records
DECLARE @NumberOfDaysToKeep INT DECLARE @CurrentDate DATETIME -- Specify the number of days SET @NumberOfDaysToKeep = 60 -- Archive the list of audit event records that you want to delete SET @CurrentDate = GetDate() BEGIN TRANSACTION INSERT INTO [UiPathArchives].[dbo].[ArchiveAuditEvent] SELECT [Id],[CreatedOn],[Version],[OrganizationId],[Source],[Category],[Action],[IsUserEvent], [UserId],[FullName],[Email],[DetailsVersion],[Details],[OperationId] FROM [adt].[AuditEvent] WHERE DateDiff(day, CreatedOn, @CurrentDate) > @NumberOfDaysToKeep -- Delete the audit events DELETE FROM [adt].[AuditEvent] WHERE EXISTS (SELECT 1 FROM [UiPathArchives].[dbo].[ArchiveAuditEvent] WHERE Id = [adt].[AuditEvent].[Id]) COMMIT TRANSACTIONDECLARE @NumberOfDaysToKeep INT DECLARE @CurrentDate DATETIME -- Specify the number of days SET @NumberOfDaysToKeep = 60 -- Archive the list of audit event records that you want to delete SET @CurrentDate = GetDate() BEGIN TRANSACTION INSERT INTO [UiPathArchives].[dbo].[ArchiveAuditEvent] SELECT [Id],[CreatedOn],[Version],[OrganizationId],[Source],[Category],[Action],[IsUserEvent], [UserId],[FullName],[Email],[DetailsVersion],[Details],[OperationId] FROM [adt].[AuditEvent] WHERE DateDiff(day, CreatedOn, @CurrentDate) > @NumberOfDaysToKeep -- Delete the audit events DELETE FROM [adt].[AuditEvent] WHERE EXISTS (SELECT 1 FROM [UiPathArchives].[dbo].[ArchiveAuditEvent] WHERE Id = [adt].[AuditEvent].[Id]) COMMIT TRANSACTIONOld data is copied to these archives prior to being deleted when using the following query.
-
-
Delete data from the table.
Important:Before running the following script, make sure to adapt them to your environment.
- Audit events
declare @NumberOfDaysToKeep int declare @CurrentDate datetime -- Specify the number of days SET @NumberOfDaysToKeep = 60 -- Create temporary table with the list of audit event records that you want to delete SET @CurrentDate = GetDate() SELECT [Id],[CreatedOn],[Version],[OrganizationId],[Source],[Category],[Action],[IsUserEvent], [UserId],[FullName],[Email],[DetailsVersion],[Details],[OperationId] INTO #TempAuditRecordsToDelete FROM [adt].[AuditEvent] WHERE DateDiff(day, CreatedOn, @CurrentDate) > @NumberOfDaysToKeep -- Review the audit event records to be deleted SELECT * FROM #TempAuditRecordsToDelete -- Delete the audit events BEGIN TRANSACTION DELETE FROM [adt].[AuditEvent] WHERE EXISTS (SELECT 1 FROM #TempAuditRecordsToDelete WHERE Id = [adt].[AuditEvent].[Id]) DROP TABLE #TempAuditRecordsToDelete COMMIT TRANSACTIONdeclare @NumberOfDaysToKeep int declare @CurrentDate datetime -- Specify the number of days SET @NumberOfDaysToKeep = 60 -- Create temporary table with the list of audit event records that you want to delete SET @CurrentDate = GetDate() SELECT [Id],[CreatedOn],[Version],[OrganizationId],[Source],[Category],[Action],[IsUserEvent], [UserId],[FullName],[Email],[DetailsVersion],[Details],[OperationId] INTO #TempAuditRecordsToDelete FROM [adt].[AuditEvent] WHERE DateDiff(day, CreatedOn, @CurrentDate) > @NumberOfDaysToKeep -- Review the audit event records to be deleted SELECT * FROM #TempAuditRecordsToDelete -- Delete the audit events BEGIN TRANSACTION DELETE FROM [adt].[AuditEvent] WHERE EXISTS (SELECT 1 FROM #TempAuditRecordsToDelete WHERE Id = [adt].[AuditEvent].[Id]) DROP TABLE #TempAuditRecordsToDelete COMMIT TRANSACTION
- Audit events
Identity Server
Create a separate database in which to save items before you delete them. This database acts as an archive for the items you may need to store for certain reasons, such as audits.
The database maintenance script provided in this section is supported only when using SQL Server on-premises. It does not work with Azure SQL. If your Automation Suite deployment uses Azure SQL, do not run this script.
-
Create a new database called, for example,
UiPathIdentityArchives:create database UiPathIdentityArchivescreate database UiPathIdentityArchives -
Create the following backup tables:
-
ArchiveLoginAttemptswith the same structure as theUserLoginAttemptstable:select * into [UiPathIdentityArchives].[dbo].[ArchiveUserLoginAttempts] from [AutomationSuite_Platform].[identity].[UserLoginAttempts] where 1=2select * into [UiPathIdentityArchives].[dbo].[ArchiveUserLoginAttempts] from [AutomationSuite_Platform].[identity].[UserLoginAttempts] where 1=2Old data is copied to these archives prior to being deleted when using the following query.
-
-
Delete data from the table.
Important:Before running the following script, make sure to adapt them to your environment.
-
User login attempts
To delete login attempts older than 60 days, for example, use the following query. It can be executed manually or scheduled in an SQL Server Job.
declare @NumberOfDaysToKeep int set @NumberOfDaysToKeep = 60 if OBJECT_ID('[UiPathIdentityArchives].[dbo].[UserLoginAttemps]') = NULL begin select * into [UiPathIdentityArchives].[dbo].[UserLoginAttemps] from [identity].UserLoginAttempts where 1=2 end begin transaction set identity_insert [UiPathIdentityArchives].[dbo].[UserLoginAttemps] on insert into [UiPathIdentityArchives].[dbo].[UserLoginAttemps] ([Id],[PartitionId],[UserId],[UserNameOrEmailAddress],[ClientIpAddress],[ClientName],[BrowserInfo],[Result],[CreationTime],[AuthenticationProvider],[PartitionName]) select [Id],[PartitionId],[UserId],[UserNameOrEmailAddress],[ClientIpAddress],[ClientName],[BrowserInfo],[Result],[CreationTime],[AuthenticationProvider],[PartitionName] from [identity].UserLoginAttempts where DateDiff(day, CreationTime, GetDate()) > @NumberOfDaysToKeep delete from [identity].UserLoginAttempts where DateDiff(day, CreationTime, GetDate()) > @NumberOfDaysToKeep commit transactiondeclare @NumberOfDaysToKeep int set @NumberOfDaysToKeep = 60 if OBJECT_ID('[UiPathIdentityArchives].[dbo].[UserLoginAttemps]') = NULL begin select * into [UiPathIdentityArchives].[dbo].[UserLoginAttemps] from [identity].UserLoginAttempts where 1=2 end begin transaction set identity_insert [UiPathIdentityArchives].[dbo].[UserLoginAttemps] on insert into [UiPathIdentityArchives].[dbo].[UserLoginAttemps] ([Id],[PartitionId],[UserId],[UserNameOrEmailAddress],[ClientIpAddress],[ClientName],[BrowserInfo],[Result],[CreationTime],[AuthenticationProvider],[PartitionName]) select [Id],[PartitionId],[UserId],[UserNameOrEmailAddress],[ClientIpAddress],[ClientName],[BrowserInfo],[Result],[CreationTime],[AuthenticationProvider],[PartitionName] from [identity].UserLoginAttempts where DateDiff(day, CreationTime, GetDate()) > @NumberOfDaysToKeep delete from [identity].UserLoginAttempts where DateDiff(day, CreationTime, GetDate()) > @NumberOfDaysToKeep commit transaction
-
Orchestrator
For details on how to periodically delete old data from the Orchestrator database, see Cleaning up the Orchestrator database.
Automation Hub
Automation Hub relies on its historical data for runtime views and dashboards, and due to its nature, it does not have the concept of cleaning up old data. Similar to other services, it is recommended to regularly back up the Automation Hub database through methods such as full weekly backups or daily incremental backups.
Process Mining
Process Mining on Automation Suite provides built-in automatic database cleanup ensuring optimal efficiency and performance. This guarantees the regular removal of unnecessary data, keeping your database cleaned up and functional without the need for any manual actions to free up resources.