问题描述
各位大哥,大姐,我现在打算做一个监听程序,监视oracle中一个数据库文件的变化,例如文件大小,最后一次修改时间的变化,通过这种变化,确定是否对数据库进行了更改,例如更改数据库记录等(首先,我要说的是这么做是有原因的,别人不允许在他的数据库中更改任何东西,如添加触发器等等,因此只能通过监视文件的方式来处理问题),我采用了C#中的fileSystemwatcher对文件进行监视,但是很遗憾,我发现在oracle中,你更改了数据库中的一条记录,他的DBF文件大小并没有受到影响,而且他的最后一次修改时间也没发生任何变动(注:我更改数据时,是采用PLSQL更改的,oracle是10G的),因此小弟在此请教各位朋友,有没有什么好的办法,或者是我监视的文件根本没有对?请高人指点!
解决方案
解决方案二:
数据库处理没这么简单的只监视一个文件吧。我的想法是你要监视哪个表就对哪个表加触发器(Trigger),在触发器里加你要的处理。另可能有系统表或通过oracle日志的方式能得知发生了什么操作,去oracle版去问问
解决方案三:
监视文件大小,肯定不对。数据文件都是按百分比一次增多少的。
解决方案四:
首先是感谢以上两位的回答,下边是我的回复回复一楼:首先,现在的环境确定了我们不能建立触发器来解决问题,因为他们的数据库是高保密的数据,我们不可能在他们数据库中添加任何东西.因为只能是监视其文件有没有发生变化来确定数据库是否发生过改变.二楼:监视文件大小我也想过肯定是做不到的,我改成监视他的最后一次修改时间,可仍然不行,因此问题就很郁闷了,既然更改了数据,为什么最后一次修改的时间并没有发生变化咧?再次对二位表示最真诚的感谢!~也期待后边会有更好的答案!
时间: 2024-09-23 11:23:57