数据库清理工作流

简介

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

配置

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

工作流调度程序

注意

有关调度程序的更多信息,请参见此部分

默认情况下, Database cleanup​工作流配置为每天凌晨4点启动。 调度程序允许您更改工作流触发频率。 可用频率如下:

  • Several times a day
  • Daily
  • Weekly
  • Once

重要

要使​Database cleanup​工作流在计划程序中定义的日期和时间启动,必须启动工作流引擎(wfserver)。 如果情况并非如此,则在下次启动工作流引擎之前不会进行数据库清理。

部署向导

通过​Tools > Advanced​菜单访问​Deployment wizard,可配置保存数据的时长。 值以天表示。 如果没有更改这些值,工作流将使用默认值。

Purge of data​窗口的字段与以下选项一致。 这些任务由​Database cleanup​工作流执行的某些任务使用:

以下部分介绍了​Database cleanup​工作流执行的所有任务。

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

在工作流调度程序中定义的日期和时间(请参见调度程序),工作流引擎将启动数据库清理进程。 数据库清理连接到数据库,并按照如下所示的顺序执行任务。

重要

如果其中任务失败,则不会执行以下任务。
将重复执行具有​LIMIT​属性的SQL查询,直到处理完所有信息为止。

注意

以下描述数据库清理工作流所执行任务的部分保留给数据库管理员或熟悉SQL语言的用户。

要删除清理的列表

Database cleanup​工作流执行的第一个任务将删除具有​deleteStatus != NmsGroup 中的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. 当该列表为“List”类型列表时,将使用以下查询删除关联的表:

    DROP TABLE grp$(l)
    
  4. 使用以下查询删除由操作恢复的每个​Select​类型列表:

    DELETE FROM NmsGroup WHERE iGroupId=$(l) 
    

    其中​$(l)​是列表标识符

清理要删除或回收的投放

此任务会清除所有要删除或回收的投放。

  1. Database cleanup​工作流会选择​deleteStatus​字段具有值​Yes​或​Recycled​且其删除日期早于部署向导的​Deleted deliveries(NmsCleanup_RecynedDelay)字段中定义的时段的所有投放。 有关更多信息,请参阅部署向导。 此时段是相对于当前服务器日期计算的。

  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条记录的批次执行。

    • 在优惠建议表(NmsCompetationXxx)中,批量删除以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 pendingIn progressRecovery pendingRecovery in progressPause requestedPause 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 ))
    

    其中,投放模式1​与​Mass delivery​模式匹配,状态51​与​Start pending​状态匹配,状态85​与​Stopped​状态匹配,投放服务器上批量更新的投放日志的最大数量等于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)​是投放日志消息的标识符,$(dl)​是投放标识符,投放状态6​与​Pending​状态匹配,投放状态7​与​Delivery cancelled​状态匹配。

    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 editedStopped​或​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_RejectsPurgeDelay​选项定义的时段(请参阅部署向导),而​$(l)​是要批量删除的最大记录数。

  2. 然后,将使用以下查询删除所有孤立拒绝:

    DELETE FROM XtkReject WHERE iJobId NOT IN (SELECT iJobId FROM XtkJob)
    

清理工作流实例

此任务使用其标识符(lWorkflowId)和历史记录(lHistory)清除每个工作流实例。 它通过再次运行工作表清理任务来删除非活动表。 清理还会删除已删除工作流的所有孤立工作表(wkf%和wkfhisto%)。

注意

在​History in days​字段中为每个工作流指定历史记录的清除频率(默认值为30天)。 此字段位于工作流属性的​Execution​选项卡中。 如需详细信息,请参阅此部分

  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%​类型掩码来收集所有表:

    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 < AddDays(GetDate(), -30) AND iOrigin = 0 LIMIT 20000)

其中​$(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)

其中, 状态2​与​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) 
    

    其中​$(tableName)​是架构列表中每个表的名称,$(option)​是为​NmsCleanup_BroadLogPurgeDelay​选项定义的日期(请参阅部署向导)。

  4. 最后,该工作流检查​NmsProviderMsgId​表是否存在。 如果是,则使用以下查询删除所有过时的数据:

    DELETE FROM NmsProviderMsgId WHERE iBroadLogId IN (SELECT iBroadLogId FROM NmsProviderMsgId WHERE tsCreated < $(option) LIMIT 5000)
    

    其中​$(option)​与为​NmsCleanup_BroadLogPurgeDelay​选项定义的日期匹配(请参阅部署向导)。

清理NmsEmailErrorStat表

此任务可清除​NmsEmailErrorStat​表。 主程序(coalesceErrors)定义了两个日期:

  • 开始日期:与NmsLastErrorStatCoalesceoption或表中 ​最新日期匹配的下一个进程的日期。
  • 结束日期:当前服务器日期。

如果开始日期大于或等于结束日期,则不会进行任何流程。 在这种情况下,将显示​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. start​变量将更新为前一个进程的值以完成循环。

循环和任务停止。

清理在​NmsEmailError​和​cleanupNmsMxDomain​表上执行。

清理NmsEmailError表

使用以下查询:

DELETE FROM NmsEmailError WHERE iMXIP NOT IN (SELECT DISTINCT iMXIP FROM NmsEmailErrorStat)

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

清理NmsMxDomain表

使用以下查询:

DELETE FROM NmsMxDomain WHERE iMXIP NOT IN (SELECT DISTINCT iMXIP FROM NmsEmailErrorStat)

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

清理命题

如果安装了​Interaction​模块,则执行此任务以清除​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_​前缀组成,后跟模拟的标识符(例如: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上以详细模式(VAFU VERBOSE ANALYZE)执行存储优化,并更新所有其他数据库的统计信息。 要确保执行此命令,请检查PostgreSQL日志。 VAVUUM将输出以下格式的行:INFO: vacuuming "public.nmsactivecontact"和ANALYZE将输出以下格式的行:INFO: analyzing "public.nmsactivecontact"

如果选项的值为1,则不会在任何数据库上执行统计信息更新。 工作流日志中将显示以下日志行:Option 'XtkCleanup_NoStats' is set to '1'

如果选项的值为2,则将在PostgreSQL上以详细模式(ANALYZE VERBOSE)执行存储分析,并更新所有其他数据库的统计信息。 要确保执行此命令,请检查PostgreSQL日志。 分析将输出以下格式的行:INFO: analyzing "public.nmsactivecontact"

订阅清理(NMAC)

此任务会删除与已删除的服务或移动设备应用程序相关的所有订阅。

要恢复broadlog架构列表,请使用以下查询:

SELECT distinct(sBroadLogSchema) FROM NmsDeliveryMapping WHERE sBroadLogSchema IS NOT NULL

然后,该任务将取回链接到​appSubscription​链接的表的名称,并删除这些表。

此清理工作流还会删除自​NmsCleanup_AppSubscriptionRcpPurgeDelay​选项中设置的时间以来未更新的idisabled = 1的所有条目。

清理会话信息

此任务清除​sessionInfo​表中的信息,使用以下查询:

 DELETE FROM XtkSessionInfo WHERE tsexpiration < $(curdate) 

清除过期事件

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

清理反应

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

在此页面上