惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
Help Net Security
Help Net Security
P
Privacy International News Feed
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tor Project blog
AWS News Blog
AWS News Blog
K
Kaspersky official blog
A
Arctic Wolf
Latest news
Latest news
T
Threat Research - Cisco Blogs
L
LINUX DO - 最新话题
P
Privacy & Cybersecurity Law Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
Google DeepMind News
Google DeepMind News
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
月光博客
月光博客
N
News and Events Feed by Topic
Jina AI
Jina AI
博客园 - 司徒正美
WordPress大学
WordPress大学
罗磊的独立博客
雷峰网
雷峰网
AI
AI
Hugging Face - Blog
Hugging Face - Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Security @ Cisco Blogs
博客园 - 三生石上(FineUI控件)
H
Heimdal Security Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Cisco Blogs
博客园 - 【当耐特】
The Hacker News
The Hacker News
有赞技术团队
有赞技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Schneier on Security
Schneier on Security
博客园 - Franky
S
SegmentFault 最新的问题
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Cloudbric
Cloudbric
爱范儿
爱范儿
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Secure Thoughts
Last Week in AI
Last Week in AI
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Know Your Adversary
Know Your Adversary
Google DeepMind News
Google DeepMind News

博客园 - syuko

【转】IE8 松散耦合进程框架探索 【转】Windows 文件夹的秘密:Windows 目录到底占用了多少真实的硬盘空间 【转】d:DesignInstance, d:DesignData in Visual Studio 2010 Beta2 RadTreeView:How to Get Item by Path RadTreeViewItem - event MouseLeftButtonDown or Up never fires visual studio 2005 中的部署 产生“不可恢复的生成错误” Windows 7使用记事及琐事流水帐-职称英语考试始末记事 [转载]DNS解析错误解决办法 鼠标(Mouse)的复数问题告诉我们治学要严谨 Just for Fun-生存,社会秩序,娱乐 软件创作 VB6.0通过SoapToolkit访问WebService问题 [转] oracle rownum 探析 用MSIL来写一个“Hello World” 天地生人,有一人莫不有一人之业;人生在世,有一日当尽一日之勤 小窥黄鹤楼 JavaScript基础之继承(二) JavaScript基础之继承(附实例) JavaScript基础之对象
Oracle难道不能处理大数据并发的问题
syuko · 2009-11-11 · via 博客园 - syuko

Oracle难道不能处理大数据并发的问题

前天用户突然反映一个软件总是报ora-00603错误。一开始一位就是个普通的表空间不足之类的,可是一看日志却发现不是那么简单。

截取部分日志如下:

Thu Nov 05 15:28:53 2009
Errors in file d:\oracle\admin\orcl\udump\orcl_ora_4684.trc:
ORA-00603: ORACLE server session terminated by fatal error
ORA-01114: IO error writing block to file 11 (block # 42773)
ORA-27041: unable to open file
OSD-04002: 无法打开文件
O/S-Error: (OS 32) 另一个程序正在使用此文件,进程无法访问。
ORA-01114: IO error writing block to file 11 (block # 42773)
ORA-27041: unable to open file
OSD-04002: 无法打开文件
O/S-Error: (OS 32) 另一个程序正在使用此文件,进程无法访问。
ORA-01114: IO error writing block to file 11 (block # 42773)
ORA-27041: unable to open file
OSD-04002: 无法打开文件
O/S-Error: (OS 32) 另一个程序正在使用此文件,进程无法访问。

里面的File 11就是我的那个程序使用的表空间的一个数据文件。表空间总共有四个数据文件加起来8G左右,总体使用率在70%左右。数据文件号分别为9,11,13,14。出问题的文件号不一定,时间也是随机的,有可能一分钟就会重复上面那段日志,有可能几秒就重复一次。

下面是orcl_ora_4684.trc文件的片段:

JServer Release 9.2.0.1.0 - Production
Windows 2000 Version 5.2 Service Pack 2, CPU type 586
Instance name: orcl

Redo thread mounted by this instance: 1

Oracle process number: 30

Windows thread id: 4684, image: ORACLE.EXE


*** SESSION ID:(39.280) 2009-11-05 15:28:52.000
*** 2009-11-05 15:28:52.000
ksedmp: internal or fatal error
ORA-01114: 将块写入文件 11 时出现 IO 错误 (块 # 42773)
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 32) 另一个程序正在使用此文件,进程无法访问。
ORA-01114: 将块写入文件 11 时出现 IO 错误 (块 # 42773)
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 32) 另一个程序正在使用此文件,进程无法访问。
ORA-01114: 将块写入文件 11 时出现 IO 错误 (块 # 42773)
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 32) 另一个程序正在使用此文件,进程无法访问。
Current SQL statement for this session:
INSERT INTO "VIO_JDCZP" ("XH","HPHM","HPZL","PHOTO1") VALUES (:1,:2,:3,:4) RETURNING ROWID into :5
----- Call Stack Trace -----
calling              call     entry                argument values in hex     
location             type     point                (? means dubious value)    
-------------------- -------- -------------------- ----------------------------
_ksedmp+147          CALLrel  _ksedst+0           
..1.44_7.except.114  CALLrel  _ksedmp+0            3
+fc                                               
..1.1_3.except.34+a  CALLrel  _ksupop+0            2
f                                                 
_ttcpip+a86          CALLreg  00000000             5E 14 8ACE738 0
_opitsk+2f4          CALLrel  _ttcpip+0           
_opiino+5fc          CALLrel  _opitsk+0            0 0 A616320 6D1F564 C2 0
_opiodr+4cd          CALLreg  00000000             3C 4 8ACFBD8
_opidrv+233          CALLrel  _opiodr+0            3C 4 8ACFBD8 0
_sou2o+19            CALLrel  _opidrv+0           
_opimai+10a          CALLrel  _sou2o+0            
_OracleThreadStart@  CALLrel  _opimai+0           
4+35c                                             
7C824826             CALLreg  00000000            
 从这个日志中看,“Current SQL statement for this session:
INSERT INTO "VIO_JDCZP" ("XH","HPHM","HPZL","PHOTO1") VALUES (:1,:2,:3,:4) RETURNING ROWID into :5”这句话说明了是在执行“INSERT INTO "VIO_JDCZP" ("XH","HPHM","HPZL","PHOTO1") VALUES (:1,:2,:3,:4) RETURNING ROWID into :5”这句话时出的问题,而且说有的错误都是这样。这句话是将一个图片写入数据库。

软件是CS结构的,总共有八个客户端。八个客户端每3秒录入一条数据,数据包括一些文本类的信息还有就是有一张图片,图片大小在80KB至200KB不等。图片是直接存入数据库中的。

现在是单个用户录入时不会出现问题,八个用户一起录入时很快就会出现这个问题。查了oracle的参数,没有用户数方面的限制和Session的限制。

现在就是觉得奇怪了,ORACLE是大型数据库,不可能会出现这种类似于并发访问的问题的。从日志简单的分析上来看是一个用户数据写入未完成时另一个用户写入数据造成数据文件被占用造成的。程序里试验过,使用事务和不使用事务结果是一样的,基本上可以排除事务将文件给锁住的原因。

不知园子里哪些仁兄能解释一下这个问题,这个问题上网上查也出不出个所以然来,只能在这里向各位求教了。