如果在部署复制工件时出错。
您必须撤消已在单个业务度量模型部署中执行的操作,以撤消更改。
所有部署都是分为几个阶段来完成的,以下是典型方案:
- DDL 部署
- 部署 state.ddl。
- 部署 runtime.ddl。
- 部署 datamart.ddl。
- 数据移动服务部署
- 部署 State_to_Runtime_setup_source。
- 部署 State_to_Runtime_setup_target。
- 部署 Runtime_to_historical_setup_source。
- 部署 Runtime_to_Historical_setup_target。
您必须识别发生错误之处以确定如何采取措施。
例如,如果 state.ddl 失败,则只需回滚事务以返回至原始状态。
然而,如果 datamart.dll 失败,则回滚 datamart.ddl 只能使系统返回到 runtime.ddl 成功执行后的点。
在数据移动服务部署过程中的失败是最难恢复的,但不是不可恢复。
第一次部署最易于恢复,新模型的部署次之,而更改模型的最终部署最难恢复。
要从复制脚本部署错误恢复,您需要经历以下阶段:识别、备份、恢复或删除以及重新部署:
识别- 识别发生的错误并确定是否应联系 IBM®支持中心。
- 识别错误发生时正在部署的业务度量模型。
- 识别错误发生时正在创建或更改的模式生成器表。
- 识别错误发生时正在创建或更改的模式生成器工件。
- 识别存储库数据库中业务度量模型的最新有效版本 。
- 如果是变更管理部署,识别为先前模型版本部署的工件的位置。
这将给出数据库结构、其描述以及相互之间的关系。
这在需要备份数据并稍后恢复的情况下很重要。
- 识别当前工件的位置和部署日志文件。
这些对于问题确定很重要,并可以提供给 IBM 支持中心。
- 如果是变更管理部署,识别在任何未经处理的 CCD 表中是否存在数据。
您可以使用 WBIRMADM.RMMETADATA 表(在运行时和历史数据库中提供)来确定相关 CCD 表(TGT_RM_APP_STG_TAB_NAME),该表具有正在部署的业务度量模型项目名称(OM_NAME)。标记有 I 或 U 的任意行可能还未经处理,应该备份。列 SERVICE_NAME 包含 CCD 表和目标表的位置,to 后的名称即指出了该位置。
您应该记录与 TGT_TAB_NAME 的关系,以备您决定完全除去所有工件并生成全新的工件。
这是因为模式生成器不会生成同名的 CCD 表,而您需要在部署成功之后将此数据恢复到新的 CCD 表。
备份- 根据识别阶段来确定是否有数据需要备份。
因为其他业务度量模型可能在部署期间同一时间运行,所以您可能需要备份与其他业务度量模型相关的数据库对象。
- 您可能需要备份 CCD(一致更改数据)表。模式生成器可能仍在这些表中拥有一些信息,而这些信息并不存在于源或目标数据库表。
注: 完成的事件可能只存在于历史数据库中。
恢复或删除 - 确定恢复先前的数据库或手工除去工件哪个更容易。
- 恢复:在没有其他业务度量模型存在时或其他业务度量模型没有活动时,从备份版本恢复可能是个很好的选择。
恢复先前的数据库集,对于每个数据库,重新绑定任何需要重新绑定的应用程序,重新注册所有基于 Java 的存储过程和用户定义的函数。
注: - 要获取更多关于数据库备份和恢复的信息,请参阅 DB2® 文档中的数据恢复部分。
- 对于完成的已部署模型,WBIRMADM.RMMETADATA 表提供无需除去的模型的信息。
然而,在部署时,为了确定某些工件和关系,可能需要检查部署日志来确定哪些可安全除去。
- 除去:
- 复制:历史数据库和运行时数据库
- 停止所有与业务度量模型相关的“捕获”服务器。(“捕获”服务器运行在运行时和状态数据库上。)
- 停止所有与业务度量模型相关的“应用”服务器。
- 除去业务度量模型的所有“ETL”存储过程。
- 除去所有用于业务度量模型的“ETL”登台表。
- 除去所有来自业务度量模型的相应目标数据库中 WBIRMADM.RMCONTROL 表的“ETL”控制信息。
- 除去所有用于业务度量模型的“ETL”修剪存储过程和触发器。
- 除去所有列举在 WBIRMADM.RMMETADATA 表列 TGT_RM_APP_STG_TAB_NAME 中的表,这些表具有后缀 _BKUP 和 _M,而且业务度量模型的 SERVICE_NAME 对于历史为 Runtime_to_Historical,对于运行时为 State_to_Runtime。
保留列举在 TGT_RM_APP_STG_TAB_NAME 中的表,因为在下一步骤将除去它。
- 使用 DB2 复制中心除去所有服务于业务度量模型的“应用”预订集成员。
- 如果“应用”预订集为空,则除去预订集。
- 如果“应用”服务器没有预订集,则除去“应用”服务器。
- 从 WBIRMADM.RMMETADATA 表删除所有与业务度量模型相关的元数据项。如果处理历史(运行时)数据库,则您还需要除去来自运行时(状态)数据库中 WBIRMADM.RMMETADATA 表的相同条目。
在处理历史数据库(运行时数据库)时,您只要除去业务度量模型和服务名称为 Runtime_to_Historical (State_to_Runtime)的行。
- 复制:运行时数据库和状态数据库
- 停止所有服务于业务度量模型的“捕获”服务器。
- 除去所有与业务度量模型相关的“捕获”CD 表的相关触发器。
- 从 WBIRMADM.RMPRUNECTRL 表除去用于业务度量模型的修剪触发器的修剪控制信息。
- 使用 DB2 复制中心除去与业务度量模型相关的所有表的所有预订。
- 从 WBIRMADM.RMMETADATA 表删除所有与业务度量模型相关的元数据项。
- 数据库模式:一般情况下,会在部署更改的模型之前回滚模式生成期间发生的错误。
这不会影响当前复制工件集。
重新部署
当除去所有支持业务度量模型的工件时,您可以用所选的忽略原部署再次运行模式生成器。如果生成的模式成功,请不要部署数据库定义语言(DDL)脚本,只需再次部署复制脚本即可。