對IMP-00013問題的思考
> oerr ora 12041
12041, 00000, "cannot record ROWIDs for index-organized table \"%s\".\"%s\""
// *Cause: Index-organized tables do not have ROWIDs. Therefore a materialized
// view log that records the ROWIDs of an index-organized table
// could not be created.
// *Action: Do not include the WITH ROWID option when using the
// CREATE MATERIALIZED VIEW command and do not include the ADD ROWID
// option when using the ALTER MATERIALIZED VIEW command if the master
// table is index-organized.
其實碰到問題的時候,辦法總比困難多。有很多的方式來解決,如果處理得當,就會避免很多後續的問題。
比如今天開發反饋在測試環境匯入一個dump的時候 碰到了如下的錯誤。這個問題是很常見的。
Export file created by EXPORT:V11.02.00 via conventional path
IMP-00013: only a DBA can import a file exported by another DBA
IMP-00000: Import terminated unsuccessfully
基本有兩種思路,一種是賦予dba許可權,另外一種是賦予imp_full_database的許可權。
透過錯誤的字面意思,是需要賦予dba的許可權。如果這樣做,就很被動了,因為目前測試環境有幾十個,分別歸屬不同的開發小組,他們會根據需求匯入對應的dump,這個dump是直接從現場環境中傳過來的,匯出的時候就直接用了dba的許可權,所以在匯入的時候就出了上面的錯誤。如果我們這次賦予了dba許可權,那麼這個使用者就存在一定的風險,如果開發做了超出許可權之外的操作,那就會造成一些不明不白的問題,所以如果賦予了dba許可權,那麼在dump匯入之後就需要revoke dba許可權。如果dba每次都去跟蹤這些操作就顯得有些“多餘”了。所以就陷入一個很尷尬的境地,許可權放開出問題是dba,不給許可權導不了dump還是dba的問題。如果能夠一勞永逸的解決問題就太好了。
這個時候如果我們細細的琢磨一下這個問題,就會發現,其實我們直接賦予imp_full_database的許可權就夠了。不用直接動用dba許可權。
這個imp_full_database的許可權目前來看也是安全的。如果開發拿到這個許可權,還真幹不了什麼其他的操作。
所以目前為止我們可以認為imp_full_database的許可權已經足夠應付這個問題,不需要大動干戈,做吃力不討好的事情。
事情到目前為止還沒有完,真實的情況是過了一段時間又出現了問題。這次是在現場測試環境中碰到了,問題的原因是因為在開發測試環境中會有一些資料字典相關的資料。如果把各個模組的資料字典資料合併起來,就是一個dump檔案了,根據流程這個dump檔案需要在生產中部署。結果在現場的測試環境中就發現了這個問題。
這個問題說大也大,說下也小,當時有個哥們的處理思路就是生產環境中直接加個imp_full_database的許可權就可以了。我當時就拒絕了。客戶的環境中的任何許可權,他們都有監控,我們不能在沒有得到許可的情況下私自改動。
那個哥們當時也有點急了。
Man...
its just a privilege
otherwise we have to work again
you can revoke it
after my confirmation
我給他解釋了一番,如果我們現在在哪個環境中碰到了問題,就這麼修,那麼現場測試環境也有幾十套,我們也要一套一套這麼修嗎。況且現場環境中會不斷的增加新的測試環境,沒次新增一個,客戶都會找到我說,你們的環境有問題,這樣就把問題又推給dba了。到了生產,如果我們放了一馬,私自修改了許可權,那麼從生產中匯出的dump檔案都需要這個許可權,又得修。所以就是錯誤的連鎖反應了。他聽了聽,也確實有道理就把測試環境中的那個許可權給revoke了之後,重新匯出了一個dump。直到一年多過去了,也沒有聽說過生產中匯入dump有問題。
所以對於這個問題的歸納就是,賦予imp_full_database許可權,也不能一概而論,要根據需要來。要不就會畫蛇添足。開發,測試,dba都工作相安無事才是真的好。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1353121/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- IMP-00013 問題及解決方法
- 對於一個編解碼問題的思考
- 問題思考
- (原)一個外行對ERP的問題的思考方式
- 一個外行對ERP的問題的思考方式=原創
- 面對複雜問題時,系統思考助你理解問題本質
- 對於多個資料庫表對應一個Model問題的思考資料庫
- 最近思考的一個問題
- 思考一個問題
- Android 7.0 startActivity()原始碼解析以及對幾個問題的思考:Android原始碼
- 面對問題,產品經理如何做到全面思考?
- 提升解決問題能力的思考
- 關於PWA落地問題的思考
- 重要的問題寫下來思考
- IMP-00013: only a DBA can import a file exported by another DBA 問題及解決方案ImportExport
- 用英文思考問題
- 對於“前端狀態”相關問題,如何思考比較全面前端
- 刨根問底:對於 self = [super init] 的思考
- IT人必須思考的14個問題
- 一個關於Linq對引用型別元素集合去重問題的思考型別
- 程式導向,物件導向,函式式對同一個問題的思考方式物件函式
- 關於深度態勢感知問題的思考
- 聊一聊黑客是如何思考問題的黑客
- 一次跨域問題引起的思考跨域
- 軟體測試員的思考問題方式
- [轉帖]一個NAT問題引起的思考
- 問題對應的page
- 測試團隊效率問題思考
- 未來網路若干問題思考
- 二維碼問題上的一些思考
- Minya 分層框架實現的思考(三):問題框架
- 車路協同若干痛點問題的思考
- IT 技術人必須思考的 15 個問題
- 由一道JS非同步面試題,思考對非同步問題的處理(1,暫時不用promise)JS非同步面試題Promise
- 對策問題
- 多對多的操作問題
- 徵集對Oracle的問題 薦Oracle
- 工作三個月問題與思考【前端】前端