9I下的db和client版本問題DBMS_EXPORT_EXTENSION"."FUNC_INDEX_DEFAULT無法exp-升級db

dotaddjj發表於2012-02-23

記載一次資料庫版本低於軟體版本導致無法exp

最近安裝資料庫和weblogic應用後,軟體中巢狀的匯出功能報錯,檢視如下的報錯資訊。

Weblogic報錯資訊:

java.lang.Exception: EXP/ORACLE命令在本地系統中執行失敗:Export: Release 9.2.0.8

.0 - Production on 星期四 2 23 14:19:42 2012Copyright (c) 1982, 2002, Oracle C

orporation. All rights reserved.連線到: Oracle9i Enterprise Edition Release 9.2

.0.8.0 - ProductionWith the Partitioning, OLAP and Oracle Data Mining optionsJSe

rver Release 9.2.0.8.0 - Production已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字元

集即將匯出指定的表透過常規路徑 .... . 正在匯出表 X$T_QL_RESULT_PUBLISH

1 行被匯出EXP-00056: 遇到 ORACLE 錯誤 904ORA-00904: "SYS"."DBMS_EXPORT_EXTENSION"."FUNC_INDEX_DEFAULT": 無效的識別符號匯出成功終止,但出現警告。

很有可能是oracle的版本問題導致,回顧是先安裝的oracle9I後,資料庫安裝完畢後再次打的補丁,很可能是資料庫軟體和資料庫安裝完後,後續的補丁僅僅只是針對資料庫軟體,導致資料庫軟體的版本高於資料庫的版本。Oracle的匯入匯出工具中的標準是 exp的版本必須小於等於imp的版本,此時資料儲存在資料庫中也就是imp的版本較舊,而想透過軟體匯出的資料也就是exp的版本較新,出現錯誤也就很正常了!也提醒了對於安裝打補丁的oracle版本時,一定要先安裝好所有軟體和補丁再用dbca建庫。

SQL> select * from v$version;

BANNER

----------------------------------------------------------------

Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production

PL/SQL Release 9.2.0.8.0 - Production

CORE9.2.0.8.0 Production

TNS for 32-bit Windows: Version 9.2.0.8.0 - Production

NLSRTL Version 9.2.0.8.0 - Production

上網檢視需要更新資料庫。

Sql>conn / as sysdba

Sql>shutdown immediate;

Sql>startup migrate

準備對資料庫進行降低或升級

Sql>start oracle_home/rbdms/admin/catpatch.sql

執行catpatch.sql指令碼升級資料庫,此過程可能需要時間較長,建議增大shared_pool,資料庫升級中需要重新定義資料字典。

Sql>shutdown immediate;

Sql>startup;

問題得到解決了!

資料庫升級 遷移 降級執行catpatch.sql重啟資料庫正常後,建議編譯無效物件,執行oracle_home/rdbms/admin/utlrp.sql

這裡再摘要下,oracle 9I下只能用startup migrate進行資料庫的升降級,在oracle 10g後資料庫升級需要使用startup upgrade,而降級依然使用startup migrate10g的升降級的指令碼也變成了oracle_home/rdbms/admin/catupgrd.sql

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25362835/viewspace-1057432/,如需轉載,請註明出處,否則將追究法律責任。

相關文章