事务日志:import命令导入的数据是会记录日志的(SXXXX.LOG)
过程输出:import命令产生很少的过程输出,默认情况下,会在最后commit数据时显示提交的结果(当然,不建议这种默认方式,容易造成数据库事务日志满)。可以在import时增加选项commitcount,即每多少行数据提交一次,这样每次提交时也会输出提交的结果。
DB2 SQL Error: SQLCODE=-805, SQLSTATE=51002 解决方法在 *** 作大量数据时如果发生这种错误,说明不是db2 使用的 package没有绑定,而是因为资源未释放,导致可以使用此package的资源不足,致使不能连接资源,这种情况有两种解决方法.
方法一:治标不治本,重新绑定package,然后为package的使用分配更多的资源
方法二:标本兼治,在程序中,对PreparedStatement ,Statement,CallableStatement,ResultSet,Connection这些对象使用完毕后一定要调用close()方法进行资源的释放,若不进行释放,在 *** 作大量数据的时候,会出现一些问题,DB2 SQL Error: SQLCODE=-805, SQLSTATE=51002 错误就是其中的一种.这种错误只要在代码中将使用完毕的PreparedStatement ,Statement,CallableStatement,ResultSet,Connection对象全部关闭即可[即调用close()方法即可],关闭顺序最好是:1>ResultSet 2>PreparedStatement ,Statement,CallableStatement 3>Connection
db2diag.log没有两天前的记录了,应该是被删除了,默认DB2数据库不会自动清理db2diag.log日志。清理后没办法找回了,不过与db2diag.log一起的还有一个文件 <instance_name>.nfy也记录了一些日志
db2diag.log文件权限在unix上是666,好像有权登录系统的用户都可以修改,要查谁清理了比较麻烦,因为只有 *** 作系统会记录用户这种行为。
如果只是定期发生的行为,可以看看是不是有定时任务进行了备份清理
如果是偶然发生的,你可以这么做(假如是unix系统):
cat /etc/passwd|awk -F: '{print $1,$6}'|while read user home
do
cd $home
echo $user history include db2diag
cat .sh_history |grep -i db2diag
done
如果有人进行了清理,就会有类似 rm db2diag.log 或 >db2diag.log这样的命令,但具体是什么时候清理的,用户的history文件不会记录。
为了安全审计,一般借助第三方工具,记录用户在 *** 作系统上的所有行为(包括时间)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)