获取自特定时间戳(比如20120801185856时间戳)以来已更改的db2表的列表

获取自特定时间戳(比如20120801185856时间戳)以来已更改的db2表的列表,db2,database-restore,Db2,Database Restore,在IBM DB2中,是否有任何方法可以获取自特定时间戳以来已更改(更新/添加/删除)的表列表 我面临的问题是,我已于7月25日从live db server在一个盒子中还原了一个备份,并在启用功能包时更新了此还原的db。现在,live DB服务器已经更改,因为客户正在访问它,我无法恢复最新的备份,因为box1中有一些额外的表/数据 因此,我想知道自上次备份以来已更改的表列表,以便手动更新这些表。 请提供帮助。如果您使用的是DB2 for Linux/Unix/Windows,则此查询将获得您需要

在IBM DB2中,是否有任何方法可以获取自特定时间戳以来已更改(更新/添加/删除)的表列表

我面临的问题是,我已于7月25日从live db server在一个盒子中还原了一个备份,并在启用功能包时更新了此还原的db。现在,live DB服务器已经更改,因为客户正在访问它,我无法恢复最新的备份,因为box1中有一些额外的表/数据

因此,我想知道自上次备份以来已更改的表列表,以便手动更新这些表。
请提供帮助。

如果您使用的是DB2 for Linux/Unix/Windows,则此查询将获得您需要的信息:

SELECT TRIM(TABSCHEMA) || '.' || TRIM(TABNAME),
       MAX(CREATE_TIME,ALTER_TIME)
FROM SYSCAT.TABLES
ORDER BY 2 DESC
如果您在大型机上,这个应该可以:

SELECT RTRIM(CREATOR) || '.' || RTRIM(NAME),
       MAX(CREATEDTS,ALTEREDTS)
FROM SYSIBM.SYSTABLES
ORDER BY 2 DESC

但是,这两个表都不会显示已删除的表,因为它们在删除时会从系统目录中删除。

我建议使用删除触发器将执行表删除操作的详细信息记录到表中。

查询工作不正常。我尝试手动更新一个表,当我执行这个查询时,它没有显示该表。我尝试给出where ALTER_TIME>'2012-08-01'来过滤结果,因为它在ALTER_TIME列中显示旧日期。我的查询是SELECT TRIM(TABSCHEMA)| |'。| | TRIM(TABNAME),CREATE_TIME,ALTER_TIME FROM SYSCAT.TABLES,其中TABNAME='STLOC'的顺序为2 DESC请帮助。如果是关于更新/插入/删除表行(不基于DML操作时间戳),则此查询不会获取所需的输出。我认为CREATE_TIME、ALTER_TIME列对应于DDL操作或stats集合。我已经在DB29.7LUW中运行并验证了它。