WARNING:Could not lower the asynch I/O limit to 160 for SQL direct I/O.

最近在现场维护数据库( Windows Server 2008 R2+Oracle 10.2.0.5)时,发现数据库软件所在分区的空间几乎所剩无几。
将近 100G的空间,除了操作系统和数据库软件,其余什么都没有安装 ,竟然只有6.15G可用, 这是怎么回事呢?


依次排查C盘下的目录,发现问题出在了bdmp目录。
不看不知道,一看吓一跳,超过2G的trace文件有9个,其中有一个将近10G;
其余将近1G的还有不少,怪不得 只有6.15G可用 空间呢。


那么,这些trace文件都记录了什么内容呢?选了几个KB、MB级别的文件打开看了一下,发现内容都一样:
点击( 此处 )折叠或打开
  1. Dump file c:\oracle\product\10.2.0\admin\HOEGH\bdump\HOEGH_s009_6048.trc
  2. Sat Jul 30 01:07:40 2016
  3. ORACLE V10.2.0.5.0 - 64bit Production vsnsta=0
  4. vsnsql=14 vsnxtr=3
  5. Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
  6. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  7. Windows NT Version V6.1 Service Pack 1
  8. CPU : 40 - type 8664, 20 Physical Cores
  9. Process Affinity : 0x0000000000000000
  10. Memory (Avail/Total): Ph:11348M/32757M, Ph+PgF:43306M/65513M
  11. Instance name: HOEGH

  12. Redo thread mounted by this instance: 1

  13. Oracle process number: 28

  14. Windows thread id: 6048, image: ORACLE.EXE (S009)


  15. *** 2016-07-30 01:07:40.094
  16. *** SESSION ID:(291.400) 2016-07-30 01:07:40.079
  17. WARNING:Could not lower the asynch I/O limit to 160 for SQL direct I/O. It is set to -1
  18. *** SESSION ID:(168.4402) 2016-07-30 01:07:41.295
  19. WARNING:Could not lower the asynch I/O limit to 160 for SQL direct I/O. It is set to -1
  20. *** 2016-07-30 01:07:53.978
  21. *** SESSION ID:(205.686) 2016-07-30 01:07:53.978
  22. WARNING:Could not lower the asynch I/O limit to 160 for SQL direct I/O. It is set to -1
  23. *** SESSION ID:(224.27814) 2016-07-30 01:07:55.195
  24. WARNING:Could not lower the asynch I/O limit to 160 for SQL direct I/O. It is set to -1
  25. *** 2016-07-30 01:09:37.079
  26. *** SESSION ID:(241.21749) 2016-07-30 01:09:37.079
  27. WARNING:Could not lower the asynch I/O limit to 160 for SQL direct I/O. It is set to -1
  28. *** 2016-07-30 01:13:37.179
  29. *** SESSION ID:(298.53285) 2016-07-30 01:13:37.179
  30. WARNING:Could not lower the asynch I/O limit to 160 for SQL direct I/O. It is set to -1
  31. *** 2016-07-30 01:14:07.427
  32. *** SESSION ID:(219.44573) 2016-07-30 01:14:07.427
  33. WARNING:Could not lower the asynch I/O limit to 160 for SQL direct I/O. It is set to -1
  34. *** SESSION ID:(263.59334) 2016-07-30 01:14:08.691
  35. WARNING:Could not lower the asynch I/O limit to 160 for SQL direct I/O. It is set to -1
  36. *** 2016-07-30 01:20:09.130
  37. *** SESSION ID:(160.19644) 2016-07-30 01:20:09.130
  38. WARNING:Could not lower the asynch I/O limit to 160 for SQL direct I/O. It is set to -1
  39. *** SESSION ID:(280.35874) 2016-07-30 01:20:10.346
  40. WARNING:Could not lower the asynch I/O limit to 160 for SQL direct I/O. It is set to -1
  41. *** 2016-07-30 01:21:52.277
  42. *** SESSION ID:(224.27814) 2016-07-30 01:21:52.277
  43. WARNING:Could not lower the asynch I/O limit to 160 for SQL direct I/O. It is set to -1

通过查找资料得知,这是WARNING是个Bug,和Oracle的特定版本有关:
点击( 此处 )折叠或打开
  1. 'Warning:Could not Lower the Asynch I/O Limit to 224 for SQL direct I/O. It is set to -1' After Upgrading To 10.2.0.5 (Doc ID 1155445.1)
  2. Bug 9772888 - Needless "WARNING:Could not lower the asynch I/O limit to .. for SQL direct I/O It is set to

Bug 影响的2个版本:

10.2.0.5

11.2.0.1

 

在如下版本已经修复:

12.1 (Future Release)

11.2.0.2 (Server Patch Set)

10.2.0.5.2 Patch Set Update

10.2.0.5 Patch 1 on Windows Platforms


那么,如何解决这个bug呢?
貌似 只能升级到上述修复版本或者更高版本。

回想当初,我们由10.2.0.4升级到10.2.0.5,只是为了解决Oracle在Rose HA环境下EM无法正常工作的问题(事实上只是解决了一个其中一个小bug,EM在双机切换时仍然无法正常使用)。
没想到,却引入了这么一个bug。

重要的事情说三遍:
升级需谨慎!
升级需谨慎!
升级需谨慎!


~~~~~~~ the end~~~~~~~~~
hoegh
2016.08.03

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30162081/viewspace-2122886/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30162081/viewspace-2122886/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要初始化DSP28335上的I2C总线,您可以按照以下步骤进行操作: 1. 首先,确保您的DSP28335开发环境已经正确设置并且I2C外设的引脚已经正确连接。 2. 在代码中包含相关的头文件,例如"DSP28335_I2C.h"。 3. 配置I2C的时钟和引脚。您可以使用类似以下代码的函数来配置时钟和引脚: ```c void InitI2CGpio(void) { // 配置I2C引脚 EALLOW; GpioCtrlRegs.GPBPUD.bit.GPIO32 = 0; // Enable pull-up on GPIO32 (SDAA) GpioCtrlRegs.GPBPUD.bit.GPIO33 = 0; // Enable pull-up on GPIO33 (SCLA) GpioCtrlRegs.GPBQSEL1.bit.GPIO32 = 3; // Asynch input GPIO32 (SDAA) GpioCtrlRegs.GPBQSEL1.bit.GPIO33 = 3; // Asynch input GPIO33 (SCLA) GpioCtrlRegs.GPBMUX1.bit.GPIO32 = 1; // Configure GPIO32 as SDAA GpioCtrlRegs.GPBMUX1.bit.GPIO33 = 1; // Configure GPIO33 as SCLA EDIS; } ``` 4. 初始化I2C控制器并设置相关参数。您可以使用类似以下代码的函数来初始化I2C控制器: ```c void InitI2C(void) { // 将I2C控制器复位 I2caRegs.I2CMDR.bit.IRS = 0x1; // 设置I2C时钟分频 I2caRegs.I2CPSC.all = 7; // I2C时钟分频为8(SYSCLKOUT/8) // 设置I2C时钟周期 I2caRegs.I2CCLKL = 10; // SCL低电平持续时间为10个I2C时钟周期 I2caRegs.I2CCLKH = 5; // SCL高电平持续时间为5个I2C时钟周期 // 使能ACK位 I2caRegs.I2CMDR.bit.IACK = 1; // 使能I2C控制器 I2caRegs.I2CMDR.bit.IRS = 0x0; } ``` 5. 调用适当的函数来发送或接收数据。例如,您可以使用以下代码来发送数据: ```c void SendI2CData(unsigned char data) { // 等待发送完成 while (I2caRegs.I2CMDR.bit.STP == 1); // 写入数据 I2caRegs.I2CDXR = data; // 发送数据 I2caRegs.I2CMDR.all = 0x6E20; } ``` 这些是I2C初始化的一般步骤,您可以根据您的具体需求进行调整和扩展。希望这可以帮助到您!如果您还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值