問題現(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選項:
在文中截圖的第八步database components選項中,可以選擇是否安裝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. 運行創(chuàng)建jvm腳本,啟動一個節(jié)點執(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í)行報如下錯誤,可忽略繼續(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,查看輸出日志是否有報錯。
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
--其它的一些細(xì)節(jié)可以參考:
MOS
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/129534.html
摘要:什么是內(nèi)存溢出內(nèi)存溢出是指,程序創(chuàng)建對象需要內(nèi)存,但是卻沒有內(nèi)存可用了,內(nèi)存就溢出了。使用命令查看個數(shù)輸入后,按診斷是文件在服務(wù)端沒讀取到,還是內(nèi)存溢出。無耐,阿里云學(xué)生機(jī)配置不好,只能稍微修改一點,再將文件切割為小文件上傳了參數(shù)請參考 1、什么是內(nèi)存泄漏內(nèi)存泄漏是指,有未被釋放的java對象,一直停留在內(nèi)存中。GCRoot 無法追蹤到此對象,導(dǎo)致此對象無法被回收。 2、什么是內(nèi)存溢出...
摘要:現(xiàn)象登入生產(chǎn)環(huán)境,使用命令因為這時候并沒有打的,所以只能觀察現(xiàn)象。其他的可以根據(jù)這個類推,是內(nèi)純的占用量。 前言 我們的游戲上線之初,經(jīng)常有玩家反饋卡,或者有網(wǎng)絡(luò)延遲等現(xiàn)象,造成用戶流失等現(xiàn)象,這時候我就想到是不是可能是之前的jvm配置有問題,或者存在內(nèi)存泄露等問題。 現(xiàn)象 登入生產(chǎn)環(huán)境,使用命令,因為這時候并沒有打gc的log,所以只能觀察現(xiàn)象。 jstat -gcutil 270...
摘要:首先先解讀下這個報警內(nèi)容,原因活躍線程數(shù)過多,是監(jiān)聽的端口號用來獲取虛擬機(jī)各項信息,代表著此時的線程數(shù),是設(shè)置的報警閾值。 前言 前天,一位21世紀(jì)的好好青年正在工位上默念社會主義大法好的時候,釘釘上又報警了(公司項目接入了open-faclon監(jiān)控,指標(biāo)不正常會報警給釘釘?shù)臋C(jī)器人),無奈默默流淚揮手告別社會主義大法開始定位線上問題。 報警內(nèi)容 首先我們先來看下報警信息,為防止泄露公...
摘要:優(yōu)化空間不大主要關(guān)注另外兩個上面。目前為止,項目打包后的大部頭就是,這個目前的優(yōu)化空間較小。當(dāng)然,從整體優(yōu)化的大維度上來說優(yōu)化的點還有很多,這個文章繼續(xù)更新下去。 項目現(xiàn)狀 項目是一個數(shù)據(jù)監(jiān)測平臺,引入了ehcart和three.js 負(fù)責(zé)項目的數(shù)據(jù)可視化;打包后,體積高達(dá)2.1M,這個體積相比于我的項目規(guī)模來說就顯得稍有笨重了 使用webpack-bundle-analyzer分析了...
摘要:最近面試一家有直播業(yè)務(wù)的公司,明顯感覺到對多線程的理解有一些要求。第一輪面試大概就面了分鐘左右,一輪下來口干舌燥。下面對面試題做了下簡單分類,分享給大家。 最近面試一家有直播業(yè)務(wù)的公司,明顯感覺到對多線程的理解有一些要求。第一輪面試大概就面了 70 分鐘左右,一輪下來口干舌燥。 下面對面試題做了下簡單分類,分享給大家。 多線程 有什么方法可以監(jiān)控線程的狀態(tài) synchronized ...
閱讀 1347·2023-01-11 13:20
閱讀 1686·2023-01-11 13:20
閱讀 1133·2023-01-11 13:20
閱讀 1860·2023-01-11 13:20
閱讀 4104·2023-01-11 13:20
閱讀 2705·2023-01-11 13:20
閱讀 1386·2023-01-11 13:20
閱讀 3599·2023-01-11 13:20