ホームページ >データベース >mysql チュートリアル >遭遇ORA-07445 [ACCESS_VIOLATION] [unable_to_trans_pc

遭遇ORA-07445 [ACCESS_VIOLATION] [unable_to_trans_pc

WBOY
WBOYオリジナル
2016-06-07 15:11:471185ブラウズ

像平常一样,准备启动自己机器上的测试数据库看点东西,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啊什么的。并且做任何改变之前,先做好文档记录,万一有问题,还能追查到出问题之前对于系统的改动情况,这个对于排错是有相当大的帮助的。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。