在做数据库版本升级后重建系统包时出现以下报错
升级时采用的更换bin目录方式升级的,起初怀疑旧版本的实例跟新版本数据库程序不兼容,因此出现以下报错。采用新版本的数据库程序初始化一个新版本的实例测试执行重建系统包的命令不会报错,因此用dexp/dimp方式将旧实例的数据导入新实例方式升级,数据导入完成后将新实例的dm.ini文件按照原来的参数进行了调整。查看导入的日志发现采用的整库导出会将旧版本实例的系统包定义导入了新的实例中。
于是想导入完成后再重建一下系统包,重建系统包时又出现了开始时候的报错,经过思考觉得可能与参数调整有关,因为实例已经是新版本重新初始化的,应与升级无关了,刚初始化的新实例重建系统包也没事,证明新版本数据库本身也没问题。
参数调整时有修改EXCLUDE_RESERVED_WORDS参数屏蔽了一些关键字,还修改了COMPATIBLE_MODE参数兼容Oracle模式,怀疑这些参数调整会导致重建系统包时出现一些语法问题。
先将EXCLUDE_RESERVED_WORDS参数改回默认值,重启数据库后,执行重建系统包还是报错。
再将COMPATIBLE_MODE参数改回默认值,重启数据库后,执行重建系统包没有报错。
将COMPATIBLE_MODE参数从2改为0重启数据库后,再重建系统包。
查看COMPATIBLE_MODE参数当前值:
select PARA_NAME,PARA_VALUE from v$dm_ini where para_name ='COMPATIBLE_MODE';
修改COMPATIBLE_MODE参数为默认值0,执行以下命令后重启数据库生效。
SP_SET_PARA_VALUE(2,'COMPATIBLE_MODE',0);
重建系统包命令如下:
SP_CREATE_SYSTEM_PACKAGES (0);
SP_CREATE_SYSTEM_PACKAGES (1);
文章
阅读量
获赞
