linux I/O和oracle的关系(一)

最近在做数据迁移,发现用数据库泵要比用DML语言(insert)快很多,大概一个8G左右的表数据库几分钟就可以导入成功,而用DML语言需要2-3个小时才能完成。最初以为机器性能不行,想起来最进接触的Linux HugePages相关知识。

通过后来学习发现在数据库内存为AMM管理模式下,不支持Linux HugePages 

关于相关说明:HugePages and Oracle Database 11g Automatic Memory Management (AMM) on Linux (文档 ID 749851.1)

Linux HugePages说明:http://blog.csdn.net/zhouyh139/article/details/8662768#comments

查看v$log表,发现绝大多数日志为active状态。遂将DML语言改为并行nologging形式:

insert /*+position(t1,4)*/  into  t1  select /*+position(t2,4)*/  * from t2  nolongging;

发现还是不行,依旧很慢。无奈给数据库做了一个statspack。发现问题:

 Top 5 Timed Events                                                   Avg %Total               

~~~~~~~~~~~~~~~~~~                                                wait  Call                

Event                                             Waits   Time (s)  (ms)   Time              

----------------------------------------- ------------ ----------- ------  ------                 

db file async I/O submit             208        1,740  8367  42.6                   

free buffer waits                          804        1,552  1930  38.0                  

rdbms ipc reply                           150         282    1880   6.9                    

log file parallel write                   1,776     219     124     5.4                    

db file scattered read                 3,299     107      33      2.6                   

 -------------------------------------------------------------                                             

发现db file async I/O submit等待事件,且每个等待高达8367秒。同时还伴有free buffer waits等待事件,先查询后者如下:
这个等待事件出现是因为dbwr没有及时将dirty buffer写到磁盘,造成server process得到不到free buffer。造成dbwr写脏块慢的原因主要由以下几种情况:

  • 1i/o

检查v$filestat,是否大量磁盘写操作发生;通过iostat等操作系统命令查看磁盘写情况。

可以通过换更快速磁盘及I/O分担的方法解决i/o慢的问题。

  • 2buffer cache设置过小造成dbwr刷新缓慢 

通过V$DB_CACHE_ADVICE获得较合理的buffer cache大小并进行调整。

  • 3
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值