Show Menu
主题×

数据库清除工作流

简介

通过 Database cleanup 该节点可访问的工 Administration > Production > Technical workflows 作流,可让您删除过时的数据以避免数据库的指数级增长。 该工作流会自动触发,无需用户干预。

配置

数据库清理配置在两个级别上:在工作流调度程序和部署向导中。

调度程序

For more on the scheduler, refer to this section .
默认情况下,工 Database cleanup 作流配置为每天凌晨4点开始。 调度程序允许您更改工作流触发频率。 可用频率如下:
  • Several times a day
  • Daily
  • Weekly
  • Once
要使工作流 Database cleanup 在调度程序中定义的日期和时间开始,必须启动工作流引擎(wfserver)。 如果情况不是这样,则直到下次启动工作流引擎时,才会进行数据库清理。

部署向导

通过 Deployment wizard 菜单访问的“ Tools > Advanced 数据”允许您配置保存数据的时长。 值以天数表示。 如果这些值未更改,则工作流将使用默认值。
窗口的字段 Purge of data 与以下选项一致。 这些任务由工作流执行的一些任务使 Database cleanup 用:
以下部分介绍了由工 Database cleanup 作流执行的所有任务。

由数据库清除工作流执行的任务

在工作流调度程序中定义的日期和时间(请参 阅调度程序 ),工作流引擎启动数据库清除进程。 数据库清理连接到数据库,并按如下所示的顺序执行任务。
如果这些任务之一失败,将不执行以下任务。 具有 LIMIT 属性的SQL查询将重复执行,直到所有信息都得到处理。
以下描述由数据库清除工作流执行的任务的部分是为数据库管理员或熟悉SQL语言的用户保留的。

要删除清除的列表

由工作流执行的第一个任 Database cleanup 务将删除具有deleteStatus !的 所有组= 0属 。 链接到这些组的记录以及其他表中存在的记录也被删除。
  1. 将使用以下SQL查询恢复要删除的列表:
    SELECT iGroupId, sLabel, iType FROM NmsGroup WHERE iDeleteStatus <> 0 OR tsExpirationDate <= GetDate() 
    
    
  2. 每个列表都有多个指向其他表的链接。 所有这些链接都将使用以下查询批量删除:
    DELETE FROM $(relatedTable) WHERE iGroupId=$(l) IN (SELECT iGroupId FROM $(relatedTable) WHERE iGroupId=$(l) LIMIT 5000) 
    
    
    中$(relatedTable) 是与 NmsGroup相关的表 , $(l) 是列表标识符。
  3. 当列表为“列表”类型列表时,将使用以下查询删除关联的表:
    DROP TABLE grp$(l)
    
    
  4. 此操作 恢复的每个“选择 ”类型列表都会使用以下查询删除:
    DELETE FROM NmsGroup WHERE iGroupId=$(l) 
    
    
    其中 $(l) 是列表标识符

清除要删除或回收的交货

此任务会清除所有要删除或回收的交货。
  1. 该工 Database cleanup 作流选择其deleteStatus 字段具有值或其删除日期早于部署向导的 ( Yes Recycled Deleted deliveries NmsCleanup_RecycledDelayDelayPurgeDelayDelayDelayDelayDelayField)字段中定义的期间的所有交付。 For more on this, refer to Deployment wizard . 此期间是根据当前服务器日期计算的。
  2. 对于每个中间采购服务器,任务将选择要删除的提交列表。
  3. 该工 Database cleanup 作流会删除交付日志、附件、镜像页面信息和所有其他相关数据。
  4. 在永久删除传送之前,工作流会从以下表格中清除链接的信息:
    • 在交付排除表( NmsDlvExclusion )中,使用以下查询:
      DELETE FROM NmsDlvExclusion WHERE iDeliveryId=$(l)
      
      
      其中 $(l) 是交付的标识符。
    • 在优惠券表( NmsCouponValue )中,将使用以下查询(含成批删除):
      DELETE FROM NmsCouponValue WHERE iMessageId IN (SELECT iMessageId FROM NmsCouponValue WHERE EXISTS (SELECT B.iBroadLogId FROM $(BroadLogTableName) B WHERE B.iDeliveryId = $(l) AND B.iBroadLogId = iMessageId ) LIMIT 5000)
      
      
      其中 $(l) 是交付的标识符。
    • 在交付日志表( NmsBroadlogXxx )中,批量删除以20,000条记录批量执行。
    • 在优惠提议表( NmsCompatitionXxx )中,批量删除以20,000条记录批量执行。
    • 在跟踪日志表( NmsTrackinglogXxx )中,批量删除以20,000条记录的批量执行。
    • 在交付片段表( NmsDeliveryPart )中,成批执行成批删除(500,000条记录)。 此表包含有关要传送的其余消息的个性化信息。
    • 在镜像页面数据片段表( NmsMirrorPageInfo )中,对过期的传送部分和已完成或取消的部分以20,000条记录的批量执行删除。 此表包含有关用于生成镜像页面的所有消息的个性化信息。
    • 在镜像页面搜索表( NmsMirrorPageSearch )中,批量删除以20,000条记录的批量执行。 此表是一个搜索索引,它提供对存储在 NmsMirrorPageInfo表中的个性化信息的访问
    • 在批处理日志表( XtkJobLog )中,成批删除以20,000条记录执行。 此表包含要删除的分发日志。
    • 在交付URL跟踪表( NmsTrackingUrl )中,使用以下查询:
      DELETE FROM NmsTrackingUrl WHERE iDeliveryId=$(l)
      
      
      其中 $(l) 是交付的标识符。
      此表包含要删除的提交中的URL,以启用其跟踪。
  5. 将从交付表( NmsDelivery )中删除交付:
    DELETE FROM NmsDelivery WHERE iDeliveryId = $(l)
    
    
    其中 $(l) 是交付的标识符。

使用中间采购的交货

Database cleanup 工作流还会删除中间采购服务器上的交付。
  1. 为此,工作流会检查每个交付是否处于非活动状态(基于其状态)。 如果某个交付处于活动状态,则在删除它之前将停止它。 通过执行以下查询执行检查:
    SELECT iState FROM NmsDelivery WHERE iDeliveryId = $(l) AND iState <> 100;
    
    
    其中 $(l) 是交付的标识符。
  2. 如果状态的值为 Start pending In progress Recovery pending 、、 Recovery in progress 、、 Pause requested Pause in progress Paused 、或(值51、55、61、62、71、72、75),则停止传送并且任务清除链接的信息。

清除过期的交付

此任务将停止有效期已过的分发。
  1. 此工 Database cleanup 作流会创建已过期的分发列表。 此列表包括所有状态为非以下状态的已过期交付 Finished ,以及最近停止的包含超过10,000条未处理消息的交付。 使用以下查询:
    SELECT iDeliveryId, iState FROM NmsDelivery WHERE iDeleteStatus=0 AND iIsModel=0 AND iDeliveryMode=1 AND ( (iState >= 51 AND iState < 85 AND tsValidity IS NOT NULL AND tsValidity < $(currentDate) ) OR (iState = 85 AND DateMinusDays(15) < tsLastModified AND iToDeliver - iProcessed >= 10000 ))
    
    
    如果 传送模式 ,则状态51与 Mass delivery 该模式匹配 ,状态51与状态匹配,状态5 Start pending Stopped 与状态8匹配,并且在传送服务器上更新的最大质量等于10,000。
  2. 然后,该工作流包括使用中间采购的最近过期交货的列表。 不包括尚未通过中间采购服务器恢复的交付日志的交付。
    使用以下查询:
    SELECT iDeliveryId, tsValidity, iMidRemoteId, mData FROM NmsDelivery WHERE (iDeliveryMode = 4 AND (iState = 85 OR iState = 95) AND tsValidity IS NOT NULL AND (tsValidity < SubDays(GetDate() , 15) OR tsValidity < $(DateOfLastLogPullUp)) AND tsLastModified > SubDays(GetDate() , 15))
    
    
  3. 以下查询用于检测外部帐户是否仍处于活动状态,以按日期筛选分发:
    SELECT iExtAccountId FROM NmsExtAccount WHERE iActive<>0 AND sName=$(providerName)
    
    
  4. 在已过期的分发列表中,状态为、切换到 Pending 、的分发日志 Delivery cancelled ,此列表中的所有分发都切换到 Finished
    使用以下查询:
    UPDATE $(BroadLogTableName) SET tsLastModified=$(curdate), iStatus=7, iMsgId=$(bl) WHERE iDeliveryId=$(dl) AND iStatus=6
    
    
    其中 $(curdate) 是数据库服务器的当前日期, $(bl) 是发送日志的当前日期, $(bl)消息是发送日志, $( $)是发送状态6,发送状态7与发送状态7匹配, Pending Delivery cancelled dl与状态标识符匹配。
    UPDATE NmsDelivery SET iState = 95, tsLastModified = $(curdate), tsBroadEnd = tsValidity WHERE iDeliveryId = $(dl)
    
    
    其中 传送状态 95与状态 Finished 匹配, $(dl) 是传送的标识符。
  5. 将删除过时​ 交付的所有片段 (deliveryParts),并删除正在进行的通知交付的所有过时片段。 这两个任务都使用批量删除。
    使用以下查询:
    DELETE FROM NmsDeliveryPart WHERE iDeliveryPartId IN (SELECT iDeliveryPartId FROM NmsDeliveryPart WHERE iDeliveryId IN (SELECT iDeliveryId FROM NmsDelivery WHERE iState=95 OR iState=85) LIMIT 5000)
    
    
    DELETE FROM NmsDeliveryPart WHERE iDeliveryPartId IN (SELECT iDeliveryPartId FROM NmsDeliveryPart WHERE tsValidity < $(curDate) LIMIT 500000)
    
    
    其中 交付状态 95与状态 Finished 匹配 ,交付状态85 , Stopped ​$(curDate)与当前服务器日期匹配。

清除镜像页面

此任务将删除提交使用的Web资源(镜像页面)。
  1. 首先,将使用以下查询恢复要清除的提交列表:
    SELECT iDeliveryId, iNeedMirrorPage FROM NmsDelivery WHERE iWebResPurged = 0 AND tsWebValidity IS NOT NULL AND tsWebValidity < $(curdate)"
    
    
    中$(curDate) 是当前服务器日期。
  2. 然后, 根据需要,使用先前恢复的传送的标识符清除NmsMirrorPageInfo 表。 批量删除用于生成以下查询:
    DELETE FROM NmsMirrorPageInfo WHERE iMirrorPageInfoId IN (SELECT iMirrorPageInfoId FROM NmsMirrorPageInfo WHERE iDeliveryId = $(dl)) LIMIT 5000)
    
    
    DELETE FROM NmsMirrorPageSearch WHERE iMessageId IN (SELECT iMessageId FROM NmsMirrorPageSearch WHERE iDeliveryId = $(dl)) LIMIT 5000)
    
    
    其中 $(dl) 是交付的标识符。
  3. 然后,将一个条目添加到交付日志。
  4. 然后识别已清除的提交,以避免以后必须重新处理它们。 将执行以下查询:
    UPDATE NmsDelivery SET iWebResPurged = 1 WHERE iDeliveryId IN ($(strIn))
    
    
    其中 $(strIn) 是传送标识符的列表。

清除工作表

此任务将从数据库(所有与状态为、或的提交匹配的工作表 Being edited )中 Stopped 删除 Deleted
  1. 首先使用以下查询( postgresql)恢复名称以 wkDlv_开头的表列表:
    SELECT relname FROM pg_class WHERE relname LIKE Lower('wkDlv_') ESCAPE E'\\' AND relkind IN ('r','v') AND pg_get_userbyid(relowner)<>'postgres'
    
    
  2. 然后,将排除进行中的工作流使用的表。 为此,将使用以下查询恢复进行中的提交列表:
    SELECT iDeliveryId FROM NmsDelivery WHERE iDeliveryId<>0 AND iDeleteStatus=0 AND iState NOT IN (0,85,100);
    
    
    其中0是与交付状态匹配的 Being edited 值,85匹配状态, Stopped 100匹配状态 Deleted
  3. 不再使用的表将使用以下查询删除:
    DROP TABLE wkDlv_15487_1;
    
    

清除导入生成的废品

通过此步骤,您可以删除在导入过程中未处理所有数据的记录。
  1. XtkReject表执行成批删除 ,查询如下:
    DELETE FROM XtkReject WHERE iRejectId IN (SELECT iRejectId FROM XtkReject WHERE tsLog < $(curDate)) LIMIT $(l))
    
    
    其中 $(curDate) 是当前服务器日期,从中我们减去为 NmsCleanup_RejicesPurgeDelay 选项定义的期间(请参阅“部署向导 ”), $(l)是要删除的最大记录数。
  2. 然后,使用以下查询删除所有孤立拒绝:
    DELETE FROM XtkReject WHERE iJobId NOT IN (SELECT iJobId FROM XtkJob)
    
    

清除工作流实例

此任务使用其标识符( lWorkflowId )和历史记录( lHistory )清除每个工作流实例。 它通过再次运行工作台清理任务来删除不活动的表。
历史记录的清除频率在“历史记录(以天为单位)”字 段中为每个工作流指定 (默认值为30天)。 可以在工作流属性的“执 ”选项卡中找到此字段。 如需详细信息,请参阅 此部分
  1. 要恢复要删除的工作流列表,请使用以下查询:
    SELECT iWorkflowId, iHistory FROM XtkWorkflow WHERE iWorkflowId<>0
    
    
  2. 此查询生成工作流列表,该列表将用于删除所有链接的日志、完成的任务和完成的事件,并使用以下查询:
    DELETE FROM XtkWorkflowLog WHERE iWorkflowId=$(lworkflow) AND tsLog < DateMinusDays($(lhistory))
    
    
    DELETE FROM XtkWorkflowTask WHERE iWorkflowId=$(lworkflow) AND iStatus<>0 AND tsCompletion < DateMinusDays($(lhistory)) 
    
    
    DELETE FROM XtkWorkflowEvent WHERE iWorkflowId=$(l) AND iStatus>2 AND tsProcessing < DateMinusDays($(lHistory))
    
    
    中$(lworkflow) 是工作流的标识符, $(lhistory) 是历史的标识符。
  3. 将删除所有未使用的表。 为此,由于使用以下查询(postgresql) wkf% type mask,所有表都会被收集:
    SELECT relname FROM pg_class WHERE relname LIKE Lower('wkf%') ESCAPE E'\\' AND relkind IN ('r','v') AND pg_get_userbyid(relowner)<>'postgres'
    
    
  4. 然后,将排除待定工作流实例使用的所有表。 活动工作流列表会使用以下查询来恢复:
    SELECT iWorkflowId FROM XtkWorkflow WHERE iWorkflowId<>0 AND iState<>20
    
    
  5. 然后,将恢复每个工作流标识符以查找正在进行的工作流所使用的表的名称。 这些名称将从以前恢复的表列表中排除。
  6. 使用以下查询将排除“增量查询”类型的活动历史记录表:
    SELECT relname FROM pg_class WHERE relname LIKE Lower('wkfhisto%') ESCAPE E'\\' AND relkind IN ('r','v') AND pg_get_userbyid(relowner)<>'postgres'
    
    
    SELECT iWorkflowId FROM XtkWorkflow WHERE iWorkflowId IN ($(strCondition))
    
    
    中$(strcondition) ,是与wkfhisto%遮罩相 匹配的表列表
  7. 其余的表将使用以下查询删除:
    DROP TABLE wkf15487_12;
    
    

清除工作流登录

此任务使用以下查询删除工作流登录:
DELETE FROM XtkWorkflowLogin WHERE iWorkflowId NOT IN (SELECT iWorkflowId FROM XtkWorkflow)

清除孤立工作表

此任务将删除链接到组的孤立工作表。 NmsGroup 表存储要清除的组 (类型不同于0)。 表名的前缀是 grp 。 要标识要清除的组,请使用以下查询:
SELECT iGroupId FROM NmsGroup WHERE iType>0"

清除访客

此任务使用成批删除功能从访客表中删除过时的记录。 过时记录是指上次修改时间早于部署向导中定义的保存期(请参阅部署向 )的记录。 使用以下查询:
DELETE FROM NmsVisitor WHERE iVisitorId IN (SELECT iVisitorId FROM NmsVisitor WHERE iRecipientId = 0 AND tsLastModified < $(tsDate) LIMIT 5000)

中$(tsDate) 是当前服务器日期,从中我们减去为 NmsCleanup_VisitorPurgeDelay选项定义的时段

NPAI的清除

此任务允许您从 NmsAddress表中删除与有效地址匹配的记 录。 以下查询用于执行成批删除:
DELETE FROM NmsAddress WHERE iAddressId IN (SELECT iAddressId FROM NmsAddress WHERE iStatus=2 AND tsLastModified < $(tsDate1) AND tsLastModified >= $(tsDate2) LIMIT 5000)

其中 Valid 状态与状态匹配, $(tsDate1) ,是当前服务器日期, $(tsDate2) 匹配NmsCleanup_LastCleanup选项。

清除订阅

此任务使用成批删除功能从 NmsSubscription 表中清除用户删除的所有订阅。 使用以下查询:
DELETE FROM NmsSubscription WHERE iDeleteStatus <>0

清除跟踪日志

此任务将从跟踪日志表和Web跟踪日志表中删除过时的记录。 过时记录是指早于部署向导中定义的保存期(请参阅部署 向导 )的记录。
  1. 首先,使用以下查询恢复跟踪日志表列表:
    SELECT distinct(sTrackingLogSchema) FROM NmsDeliveryMapping WHERE sTrackingLogSchema IS NOT NULL;
    
    
  2. 成批删除用于清除先前恢复的表列表中的所有表。 使用以下查询:
    DELETE FROM XtkTrackingLogRcp WHERE iTrackingLogId IN (SELECT iTrackingLogId FROM XtkTrackingLogRcp WHERE tsLog < $(tsDate) LIMIT 5000) 
    
    
    中$(tsDate) 是当前服务器日期,从中我们减去为 NmsCleanup_TrackingLogPurgeDelay选项定义的期间
  3. 使用成批删除功能清除跟踪统计数据表。 使用以下查询:
    DELETE FROM NmsTrackingStats WHERE iTrackingStatsId IN (SELECT iTrackingStatsId FROM NmsTrackingStats WHERE tsStart < $(tsDate) LIMIT 5000) 
    
    
    中$(tsDate) 是当前服务器日期,从中我们减去为 NmsCleanup_TrackingStatPurgeDelay选项定义的期间

清除交付日志

通过此任务,您可以清除存储在各种表中的交付日志。
  1. 为此,将使用以下查询恢复交付日志架构列表:
    SELECT distinct(sBroadLogSchema) FROM NmsDeliveryMapping WHERE sBroadLogSchema IS NOT NULL UNION SELECT distinct(sBroadLogExclSchema) FROM NmsDeliveryMapping WHERE sBroadLogExclSchema IS NOT NULL
    
    
  2. 使用中间采购时, NmsBroadLogMid 表在传送映射中未引用。 将 nms:broadLogMid 架构添加到由上一个查询恢复的列表。
  3. 然后, ​数据库清除工作流会清除先前恢复的表中废弃的数据。 使用以下查询:
    DELETE FROM $(tableName) WHERE iBroadLogId IN (SELECT iBroadLogId FROM $(tableName) WHERE tsLastModified < $(option) LIMIT 5000) 
    
    
    中$(Name) ($(Name))是架构列表中每个表的名称, $(option) (是为 NmsBroadLogPurgeDelay 选项(请参阅 部署向导 DeploymentDiscleant向导)定义的日期)。
  4. 最后,该工作流检查 NmsProviderMsgId表是否存在 。 如果是,则使用以下查询删除所有废弃的数据:
    DELETE FROM NmsProviderMsgId WHERE iBroadLogId IN (SELECT iBroadLogId FROM NmsProviderMsgId WHERE tsCreated < $(option) LIMIT 5000)
    
    
    其中 $(option) 匹配为 NmsCleanup_BroadLogPurgeDelay选项定义的日期 (请参阅“部 署向导” )。

清除NmsEmailErrorStat表

此任务清除 NmsEmailErrorStat 表。 主程序(coalesceErrors )定义两个日期:
  • 开始日期 :与 NmsLastErrorStatCoalesce选项匹配的下一个进程的日期 ,或表中的最近日期。
  • 结束日期 :当前服务器日期。
如果开始日期大于或等于结束日期,则不会进行任何进程。 在这种情况下,将显 示coalesceUpToDate 消息。
如果开始日期早于结束日期,则清 除NmsEmailErrorStat 表。
NmsEmailErrorStat表中在开始和结 束日期之间的错误总数 ,使用以下查询来恢复:
"SELECT COUNT(*) FROM NmsEmailErrorStat WHERE tsDate>= $(start) AND tsDate< $(end)"

其中 $end ​$start是之前定义的开始和结束日期。
如果总数大于0:
  1. 执行以下查询以仅使错误超出特定阈值(等于20):
    "SELECT iMXIP, iPublicId, SUM(iTotalConnections), SUM(iTotalErrors), SUM(iMessageErrors), SUM(iAbortedConnections), SUM(iFailedConnections), SUM(iRefusedConnections), SUM(iTimeoutConnections) FROM NmsEmailErrorStat WHERE tsDate>=$(start ) AND tsDate<$(end ) GROUP BY iMXIP, iPublicId HAVING SUM(iTotalErrors) >= 20"
    
    
  2. 将显 示coalescingErrors 消息。
  3. 将创建新连接,以删除在开始日期和结束日期之间发生的所有错误。 使用以下查询:
    "DELETE FROM NmsEmailErrorStat WHERE tsDate>=$(start) AND tsDate<$(end)"
    
    
  4. 每个错误都使用以下 查询保存在NmsEmailErrorStat 表中:
    "INSERT INTO NmsEmailErrorStat(iMXIP, iPublicId, tsDate, iTotalConnections, iTotalErrors, iTimeoutConnections, iRefusedConnections, iAbortedConnections, iFailedConnections, iMessageErrors) VALUES($(lmxip ), $(lpublicId ), $(tsstart ), $(lconnections ), $(lconnectionErrors ),$(ltimeoutConnections ), $(lrefusedConnections ), $(labortedConnections ), $(lfailedConnections ), $(lmessageErrors))"
    
    
    其中每个变量与前一查询恢复的值相匹配。
  5. 使 用上一 进程的值更新开始变量以完成循环。
循环和任务停止。
清除操作会在 NmsEmailError cleanupNmsMxDomain表上执行

清除NmsEmailError表

使用以下查询:
DELETE FROM NmsEmailError WHERE iMXIP NOT IN (SELECT DISTINCT iMXIP FROM NmsEmailErrorStat)

此查询从NmsEmailError表中删除 NmsEmailErrorStat (NmsEmailErrorStat中没有链接记录的所 有行 )。

清除NmsMxDomain表

使用以下查询:
DELETE FROM NmsMxDomain WHERE iMXIP NOT IN (SELECT DISTINCT iMXIP FROM NmsEmailErrorStat)

此查询将从 NmsMxDomain表中删除NmsEmailErrorStat 表中没有链接记录的所 ​有行。

清除命题

如果安 装了Interaction Module,则执行此任务以清除 NmsCompationXxx表
通过以下查询,可以恢复命题表列表,并对每个表执行成批删除:
DELETE FROM NmsPropositionXxx WHERE iPropositionId IN (SELECT iPropositionId FROM NmsPropositionXxx WHERE tsLastModified < $(option) LIMIT 5000) 

其中 $(option) 是为NmsCleanup_CompationPurgeDelay选项定义的日期 (请参阅 部署向导 部署向导 )。

清理模拟表

此任务可清除孤立的模拟表(不再链接到选件模拟或交付模拟)。
  1. 要恢复需要清除的模拟列表,请使用以下查询:
    SELECT iSimulationId FROM NmsSimulation WHERE iSimulationId<>0
    
    
  2. 要删除的表的名称由 wkSimu_ prefix后跟模拟的标识符组成(例如: wkSimu_456831_aggr ):
    DROP TABLE wkSimu_456831_aggr
    
    

清除审计跟踪

使用以下查询:
DELETE FROM XtkAudit WHERE tsChanged < $(tsDate)

中$(tsDate) 是当前服务器日期,从该日期起,将为 ​XtkCleanup_AuditTrailPurgeDelay选项定义的期间提交到该日期。

清除Nmsaddress

使用以下查询:
DELETE FROM NmsAddress WHERE iAddressId IN (SELECT iAddressId FROM NmsAddress WHERE iStatus=STATUS_QUARANTINE AND tsLastModified < $(NmsCleanup_AppSubscriptionRcpPurgeDelay + 5d) AND iType IN (MESSAGETYPE_IOS, MESSAGETYPE_ANDROID ) LIMIT 5000)

此查询将删除所有与iOS和Android相关的条目。

统计数据更新和存储优化

使用 XtkCleanup_NoStats 选项可以控制清除工作流中存储优化步骤的行为。
如果 XtkCleanup_NoStats 选项不存在,或其值为0,则将在PostgreSQL上以冗余模式(VAFUMO VERBOSE ANALYZE)执行存储优化,并更新所有其他数据库的统计信息。 要确保执行此命令,请检查PostgreSQL日志。 VAMUC将输出以下格式的行:而 INFO: vacuuming "public.nmsactivecontact" ANALYZE将输出以下格式的行: INFO: analyzing "public.nmsactivecontact" .
如果选项的值为1,则不会对任何数据库执行统计信息更新。 工作流日志中将显示以下日志行: Option 'XtkCleanup_NoStats' is set to '1' .
如果选项的值为2,则它将在PostgreSQL上以详细模式(ANALYZE VERBOSE)执行存储分析,并更新所有其他数据库的统计信息。 要确保执行此命令,请检查PostgreSQL日志。 ANALYZE将输出以下格式的行: INFO: analyzing "public.nmsactivecontact" .

订阅清理(NMAC)

此任务将删除与已删除的服务或移动应用程序相关的所有订阅。
要恢复广播架构列表,请使用以下查询:
SELECT distinct(sBroadLogSchema) FROM NmsDeliveryMapping WHERE sBroadLogSchema IS NOT NULL

然后,该任务会恢复链接到appSubscription链接的表 的名称 ,并删除这些表。
此清除工作流还会删除自 NmsCleanup_AppSubscriptionRcpPurgeDelay选项中设置的时间以来未更新的idisabled = 1的所有条目

清理会话信息

此任务清除 sessionInfo 表中的信息,使用以下查询:
 DELETE FROM XtkSessionInfo WHERE tsexpiration < $(curdate) 

清理过期事件

此任务可清除在执行实例上接收和存储的事件以及在控制实例上归档的事件。

清洁反应

此任务清除已删除假 设的反应(表NmsRemaMatchRcp )。