`
ahuango
  • 浏览: 55617 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

DB2 SYSINSTALLOBJECTS 存储过程

    博客分类:
  • DB2
阅读更多
DB2 SYSINSTALLOBJECTS 存储过程是为了DB2的某些工具生成相关对象用的。它在SYCPROC schema下,参数定义形式:
SYSINSTALLOBJECTS (
  tool_name VARCHAR,
  action CHAR,
  table_space_name VARCHAR(128),
  schema_name VARCHAR(128)
)

tool_name 为要操作的工具的名称,有一下几个值:
  • 'AM' 为创建活动监视器对象
  • 'DB2AC' 为DB2健康监视器创建对象
  • 'STMG_DBSIZE_INFO' 为存储管理创建对象
  • 'OPT_PROFILES' 为创建数据库优化参数存储表格
  • 'POLICY' 为相关POLICY


action 为操作的类型, 有 'C', 'D','V' - (Create, Drop, Verify)

table_space_name, 存放待创建对象的表空间。 如果该参数未指定或空字符,当工具名是'AM'时,默认表空间将会被使用,除此之外,SYSTOOLSPACE将会被使用,如果它不存在则创建。

schema_name, 保留参数,不使用。

项目中遇到的问题是SYSTOOLS.POLICY表不存在,但是其上的四个Trigger却存在,且状态为X。 因此要删除不一致的状态,方法有两个:
1. 直接DROP trigger。 需要用SYSIBM或SYSCTRL的权限帐号执行
   DB2 DROP TRIGGER SYSTOOLS.POLICY_IR
   ......
2. 使用上述存储过程回复POLICY数据再删除
 
//重新创建
CALL SYSPROC.SYSINSTALLOBJECTS('POLICY', 'C', CAST (NULL AS VARCHAR 128)),   CAST (NULL AS VARCHAR(128)))
//删除
CALL SYSPROC.SYSINSTALLOBJECTS('POLICY', 'D', CAST (NULL AS VARCHAR(128)),   CAST (NULL AS VARCHAR(128)))


虽然不一致的状态得到了消除,但是对于POLICY表的使用场景和时机,却没有弄明白,从表中的内容看似乎是一些维护的POLICY定义。有清楚的高手,帮我解惑。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics