- Visão geral
- Requisitos
- Instalação
- Verificações de pré-requisito
- Baixando os pacotes de instalação
- cluster do Uipathctl
- Manutenção de cluster uipathctl
- uipathctl cluster maintenance disable
- uipathctl cluster maintenance enable
- uipathctl cluster maintenance is-enabled
- uipathctl cluster migration
- uipathctl cluster migration export
- uipathctl cluster migration import
- uipathctl cluster migration run
- Atualização do cluster do uipathctl
- Configuração do uipathctl
- uipathctl config add-host-admin
- uipathctl config additional-ca-certificates
- uipathctl config additional-ca-certificates get
- uipathctl config additional-ca-certificates update
- alertas de configuração do uipathctl
- alertas de configuração do uipathctl add-email
- uipathctl config alerts remove-email
- uipathctl config alerts update-email
- uipathctl config argocd
- uipathctl config argocd ca-certificates
- uipathctl config argocd ca-certificates get
- uipathctl config argocd ca-certificates update
- uipathctl config argocd generate-dex-config
- uipathctl config argocd generate-rbac
- uipathctl config argocd registry
- uipathctl config argocd registry get
- uipathctl config argocd registry update
- uipathctl config enable-basic-auth
- Orchestrator de configuração do uipathctl
- Get-config do Orchestrator de configuração do UiPathctl
- uipathctl config orchestrator update-config
- uipathctl config saml-certificates get
- uipathctl config saml-certificates rotate
- uipathctl config saml-certificates update
- uipathctl config tls-certificates
- uipathctl config tls-certificates get
- uipathctl config tls-certificates update
- uipathctl config token-signing-certificates
- uipathctl config token-signing-certificates get
- uipathctl config token-signing-certificates rotate
- uipathctl config token-signing-certificates update
- Integridade do uipathctl
- pacote de integridade do uipathctl
- verificação de integridade do uipathctl
- uipathctl health diagnose
- uipathctl health test
- Manifesto do uipathctl
- uipathctl manifest apply
- uipathctl manifest diff
- uipathctl manifest get
- uipathctl manifest get-revision
- Manifesto do uipathctl list-applications
- uipathctl manifest list-revisions
- uipathctl manifest render
- Prereq do uipathctl
- uipathctl prereq create
- uipathctl prereq run
- Recurso uipathctl
- Relatório de recursos do uipathctl
- instantâneo do uipathctl
- backup do instantâneo do uipathctl
- 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
- Versão do uipathctl
- Pós-instalação
- Migração e atualização
- Atualização do Automation Suite no EKS/AKS
- Etapa 1: mover os dados da organização do Identity, de independente para o Automation Suite
- Etapa 2: restauração do banco de dados de produtos independente
- Etapa 3: backup do banco de dados da plataforma no Automation Suite
- Etapa 4: mesclando organizações no Automation Suite
- Etapa 5: atualização das strings de conexão do produto migradas
- Etapa 6: migração do Orchestrator independente
- Etapa 7: migração do Insights independente
- Etapa 8: exclusão do tenant padrão
- B) Migração de um único tenant
- Migração do Automation Suite no Linux para o Automation Suite no EKS/AKS
- Monitoramento e alertas
- Administração de cluster
- Fazendo a manutenção do banco de dados
- Forwarding application logs to Splunk
- Configuração específica do produto
- Uso da ferramenta de configuração do Orchestrator
- Configuração de parâmetros do Orchestrator
- Configurações de aplicativo 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 dos repositórios de credenciais
- Configuração da chave de criptografia por tenant
- Solução de problemas
Fazendo a manutenção do banco de dados
É importante manter seus bancos de dados livres de desordem. Para fazer isso, recomendamos:
A Solução de Manutenção do SQL Server é um conjunto de scripts que permite que você execute backups, verificações de integridade, e manutenção de índices e estatísticas em todas as edições do Microsoft SQL Server, a partir da versão 2005. Para obter detalhes, consulte este projeto do GitHub.
Recomendamos a implementação de backups regulares do banco de dados do SQL Server, como por exemplo backups semanais completos ou diários incrementais.
Além disso, recomendamos o uso do procedimento armazenado DatabaseBackup que é criado usando o script neste local.
Crie um banco de dados separado no qual pode salvar itens antes de excluí-los. Esse banco de dados funciona como um arquivamento para os itens que você pode precisar armazenar por determinadas razões, como auditorias.
Crie um banco de dados separado no qual pode salvar itens antes de excluí-los. Esse banco de dados funciona como um arquivamento para os itens que você pode precisar armazenar por determinadas razões, como auditorias.
Limpeza de banco de dados
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
-
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
-
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.
dbo.RunOrchestratorCleanup
com 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 abaixo.
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
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
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.
<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="__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="__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. Importante:
O tempo que você define aqui às vezes pode ser executado por mais alguns minutos. Além disso,
|
-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. Isso é usado em combinação com
|
Exemplo:
|
|
Qualquer instrução SQL válida para um filtro. Isso pode ser deixado vazio. |
Exemplo:
|
daysOld |
Permite que você mantenha um certo número de dias de dados. Isso é usado em combinação com
|
Isso deve ser definido como um mínimo de
Exemplo: configuração desse parâmetro para
|
|
O número de linhas de tabela a serem excluídas em uma iteração. Importante:
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. Importante:
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 | |
Log de execução |
Ambos criam uma tabela
Você pode consultar os logs de uma execução usando
Você pode verificar se uma execução continha erros usando
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. O tamanho do lote, ou seja, o número de linhas de tabela a serem processadas, é definido no arquivo XML, por meio do parâmetro
|
SqlBulkCopy é usado para copiar os dados. Não há nenhuma transação única executada para arquivamento e exclusão. |