列出最近在其上执行DML查询的DB2表

时间:2014-08-11 23:20:59

标签: sql database db2

(这与get the list of db2 tables which have been changed since a particular timestamp say since 20120801185856 timestamp

相似但不重复

我需要获取DB2 9.7 luw表的列表,这些表在特定时间戳之后被修改。我可以使用任何sys表吗?我遇到了上述问题,SYSCAT.TABLES上的查询给出了使用时间戳创建/更改的表的列表。但我正在寻找每个表上的最后一个插入/更新/删除时间戳。

SYSCAT.TABLES中的LASTUSED列也不适合我,因为它是关于最后'select'的;我正在寻找修改而不是单独选择。

我们在表中有技术/元数据列,但如果有DB2维护的元数据表,我想首先使用它。

此要求也不适用于任何更改数据日志或审计触发器等,我只想要在特定时间戳之后插入/更新/删除的表列表。

1 个答案:

答案 0 :(得分:1)

您正在寻找的是审计。该信息不在目录表中。相反,您应该激活审计工具:db2audit,然后此工具将写入您想要的信息。

这可以为您提供有关数据库中发生的事情的大量详细信息。但是,它会影响性能。

这是一篇关于如何使用此工具的文章:http://www.ibm.com/developerworks/data/library/techarticle/dm-0603wasserman/

请记住,数据不会作为实用程序的一部分进行记录,因为这违反了隐私。因此,您无法知道用户在数据库中修改了什么。使用db2audit,您可以知道对哪个对象执行了哪些操作。

如果您真的想知道用户做了什么,那么您需要开发自己的跟踪系统。您可以使用触发器实现某些功能,或者在存储过程中使用log4db2等日志记录实用程序。