- Visão geral
- Requisitos
- Pré-instalação
- Preparação da instalação
- Instalação e configuração do service mesh
- Baixando os pacotes de instalação
- Configuração do registro compatível com OCI
- Concessão de permissões de instalação
- Instalando e configurando a ferramenta GitOps
- Implantação do Redis pelo OperatorHub
- Aplicação de configurações diversas
- Executando o uipathctl
- Instalação
- Pós-instalação
- Migração e atualização
- Atualizando o Automação Suite
- Migração de produtos independentes para o Automation Suite
- Etapa 1: restauração do banco de dados de produtos independente
- Etapa 2: atualizar o esquema do banco de dados de produtos restaurado
- Etapa 3: migração dos dados da organização do Identity de independente para o Automation Suite
- Etapa 4: backup do banco de dados da plataforma no Automation Suite
- Etapa 5: mesclando organizações no Automation Suite
- Etapa 6: atualização das strings de conexão do produto migradas
- Etapa 7: migração do Orchestrator independente
- Etapa 8: migração do Insights independente
- Etapa 9: migração do Test Manager independente
- Etapa 10: exclusão do tenant padrão
- Executando uma migração de único tenant
- Migração entre clusters do Automation Suite
- Monitoramento e alertas
- Administração de cluster
- Configuração específica do produto
- Configuração avançada do Orchestrator
- Configuração de parâmetros do Orchestrator
- Configuração do AppSettings
- Configuração do tamanho máximo da solicitação
- Substituição da configuração de armazenamento no nível do cluster
- Configuração do NLog
- Salvando logs do robô no Elasticsearch
- Configuração dos repositórios de credenciais
- Configuração da chave de criptografia por tenant
- Limpeza do banco de dados do Orchestrator
- Ignorar a instalação da biblioteca do host
- Solução de problemas
- Como coletar dados de uso de DU com objectstore (Ceph) no cluster
- Como resolver a falha de verificação de conectividade pré-requisito no OpenShift 4.16-4.18
- Como desinstalar o Automation Suite
- Como implantar o Insights em um cluster habilitado para FIPS
- Como desabilitar a habilitação automática do CDI no operador de GPU Nvidia
Guia de instalação do Automation Suite no OpenShift
Os scripts a seguir substituem qualquer e todos os scripts de limpeza de banco de dados anteriores. Eles cobrem todas as tarefas de manutenção necessárias e podem ser configurados conforme necessário.
Você pode baixar os scripts de manutenção de banco de dados do Orchestrator do Customer Portal.
SQL script
Pré-requisitos
Isso é o que você precisa para poder executar o script
- Você deve ter acesso ao banco de dados de arquivo a partir do contexto de seu banco de dados do Orchestrator.
- Você deve poder acessar o arquivo usando nomes de 3 partes, como
Archive.dbo.QueueItemsTableArchive" id="1"/>.
Como usá-lo
- Execute o script SQL
CreateOrchestratorCleanupObjects.sqlpara criar os seguintes objetos:- A tabela
dbo.__CleanupLog" id="1"/>, que abriga os logs de execução. - O procedimento
dbo.GetOrCreateArchiveTable" id="1"/>, que cria ou retorna a tabela de arquivo. - O procedimento
dbo.RunOrchestratorCleanup" id="1"/>, que executa a exclusão e, opcionalmente, o arquivamento de dados antigos.
- A tabela
- Execute
dbo.RunOrchestratorCleanupcom o arquivo de configuração XML de agendamento para executar a limpeza. Para obter detalhes sobre o arquivo XML, consulte a seção Agendamento da limpeza .
Você também pode usar o agente SQL Server para executar a limpeza.
Exemplo 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';
script do powershell
Isso é apropriado para situações em que você não pode usar o script SQL.
O script PowerShell é compatível com o Powershell 5.1 e pode ser usado com runbooks de Automação do Azure.
Pré-requisitos
O script RunOrchestratorCleanup.ps1 deve poder se comunicar com essas duas strings de conexão:
SourceConnectionString" id="1"/> - essa é a string de conexão de banco de dados do Orchestrator. DestinationConnectionString" id="1"/> - essa é a string de conexão de banco de dados de arquivo. Observe que o banco de dados de arquivo deve ser criado e configurado com antecedência.
Objetos que ele cria
- A tabela
dbo.__CleanupLog" id="1"/>, que abriga os logs de execução. - A tabela
dbo.__CleanupIds" id="1"/>, que armazena um lote temporário de IDs que precisam ser limpos.
Limitações
O script abre duas conexões: uma ao banco de dados do Orchestrator (por meio de SourceConnectionString) e uma ao banco de dados de arquivo (por meio de DestinationConnectionString). Dessa forma, nenhuma transação real está envolvida, pois os dados são copiados do Orchestrator para o arquivo, após o qual são excluídos do Orchestrator. Isso significa que, se uma exceção for gerada em qualquer lugar entre as duas ações, fazendo com que o script seja reexecutado, os mesmos dados podem ser copiados novamente, levando a duplicatas no banco de dados de arquivo. No entanto, como a exclusividade não é aplicada no banco de dados de arquivo, isso não leva a problemas.
Exemplo 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>'
Agendamento da limpeza
Você pode escolher quais dados limpar de seu banco de dados, quando e por quanto tempo a atividade de limpeza deve ser feita para cada execução, entre outras. Para fazer isso, use o seguinte arquivo XML com o script SQL ou PowerShell. Ele é pré-configurado com nossos parâmetros recomendados, mas você pode editá-lo se quiser funcionalidades mais avançadas. Certifique-se de entender o que cada parâmetro faz antes de editar o script, pois isso pode ter consequências graves.
<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>
Mesmo que uma execução consiga limpar parcialmente uma ou algumas tabelas, as execuções subsequentes continuarão a limpeza, até que o script atinja todo o backlog. Portanto, é importante que você não accumule um backlog maior do que o script pode lidar. Se isso acontecer, considere agendar o script para ser executado com mais frequência.
Parâmetros do XML de limpeza
| Parâmetro | Explicação | Valores possíveis |
|---|---|---|
|
| O número máximo de minutos que o script pode executar para todas as tabelas durante uma execução. | Deve ser maior que 1. |
|
| O nome da tabela que contém os dados que você deseja excluir. | Exemplo: QueueItems |
|
| O número máximo de minutos que o script pode executar para uma tabela específica durante uma execução. O tempo que você define aqui às vezes pode ser executado por mais alguns minutos. totalRunMaxMinutes tem precedência e sempre será aplicada, mesmo se você definir esse parâmetro como -1 . | -1 : o script será executado por um número ilimitado de minutos. 0 : o script não será executado para essa tabela específica. >0 (ou seja, um número escolhido por você): o número máximo de minutos que o script executará. |
|
| O ID da coluna que contém os dados que você deseja excluir. | Exemplo: |
|
| Isso difere dependendo do tipo de dados. daysOld . | Exemplo: |
|
| Qualquer instrução SQL válida para um filtro. Isso pode ser deixado vazio. | Exemplo: Status IN (2, 3, 4, 5, 6). Isso está incluído no arquivo XML recomendado por nós. |
daysOld | Permite que você mantenha um certo número de dias de dados. dateTimeColumn . | Deve ser definido como um mínimo de 2 . Exemplo: configuração desse parâmetro para |
|
| O número de linhas de tabela a serem excluídas em uma iteração. Isso não é usado para tabelas em que chaves estrangeiras são definidas. | Exemplo: configurar esse parâmetro como |
forceCascade | Permite que você execute o script para tabelas em que chaves estrangeiras são definidas. O exemplo já usa | 0 : não em cascata. 1 : cascata. Por exemplo, definir essa opção para a tabela QueueItems processará as tabelas QueueItemEvents e QueueItemComments. |
shouldArchive | Permite que você escolha se deseja arquivar os dados. | 0 : não arquivar. 1 : arquivar. |
Scripts SQL e PowerShell comparados
| Recurso | SQL script | script do powershell |
|---|---|---|
| XML de limpeza | Ambos usam a lógica descrita na seção Agendamento da limpeza. | |
| Log de execução | Ambos criam uma tabela Você pode consultar os logs de uma execução usando SELECT * FROM dbo.__CleanupLog WHERE ExecutionId = '<execution_id>' ORDER BY Id . Você pode verificar se uma execução continha erros usando SELECT * FROM dbo.__CleanupLog WHERE ExecutionId = '<execution_id>' AND IsError = 1 . O parâmetro | |
| Tabela de arquivo | A tabela de arquivo não contém índices, chaves estrangeiras ou colunas de identificação. As colunas do tipo Carimbo de data/hora não são arquivadas. | |
| Nome da tabela de arquivo | Os nomes seguem a mesma lógica e incluem uma string baseada no esquema de tabela. | |
| Lote de IDs a serem arquivados/excluídos | Armazenado em uma tabela temporária. | Armazenado na tabela |
| Transaction | Uma única transação é executada para cada lote, durante o qual os dados são arquivados e excluídos. | SqlBulkCopy é usado para copiar os dados. Não há nenhuma transação única executada para arquivamento e exclusão. |