您好,欢迎访问一九零五行业门户网

遭遇ORA-07445 [ACCESS_VIOLATION] [unable_to_trans_pc

像平常一样,准备启动自己机器上的测试数据库看点东西,net start oracleservicening,正常,sqlplus以sysdba登入,奇怪,这次怎么10秒了还没反映,嗯,机器 不好,先做点别的事情吧。 几分钟后再来看看,还是挂起在那里,不对劲,第一反应,看alert,果然有
像平常一样,准备启动自己机器上的测试数据库看点东西,net start oracleservicening,正常,sqlplus以sysdba登入,奇怪,这次怎么10秒了还没反映,嗯,机器不好,先做点别的事情吧。
几分钟后再来看看,还是挂起在那里,不对劲,第一反应,看alert,果然有机关:
pmon started with pid=2, os id=404
psp0 started with pid=3, os id=888
mman started with pid=4, os id=3628
dbw0 started with pid=5, os id=148
lgwr started with pid=6, os id=3944
ckpt started with pid=7, os id=252
smon started with pid=8, os id=2336
reco started with pid=9, os id=2452
cjq0 started with pid=10, os id=3772
mmon started with pid=11, os id=3728
mmnl started with pid=12, os id=3204
fri mar 16 09:09:47 2007
errors in file e:oracleora10adminningudumpning_ora_3848.trc:
ora-07445: exception encountered: core dump [access_violation] [unable_to_trans_pc] [pc:0x77e7fa69] [addr:0x7d42] [unable_to_write] []
晕,一直好好的,怎么突然出07445错误了,而且google,metalink转了一遍,也没发现什么有价值的地方。回想之前,唯一的改动好像是将
buffer cache调小了点,内存不够用,没办法。alert再往前看看
__db_cache_size = 41943040
db_cache_size = 41943040
嗯,只有40m,记得之前好像是48m,一直用的spfile,之前也没有保存pfile,只有先startup nomout,然后create pfile from spfile来生成一个了。
停止服务,修改注册表,将启动服务时自动startup数据库的选项改为false,然后重新启动服务
c:>sqlplus /nolog
sql*plus: release 10.2.0.3.0 - production on fri mar 16 09:15:04 2007
copyright (c) 1982, 2006, oracle. all rights reserved.
@>conn / as sysdba
connected to an idle instance.
sys@ning>startup nomount;
ora-24324: service handle not initialized
ora-24323: value not allowed
ora-03113: end-of-file on communication channel
我晕,这招不灵光,根本instance都起不来,也对,如果是内存参数有问题,起不来也正常。看来不能偷懒,还是利用alert里面记录的非默认参数自己弄一个pfile了,alert真是信息丰富啊:)
system parameters with non-default values:
processes = 150
__shared_pool_size = 83886080
shared_pool_size = 83886080
large_pool_size = 0
java_pool_size = 0
control_files = e:oracleoradataningcontrol01.ctl, e:oracleoradataningcontrol02.ctl,
e:oracleoradataningcontrol03.ctl
db_block_size = 8192
__db_cache_size = 41943040
db_cache_size = 41943040
compatible = 10.2.0.1.0
db_file_multiblock_read_count= 16
dml_locks = 2
undo_management = auto
undo_tablespace = undotbs1
remote_login_passwordfile= exclusive
db_domain = 
job_queue_processes = 10
audit_file_dest = e:oracleora10adminningadump
background_dump_dest = e:oracleora10adminningbdump
user_dump_dest = e:oracleora10adminningudump
core_dump_dest = e:oracleora10adminningcdump
db_name = ning
open_cursors = 300
pga_aggregate_target = 95420416
sys@ning>startup nomount pfile='d:initning.ora';
ora-24324: service handle not initialized
ora-24323: value not allowed
ora-03113: end-of-file on communication channel
偶分特,还不行。这次alert里面还报了一堆没有参数的额07445了
fri mar 16 09:53:54 2007
errors in file e:oracleora10adminningudumpning_ora_3812.trc:
ora-07445: exception encountered: core dump [] [] [] [] [] []
ora-07445: exception encountered: core dump [] [] [] [] [] []
ora-07445: exception encountered: core dump [] [] [] [] [] []
ora-07445: exception encountered: core dump [] [] [] [] [] []
ora-07445: exception encountered: core dump [] [] [] [] [] []
ora-07445: exception encountered: core dump [] [] [] [] [] []
ora-07445: exception encountered: core dump [] [] [] [] [] []
ora-07445: exception encountered: core dump [] [] [] [] [] []
ora-07445: exception encountered: core dump [] [] [] [] [] []
ora-07445: exception encountered: core dump [] [] [] [] [] []
ora-07445: exception encountered: core dump [] [] [] [] [] []
ora-07445: exception encountered: core dump [] [] [] [] [] []
ora-07445: exception encountered: core dump [access_violation] [unable_to_trans_pc] [pc:0x7c911f52] [addr:0x6c63616f]
[unable_to_read] []
ora-07445: exception encountered: core dump [access_violation] [unable_to_trans_pc] [pc:0x7c911f52] [addr:0x6c63616f]
[unable_to_read] []
嗯,不好意思,刚才好像只改了db_cache_size,忘记改__db_cache_size了,再来
sys@ning>startup nomount pfile='d:initning.ora';
oracle instance started.
total system global area 142606336 bytes
fixed size 1289340 bytes
variable size 83886980 bytes
database buffers 50331648 bytes
redo buffers 7098368 bytes
sys@ning>alter database mount;
database altered.
sys@ning>alter database open;
database altered.
终于起来了,哎,不过将buffer cache改小了8m,至于弄个07445的错误来吓我么。
重新生成spfile
sys@ning>create spfile from pfile;
file created.
不过这也告诉我们,生产库上的参数,如果没有经过充分测试,千万不要随便乱改,尤其是一些高危参数,比如内存大小啊,cursor_sharing啊什么的。并且做任何改变之前,先做好文档记录,万一有问题,还能追查到出问题之前对于系统的改动情况,这个对于排错是有相当大的帮助的。
其它类似信息

推荐信息