- 概要
- 要件
- インストール
- 前提条件の確認
- インストール パッケージをダウンロードする
- uipathctl cluster
- uipathctl cluster maintenance
- uipathctl cluster maintenance disable
- uipathctl cluster maintenance enable
- uipathctl cluster maintenance is-enabled
- uipathctl cluster upgrade
- uipathctl config
- uipathctl config alerts
- 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 health
- uipathctl health bundle
- uipathctl health check
- uipathctl health diagnose
- uipathctl health test
- uipathctl identity
- uipathctl identity add-host-admin
- uipathctl identity enable-basic-auth
- 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 prereq
- uipathctl prereq create
- uipathctl prereq run
- uipathctl resource
- uipathctl resource report
- uipathctl snapshot
- uipathctl snapshot backup
- 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 sso generate-connector
- uipathctl sso generate-overlays
- uipathctl sso generate-rbac
- uipathctl version
- インストール後
- 移行とアップグレード
- 監視とアラート機能
- クラスターの管理
- 製品固有の設定
- Orchestrator データベースをクリーンアップする
- トラブルシューティング
Orchestrator データベースをクリーンアップする
次のスクリプトは、以前のすべてのデータベース クリーンアップ スクリプトを置換します。これらによって必要なメンテナンス タスクがすべてカバーされます。設定は必要に応じて変更できます。
Orchestrator データベースのメンテナンス スクリプトは、Customer Portal からダウンロードできます。
CreateOrchestratorCleanupObjects.sql
を実行するには次の条件を満たす必要があります。
-
Orchestrator データベースのコンテキスト内からアーカイブ データベースにアクセスできる必要があります。
-
アーカイブには、
Archive.dbo.QueueItemsTableArchive
などの、3 つの構成要素から成る名前を使用してアクセスできる必要があります。
CreateOrchestratorCleanupObjects.sql
を実行して、以下のオブジェクトを作成します。
-
実行ログを格納する
dbo.__CleanupLog
テーブル。 -
アーカイブ テーブルを作成または返す
dbo.GetOrCreateArchiveTable
プロシージャ。 -
dbo.RunOrchestratorCleanup
プロシージャ。古いデータを削除し、必要に応じてアーカイブします。
dbo.RunOrchestratorCleanup
を実行し、クリーンアップします。XML ファイルについて詳しくは、以下の「クリーンアップのスケジュールを設定する」セクションをご覧ください。
SQL Server エージェントを使用してクリーンアップを実行することもできます。
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';
これは、SQL スクリプトを使用できない場合に適しています。
PowerShell スクリプトは PowerShell 5.1 に対応しており、Azure Automation Runbook で使用できます。
RunOrchestratorCleanup.ps1
は、以下の両方の接続文字列と通信できる必要があります。
-
SourceConnectionString
- Orchestrator データベースの接続文字列です。 -
DestinationConnectionString
- アーカイブ データベースの接続文字列です。アーカイブ データベースは、事前に作成して設定しておく必要があることに注意してください。
SourceConnectionString
経由)、もう 1 つはアーカイブ データベースへの接続 (DestinationConnectionString
経由) です。したがって、データは Orchestrator からアーカイブにコピーされた後、Orchestrator から削除されるため、実際のトランザクションは関与しません。
つまり、2 つのアクションの間のどこかで例外がスローされ、スクリプトが再実行されると、同じデータが再度コピーされ、アーカイブ データベースに重複が発生する可能性があります。
ただし、アーカイブ データベースでは一意であることが強制されないため、問題は発生しません。
.\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>'
データベースからクリーンアップするデータと、各実行でクリーンアップ アクティビティをいつ、どれくらいの時間実行するかを選択できます。
それには、SQL または PowerShell スクリプトが記述された以下の 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" />
<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>
1 回の実行で 1 つまたはいくつかのテーブルを部分的にしかクリーンアップできない場合でも、すべてのバックログをクリーンアップするまでスクリプトが続けて実行されます。したがって、スクリプトで処理しきれないほど大きなバックログを蓄積しないことが重要です。蓄積されてしまう場合は、スクリプトをより頻繁に実行するようスケジュールすることを検討してください。
パラメーター |
説明 |
予想される値 |
---|---|---|
|
1 回の実行時にすべてのテーブルに対してスクリプトを実行できる最大時間 (分)。 |
1 より大きい値である必要があります。 |
|
削除するデータを含むテーブルの名前。 |
例:
QueueItems |
|
1 回の実行時に特定のテーブルに対してスクリプトを実行できる最大時間 (分)。 重要:
ここで設定する時間は、数分ほど超過することがあります。 また、このパラメーターを
-1 に設定したとしても、totalRunMaxMinutes が優先され、常に適用されます。
|
-1 : スクリプトは時間 (分) の制限なく実行されます。
0 : スクリプトはその特定のテーブルに対して実行されません。
>0 (すなわち、ユーザーが選択した数値): スクリプトが実行される最大時間 (分)。
|
|
削除するデータを含む列の ID。 |
例:
QueueItems テーブルの Id
|
|
これはデータ型によって異なります。 daysOld と組み合わせて使用されます。
|
例:
QueueItems の CreationTime |
|
フィルターの有効な SQL ステートメント。 これは空のままにしておくことができます。 |
例:
Status IN (2, 3, 4, 5, 6) 。これは、UiPath が推奨する XML ファイルに含まれています。
|
daysOld |
一定日数分のデータを保持できます。 dateTimeColumn と組み合わせて使用されます。
|
この値は、
2 以上に設定する必要があります。
例: このパラメーターを
5 に設定すると、5 日前までのすべてのデータが保持されます。
|
|
1 回の反復処理で削除されるテーブル行の数。 重要:
これは、外部キーが定義されているテーブルには使用されません。 |
例:
QueueItems テーブルに対してこのパラメーターを 50 に設定すると、その特定のテーブルから 50 項目が削除されます。
|
forceCascade |
外部キーが定義されているテーブルに対してスクリプトを実行できます。 重要:
このサンプルでは、テーブルで必要とされる箇所に、既に
forceCascade を使用しています。したがって、変更する必要はありません。
|
0 : カスケードしません。
1 : カスケード。たとえば、QueueItems テーブルにこのオプションを設定すると、QueueItemEvents テーブルと QueueItemComments テーブルの両方が処理されます。
|
shouldArchive |
データをアーカイブするかどうかを選択できます。 |
0 : アーカイブしないでください。
1 : アーカイブ。
|
機能 | SQL スクリプト | PowerShell スクリプト |
---|---|---|
クリーンアップ XML |
どちらも、「クリーンアップのスケジュールを設定する」セクションで説明しているロジックを使用します。 | |
実行ログ |
どちらも、実行のログを格納する
dbo.__CleanupLogs テーブルを作成します。
SELECT * FROM dbo.__CleanupLog WHERE ExecutionId = '<execution_id>' ORDER BY Id を使用して、実行のログを照会できます。
実行時にエラーが発生していたかどうかを確認するには、
SELECT * FROM dbo.__CleanupLog WHERE ExecutionId = '<execution_id>' AND IsError = 1 を使用します。
ExecutionId パラメーターは、これらのスクリプトのいずれかを実行するたびに生成されます。
| |
アーカイブ テーブル |
アーカイブ テーブルには、インデックス、外部キー、または ID 列は含まれません。 TimeStamp 型の列はアーカイブされません。 | |
アーカイブ テーブル名 |
名前は同じロジックに従い、テーブル スキーマに基づく文字列を含みます。 | |
アーカイブ/削除する ID のバッチ |
一時テーブルに格納されます。 |
dbo.__CleanupIds テーブルに格納されます。
|
トランザクション |
バッチごとに 1 つのトランザクションが実行され、その間にデータがアーカイブおよび削除されます。 バッチ サイズ、つまり処理するテーブルの行数は、XML ファイルで
batchSize パラメーターを使用して定義されます。
|
SqlBulkCopy を使用してデータをコピーします。 アーカイブと削除を目的として実行される単一のトランザクションはありません。 |