Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

3

积分

0

好友

0

主题
1#
发表于 2012-1-11 22:05:18 | 查看: 7790| 回复: 5
最近公司的一个应用突然特别慢。主要是涉及到本地数据库通过dblink访问远端数据库,做一些查询和修改,量比较大,而且时间相对集中。本地数据库为AIX6+Oralce 10.2.0.4
应用服务器是Tomcat 5.5

远端数据库为AIX5.3+ Oracle 9.2.0.4

主要业务模型是。在应用服务器上,通过选择本地服务器的一些单据,生成一些合同,直接通过dblink插入远端数据库的某个表。

现在遇到的情况是,生成合同的时候很慢,有时候甚至无法生成。有时候会报分布式事务失败,需要回滚的错误。
通过检查数据库日志,提示是dblink存在问题,建议检查网络。
不过最近网络一直没有做过任何修改。而且ping远端服务器以及tnsping远端服务器服务名都是正常的,ping一般都在1ms以内。tnsping一般都只20ms以内。没有掉包。初步判断网络没有问题。

请问大家有遇到过dblink操作远端数据库很慢的情况吗?以及有什么好的经验和建议?
2#
发表于 2012-1-11 22:06:06
今天比较晚了, 明天回复该帖子

回复 只看该作者 道具 举报

3#
发表于 2012-1-11 22:15:08
出一份低性能时段的AWR报告、观察当时数据库的等待事件情况。如果网络真的没有,那么IO是否有做过观察?

回复 只看该作者 道具 举报

4#
发表于 2012-1-12 20:12:15
1. 不建议应用频繁的使用dblink , 分布式事务远不如本地事务稳定

2. 建议你 生成一份插入缓慢的10046 报告并上传 以获取更多信息。

如果无法做10046的话 ,请上传最近的ASH记录

conn / as sysdba
oradebug setmypid
oradebug dump ashdump 10

oradebug tracefile_name;

上传该trace文件。

回复 只看该作者 道具 举报

5#
发表于 2012-1-12 21:35:46
建议查询结果在本地生成临时表,然后再把临时表的数据传到dblink

回复 只看该作者 道具 举报

6#
发表于 2012-1-13 20:19:07
感谢大家的帮助。今天把整个包重新写了下。通过本地缓存表,然后批量刷到远端数据库,而不是原来的通过游标直接一条条处理,性能已经好了很多。
周一去生成一下报告,看看具体的等待究竟发生在哪里。

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-23 20:55 , Processed in 0.047626 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569