代码之家  ›  专栏  ›  技术社区  ›  Joe R.

读取Informix SE审计跟踪日志表

  •  1
  • Joe R.  · 技术社区  · 14 年前

    Informix-SQL 7.32(SE):

    我已经为我的事务表创建了一个审计跟踪“a_trx”,以了解谁/何时在此表中添加或更新了行,以及行内容的快照。根据文档,审计表是使用与被审计表相同的架构创建的,加上以下审计信息标题列是预先固定的:

    table a_trx
    
    a_type        char(2)    {record type: aa = added, dd =deleted,
                              rr = before update image, ww = after update image.}
    a_time        integer    {internal time value.}
    a_process_id  smallint   {Process ID that changed record.}
    a_usr_id      smallint   {User ID that changed record.}
    a_rowid       integer    {Original rowid.}
    [...]                    {Same columns as table being audited.}
    

    因此,我开始为一个_Trx生成一个默认的执行屏幕,但无法为我的表选择找到一个_Trx。我中止了操作,找到了.dbs目录,但没有看到一个_trx.dat或_trx.idx,但找到了一个_trx,根据 我的磁盘编辑器实用程序。有没有其他方法可以访问这个.dat clone,或者我需要通过将引擎重命名为\u trx.dat来欺骗它,为它创建一个.idx伙伴,调整systables、syscolumns等,以便像其他表一样访问这个审计表?…从1899年12月31日开始,时间的内部时间值是多少秒?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Jonathan Leffler    14 年前

    审计日志不是C-ISAM文件;它们是普通的日志文件。IIRC,它们以“.aud”作为后缀创建。如果您要选择后缀,那么您将使用“.dat”后缀创建它,确保该名称与任何表名都不冲突。

    您应该能够像访问一个表一样访问它们,但是您必须创建一个表(数据文件)和索引文件来匹配扩充的模式,然后安排“.aud”文件引用与“.dat”文件相同的位置-可能是通过链接或符号链接。您可以在SE中的create table语句中指定表的存储位置。

    时间是一个unix时间戳-1970-01-01t00:00:00z以来的秒数。