【江楓 】AIX平臺升級到Oracle10.2.0.4的幾個問題

idba發表於2008-07-09

最近將AIX5306上一個Oracle從9.2.0.6升級到了10.2.0.4,雖然最終升級順利完成,不過還是碰到了幾個小問題,在這裡記錄一下。

1. plan_table的問題
如果在9i的sys使用者下手動執行過$ORACLE_HOME/rdbms/admin/utlxplan.sql指令碼建立plan_table,則升級前必須刪除。否則執行完升級指令碼catupgrd.sql會發現Oracle Database Packages and Types元件一直是invalid的,並且升級指令碼的log中有如下錯誤:

118/44   PL/SQL: ORA-00904: "OTHER_XML": invalid identifier

遇到該錯誤後,刪除plan_table重建也還來得及:

@?/rdbms/admin/utlxplan
@?/rdbms/admin/prvtspao.plb
@?/rdbms/admin/utlrp


2.lock_sga的問題

Oracle10.2.0.4在AIX平臺分配共享記憶體的機制有了一點變化。原來9i使用lock_sga=true是正常的,但是10.2.0.4則無法啟動instance,報錯:

SQL> startup
ORA-27126: unable to lock shared memory segment in core
IBM AIX RISC System/6000 Error: 1: Not owner

看起來像是許可權問題,但是即使給Oracle使用者加system組也沒有用。後來Oracle解釋說需要給Oracle使用者賦予兩個capability:CAP_BYPASS_RAC_VMM和CAP_PROPAGATE,但這兩個capabilities是採用大頁記憶體時才需要設定的,這樣說10.2.0.4如果lock_sga的話,預設是要採用大頁記憶體的。當然,大頁記憶體的使用還需要os上設定相關引數的,如果os沒有設定,oracle還是要採用4k的記憶體頁。

#chuser capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle
#lsuser -a capabilities oracle
oracle capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE

3.dba_segments和dba_free_space空間計算不一致的問題

select sum(bytes)/1024/1024/1024 from dba_data_files;

SUM(BYTES)/1024/1024/1024
-------------------------
468.554688

select sum(bytes)/1024/1024/1024 from dba_free_space;

SUM(BYTES)/1024/1024/1024
-------------------------
63.3510742

select sum(bytes)/1024/1024/1024 from dba_segments;

SUM(BYTES)/1024/1024/1024
-------------------------
381.477112

顯然,468.554688-63.3510742=405.203614,這比從dba_segments算出來的總佔用空間381.477112大了20多G,並且這個差距在不斷拉大,每天大概相差4G左右。這個問題還在跟Oracle扯皮,不知道他們是否會承認這個是bug。

http://rdc.taobao.com/blog/dba/html/179_aix_oracle_10204_issues.html/trackback

<!--

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

相關文章