Adobe Campaign提供了一个内置工作流,它允许您计划某些数据库维护任务:数据库清理工作流。 此工作流执行以下任务:
请注意,清理任务主要涉及应用程序级别维护,而不是RDBMS级别维护(统计数据更新除外)。 但是,数据库上需要执行维护操作。 即使数据库清理工作流成功运行,这并不意味着数据库已得到最佳调整。
数据库清理工作流不包含任何数据库维护工具:由您组织维护。 要执行此操作,您可以:
这些维护程序必须定期执行,并应包括:
您需要找到相应的插槽以执行这些维护活动。 它们在运行或甚至阻止应用程序时会严重影响数据库性能(由于锁定)。
这些任务通常在低活动期间每周运行一次,这些低不会与备份、数据重装或聚合计算相冲突。 有些系统的需求量很大,需要更频繁的维护。
更深入的维护(如完整表重建)可以每月执行一次,最好在应用程序完全停止的情况下执行,因为系统无论如何都无法使用。
有以下几种策略:
操作 | 说明 | 优势 | 缺点 |
---|---|---|---|
联机碎片整理 |
大多数数据库引擎提供碎片整理方法。 |
只需使用数据库碎片整理方法。 这些方法通常通过在碎片整理期间锁定数据来解决完整性问题。 |
根据数据库,这些碎片整理方法可以作为RDBMS选项(Oracle)提供,并且并不总是处理较大表的最有效方法。 |
转储和还原 |
将表转储到文件,删除数据库中的表并从转储中恢复。 |
这是整理表碎片的最简单方法。 也是数据库几乎已满时的唯一解决方案。 |
由于表被删除并重新创建,因此即使在只读模式下,应用程序也无法保持联机状态(表在恢复阶段不可用)。 |
重复、重命名和删除 |
这将创建表及其索引的副本,然后删除现有副本并重命名该副本以代替它。 |
此方法比第一种方法快,因为它生成的IO较少(没有作为文件的副本,从此文件中读取)。 |
需要两倍的空间量。 必须停止进程期间写入表的所有活动进程。但是,读取过程不会受到影响,因为表在重建后的最后时刻被交换。 |