Oracle的日志记录研究分析(究竟是谁?干了些什么?)
[
|
2008/01/17 13:27]
|
2008/01/17 13:27]
Oracle的日志记录
做个流水帐。
相信总会有这种情况发生。一个开发团队,有人在开发数据库上误删除和表或者错误的操作。领导追查下来,结果没有人承认,老大说,那个谁呀,就你,别瞅别人了,赶紧给我查出来。
结果你就得研究一下了。谁干的?从哪连过来的,IP多少;用什么客户端;执行啥操作了?
我是DBA吗?不是,但是这公司没有DBA啊,那就未来的吧。研究一下吧。对了,这只是事情的一半。你还得会恢复。这需要你有良好的备份策略。否则就不要谈什么恢复了。
简单分析:
开发中客户端连接过来的动作常是toad,或者是应用程序本身连接过来。异或客户端的终端命令,如exp,imp等动作。
依据上述,逐步来处理。我找到了文件记录客户端的连接日志。就是下面的listener.log
[oracle@kook ~]$ ls $ORACLE_HOME/network/log
listener.log sqlnet.log
以下为抽取的典型的连接的日志文件格式
1:本机应用程序连接
15-JAN-2008 17:15:45 * (CONNECT_DATA=(SID=fundoa)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.1)(PORT=63943)) * establish * fundoa * 0
2:客户端工具连接
15-JAN-2008 17:23:49 * (CONNECT_DATA=(SID=fundoa)(SERVER=DEDICATED)(CID=(PROGRAM=C:\Program Files\Quest Software\Toad for Oracle\TOAD.exe)(HOST=KOOK1)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.23)(PORT=1892)) * establish * fundoa * 0
3:客户端命令连接
15-JAN-2008 18:06:44 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=fundoa.glfsoft.com)(CID=(PROGRAM=C:\oracle\product\10.2.0\client_1\bin\exp.exe)(HOST=KOOK2)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.31)(PORT=2360)) * establish * fundoa.glfsoft.com * 0
通过上述的日志情况,可以看出一些端倪。但是不足以应对所有状况。
自己水平不行,继续查吧。找到了logminer的使用。可以用来分析SQL语句了。今天不行了,回头再研究吧。上面的那点东西,已经足够我解决目前的问题了。
本文链接:http://www.52zhe.cn/read.php/149.htm
本文作者:kook(若就博客内所涉及的技术问题交流,请用下面的MSN或Gmail联系我)
联系方式:(MSN:kook#live.com) (Google talk:kookliu)
没有版权:GNU,转载时请注明“转载人”欠本人一顿饭,来日见面之时兑现!谢谢合作!
做个流水帐。
引用
相信总会有这种情况发生。一个开发团队,有人在开发数据库上误删除和表或者错误的操作。领导追查下来,结果没有人承认,老大说,那个谁呀,就你,别瞅别人了,赶紧给我查出来。
结果你就得研究一下了。谁干的?从哪连过来的,IP多少;用什么客户端;执行啥操作了?
我是DBA吗?不是,但是这公司没有DBA啊,那就未来的吧。研究一下吧。对了,这只是事情的一半。你还得会恢复。这需要你有良好的备份策略。否则就不要谈什么恢复了。
简单分析:
开发中客户端连接过来的动作常是toad,或者是应用程序本身连接过来。异或客户端的终端命令,如exp,imp等动作。
依据上述,逐步来处理。我找到了文件记录客户端的连接日志。就是下面的listener.log
[oracle@kook ~]$ ls $ORACLE_HOME/network/log
listener.log sqlnet.log
以下为抽取的典型的连接的日志文件格式
1:本机应用程序连接
15-JAN-2008 17:15:45 * (CONNECT_DATA=(SID=fundoa)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.1)(PORT=63943)) * establish * fundoa * 0
2:客户端工具连接
15-JAN-2008 17:23:49 * (CONNECT_DATA=(SID=fundoa)(SERVER=DEDICATED)(CID=(PROGRAM=C:\Program Files\Quest Software\Toad for Oracle\TOAD.exe)(HOST=KOOK1)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.23)(PORT=1892)) * establish * fundoa * 0
3:客户端命令连接
15-JAN-2008 18:06:44 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=fundoa.glfsoft.com)(CID=(PROGRAM=C:\oracle\product\10.2.0\client_1\bin\exp.exe)(HOST=KOOK2)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.31)(PORT=2360)) * establish * fundoa.glfsoft.com * 0
通过上述的日志情况,可以看出一些端倪。但是不足以应对所有状况。
自己水平不行,继续查吧。找到了logminer的使用。可以用来分析SQL语句了。今天不行了,回头再研究吧。上面的那点东西,已经足够我解决目前的问题了。
本文链接:http://www.52zhe.cn/read.php/149.htm
本文作者:kook(若就博客内所涉及的技术问题交流,请用下面的MSN或Gmail联系我)
联系方式:(MSN:kook#live.com) (Google talk:kookliu)
没有版权:GNU,转载时请注明“转载人”欠本人一顿饭,来日见面之时兑现!谢谢合作!
一个简单Oracle逻辑exp备份脚本,并通过FTP传输异地存储。
关于Oracle的逻辑备份,应用exp/imp和expdp/impdp的一些差别。



