關於oracle invalid components問題的解決
升級生產的DB,有一些預檢查條件,這些需要提前修復,以便在升級的時候不會成為影響進度的絆腳石。
生產中的components有一些顯示是invalid狀態,從dba_registry中可以查到。
select comp_id,comp_name,status,version from dba_Registry;
還有一些顯示是loading.
COMP_ID COMP_NAME VERSION STATUS
------------------------------ -------------------- ------------------------------ -----------
CATALOG Oracle Database Cata 10.2.0.1.0 VALID
log Views
CATPROC Oracle Database Pack 10.2.0.1.0 VALID
ages and Types
JAVAVM JServer JAVA Virtual LOADING
Machine
讓我百思不得其解。
如果顯示是Loading,很可能是安裝JVM的時候失敗。我上次的日誌如下。安裝沒有成功。
PL/SQL procedure successfully completed.
SQL>
SQL>
SQL> -- Prevent the script. from continuing in the case where create java system
SQL> -- detects existing java classes or there is any other kind of error.
SQL> whenever sqlerror exit;
SQL>
SQL> -- Load all the Java classes
SQL> begin if initjvmaux.startstep('CREATE_JAVA_SYSTEM') then
2 initjvmaux.rollbacksetup;
3 commit;
4 initjvmaux.rollbackset;
5 initjvmaux.exec('create or replace java system');
6 commit;
7 initjvmaux.rollbackcleanup;
8 initjvmaux.endstep;
9 end if; end;
10 /
create or replace java system
begin if initjvmaux.startstep('CREATE_JAVA_SYSTEM') then
*
ERROR at line 1:
ORA-01653: unable to extend table SYS.IDL_UB1$ by 1024 in tablespace SYSTEM
ORA-06512: at "SYS.INITJVMAUX", line 23
ORA-06512: at line 5
SQL> col comp_name format a20
SQL> /
COMP_ID COMP_NAME VERSION STATUS
------------------------------ -------------------- ------------------------------ -----------
CATALOG Oracle Database Cata 10.2.0.1.0 VALID
log Views
CATPROC Oracle Database Pack 10.2.0.1.0 VALID
ages and Types
JAVAVM JServer JAVA Virtual LOADING
Machine
生產環境中有的元件顯示是invalid,有的元件顯示是loading.
對於這種情況,聯絡之前的系統遷移,原因是之前系統在Unix下,遷移到linux的時候,先用傳輸表空間(sys下的Objects就沒有匯出),在遷移後就留下了隱患。儘管之後又用goldengate來做同步,但是那部分objects還是沒法同步導致的。
現在來修復一下這個問題,對於invalid,loaded,loading的修復如下:
SQL> select count(*),owner,status from all_objects where object_Type like 'JAVA%' group by owner,status;
COUNT(*) OWNER STATUS
---------- ------------------------------ -------
11999 SYS VALID
--這個資料明顯和預計的差別很大。
需要解除安裝重新安裝。
步驟如下:
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> spool full_rmjvm.log
SQL> set echo on
SQL> startup mount
ORACLE instance started.
Total System Global Area 369098752 bytes
Fixed Size 1219448 bytes
Variable Size 83887240 bytes
Database Buffers 276824064 bytes
Redo Buffers 7168000 bytes
Database mounted.
SQL> alter system set "_system_trig_enabled"=false scope=memory;
System altered.
SQL> alter system enable restricted session;
System altered.
SQL> alter database open;
Database altered.
run below scripts:
@?/rdbms/admin/catnoexf.sql --如果跑錯,可以忽略。
@?/rdbms/admin/catnojav.sql --和java packages有關
@?/xdk/admin/rmxml.sql ---和xdk,xml component
@?/javavm/install/rmjvm.sql
and truncate $java$jvm$status;
SQL> select *from obj$ where obj#=0 and type#=0;
no rows selected
SQL> delete from obj$ where obj#=0 and type#=0;
0 rows deleted.
SQL> commit;
Commit complete.
SQL> select comp_id,comp_name,status,version from dba_registry;
COMP_ID COMP_NAME STATUS VERSION
------------------------------ -------------------------------------------------- ----------- ------------------------------
CATALOG Oracle Database Catalog Views VALID 10.2.0.1.0
CATPROC Oracle Database Packages and Types VALID 10.2.0.1.0
JAVAVM JServer JAVA Virtual Machine REMOVED
spool off;
檢視日誌,看有沒有其他的錯誤。如果沒有繼續下面的步驟。
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> set echo on
SQL> spool full_jvminst.log
SQL> startup mount
ORACLE instance started.
Total System Global Area 369098752 bytes
Fixed Size 1219448 bytes
Variable Size 83887240 bytes
Database Buffers 276824064 bytes
Redo Buffers 7168000 bytes
Database mounted.
SQL> alter system set "_system_trig_enabled"=false scope=memory;
System altered.
SQL> alter database open;
Database altered.
SQL> @?/javavm/install/initjvm.sql
。。。。。。。很多日誌。。。。。
SQL>@?/xdk/admin/initxml.sql
。。。。。。。很多日誌。。。。
SQL> @?/rdbms/admin/catjava.sql
在執行的時候會耗費一些時間,開另外一個視窗查詢dba_registry,就能夠看到狀態的變化。
SQL> /
COMP_ID COMP_NAME STATUS VERSION
------------------------------ -------------------------------------------------- ----------- ------------------------------
CATALOG Oracle Database Catalog Views VALID 10.2.0.1.0
CATPROC Oracle Database Packages and Types VALID 10.2.0.1.0
JAVAVM JServer JAVA Virtual Machine VALID 10.2.0.1.0
XML Oracle XDK VALID 10.2.0.1.0
CATJAVA Oracle Database Java Packages LOADING
SQL> /
COMP_ID COMP_NAME STATUS VERSION
------------------------------ -------------------------------------------------- ----------- ------------------------------
CATALOG Oracle Database Catalog Views VALID 10.2.0.1.0
CATPROC Oracle Database Packages and Types VALID 10.2.0.1.0
JAVAVM JServer JAVA Virtual Machine VALID 10.2.0.1.0
XML Oracle XDK VALID 10.2.0.1.0
CATJAVA Oracle Database Java Packages LOADED 10.2.0.1.0
COMP_ID COMP_NAME STATUS VERSION
------------------------------ -------------------------------------------------- ----------- ------------------------------
CATALOG Oracle Database Catalog Views VALID 10.2.0.1.0
CATPROC Oracle Database Packages and Types VALID 10.2.0.1.0
JAVAVM JServer JAVA Virtual Machine VALID 10.2.0.1.0
XML Oracle XDK VALID 10.2.0.1.0
CATJAVA Oracle Database Java Packages VALID 10.2.0.1.0
最後執行
SQL> @?/rdbms/admin/catexf.sql
成功執行後,檢視狀態,
COMP_ID COMP_NAME STATUS VERSION
------------------------------ -------------------------------------------------- ----------- ------------------------------
CATALOG Oracle Database Catalog Views VALID 10.2.0.1.0
CATPROC Oracle Database Packages and Types VALID 10.2.0.1.0
JAVAVM JServer JAVA Virtual Machine VALID 10.2.0.1.0
XML Oracle XDK VALID 10.2.0.1.0
CATJAVA Oracle Database Java Packages VALID 10.2.0.1.0
EXF Oracle Expression Filter VALID 10.2.0.1.0
6 rows selected.
--sanity check for component installation
SQL> select count(*),status,owner from all_objects where object_type like '%JAVA%' group by status,owner;
COUNT(*) STATUS OWNER
---------- ------- ------------------------------
15505 VALID SYS
42 VALID EXFSYS
SQL> select owner,object_type,count(*)from all_objects where object_type like '%JAVA%' and status <>'VALID' group by owner,object_type;
no rows selected
check spool log . 看有沒有關聯的ora-錯誤。
最後如果沒問題,證明這些元件都已經成功安裝,重啟資料庫。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-766215/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAXParseException An invalid XML character 問題的解決ExceptionXML
- 解決Hexo關於圖片的問題Hexo
- 關於解決問題的幾個段位
- 關於Failed to resolve的問題解決AI
- 怎樣成為解決問題的高手?——關於問題解決的關鍵4步驟
- 關於 LF will be replaced by CRLF 問題的解決方式
- 一個關於/root/.gvfs的問題解決?
- 關於並口,串列埠問題解決串列埠
- 關於 Angular 應用 Components 和 Directives 的例項化問題Angular
- 關於Oracle 9i字符集問題的解決辦法FCOracle
- 關於解決博弈論問題的SG函式函式
- 關於ORA-28031問題的解決
- 關於listener無法啟動的問題解決
- 關於 PHP Session ID 改變的問題解決PHPSession
- 關於oracle的監聽問題Oracle
- oracle 鎖問題的解決Oracle
- iOS解決CUICatalog: Invalid asset name supplied問題iOSUI
- invalid stream header: EFBFBDEF 問題解決Header
- 高手都進來歇歇~解決一個問題關於SE的問題
- 解決關於IIS gzip不能正常啟用的問題
- 關於input的一些問題解決方法分享
- 關於PHP程式設計師解決問題的能力PHP程式設計師
- oracle10g中EM的有關問題解決Oracle
- 關於JDK1.2的JDBC中文問題的解決 (轉)JDKJDBC
- Oracle關於week的計算問題Oracle
- 關於Oracle字符集的問題Oracle
- Mac 下開啟網站 Invalid URL 問題解決Mac網站
- 解決“The remote certificate is invalid according to the validation procedure”問題REM
- 關於oracle中ora-32004: obsolete and/or deprecated .....問題的解決(原創)Oracle
- oracle壞塊問題的解決Oracle
- 一個關於JS解決陣列相乘問題JS陣列
- 關於 OkHttp 依賴衝突問題的解決過程HTTP
- 關於一個網友最佳化問題的解決
- JDK1.2關於JDBC中文問題的解決方案 (轉)JDKJDBC
- 關於Mysql 4.1語言問題的完美解決方法(轉)MySql
- 有關ocssd程式的問題解決:CSS
- Oracle 解決鎖表問題Oracle
- oracle字元亂碼問題的解決Oracle字元