ORA-00600: 内部错误代码, 参数: [qcisSetPlsqlCtx:tzi init]

最近在客户的开发环境上遇到一个奇怪的问题, 启动之后,alert日志中经常出现类似如下的日志信息:

Errors in file e:\app\administrator\diag\rdbms\hydeezyg\hydeezyg\trace\hydeezyg_ora_9064.trc  (incident=1):
ORA-00600: 内部错误代码, 参数: [qcisSetPlsqlCtx:tzi init], [], [], [], [], [], [], [], [], [], [], []
Errors in file e:\app\administrator\diag\rdbms\hydeezyg\hydeezyg\trace\hydeezyg_ora_9064.trc:
ORA-00600: 内部错误代码, 参数: [qcisSetPlsqlCtx:tzi init], [], [], [], [], [], [], [], [], [], [], []

在前端登录时也提示:
ORA-01804: 时区信息无法初始化。

问题出现背景:
1. 客户的测试,开发环境的数据库在同一个数据库服务器上,某一天,客户重装了操作系统(数据文件,控制文件,参数文件等都在磁盘上,并未丢失)
2. 操作系统重装完成之后,我们的售后找我把库拉起来.
3. 我以为开发环境安装的数据库软件是11.2.0.4的版本,安装11.2.0.4之后尝试启动数据库,提示要startup upgrade
   这时我才意识到客户的数据库是11.2.0.1的版本
4. 卸载11.2.0.4, 重装11.2.0.1, 其中的一个库OPEN之后并无问题,另外一个库提示ORA-00600 qcisSetPlsqlCtx:tzi init]

检查, 搜索MOS, 看到了一篇文档:
ORA-600 [qcisSetPlsqlCtx:tzi init] after Database Restart (文档 ID 362036.1)

A) Oracle version 11.2 and higher: 

A.1) check if the required DSt patch is applied/available in the $ORACLE_HOME 

In 11.2 there are no timezlrg.dat and timezone.dat, this is normal and intended. 
please do NOT make any symbolic links for timezlrg.dat and timezone.dat or copy any of the files in \oracore\zoneinfo\ and rename them to timezlrg.dat and timezone.dat 
in 11.2 there should be NO timezlrg.dat and timezone.dat in $ORACLE_HOME/oracore/zoneinfo/  (unix) or %ORACLE_HOME%\oracore\zoneinfo\ (windows) 

Oracle 11.2.0.1 has by default all RDBMS DST updates from DSTv1 to DSTv11 included in the software installation. 
Oracle 11.2.0.2 through 11.2.0.4 has by default all RDBMS DST updates from DSTv1 to DSTv14 included in the software installation. 
Oracle 12.1.0.1 and 12.1.0.2 has by default all RDBMS DST updates from DSTv1 to DSTv18 included in the software installation. 

These files are found in $ORACLE_HOME/oracore/zoneinfo and have a prefix indicating the DST version. 
For example timezlrg_4.dat is the DSTv4 "large" file, timezlrg_11.dat is the DSTv11 "large" file. 

connect and check: 

select NAME, VALUE$ from SYS.PROPS$ where NAME like ('DST_%_TT_VERSION'); 

DST_SECONDARY_TT_VERSION -> should normally be 0 , if this has a value then also check if it is applied 
DST_PRIMARY_TT_VERSION -> required TZ file 

if DST_PRIMARY_TT_VERSION  is for example "16" then check if 

 $ORACLE_HOME/oracore/zoneinfo or %ORACLE_HOME%\oracore\zoneinfo 

* contains timezone_16.dat and timezlrg_16.dat if not then apply the missing DSTv16 patch 
* the files are readable for the ORACLE OS user , if not adjust permissions 

NOTE: this does not means you always need to apply DSTV16, the needed patch is depending on the version found by the select. 
List of all DST patch numbers: Note 412160.1 "Updated DST transitions and new Time Zones in Oracle Time Zone File patches" / H) Overview of what DST version is by default used / included in what Oracle RDBMS version and all DST patch numbers 

Again do NOT create yourself any timezlrg.dat and timezone.dat files or links.

其中提到了timezone的时区信息必须有时区文件信息一一对应

检查了一下, 以下是输出信息:

SQL> col name format a30
SQL> col value$ format a10
SQL> select NAME, VALUE$ from SYS.PROPS$ where NAME like ('DST_%_TT_VERSION');

NAME                           VALUE$
------------------------------ ----------
DST_PRIMARY_TT_VERSION         14
DST_SECONDARY_TT_VERSION       0

这样,就必须有时区信息文件
E:\app\Administrator\product\11.2.0\dbhome_1\oracore\zoneinfo\timezlrg_14.dat
E:\app\Administrator\product\11.2.0\dbhome_1\oracore\zoneinfo\timezone_14.dat
对应

检查安装目录之后,果然没有这两个文件。
从旧的安装目录拷贝至新的目录之后,重新启动,就再未出现这个问题








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

转载于:http://blog.itpub.net/8520577/viewspace-2152605/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值