Oracle 12c ORA-29548报错的处理方法

发布时间:2021-09-14 18:02:24 作者:chen
来源:亿速云 阅读:596

本篇内容主要讲解“Oracle 12c ORA-29548报错的处理方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle 12c ORA-29548报错的处理方法”吧!

一、基础环境介绍

OS:Red Hat Enterprise Linux Server release 6.6

GI:12.1.0.2

DB:12.1.0.2

PSU:12.1.0.2.180717

Opatch:12.2.0.1.14

二、处理过程

1、检查操作系统jdk版本

cd $ORACLE_HOME/jdk/bin

./java –version

Java version “1.6.0_75”

Java(TM) SE Runtime Environment (build 20.75-b01,mixed mode)

2、检查OPATCH版本

cd $ORACLE_HOME/Opatch

./opatch lsinv

3、检查数据库中的JDK版本

SQL> select dbms_java.get_jdk_version() from dual;

ERROR at line 1:
ORA-29548: Java system class reported: release of classes.bin in the database(12.1.0.2.0.1.6)
does not match that of the oracle executable(12.1.0.2.180717.1.6)

4、修复数据库中的java对象

SQL> @?/javavm/install/update_javavm_db.sql

SQL> SET FEEDBACK 1
SQL> SET NUMWIDTH 10
SQL> SET LINESIZE 80
SQL> SET TRIMSPOOL ON
SQL> SET TAB OFF
SQL> SET PAGESIZE 100
SQL>
SQL> alter session set “_ORACLE_SCRIPT”=true;

Session altered.

SQL> — If Java is installed, do CJS.
SQL>
SQL> — If CJS can deal with the SROs inconsistent with the new JDK,
SQL> — the drop_sros() call here can be removed.
SQL> call initjvmaux.drop_sros();

Call completed.

SQL> create or replace java system;
2 /

Java created.

SQL> update dependency$
2 set p_timestamp=(select stime from obj$ where obj#=p_obj#)
3 where (select stime from obj$ where obj#=p_obj#)!=p_timestamp and
4 (select type# from obj$ where obj#=p_obj#)=29 and
5 (select owner# from obj$ where obj#=p_obj#)=0;

0 rows updated.

SQL> commit;

Commit complete.

SQL>
SQL> alter session set “_ORACLE_SCRIPT”=false;

Session altered.

5、验证

CDB中可以检查数据库jdk版本,pdb中仍然报错

SQL> select dbms_java.get_jdk_version() from dual;

ERROR at line 1:
ORA-29548: Java system class reported: release of classes.bin in the database(12.1.0.2.0.1.6)
does not match that of the oracle executable(12.1.0.2.180717.1.6)

-解决办法

在pdb再次执行

SQL> @?/javavm/install/update_javavm_db.sql

      生产环境进行Oracle 12c数据库迁移和升级时如应用系统使用了数据库中的java对象,ORA-29548是常见报错,本人在12.1和12.2迁移和升级过程中使用rman或数据泵都遇到过该报错。

到此,相信大家对“Oracle 12c ORA-29548报错的处理方法”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. oracle 12c修改账号密码(带特殊字符)
  2. Centos7中如何部署安装Oracle 12c

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

oracle

上一篇:如何使用HTML5实现在线视频播放

下一篇:CSS中Display属性可能的值有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》