【问题标题】:How to identify tables with "not logged initially" from catalog in DB2如何从 DB2 的目录中识别具有“最初未记录”的表
【发布时间】:2015-12-01 20:12:48
【问题描述】:

我想知道如何从目录中识别哪些表具有“最初未记录”选项。我的意思是,我想要查询,可能针对目录(syscat、sysibm 模式)并返回未记录的表列表。

这种查询非常有用,特别是在 HADR 场景中,没有记录的表在备用服务器中没有回复。

我知道这是可能的唯一方法是db2look command, where the table structure is retrieved and the "not logged initially" 是可见的。但这是 DB2 操作之外的手动操作。我想要更多的数据库。

【问题讨论】:

  • 我认为这对您没有多大好处,因为 1) 您可以随时激活 NOT LOGGED 模式,并且 2) 不必使用该属性创建表来激活 NOT LOGGED就可以了。
  • 要添加到@mustaccio 的评论中:为了防止此类问题,您需要将blocknonlogged 数据库配置参数设置为YES

标签: logging db2 ddl


【解决方案1】:

我在takeover hadr之后被这个功能咬了,所以我调查了一下。

该信息位于 SYSIBM.SYSTABLES 的 PACKED_DESC 列中。由于此列可能是供内部使用的,因此确切位置可能因版本而异,但在我的 Linux 上的 DB2 Express-C 10.5.1 中,它是 SUBSTR(PACKED_DESC,294,1)。

我通过创建两个类似的表找到它,其中只有一个“最初没有记录”,并比较了 SYSIBM.SYSTABLES 中的记录。

还可以使用db2cat 命令并查找“未记录表”。

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 2022-11-12
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多