問題現(xiàn)象
分析過程
這個ORA-29538提示java未安裝,查看視圖發(fā)現(xiàn)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
大概率可以猜測在建庫時把相關(guān)組件給篩選掉了。
如下圖,選擇Custom Database選項(xiàng):
在文中截圖的第八步database components選項(xiàng)中,可以選擇是否安裝Oracle JVM組件:
解決方案
可以通過跑相關(guān)的jvm安裝腳本,來解決此問題。具體步驟如下:
1. 查看當(dāng)前組件狀態(tài),失效狀態(tài)對象。
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. 調(diào)整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. 運(yùn)行創(chuàng)建jvm腳本,啟動一個節(jié)點(diǎn)執(zhí)行:
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
/
--上述命令執(zhí)行報(bào)如下錯誤,可忽略繼續(xù)執(zhí)行:
--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,查看輸出日志是否有報(bào)錯。
5. 啟庫。
6. 驗(yàn)證命令:
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
--其它的一些細(xì)節(jié)可以參考:
MOS
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/129534.html
集成安裝之oracle19C GI升級遇坑分享 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...
摘要:什么是內(nèi)存溢出內(nèi)存溢出是指,程序創(chuàng)建對象需要內(nèi)存,但是卻沒有內(nèi)存可用了,內(nèi)存就溢出了。使用命令查看個數(shù)輸入后,按診斷是文件在服務(wù)端沒讀取到,還是內(nèi)存溢出。無耐,阿里云學(xué)生機(jī)配置不好,只能稍微修改一點(diǎn),再將文件切割為小文件上傳了參數(shù)請參考 1、什么是內(nèi)存泄漏內(nèi)存泄漏是指,有未被釋放的java對象,一直停留在內(nèi)存中。GCRoot 無法追蹤到此對象,導(dǎo)致此對象無法被回收。 2、什么是內(nèi)存溢出...
利用Oracle ADG升級11.2.0.4到19.8案例分享 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75...
摘要:現(xiàn)象登入生產(chǎn)環(huán)境,使用命令因?yàn)檫@時候并沒有打的,所以只能觀察現(xiàn)象。其他的可以根據(jù)這個類推,是內(nèi)純的占用量。 前言 我們的游戲上線之初,經(jīng)常有玩家反饋卡,或者有網(wǎng)絡(luò)延遲等現(xiàn)象,造成用戶流失等現(xiàn)象,這時候我就想到是不是可能是之前的jvm配置有問題,或者存在內(nèi)存泄露等問題。 現(xiàn)象 登入生產(chǎn)環(huán)境,使用命令,因?yàn)檫@時候并沒有打gc的log,所以只能觀察現(xiàn)象。 jstat -gcutil 270...
摘要:首先先解讀下這個報(bào)警內(nèi)容,原因活躍線程數(shù)過多,是監(jiān)聽的端口號用來獲取虛擬機(jī)各項(xiàng)信息,代表著此時的線程數(shù),是設(shè)置的報(bào)警閾值。 前言 前天,一位21世紀(jì)的好好青年正在工位上默念社會主義大法好的時候,釘釘上又報(bào)警了(公司項(xiàng)目接入了open-faclon監(jiān)控,指標(biāo)不正常會報(bào)警給釘釘?shù)臋C(jī)器人),無奈默默流淚揮手告別社會主義大法開始定位線上問題。 報(bào)警內(nèi)容 首先我們先來看下報(bào)警信息,為防止泄露公...
Goldengate目標(biāo)端11g升級至19c img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...
閱讀 1493·2023-01-11 13:20
閱讀 1851·2023-01-11 13:20
閱讀 1290·2023-01-11 13:20
閱讀 2041·2023-01-11 13:20
閱讀 4243·2023-01-11 13:20
閱讀 2948·2023-01-11 13:20
閱讀 1581·2023-01-11 13:20
閱讀 3853·2023-01-11 13:20