oracle切换ADG后JVM组件查询报错ORA-29516处理

近期,某用户将数据库系统从EXADATA切换到普通X86 LINUX架构服务器上运行时,使用JAVA组件时报错ORA-29516: Aurora assertion failure: Assertion failure at jol.c:11157
joez mt-index botch; mt_index = 65535, vtbl_len = 12, static_len = 2

对于此报错、网络上以及ORACLE MOS,涉及的信息很少;结合实际情况分析对比,EXADATA上的JAVA版本为:java version "1.8.0_241" ;而普通X86 LINUX架构服务器上JAVA版本为openjdk version "1.8.0_242";推测为系统JAVA版本导致的问题。

此时,我们将X86 LINUX架构服务器上JAVA版本更新为一致的非OPENJDK版本的JAVA:java version "1.8.0_241",使变量生效,之后重启数据库,仍然未能解决问题。按照报错号ORA-29516搜索,很多文档提到设置JAVA_JIT_ENABLED参数,进行设置后alter system set JAVA_JIT_ENABLED=FALSE scope=both;并不能解决问题。

从逻辑上分析,在EXADATA上是使用DBCA监控,然后DG方式同步到X86架构的LINUX环境;DBCA在监控过程充安装组件会用到本地的一些环境、变量,而X86架构的LINUX环境存在一些差异导致无法正常运行JAVA组件;前面的人工安装JAVA来实现X86架构的LINUX环境一致的方式已经验证不可行;

按经验来看,可以考虑重装一下JVM组件;首先将数据库切回EXADATA;将ADG备库强制打开后,重装JVM组件,后续应用测试可以正常运行。

报错信息及CALL STACK:

Errors in file /u01/app/oracle/diag/rdbms/TEST1/trace/oa1_m000_38649.trc:
ORA-29516: Aurora assertion failure: Assertion failure at jol.c:11157
joez mt-index botch; mt_index = 65535, vtbl_len = 12, static_len = 2
TRACE:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
ORACLE_HOME = /u01/app/oracle/product/11.2.0.4/dbhome_1
System name:	Linux
Node name:	testadg1
Release:	4.14.35-1902.300.11.el7uek.x86_64
Version:	#2 SMP Tue Mar 17 17:11:47 PDT 2020
Machine:	x86_64
Instance name: oa1
Redo thread mounted by this instance: 1
Oracle process number: 38
Unix process pid: 38649, image: oracle@testadg1 (M000)*** 2024-03-20 20:49:16.780
*** SESSION ID:(4485.3) 2024-03-20 20:49:16.780
*** CLIENT ID:() 2024-03-20 20:49:16.780
*** SERVICE NAME:(SYS$BACKGROUND) 2024-03-20 20:49:16.780
*** MODULE NAME:(MMON_SLAVE) 2024-03-20 20:49:16.780
*** ACTION NAME:(JAVAVM JIT slave action) 2024-03-20 20:49:16.780Assertion failure at jol.c:11157
joez mt-index botch; mt_index = 65535, vtbl_len = 12, static_len = 2
----- Call Stack Trace -----
calling              call     entry                argument values in hex      
location             type     point                (? means dubious value)     
-------------------- -------- -------------------- ----------------------------
skdstdst()+41        call     kgdsdst()            000000000 ? 000000000 ?7FFC37DA6010 ? 7FFC37DA60E8 ?7FFC37DAAB90 ? 000000002 ?
ksedst1()+103        call     skdstdst()           000000000 ? 000000000 ?7FFC37DA6010 ? 7FFC37DA60E8 ?7FFC37DAAB90 ? 000000002 ?
ksedst()+39          call     ksedst1()            000000000 ? 000000001 ?7FFC37DA6010 ? 7FFC37DA60E8 ?7FFC37DAAB90 ? 000000002 ?
ioc_dump_stacktrace  call     ksedst()             000000000 ? 000000001 ?
()+25                                              7FFC37DA6010 ? 7FFC37DA60E8 ?7FFC37DAAB90 ? 000000002 ?
iocbf_dump_stacktra  call     ioc_dump_stacktrace  000000000 ? 000000001 ?
ce()+9                        ()                   7FFC37DA6010 ? 7FFC37DA60E8 ?7FFC37DAAB90 ? 000000002 ?
ioc_do_call()+278    call     iocbf_dump_stacktra  000000000 ? 000000001 ?ce()                 7FFC37DA6010 ? 7FFC37DA60E8 ?7FFC37DAAB90 ? 000000002 ?
joet_switched_env_c  call     ioc_do_call()        7FFC37DAC9E0 ? 003CDBEC8 ?
allback()+436                                      7FFC37DAB740 ? 000000000 ?7FFC37DAB2D4 ? 7FFC37DAB6C0 ?
ioct_dump_stacktrac  call     joet_switched_env_c  7FFC37DAC9E0 ? 7F6669C7BD1F ?
e()+30                        allback()            7FFC37DAB740 ? 000000000 ?7FFC37DAB2D4 ? 7FFC37DAB6C0 ?
eoc_assert_failure(  call     ioct_dump_stacktrac  7FFC37DAC9E0 ? 7F6669C7BD1F ?
)+292                         e()                  7FFC37DAB740 ? 000000000 ?7FFC37DAB2D4 ? 7FFC37DAB6C0 ?
ioei_load_IU_compil  call     eoc_assert_failure(  7FFC37DAC9E0 ? 7F6669C7BD1F ?
ed_code()+1921                )                    7FFC37DAB740 ? 000000000 ?7FFC37DAB2D4 ? 00000FFFF ?
ioesub_load_IU_comp  call     ioei_load_IU_compil  7F6669C7BD1F ? 7FFC37DAC9E0 ?
iled_code()+466               ed_code()            9FF6874F0 ?FFFFFFFFFFFFFFFF ?7FFC37DAB2D4 ? 00000FFFF ?
ioe_load_IU_compile  call     ioesub_load_IU_comp  7FFC37DAC840 ? 7FFC37DAC9E0 ?
d_code()+121                  iled_code()          9FF6874F0 ?FFFFFFFFFFFFFFFF ?7FFC37DAB2D4 ? 00000FFFF ?
joxlod_compiled_cod  call     ioe_load_IU_compile  7FFC37DAC9E0 ? 9FF6874F0 ?
e()+1710                      d_code()             0FFFFFFFF ? 002F1B882 ?7F66698E57C8 ? 000000000 ?
joxlod_()+5980       call     joxlod_compiled_cod  00C1045E0 ? 9FF6874F0 ?e()                  0FFFFFFFF ? 002F1B882 ?7F66698E57C8 ? 000000000 ?
joxldn_()+714        call     joxlod_()            00C1045E0 ? 9FF6874F0 ?0FFFFFFFF ? 002F1B882 ?000000009 ? 7F6669DF01E0 ?
joxldn()+9           call     joxldn_()            00C1045E0 ? 9FF6874F0 ?000000004 ? 000000000 ?000000009 ? 7F6669DF01E0 ?
kqlmcdlod()+759      call     joxldn()             00C1045E0 ? 9FF6874F0 ?000000004 ? 000000000 ?000000009 ? 7F6669DF01E0 ?
kqllod()+5647        call     kqlmcdlod()          9FF6874F0 ? 000000000 ?000000004 ? 000000000 ?000000009 ? 7F6669DF01E0 ?
kglobld()+1179       call     kqllod()             00C1045E0 ? 000000000 ?000000004 ? 000000000 ?000000009 ? 7F6669DF01E0 ?
kglobpn()+2431       call     kglobld()            00C1045E0 ? 9FF686050 ?7FFC37DAFDF0 ? 000000000 ?000000009 ? 7F6669DF01E0 ?
kglpim()+450         call     kglobpn()            00C1045E0 ? A1F1DC598 ?7FFC37DAFDF0 ? 000000001 ?000000009 ? 7F6669DF01E0 ?
ioc_access_IU()+231  call     kglpim()             00C1045E0 ? 7FFC37DAFDF0 ?
2                                                  7FFC37DAFDF0 ? 000000001 ?000000009 ? 7F6669DF01E0 ?
iocbf_access_IU()+4  call     ioc_access_IU()      7FFC37DB2FC0 ? 7FFC37DB0970 ?
6                                                  9FF6874F0 ? 000000001 ?000000009 ? 7F6669DF01E0 ?
ioc_do_call()+278    call     iocbf_access_IU()    7FFC37DB2FC0 ? 7FFC37DB0780 ?9FF6874F0 ? 000000001 ?000000009 ? 7F6669DF01E0 ?
joet_switched_env_c  call     ioc_do_call()        7FFC37DB2FC0 ? 003CDC9F4 ?
allback()+436                                      7FFC37DB0780 ? 000000000 ?7FFC37DB0314 ? 7FFC37DB0700 ?
ioct_access_IU()+62  call     joet_switched_env_c  7FFC37DB2FC0 ? 7F6669C7BD1F ?allback()            7FFC37DB0780 ? 000000000 ?7FFC37DB0314 ? 7FFC37DB0700 ?
eoaccess_IU()+854    call     ioct_access_IU()     7FFC37DB2FC0 ? 7F6669C7BD1F ?7FFC37DB0970 ? 9FF6874F0 ?000000000 ? 000000001 ?
jom_access_IU()+288  call     eoaccess_IU()        7F6669C7BD1F ? 7FFC37DB09F0 ?9FF6874F0 ? 000000000 ?000000000 ? 000000001 ?
jom_realize_shared_  call     jom_access_IU()      7F6669C7BD1F ? 9FF6874F0 ?
clint()+322                                        7FFC37DB09F0 ? 000000001 ?000000000 ? 000000001 ?
jom_realize_clint_r  call     jom_realize_shared_  7F6669C7BD1F ? 9FF6874F0 ?
ef()+45                       clint()              000000001 ? 000000000 ?000000000 ? 000000001 ?
jol_realize_clint_r  call     jom_realize_clint_r  7F6669C7BD1F ? 9FF6874F0 ?
ef()+43                       ef()                 000000001 ? 000000000 ?000000000 ? 000000001 ?
jol_load_super_clin  call     jol_realize_clint_r  7FFC37DB16F0 ? 9FF6874F0 ?
t()+760                       ef()                 000000001 ? 000000000 ?000000000 ? 000000001 ?
jol_load_for_execut  call     jol_load_super_clin  7FFC37DB16F0 ? 9FF6874F0 ?
ion()+23009                   t()                  000000001 ? 000000000 ?000000000 ? 000000001 ?
ioei_load_IU()+503   call     jol_load_for_execut  7FFC37DB2FC0 ? 7F6669C7BD1F ?ion()                000000000 ? 002F1B882 ?9FF689CF0 ? 000000001 ?
ioesub_load_IU()+42  call     ioei_load_IU()       7F6669C7BD1F ? 7FFC37DB2FC0 ?
3                                                  9FF689CF0 ? 000000071 ?002F1B882 ? 000000001 ?
ioe_load_IU()+97     call     ioesub_load_IU()     7FFC37DB2B60 ? 7FFC37DBA480 ?9FF689CF0 ? 000000071 ?002F1B882 ? 000000001 ?
jox00_call_loader()  call     ioe_load_IU()        7FFC37DB2FC0 ? 9FF689CF0 ?
+1031                                              000000071 ? 002F1B882 ?002F1B882 ? 000000001 ?
joxlod_()+5822       call     jox00_call_loader()  7FFC37DB2FC0 ? 00C1045E0 ?9FF689CF0 ? 9FF6830D0 ?002F1B882 ? 000000001 ?
joxldn_()+714        call     joxlod_()            00C1045E0 ? 9FF689CF0 ?9FF689CF0 ? 9FF6830D0 ?00000002A ? 7F66698661C0 ?
joxldn()+9           call     joxldn_()            00C1045E0 ? 9FF689CF0 ?000000004 ? 000000000 ?00000002A ? 7F66698661C0 ?
kqlmcdlod()+759      call     joxldn()             00C1045E0 ? 9FF689CF0 ?000000004 ? 000000000 ?00000002A ? 7F66698661C0 ?
kqllod()+5647        call     kqlmcdlod()          9FF689CF0 ? 000000000 ?000000004 ? 000000000 ?00000002A ? 7F66698661C0 ?
kglobld()+1179       call     kqllod()             00C1045E0 ? 000000000 ?000000004 ? 000000000 ?00000002A ? 7F66698661C0 ?
kglobpn()+2431       call     kglobld()            00C1045E0 ? 9FF688420 ?7FFC37DB62F0 ? 000000000 ?00000002A ? 7F66698661C0 ?
kglpim()+450         call     kglobpn()            00C1045E0 ? A1F1E0C50 ?7FFC37DB62F0 ? 000000001 ?00000002A ? 7F66698661C0 ?
ioc_access_IU()+231  call     kglpim()             00C1045E0 ? 7FFC37DB62F0 ?
2                                                  7FFC37DB62F0 ? 000000001 ?00000002A ? 7F66698661C0 ?
iocbf_access_IU()+4  call     ioc_access_IU()      7FFC37DBB1C8 ? 7FFC37DB6E70 ?
6                                                  9FF689CF0 ? 000000001 ?00000002A ? 7F66698661C0 ?
ioc_do_call()+278    call     iocbf_access_IU()    7FFC37DBB1C8 ? 7FFC37DB6C80 ?9FF689CF0 ? 000000001 ?00000002A ? 7F66698661C0 ?
joet_switched_env_c  call     ioc_do_call()        7FFC37DBB1C8 ? 003CDC9F4 ?
allback()+436                                      7FFC37DB6C80 ? 000000000 ?7FFC37DB6814 ? 7FFC37DB6C00 ?
ioct_access_IU()+62  call     joet_switched_env_c  7FFC37DBB1C8 ? 7F6669C7BD1F ?allback()            7FFC37DB6C80 ? 000000000 ?7FFC37DB6814 ? 7FFC37DB6C00 ?
eoaccess_IU()+854    call     ioct_access_IU()     7FFC37DBB1C8 ? 7F6669C7BD1F ?7FFC37DB6E70 ? 9FF689CF0 ?000000000 ? 000000001 ?
jom_access_IU()+288  call     eoaccess_IU()        7F6669C7BD1F ? 7FFC37DB6F30 ?9FF689CF0 ? 000000000 ?000000000 ? 000000001 ?
jom_active_clint_fr  call     jom_access_IU()      7F6669C7BD1F ? 9FF689CF0 ?
om_IU()+75                                         7FFC37DB6F30 ? 000000001 ?000000000 ? 000000001 ?
ioei_execute()+528   call     jom_active_clint_fr  7F6669C7BD1F ? 7F6669C7BD1F ?om_IU()              7FFC37DB6F30 ? 000000001 ?000000000 ? 000000001 ?
ioesub_EXECUTE()+60  call     ioei_execute()       7F6669C7BD1F ? 7FFC37DBB1C8 ?
1                                                  7F6669DD46A0 ? 000000001 ?000000000 ? 000000000 ?
seoa_note_stack_out  call     ioesub_EXECUTE()     7FFC37DBA4A0 ? 7FFC37DBA480 ?
side()+26                                          7F6669DD46A0 ? 000000001 ?000000000 ? 000000000 ?
ioe_execute()+259    call     seoa_note_stack_out  7FFC37DBA4A0 ? 7FFC37DBA480 ?side()               7F6669DD46A0 ? 000000001 ?000000000 ? 000000000 ?
jox_ioe_execute()+3  call     ioe_execute()        7FFC37DBB1C8 ? 7F6669DD46A0 ?
55                                                 7FFC37DBAF38 ? 7FFC37DBAC38 ?000000050 ? 000000004 ?
joxgrovel_jitsomeme  call     jox_ioe_execute()    7FFC37DBB1C8 ? 7F6669DD46A0 ?
thods()+374                                        00AA92094 ? 00000000E ?00AA9208C ? 000000004 ?
joxgroveldrv()+778   call     joxgrovel_jitsomeme  00C1045E0 ? 7FFC37DBAF40 ?thods()              00AA92094 ? 00000000E ?00AA9208C ? 000000004 ?
joxjitexe()+577      call     joxgroveldrv()       00C1045E0 ? 7FFC37DBAF40 ?00AA92094 ? 00000000E ?00AA9208C ? 000000004 ?
joxrdp_()+31         call     joxjitexe()          00C1045E0 ? 7FFC37DBAF40 ?00AA92094 ? 00000000E ?00AA9208C ? 000000004 ?
joxrdp()+19          call     joxrdp_()            00C1045E0 ? 7FFC37DBAF40 ?00AA92094 ? 00000000E ?00AA9208C ? 000000004 ?
kebm_slave_main()+5  call     joxrdp()             00C1045E0 ? 7FFC37DBAF40 ?
86                                                 00AA92094 ? 00000000E ?00AA9208C ? 000000004 ?
ksvrdp()+1766        call     kebm_slave_main()    000000000 ? A1CB8B0F0 ?000000000 ? 00000000E ?00AA9208C ? 000000004 ?
opirip()+674         call     ksvrdp()             000000000 ? A1CB8B0F0 ?000000000 ? 00000000E ?00AA9208C ? 000000004 ?
opidrv()+603         call     opirip()             000000032 ? 000000004 ?7FFC37DC0528 ? 00000000E ?00AA9208C ? 000000004 ?
sou2o()+103          call     opidrv()             000000032 ? 000000004 ?7FFC37DC0528 ? 00000000E ?00AA9208C ? 000000004 ?
opimai_real()+250    call     sou2o()              7FFC37DC0500 ? 000000032 ?000000004 ? 7FFC37DC0528 ?00AA9208C ? 000000004 ?
ssthrdmain()+265     call     opimai_real()        000000000 ? 7FFC37DC06F0 ?000000004 ? 7FFC37DC0528 ?00AA9208C ? 000000004 ?
main()+201           call     ssthrdmain()         000000003 ? 7FFC37DC06F0 ?000000001 ? 000000000 ?00AA9208C ? 000000004 ?
__libc_start_main()  call     main()               000000003 ? 7FFC37DC0890 ?
+245                                               000000001 ? 000000000 ?00AA9208C ? 000000004 ?
_start()+41          call     __libc_start_main()  000A17680 ? 000000001 ?7FFC37DC0888 ? 000000000 ?00AA9208C ? 000000004 ?--------------------- Binary Stack Dump ---------------------

2、重建JVM的步骤

参考MOS文档How to Un-install JVM Components from Database (Doc ID 3000161.1),步骤如下:

1. Download the script moddbj.sql and remove_java.sql attached below and keep the files in a directory of the database server which will be referred as"removal working directory" later in this note.2. Create the following four temporary files inside the ORACLE_HOME using which the database is running :A. mddins_temp.sql:----------------------------a. Copy the file $ORACLE_HOME/md/admin/mddins.sql into $ORACLE_HOME/md/admin/mddins_temp.sqlb. Edit $ORACLE_HOME/md/admin/mddins_temp.sql and remove the following line, if it is present.      exec SYS.UTL_RECOMP.recomp_serial('MDSYS');Otherwise, mddins_temp.sql can remain as an unmodified copy. However, it needs to be present because other scripts refer to it.B. catnojav_temp.sql:-----------------------------a. Copy the file $ORACLE_HOME/rdbms/admin/catnojav.sql into $ORACLE_HOME/rdbms/admin/catnojav_temp.sqlb. Edit catnojav_temp.sql to remove the two linesDROP JAVA SOURCE "schedFileWatcherJava";DROP JAVA SOURCE "dbFWTrace";C. jvmrm_temp.sql--------------------------a. Copy the file $ORACLE_HOME/javavm/install/jvmrm.sql into $ORACLE_HOME/javavm/install/jvmrm_temp.sqlb. Edit jvmrm_temp.sql, identify the following block in it and move it to the end of the file.beginif :jvmrmaction = 'FULL_REMOVAL' or(:jvmrmaction = 'DOWNGRADE' andinitjvmaux.compare_releases(:jvmdownto, '12.2') = 'FIRST IS OLDER')thenexecute immediate 'drop table javanamestatus$';execute immediate 'drop table javasnm_tmp$';end if;end;/c. Identify another large block that begins withbegin if :jvmrmaction = 'FULL_REMOVAL' or(:jvmrmaction = 'DOWNGRADE' andinitjvmaux.compare_releases(:jvmdownto, '12.1') = 'FIRST IS OLDER')theninitjvmaux.drp('declare trash varchar2(100):=dbms_java.endsession_and_related_state;begin null;end;');initjvmaux.drp('drop user ojvmsys cascade');initjvmaux.drp('declare trash varchar2(100):=dbms_java.endsession_and_related_state;begin null;end;');initjvmaux.drp('drop java resource "lib/security/java.security.alt"'); Replace the last three lines shown above with the following two lines by moving them from their original position later in the block into the position where the lines to be replaced had been.-- remove entry for drop user cascadeinitjvmaux.exec('delete from duc$ where OWNER = ''SYS'' and PACK = ''OJDS_CONTEXT'' and PROC = ''USER_DROPPED'''); NOTE: The files sample_jvmrm.sql and sample_jvmrm_temp.sql attached below are an example using the 19.17 OJVMRU version of jvmrm.sql demonstrating the modifications specified above.These should not be used for anything else other than the illustration.D. rmjvm_temp.sql--------------------------a. Copy the file $ORACLE_HOME/javavm/install/rmjvm.sql into $ORACLE_HOME/javavm/install/rmjvm_temp.sqlb. Edit rmjvm_temp.sql, insert the following two linesdrop table java$jvm$steps$done;drop table java$jvm$status;immediately before the line@@initjvmac. Replace the final portion of the file starting at@@jvmrmwith@@jvmrm_tempexec initjvmaux.drp('drop package dbms_java')exec initjvmaux.drp('drop PUBLIC SYNONYM dbms_java')exec initjvmaux.drp('drop FUNCTION dbj_long_name')exec initjvmaux.drp('drop function "NameFromLastDDL"')exec initjvmaux.drp('drop PUBLIC SYNONYM "NameFromLastDDL"')exec initjvmaux.drp('drop FUNCTION dbj_short_name')exec initjvmaux.drp('drop PUBLIC SYNONYM dbj_short_name')exec initjvmaux.drp('drop package dbms_javascript')exec initjvmaux.drp('drop PUBLIC SYNONYM dbms_javascript')exec initjvmaux.drp('drop user mdsys cascade')exec initjvmaux.drp('drop user mddata cascade')drop table java$jvm$steps$done;drop table java$jvm$status;drop user ojvmsys cascade;drop package rmjvm;drop package initjvmaux;REMREM end java object removalREMNOTE: The repetition of the drop table java$jvm$* lines are intentional. The files sample_rmjvm.sql and sample_rmjvm_temp.sql attached below are an example using the 19.17 OJVMRUversion of jvmrm.sql demonstrating the modifications specified above. These should not be used for anything else other than the illustration.
3. Create the file commands.txt in the same directory where moddbj.sql and and remove_java.sql were kept in Step 1 with the following content based onthe type of database :For multitenant database
-----------------------------------$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -n 1 -e -b moddbj -d $REMOVAL_WORK_DIR $REMOVAL_WORK_DIR/moddbj.sql$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -n 1 -C 'CDB$ROOT' -e -b remove_java_pdbs -d $REMOVAL_WORK_DIR $REMOVAL_WORK_DIR/remove_java.sql$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -n 1 -c 'CDB$ROOT' -e -b remove_java_cdb -d $REMOVAL_WORK_DIR $REMOVAL_WORK_DIR/remove_java.sql$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -n 1 -e -b utlrp -d $REMOVAL_WORK_DIR $ORACLE_HOME/rdbms/admin/utlrp.sqlFor non-multitenant database
-----------------------------------------sqlplus / as sysdbaspool $REMOVAL_WORK_DIR/jvm_removal_log.txt
@$REMOVAL_WORK_DIR/moddbj.sql
@$REMOVAL_WORK_DIR/remove_java.sql
@$ORACLE_HOME/rdbms/admin/utlrp.sql
spool offexit4. Follow the instructions below that are Unix specific but should be readily adaptable to other platforms as well.A. Start a shell of one's choice such as bash or csh. The environment in this shell should be one suitable for connecting to the database one wants to modify. In particular ORACLE_HOME and PATHshould be set accordingly.B. Make sure that the database is up and running. Also check the SYS credential used in commands.txt is correct, otherwise rectify it.C. Execution of the removal commands will create log files in the removal working directory. Ensure that this directory is writable by the current user.D. Define the environment variable REMOVAL_WORK_DIR to have the value that identifies the removal working directory, either as an absolute path or as a path relative to the current workingdirectory. For example, if the removal working directory is /tmp/removejvm and one is using csh, then one would do    setenv REMOVAL_WORK_DIR /tmp/removejvmE. Execute the following to run the remove scripts and thereby do the removal:source $REMOVAL_WORK_DIR/commands.txt
NOTE: This step will take a few minutes. When it completes, the spool log should be found in the removal working directory. The log should be inspected for errors. Certain errors are expected in some situations depending on the configuration of the database. In particular any ofORA-00942
ORA-01432
ORA-02289
ORA-04043
ORA-04080
ORA-29807
ORA-29833are ignorable as long as they happen during drop commands. These errors basically report the objects to be dropped do not exist where the error number varies depending on the type of the object. Any other errors are cause for concern and Oracle support should be contacted.5. Clean UpOnce satisfied that removal has been successful, delete the temporary files created in section 1, 2 and 3.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/770030.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中的代理模式(动态代理和静态代理)

代理模式 我们先了解一下代理模式: 在开发中,当我们要访问目标类时,不是直接访问目标类,而是访问器代理类。通过代理类调用目标类完成操作。简单来说就是:把直接访问变为间接访问。 这样做的最大好处就是&#xff1a…

吴恩达机器学习-可选实验室:Softmax函数

文章目录 CostTensorflow稀疏类别交叉熵或类别交叉熵祝贺 在这个实验室里,我们将探索softmax函数。当解决多类分类问题时,该函数用于Softmax回归和神经网络。 import numpy as np import matplotlib.pyplot as plt plt.style.use(./deeplearning.mplstyl…

面向低成本巡线机器人的PID控制器优化——文末源码

目录 介绍 测试 电子元器件 系统特征 控制器设计 位置误差的计算 比例控制 积分控制 微分控制 改进的PID控制器 测试轨迹 源码链接 本文对经典PID控制器的改进和开环控制机制的发展进行了讨论,以提高差动轮式机器人的稳定性和鲁棒性。为了部署该算法&am…

【DP】动态规划基本解题步骤(求解台阶问题)

dp数组的定义和下标递推公式dp数组如何初始化,初始化也需要注意遍历顺序打印dp数组(出现问题 对于高度为 n 的台阶,从下往上走,每一步的阶数为 1,2,3 中的一个。问要走到顶部一共有多少种走法 分析&#…

python中良好的编码规范

遵循PEP 8的常见规范: 缩进: 使用4个空格来缩进代码块,而不是使用制表符。 命名规范: 变量名应该使用小写字母,单词之间用下划线 _ 分隔(snake_case)。类名应该使用驼峰命名法(Camel…

C++ 模板知识大全

模板 泛型编程 我们如何实现一个交换函数 我们实现了两种类型的交换函数,但是其实除了类型不一样,其他地方都是一样的。 void swap(int& a, int& b) {int tmp a;a b;b tmp; }void swap(char& a, char& b) {int tmp a;a b;b tmp…

关于DCMM评估的办理条件你知道多少?

DCMM(数据管理能力成熟度评价模型)评估划分为五个等级,自低向高依次为初始级、受管理级、稳健级、量化管理级和优化级,不同等级代表企业数据管理和应用的成熟度水平不同,证书自颁发之日起有效期3年 DCMM申报基础条件 …

香港科技大学(广州)先进材料学域可持续能源与环境学域智能制造学域博士招生宣讲会——北京专场(暨全额奖学金政策)

三个学域代表教授亲临现场,面对面答疑解惑助攻申请!可带简历现场咨询和面试! 💰一经录取,享全额奖学金1.5万/月! 报名链接: https://www.wjx.top/vm/wF2Mant.aspx# 地点:中关村皇冠…

Redis中RDB的dirty机制和AOF中的后台重写机制

RDB的dirty计数器和lastsave属性 服务器除了维护saveparams数组之外,还维持着一个dirty计数器,以及一个lastsave属性: 1.dirty计数器记录距离上一次成功执行SAVE命令或者BGSAVE命令之后,服务器对数据库状态(服务器中的所有数据库)进行了多少次修改(包括…

设计模式学习笔记 - 设计模式与范式 -结构型:1.代理模式:代理在RPC、缓存、监控等场景中的应用

概述 前面几个章节,我们学习了设计模式中的创建型模式。创建型模式主要解决对象的创建问题,封装复杂的创建过程,解耦对象的创建代码和使用代码。 单例模式用来创建全局唯一的对象。工厂模式用来创建不同但是相关类型的对象(继承…

文件操作3

随机读写数据文件 一、随机读写原理 在我们写数据时,有一个光标不断的在随着新写入的数据往后移动; 而读数据时,也有一个看不见光标,随着已经读完的数据,往后移动 这里的文件读写位置标记——可以想象成图形界面里的…

算法分析与设计复试总结(二)

以下是一些常见的问题类型: 基础算法概念: 请解释什么是算法,以及算法的重要性。 算法是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限…

QB PHP 多语言配置

1: 下载QBfast .exe 的文件 2: 安装的时候 ,一定点击 仅为我 安装 而不是 所有人 3: 如果提示 更新就 更新 , 安装如2 4: 如果遇到 新增 或者编辑已经 配置的项目时 不起作用 : 右…

05:HAL-----看门狗WDT

目录 一:看门狗 1:WDT 2:独立看门狗 (IWDG) A:IWDG框图 B:IWDG_KR键寄存器 C:IWDG超时时间 D:HAl库的配置 3:窗口看门狗 (WWDG) A:WWDG框图 B:WWDG工作特性 C:WWDG超时时间 D:HAL库配置 4:独立看门狗和窗口看门狗的区别 5:数据手册 二:案例 A:独立看门狗 B:窗…

LEETCODE-DAY29

title: LEETCODE-DAY29 date: 2024-03-20 15:22:38 tags: 今日内容:491.递增子序列、46.全排列、47.全排列 II T1 class Solution:def backtracking(self,nums,index,path,res):if indexlen(nums):res.append(path.copy())returnfor i in range(index,len(nums))…

springboot项目学习-瑞吉外卖(4)

1.任务 这一节主要的任务是解决文件的上传和下载功能 2.文件上传 概念:将本地的图片上传到浏览器上面 点击文件上传,前端就会发送如上的请求,服务端应该根据URL和请求方法来处理请求 CommonController类: RestController Slf4j …

【第二部分--Python之基础】

一、初识 开发语言: 高级语言:Python Java PHP C# Go Ruby C ... > 字节码 低级语言:C 汇编 > 机器码 …

6、jenkins项目构建类型1-项目类型介绍

文章目录 一、自由风格项目二、Maven项目构建三、Pipeline流水线项目构建(☆☆☆) Jenkins中自动构建项目的类型有很多,常用的有以下三种: 自由风格软件项目(FreeStyle Project)Maven项目(Mave…

初始Redis关联和非关联

基础篇Redis 3.初始Redis 3.1.2.关联和非关联 传统数据库的表与表之间往往存在关联,例如外键: 而非关系型数据库不存在关联关系,要维护关系要么靠代码中的业务逻辑,要么靠数据之间的耦合: {id: 1,name: "张三…

Maya FBX导出导入

问题描述: Maya 导出导入 FBX,设置 FBX 的 导入和导出设置 解决方案: 获取FBX设置 def getFBXSettings():""" get current user settings for FBX export and store them """mel.eval(FBXPushSettings;)de…