- Información general
- Requisitos
- Preinstalación
- Instalación
- Después de la instalación
- Migración y actualización
- Actualizar Automation Suite
- Migrar productos independientes a Automation Suite
- Paso 1: restaurar la base de datos del producto independiente
- Paso 2: actualizar el esquema de la base de datos del producto restaurada
- Paso 3: mover los datos de la organización de Identity de independiente a Automation Suite
- Paso 4: Realizar una copia de seguridad de la base de datos de la plataforma en Automation Suite
- Paso 5: Fusionar organizaciones en Automation Suite
- Paso 6: actualizar las cadenas de conexión del producto migradas
- Paso 7: migrar Orchestrator independiente
- Paso 8: migrar Insights independiente
- Paso 9: Migrar Test Manager independiente
- Paso 10: eliminar el tenant predeterminado
- Realizar una migración de un solo tenant
- Migrar entre clústeres de Automation Suite
- Migrar de Automation Suite en EKS/AKS a Automation Suite en OpenShift
- Supervisión y alertas
- Administración de clústeres
- Configuración específica del producto
- Configuración avanzada de Orchestrator
- Configurar parámetros de Orchestrator
- Configurar AppSettings
- Configurar el tamaño máximo de la solicitud
- Anular la configuración de almacenamiento a nivel de clúster
- Configurar NLog
- Guardar los registros del robot en Elasticsearch
- Configurar almacenes de credenciales
- Configurar clave de cifrado por tenant
- Limpiar la base de datos de Orchestrator
- Omitir la creación de la biblioteca de host
- Solución de problemas
- No se puede acceder a Automation Hub tras la actualización a Automation Suite 2024.10.0
- Error de aprovisionamiento de AI Center después de actualizar a 2023.10 o posterior
- Volúmenes de Insights creados en dos zonas diferentes después de la migración
- La actualización falla debido a los tamaños de PVC de Insights anulados
- La configuración de la copia de seguridad no funciona debido a un fallo en la conexión a Azure Government
- Los pods en el espacio de nombres de UiPath se atascaban al habilitar los taints de nodo personalizados
- No se puede iniciar Automation Hub y Apps con la configuración de proxy
- El robot no puede conectarse a una instancia de Automation Suite Orchestrator
- La transmisión de registros no funciona en las configuraciones de proxy
- La copia de seguridad de Velero falla con el error de validación fallida
- El acceso a FQDN devuelve RBAC: error de acceso denegado

Guía de instalación de Automation Suite en EKS/AKS
Limpiar la base de datos de Orchestrator
Los siguientes scripts reemplazan a todos y cada uno de los scripts de limpieza de bases de datos anteriores. Cubren todas las tareas de mantenimiento necesarias y pueden configurarse según las necesidades.
- Puedes descargar los scripts de mantenimiento de la base de datos de Customer Portal.
Script SQL
Requisitos previos
Esto es lo que necesitas para poder ejecutar el script CreateOrchestratorCleanupObjects.sql:
- Debes tener acceso a la base de datos de archivo desde el contexto de tu base de datos de Orchestrator.
- Debes poder acceder al archivo utilizando nombres de 3 partes, como
Archive.dbo.QueueItemsTableArchive.
Cómo usarla
- Ejecuta el script SQL
CreateOrchestratorCleanupObjects.sqlpara crear los siguientes objetos:- La tabla
dbo.__CleanupLog, que alberga los registros de ejecución. - El procedimiento
dbo.GetOrCreateArchiveTable, que crea o devuelve la tabla de archivo. - El procedimiento
dbo.RunOrchestratorCleanup, que realiza la eliminación y, opcionalmente, el archivo de los datos antiguos.
- La tabla
- Ejecuta
dbo.RunOrchestratorCleanupcon el archivo de configuración XML de programación para realizar la limpieza. Para obtener más información sobre el archivo XML, consulta la sección Programar la limpieza .Nota:También puedes utilizar el agente de SQL Server para realizar la limpieza.
Ejemplo 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';
secuencia de comandos de powershell
Esto es adecuado para situaciones en las que no puedas utilizar el script SQL.
El script de PowerShell es compatible con Powershell 5.1 y se puede utilizar con los runbooks de automatización de Azure.
Requisitos previos
El script RunOrchestratorCleanup.ps1 debe poder comunicarse con estas dos cadenas de conexión:
SourceConnectionString- esta es la cadena de conexión de base de datos de Orchestrator.DestinationConnectionString- esta es la cadena de conexión de base de datos de archivo. Ten en cuenta que la base de datos de archivo debe crearse y configurarse con antelación.
Objetos que crea
- La tabla
dbo.__CleanupLog, que alberga los registros de ejecución. - La tabla
dbo.__CleanupIds, que almacena un lote temporal de ID que deben limpiarse.
Limitaciones
El script abre dos conexiones: una a la base de datos de Orchestrator (a través de SourceConnectionString) y una a la base de datos de archivo (a través de DestinationConnectionString). Por ello, no se trata de ninguna transacción real, ya que los datos se copian de Orchestrator al archivo, después de lo cual se eliminan de Orchestrator. Esto significa que si se produce una excepción en cualquier lugar entre las dos acciones, lo que hace que el script se vuelva a ejecutar, los mismos datos podrían copiarse de nuevo, lo que provocaría duplicados en la base de datos de archivo. Sin embargo, como la singularidad no se aplica en la base de datos de archivo, esto no genera ningún problema.
Ejemplo 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>'
Programación de la limpieza
Puedes elegir qué datos limpiar de tu base de datos, cuándo y durante cuánto tiempo se debe realizar la actividad de limpieza para cada ejecución, entre otros.
Para ello, utiliza el siguiente archivo XML con el script SQL o PowerShell. Está preconfigurado con nuestros parámetros recomendados, pero puedes editarlo si quieres características más avanzadas. Asegúrese de comprender lo que hace cada parámetro antes de editar el script, ya que esto puede tener graves consecuencias.
<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>
Incluso si una ejecución solo consigue limpiar parcialmente una o algunas tablas, las ejecuciones posteriores continuarán la limpieza, hasta que el script se ponga al día con todo el trabajo atrasado. Por lo tanto, es importante que no acumules un retraso mayor del que el script puede gestionar. Si esto sucede, valora la posibilidad de programar el script para que se ejecute con más frecuencia.
Parámetros del XML de limpieza
| Parámetro | Explicación | Valores posibles |
|---|---|---|
|
| El número máximo de minutos que el script puede ejecutarse para todas las tablas durante una ejecución. | Debe ser mayor que 1. |
|
| El nombre de la tabla que contiene los datos que quieres eliminar. | Ejemplo: QueueItems |
|
| El número máximo de minutos que el script puede ejecutarse para una tabla en particular durante una ejecución. La cantidad de tiempo que establezcas aquí a veces puede durar un par de minutos más. totalRunMaxMinutes tiene prioridad y siempre se aplicará, incluso si estableces este parámetro en -1. |
|
|
| El ID de la columna que contiene los datos que quieres eliminar. | Ejemplo: Id de la tabla QueueItems |
|
| Esto difiere en función del tipo de datos. daysOld. | Ejemplo: CreationTime para QueueItems |
|
| Cualquier instrucción SQL válida para un filtro. Esto se puede dejar vacío. | Ejemplo: Status IN (2, 3, 4, 5, 6). Esto se incluye en el archivo XML recomendado por nosotros. |
daysOld | Te permite mantener un cierto número de días de datos . dateTimeColumn. | Esto debe establecerse en un mínimo de 2. Ejemplo: establecer este parámetro en |
|
| El número de filas de la tabla que se eliminarán en una iteración. Esto no se utiliza para las tablas donde se definen claves extranjeras. | Ejemplo: establecer este parámetro en 50 para la tabla QueueItems elimina 50 elementos de esa tabla en particular. |
forceCascade | Te permite ejecutar el script para las tablas donde se definen claves extranjeras. forceCascade para las tablas donde es necesario. Por lo tanto, no necesitas cambiarlo. |
Por ejemplo, establecer esta opción para la tabla |
shouldArchive | Te permite elegir si quieres archivar los datos. |
|
Scripts de SQL y PowerShell comparados
| Función | Script SQL | secuencia de comandos de powershell |
|---|---|---|
| XML de limpieza | Ambos utilizan la lógica descrita en la sección Programar la limpieza. | |
| Registro de ejecución | Ambos crean una tabla Puedes consultar los registros de una ejecución utilizando SELECT * FROM dbo.__CleanupLog WHERE ExecutionId = '<execution_id>' ORDER BY Id.Puedes comprobar si una ejecución contenía errores utilizando SELECT * FROM dbo.__CleanupLog WHERE ExecutionId = '<execution_id>' AND IsError = 1. El parámetro ExecutionId se genera con cada ejecución de cualquiera de estos scripts. | |
| Tabla de archivo | La tabla de archivo no contiene ningún índice, claves extranjeras ni columnas de identidad. Las columnas de tipo de marca de tiempo no se archivan. | |
| Nombre de la tabla de archivo | Los nombres siguen la misma lógica e incluyen una cadena basada en el esquema de la tabla. | |
| Lote de ID que se archivarán/eliminarán | Almacenado en una tabla temporal. | Almacenado en la tabla dbo.__CleanupIds. |
| Transaction | Se realiza una sola transacción para cada lote, durante la cual los datos se archivan y se eliminan. batchSize. | SqlBulkCopy se utiliza para copiar los datos. No existe una transacción única realizada para el archivo y la eliminación. |