问题现象
分析过程
这个ORA-29538提示java未安装,查看视图发现jvm组件未安装。
SQL> col COMP_NAME for a30
SQL> select COMP_NAME,status from dba_registry;
COMP_NAME STATUS
------------------------------ --------------------------------------------
Oracle Database Catalog Views VALID
Oracle Database Packages and T VALID
ypes
Oracle Real Application Cluste OPTION OFF
rs
Oracle XML Database VALID
Oracle Workspace Manager VALID
Oracle Text VALID
Spatial VALID
大概率可以猜测在建库时把相关组件给筛选掉了。
如下图,选择Custom Database选项:
在文中截图的第八步database components选项中,可以选择是否安装Oracle JVM组件:
解决方案
可以通过跑相关的jvm安装脚本,来解决此问题。具体步骤如下:
1. 查看当前组件状态,失效状态对象。
su - oracle
spo /home/oracle/obj_stat.log
col COMP_NAME for a50
select COMP_NAME,status from dba_registry;
col object_name for a50
col object_type for a20
col owner for a15
select owner,object_name,object_type from dba_objects where status=INVALIED;
spo off
exit
2. 停库。
3. 调整initjvm.sql:
cd $ORACLE_HOME/javavm/install
cp initjvm.sql reinitjvm.sql
vi reinitjvm.sql
--原代码:
-- Now check whether create java system worked correctly, and if not, back
-- out of everything done in this script
variable jvmrmaction varchar2(30)
declare
ok int;
bad int;
begin
:jvmrmaction := NONE;
select count(*) into ok from obj$ where status=1 and type#=29;
select count(*) into bad from obj$ where status!=1 and type#=29 and owner#=0;
if bad > 0 or ok < 100 then
initjvmaux.abort_message(
CREATE JAVA SYSTEM did not complete successfully:,
number of java classes with status 1: || ok ||, with status != 1: || bad);
initjvmaux.abort_message(Backing out of java installation...);
:jvmrmaction := FULL_REMOVAL;
initjvmaux.endaction;
end if;
end;
/
--替换成如下代码:
-- Now check whether create java system worked correctly, and if not, log
-- it for future reference in case there are invalid java objects in SYS.
variable jvmrmaction varchar2(30)
declare
ok int;
bad int;
begin
:jvmrmaction := NONE;
select count(*) into ok from obj$ where status=1 and type#=29;
select count(*) into bad from obj$ where status!=1 and type#=29 and owner#=0;
if bad > 0 or ok < 100 then
initjvmaux.abort_message(
CREATE JAVA SYSTEM may not have completed successfully:,
number of VALID java classes: || ok ||, and INVALID java classes: || bad);
-- initjvmaux.abort_message(Backing out of java installation...);
-- :jvmrmaction := FULL_REMOVAL;
initjvmaux.endaction;
end if;
end;
/
4. 运行创建jvm脚本,启动一个节点执行:
startup
alter system enable restricted session;
alter system set "_system_trig_enabled" = false scope=memory;
alter system set "java_jit_enabled" = false scope=memory;
-- start a log file
spool full_jvminst.log;
set echo on
create or replace java system
/
--上述命令执行报如下错误,可忽略继续执行:
--create or replace java system
--*
--ERROR at line 1:
--ORA-00604: error occurred at recursive SQL level 1
--ORA-00942: table or view does not exist
@?/javavm/install/reinitjvm.sql
@?/xdk/admin/initxml.sql
@?/rdbms/admin/catjava.sql
shutdown immediate
set echo off
spool off
exit
==>检查log,查看输出日志是否有报错。
5. 启库。
6. 验证命令:
su - oracle
spool jvm_info.log
--查看最新组件信息:
SELECT SUBSTR(comp_name, 1, 30) comp_name, SUBSTR(version, 1, 20) version, status FROM dba_registry ORDER BY comp_name;
COMP_NAME VERSION STATUS
------------------------------ -------------------- ---------------
JServer JAVA Virtual Machine 19.0.0.0.0 VALID
Oracle Database Catalog Views 19.0.0.0.0 VALID
Oracle Database Java Packages 19.0.0.0.0 VALID
Oracle Database Packages and T 19.0.0.0.0 VALID
Oracle Real Application Cluste 19.0.0.0.0 OPTION OFF
Oracle Text 19.0.0.0.0 VALID
Oracle Workspace Manager 19.0.0.0.0 VALID
Oracle XDK 19.0.0.0.0 VALID
Oracle XML Database 19.0.0.0.0 VALID
Spatial 19.0.0.0.0 VALID
--其它的一些细节可以参考:
MOS
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129534.html
摘要:什么是内存溢出内存溢出是指,程序创建对象需要内存,但是却没有内存可用了,内存就溢出了。使用命令查看个数输入后,按诊断是文件在服务端没读取到,还是内存溢出。无耐,阿里云学生机配置不好,只能稍微修改一点,再将文件切割为小文件上传了参数请参考 1、什么是内存泄漏内存泄漏是指,有未被释放的java对象,一直停留在内存中。GCRoot 无法追踪到此对象,导致此对象无法被回收。 2、什么是内存溢出...
摘要:首先先解读下这个报警内容,原因活跃线程数过多,是监听的端口号用来获取虚拟机各项信息,代表着此时的线程数,是设置的报警阈值。 前言 前天,一位21世纪的好好青年正在工位上默念社会主义大法好的时候,钉钉上又报警了(公司项目接入了open-faclon监控,指标不正常会报警给钉钉的机器人),无奈默默流泪挥手告别社会主义大法开始定位线上问题。 报警内容 首先我们先来看下报警信息,为防止泄露公...
摘要:优化空间不大主要关注另外两个上面。目前为止,项目打包后的大部头就是,这个目前的优化空间较小。当然,从整体优化的大维度上来说优化的点还有很多,这个文章继续更新下去。 项目现状 项目是一个数据监测平台,引入了ehcart和three.js 负责项目的数据可视化;打包后,体积高达2.1M,这个体积相比于我的项目规模来说就显得稍有笨重了 使用webpack-bundle-analyzer分析了...
摘要:最近面试一家有直播业务的公司,明显感觉到对多线程的理解有一些要求。第一轮面试大概就面了分钟左右,一轮下来口干舌燥。下面对面试题做了下简单分类,分享给大家。 最近面试一家有直播业务的公司,明显感觉到对多线程的理解有一些要求。第一轮面试大概就面了 70 分钟左右,一轮下来口干舌燥。 下面对面试题做了下简单分类,分享给大家。 多线程 有什么方法可以监控线程的状态 synchronized ...
阅读 1346·2023-01-11 13:20
阅读 1684·2023-01-11 13:20
阅读 1132·2023-01-11 13:20
阅读 1858·2023-01-11 13:20
阅读 4100·2023-01-11 13:20
阅读 2704·2023-01-11 13:20
阅读 1385·2023-01-11 13:20
阅读 3597·2023-01-11 13:20