分类: Oracle
2013-01-05 14:17:52
oracle 10.2.0.5.0
今天门店反应系统比较慢,做业务做不下去了。于是我看了一下服务器的状态 发生了大量的锁等待会话
锁的类型是FB
select * from v$lock_type where type='FB'
1 FB Format Block tablespace # dba NO
Ensures that only one process can format data blocks in auto segment space managed tablespaces
以上是查询出来的内容。这个锁的说明是,请确定只有一个进程正在格式化你的数据块,在一个自动段管理的表空间中。
然后我又查看了这些等待锁的会话,发现很多是执行dml语句
查看p1,p2参数 再结合dba_data_files 和dba_tablespaces 我发现了问题
应该是表空间数据文件满了,虽然设置的是autoextend on 但是由于业务操作,会有多个进程对数据文件
的新空间去格式化,这样就产生了竞争contention,就产生了FB lock死锁 。看来以后要自己手动去调整
数据文件的大小了,自动增长好像有点靠不住啊。
手动调整数据文件的大小的语句是 ALTER DATABASE DATAFILE '/oradata/NNC_DATA01_01.dbf' RESIZE 15360m
也可以在表空间里增加数据文件 来起到相同的作用 语句是
alter tablespace ts_name add datafile ''/oradata/NNC_DATA01_01.dbf' size xxxM