利用errorstack event解決問題

來源:互聯網
上載者:User
error|解決|問題
今天現場人員報告說exp的時候報許可權不足的錯誤。
是用目前使用者作的使用者層級的exp,按理說應該沒有什麼許可權的問題。
按照現場的情況作了測試,果然重現了問題。

d:\Temp>exp parfile=exp.par

Export: Release 9.2.0.5.0 - Production on Tue Dec 21 22:27:13 2004

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


EXP-00008: ORACLE error 1031 encountered
ORA-01031: insufficient privileges
EXP-00000: Export terminated unsuccessfully

其中exp.par的內容如下:
userid=scott/tiger
file=. cott.dmp
indexes=y
grants=y
rows=y
constraints=y
owner=scott
direct=n
compress=n
feedback=10000
resumable=y
resumable_timeout=7200
log=.\export.log

沒有發現什麼問題,於是想作一個trace,於是使用errorstack event,由於exp是在命令列中直接執行的,所以只能對整個資料庫系統作trace,由於只是想知道ORA-01031錯誤的發生原因,所以用以下語句:
alter system set events  '1031 trace name errorstack level 3';

然後重新運行exp,仍然報錯,這時候在udump目錄中產生了trace檔案,檢查檔案內容,發現:
*** SESSION ID:(15.210) 2004-12-21 22:22:36.704
*** 2004-12-21 22:22:36.704
ksedmp: internal or fatal error
ORA-01031: insufficient privileges
Current SQL statement for this session:
ALTER SESSION ENABLE RESUMABLE TIMEOUT 7200

原來問題出在ENABLE RESUMABLE部分,這是9i的新特性,用於在出現空間不足的問題時,掛起整個操作以等待操作人員解決空間問題。

只要確認了問題所在,就很好解決了,其實如果詳細地看過adminitrator文檔,也就不會犯這個錯誤,文檔裡面Enabling and Disabling Resumable Space Allocation部分很清楚地寫著:如果要使用resumbale特性,那麼必須有resumable系統許可權。

檢查現場使用者的許可權,發現只有connect和resource許可權。於是:
grant resumable to username;

當然如果象一些應用裡面那樣,使用者始終是具有DBA角色的話,那麼永遠也不會發生這個錯誤,因為DBA角色本來就具有esumable系統許可權。不過為了安全起見,我們的應用中使用者都不會具有DBA許可權。

解決問題的方法很簡單,沒什麼好說的,本文想介紹的也是發現問題的手段,也就是利用set events的方法。這個方法在我們對一個錯誤感到莫名其妙的時候往往會成為指路明燈。

作者簡介:

張樂奕,網名kamus 
曾任ITPUB Oracle認證版版主,現任itpub Oracle管理版版主。
現任職於北京某大型軟體公司,首席DBA,主要負責證券行業的全國十數處核心交易系統資料庫管理及維護工作。
熱切關注Oracle技術和其它相關技術,出沒於各大資料庫技術論壇,目前是中國最大的Oracle技術論壇www.itpub.net的資料庫管理版版主。

閱讀更多技術文章和隨筆可以登入我的個人blog。
http://blog.dbform.com。


 


相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。