oracle 19c修复重新安装JVM
Repairing/Reinstalling JVM To A Multitenant Database (CDB and all PDBs) (Doc ID 2262919.1) 19C
Safe repair/reinstall of the JVM Component in 11.2 and up (Doc ID 2314363.1)11g
a. Create script jvm_info.sql to check JVM status. cat << EOF > jvm_info.sql ------------------------- column comp_name format a40 column version format a20 column status format a15 column owner format a30 column object_name format a30 column object_type format a15 column long_name format a75 column role format a40 set pagesize 500 set linesize 150 set trimspool on set serveroutput on set echo on --spool jvm_info.log ------ REGISTRY INFO ------ SELECT comp_name, version, status FROM dba_registry ORDER BY comp_name; SELECT * FROM dba_registry_history ORDER BY action_time DESC; ------ JAVA OBJECT INFO ------ SELECT owner, object_type, status, COUNT(*) FROM dba_objects WHERE object_type LIKE '%JAVA%' GROUP BY owner, object_type, status ORDER BY owner, object_type, status; SELECT owner, object_name, object_type, status FROM dba_objects WHERE object_name LIKE 'DBMS_JAVA%' OR object_name LIKE '%INITJVMAUX%' ORDER BY owner, object_name, object_type; SELECT owner, NVL(longdbcs,object_name) long_name, object_type, status FROM dba_objects, sys.javasnm$ WHERE object_type LIKE '%JAVA%' AND status <> 'VALID' AND short (+) = object_name ORDER BY owner, long_name, object_type; ------ JAVA ROLE INFO ------ SELECT role FROM dba_roles WHERE role LIKE '%JAVA%' ORDER BY role; ------ MEMORY INFO ------ SELECT * FROM v$sgastat WHERE pool = 'java pool' OR name = 'free memory' ORDER BY pool, name; ------ DATABASE PARAMETER INFO ------ show parameter pool_size show parameter target show parameter sga ------ TEST JAVAVM USAGE AND CHECK VERSION ------ SELECT dbms_java.get_jdk_version JDK_Version FROM dual; EOF
Create the REMOVAL scripts: pre_jvm_deinstall.sql, jvm_deinstall.sql, post_jvm_deinstall.sql, and fulljvmrm.sql
cat << EOF > pre_jvm_deinstall.sql ------------------------------ alter system set "_system_trig_enabled" = false scope=memory; -- to avoid any problems trying to run catnojava.sql, lets force the registry to reflect VALID components execute sys.dbms_registry.loaded('JAVAVM'); execute sys.dbms_registry.loaded('CATJAVA'); execute sys.dbms_registry.valid('JAVAVM'); execute sys.dbms_registry.valid('CATJAVA'); set pagesize 500 set linesize 150 select obj#, name from obj$ where type#=28 or type#=29 or type#=30 or namespace=32; EOF
cat << EOF > jvm_deinstall_part_1.sql ------------------------------ set pagesize 500 start ?/rdbms/admin/catnoexf.sql start ?/rdbms/admin/catnojav.sql start ?/xdk/admin/rmxml.sql EOF cat << EOF > jvm_deinstall_part_2.sql ------------------------------ execute rmjvm.run(FALSE); truncate table java; set pagesize 500 select * from obj$ where obj#=0 and type#=0; delete from obj$ where obj#=0 and type#=0; commit; EOF cat << EOF > post_jvm_deinstall.sql ------------------------------------ set pagesize 500 set linesize 150 select owner, count(*) from all_objects where object_type like '%JAVA%' group by owner; select obj#, name from obj$ where type#=28 or type#=29 or type#=30 or namespace=32; select o1.name from obj$ o1,obj$ o2 where o1.type#=5 and o1.owner#=1 and o1.name=o2.name and o2.type#=29; EOF cat <<EOF> jvmremoval.sql host $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -l /tmp/jvm -n 1 -b pre_jvm_deinstall_ /tmp/jvm/pre_jvm_deinstall.sql -- Note: Comment out the deinstall_part_1 if you find that you are encountering ORA-7445 or ORA-600 errors preventing them from completing -- since deinstall_part_2 will do a brute force removal of any remaining JVM related objects from SYS anyway. host $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -r -l /tmp/jvm -n 1 -b jvm_deinstall_part_1_ /tmp/jvm/jvm_deinstall_part_1.sql host $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -r -l /tmp/jvm -n 1 -b jvm_deinstall_part_2_ /tmp/jvm/jvm_deinstall_part_2.sql host $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -r -l /tmp/jvm -n 1 -b post_jvm_deinstall_ /tmp/jvm/post_jvm_deinstall.sql EOF
6. Now just cleanup any loose ends
truncate table java$jvm$status; delete from obj$ where obj#=0 and type#=0; commit;
Create the INSTALL scripts: pre_jvm_install.sql, jvm_install.sql, post_jvm_install.sql, and fulljvminstall.sql
cat << EOF > pre_jvm_install.sql ----------------------- set pagesize 500 set linesize 150 select obj#, name from obj$ where type#=28 or type#=29 or type#=30 or namespace=32; EOF cat << EOF > jvm_install.sql ----------------------- alter system set "_system_trig_enabled" = false scope=memory; start ?/javavm/install/reinitjvm.sql start ?/xdk/admin/initxml.sql start ?/rdbms/admin/catjava.sql EOF cat << EOF > post_jvm_install.sql -------------------------- set pagesize 500 set linesize 150 select obj#, name from obj$ where type#=28 or type#=29 or type#=30 or namespace=32; EOF cat << EOF > fulljvminstall.sql spool full_jvminst.log; set echo on host $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -l /tmp/jvm -n 1 -b pre_jvm_install_ pre_jvm_install.sql host $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -l /tmp/jvm -n 1 -b jvm_install_ jvm_install.sql host $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -l /tmp/jvm -n 1 -b post_jvm_install_ post_jvm_install.sql set echo off spool off EOF
后边懒得粘了mos看吧
本文来自博客园,作者:蚌壳里夜有多长,转载请注明原文链接:https://www.cnblogs.com/dbahrz/p/17271740.html