trace檔案無法生成

Ora-600發表於2008-06-14

平臺:HP-UX B.11.23 ia64
資料庫:Oracle9i Enterprise Edition Release 9.2.0.2.0 - 64bit Production

故障現象:客戶SQL語句出現效能問題,本來想收集SQL跟蹤資訊,發現user_dump_dest無法寫入,修改到其他路徑下只能產生一次trace檔案
經過查詢,發現background_dump_dest也無法寫入trace檔案,懷疑許可權有問題,決定建立新的目錄,並賦予合適屬組及許可權,將udump和bdump指向新的目錄,經過測試,發現只能在每次指定新目錄後產生一次trace檔案,以後在其他會話啟用跟蹤也無法產生新的跟蹤檔案,重新切換新目錄後又再次可以產生一個檔案,然後再另一個會話中開啟跟蹤無法產生新的跟蹤檔案,很奇怪。
進一步查詢,發現/home/oracle/app/oracle/product/9.2.0/rdbms/log 產生大量trace檔案,產生的trace檔案與會話連線有關,在trace檔案中出現了Ioctl ASYNC_CONFIG error, errno = 1的錯誤資訊,經過確認,發現這是HP安騰機器非同步I/O的錯誤。
解決方法:
經查詢,在hp機器上不論disk_asynch_io如何設定,Oracle總是嘗試開啟非同步I/O,而系統非同步I/O預設Oracle是不能使用的,因此只需要禁用掉Oracle的非同步I/O或者開啟系統的非同步I/O,就可解決問題。使用下面的語句重新設定許可權後故障解決:
chown bin:bin /dev/async
chmod 660 /dev/async

參照Metalink:Note:302801.1 How to disable asynch_io on HP to avoid Ioctl Async_config Error Errno = 1

另外,也可以通過完成系統對非同步I/O的設定來解決問題,如下:
1、建立/etc/privgroup檔案,內容為:
dba MLOCK
2、執行命令/usr/sbin/setprivgrp -f /etc/privgroup
3、執行完畢,再用sqlplus登陸發現沒有再生成上述的trace檔案。

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

相關文章