maxuproc引數案例(AIX)

huangdazhu發表於2014-03-28

AIX對很多資源都是有限制的,例如使用者能建立的最大程式數限制,用引數maxuproc表示,如果使用者想建立超過maxuproc引數的程式,此時就會建立失敗。對於oracle資料庫,如果處於獨佔模式,那麼每一個客戶端的連線都會在資料庫伺服器上建立一個程式,為其服務。如果此引數maxuproc值過小,很容易達到此限制,應用報錯。
大家可以透過如下的命令檢視當前系統中設定的maxuproc引數大小,此引數的含義為:單個使用者允許的最大程式數。
db_XXX:/home/oracle>$lsattr -El sys0|grep maxuproc
maxuproc        5000               Maximum number of PROCESSES allowed per user      True
前不久,我們根據業務的垂直性把一個在AIX上面的oracle資料進行了切分,將其中幾個schema遷移到另外一個資料庫上。當時資料遷移是放到晚上進行的。當晚遷移完成後,各項業務正常。
第二天,接到報警,無法連線到資料庫。檢視ORACLE資料庫的監聽日誌,發現有如下的資訊:
23-AUG-2008 10:03:08 * (connect_data=(service_name=misc)(server=dedicated)(CID=(PROGRAM=oracle)(HOST=db_2)(USER=admin))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.168.21)(PORT=53566)) * establish * misc * 12500
TNS-12500: TNS:listener failed to start a dedicated server process
 TNS-12540: TNS:internal limit restriction exceeded
  TNS-12560: TNS:protocol adapter error
   TNS-00510: Internal limit restriction exceeded
    IBM/AIX RISC System/6000 Error: 11: Resource temporarily unavailable
立刻檢視當前系統程式數引數設定:
db_XXX:/home/oracle>$lsattr -El sys0|grep maxuproc
maxuproc        2000               Maximum number of PROCESSES allowed per user      True
檢視當前ORACLE的程式數
ps -ef|grep oracle|wc -l
發現此值為1997
至此發現問題,執行以下修改此引數的命令:
chdev -l sys0 -a maxuproc='5000'
問題解決。

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

相關文章