确定未保存的对象
确定未保存的对象与确定系统已保存的对象同样重要。 系统可能由于两个基本原因而不保存对象。
- 对象不在保存计划中。 例如,单独保存库。 对新的库添加新的应用程序,但忘记更新保存过程。
- 对象在保存计划中,但系统未成功保存该对象。 系统可能由于下列任一原因而不保存对象:
- 它正在使用中。 如果使用“活动时保存”功能,那么系统会等待一定的时间来获取对对象的锁定。 如果不使用“活动时保存”功能,那么系统不等待。
- 系统将对象标记为已损坏。
- 没有对对象的必需权限。
系统不能保存对象时将跳过该对象并在作业记录中写入一项。 验证保存过程中系统创建的作业记录非常重要。 如果要执行大量保存操作,那么可能要开发一个程序以便将作业记录复制到一个文件并进行分析。
可以在 SAVLIB、SAVOBJ 和 SAVCHGOBJ 命令中指定 OUTPUT(*OUTFILE) INFTYPE(*ERR)。 这将创建一个输出文件,它只包含系统未保存的这些对象的项。 还可以在 SAV、SAVLIB、SAVOBJ 和 SAVCHGOBJ 命令上指定 OUTPUT(*PRINT),以列出已保存和未保存的对象。 请参阅联机命令帮助,以了解有关特定命令的更多信息。
通过以下方法定期验证备份策略:
- 检查系统保存对象的时间。
- 确定系统保存对这些对象所作更改的时间。
使用对象描述的信息来确定系统最近保存对象的时间。 按照保存策略建立确定该时间的方法。 如果保存所有库,那么可以验证系统中每个库的保存日期。 如果保存各个对象,那么需要验证所有用户库中对象的保存日期。
要验证库的保存日期,可以执行以下操作:
- 通过输入以下命令,创建一个具有关于所有库的信息的输出文件:
DSPOBJD OBJ(QSYS/*ALL) OBJTYPE(*LIB) + OUTPUT(*OUTFILE) + OUTFILE(library-name/file-name) - 使用查询工具或程序来分析输出文件。 字段 ODSDAT 包含最近保存对象的日期。 可以按此字段将您的报告排序,或将此字段与过去的某个日期进行比较。
可以使用类似的技巧来检查系统最近保存特定库中对象的时间。