<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
    安裝OWB Repository碰到的問題
    ?
    ?
    ??? 在Linux上安裝OWB是比較順利的,基本上和安裝Oracle的過程一樣。但是在之后配置Repository的過程中遇到了不少問題,下面記錄一下:
    ?
    一、安裝到一半錯誤退出
    ?
    ??? 在安裝的過程中,前幾次每次安裝到50%左右就自動退出安裝,錯誤信息的log如下:
    ?
    ......
    va:816):? parseSqlFile() ======= enter file: ../../rtasst/t_owbrt_sys.sql
    main.TaskScheduler timer[5]20090427@18:10:34.034: 00> oracle.wh.service.impl.assistant.ProcessEngine.display(ProcessEngine.java:1409):? fileName is ../../rtasst/t_owbrt_sys.sql
    main.TaskScheduler timer[5]20090427@18:10:34.034: 00> oracle.wh.service.impl.assistant.RuntimeInstaller.runSqlScript(RuntimeInstaller.java:669): java.sql.SQLException: ORA-01542: tablespace 'USERS' is offline, cannot allocate space in it
    main.TaskScheduler timer[5]20090427@18:10:34.034: 00> oracle.wh.service.impl.assistant.RuntimeInstaller.runSqlScript(RuntimeInstaller.java:669)+>ORA-06512: at line 12
    ......
    at oracle.ewt.timer.Timer.doRun(Unknown Source)
    main.TaskScheduler timer[5]20090427@18:10:34.034: 00> oracle.wh.service.impl.assistant.ProcessEngine.processRTPS_SQLToken(ProcessEngine.java:1062)+>?????? at oracle.ewt.timer.Timer.run(Unknown Source)
    main.TaskScheduler timer[5]20090427@18:10:34.034: 00> oracle.wh.service.impl.assistant.ProcessEngine.processRTPS_SQLToken(ProcessEngine.java:1062)+>?????? at java.lang.Thread.run(Thread.java:534)
    ......
    ?
    ??? 看到這個錯誤,就手動執(zhí)行了一下t_owbrt_sys.sql,發(fā)現(xiàn)會用到USERS這個tablespace的,問題是我在設(shè)計數(shù)據(jù)庫的時候就已經(jīng)把USERS設(shè)成了offline,所以SQL里的創(chuàng)建語句出錯。之后我盡力想改變這個默認(rèn)的創(chuàng)建tablespace位置,但是發(fā)現(xiàn)OWB在建立Repository的時候,會非常頻繁得用到USERS,所以無奈只好把USERS設(shè)成online。
    ?
    ?
    二、各類的沖突問題
    ?
    ??? 在多次安裝失敗的經(jīng)驗(yàn)中總結(jié)出來,每次安裝失敗之后,在數(shù)據(jù)庫中創(chuàng)建的Repository Owner的所有數(shù)據(jù)是不會自動消除的,所以每一次的安裝失敗之后,都必須要刪除這些失敗的數(shù)據(jù)。如果沒有全部刪除,則下一次安裝還是失敗。
    ?
    ??? 要刪除的有以下一些內(nèi)容:
    ?
    drop user OWB cascade; --這是我創(chuàng)建的Repository Owner
    drop role OWBR_OWB;
    drop role OWB_A_OWB;
    drop role OWB_D_OWB;
    drop role OWB_OWB;
    drop role OWB_O_OWB; --以上都是基于"OWB"創(chuàng)建的Roles
    drop user OWBRT_SYS cascade; --這個是OWB安裝Repository時自建的用戶
    ?
    ?
    ??? 基本上把這些刪除就可以了,注意Repository User是不用刪除的,那個只是在使用OWB轉(zhuǎn)換之后用來存放數(shù)據(jù)的用戶。
    ?
    ?
    三、Design Center中修改locale后的錯誤
    ?
    ??? 花了N久時間,排除了以上兩個錯誤之后,差不多Repository就安裝成功可以打開Design Center了。但是打開Design Center之后,又遇到了一個錯誤,也在這里記錄一下:
    ?
    ??? 因?yàn)槟J(rèn)安裝的時候用的是English,所以想改一下語言環(huán)境,結(jié)果修改之后,重啟無法再連上Design Center,報錯Thread: API5022: cannot connect to specified repository.非常無奈,只能到網(wǎng)上查詢了一下,發(fā)現(xiàn)遇到這個問題的人還挺多,后來在oracle forums上找到了解決問題的辦法,地址如下:http://forums.oracle.com/forums/thread.jspa?threadID=418288
    ?
    ??? 基本上可以這樣子進(jìn)行修改:
    ?
    ??? 1、先修改<OWB Home>\owb\bin\admin\Preference.properties,把locale的參數(shù)修改為en
    ?
    ??? 2、修改后可以打開Design Center,但依然報錯,但是不要緊,報錯了只要不點(diǎn)擊關(guān)閉,就可以繼續(xù)進(jìn)入到Design Center進(jìn)行設(shè)置
    ?
    ??? 3、在Design Center中把locale的設(shè)置重新改回到English-United States,然后再點(diǎn)擊那個錯誤信息,重啟Design Center
    ?
    ?
    四、其他的一些問題
    ?
    ??? 在網(wǎng)上找資料的時候發(fā)現(xiàn)別人還遇到過一些問題,也摘錄一下:
    ?
    http://blog.csai.cn/user1/16350/archives/2006/9524.html
    *************************************************************************************
    Oracle Warehouse Builder安裝配置之OWB資料庫安裝
    最近在使用Oracle Warehouse Builder的時候,發(fā)現(xiàn)其基本資料庫的安裝配置過程比較繁瑣和笨拙,下面首先說一下安裝過程中出現(xiàn)的問題,然后再比較詳細(xì)的說明一下正確安裝配置的過程。由于全部用文本方式說明,很多圖形就略去了,看完本文還有不清楚的可以聯(lián)系我。
    ?
    我的OWB安裝環(huán)境:
    IBM 本本,P1.3G/40G/512M
    Oracle 10G Express Edition
    Express 的安裝路徑為 E:\oraclexe
    OWB的安裝路徑為:D:\OraHome_1
    ?
    本機(jī)的Oracle Express默認(rèn)服務(wù)為xe,數(shù)據(jù)庫SID為xe
    ?
    安裝過程中經(jīng)常出現(xiàn)的問題(錯誤)包括:
    1、在剛開始初始化OWB資料庫的時候,系統(tǒng)報監(jiān)聽器在協(xié)議棧中找不到對應(yīng)的處理句柄錯誤,然后退出安裝。
    2、在重新安裝的時候,不停的報某某對象已經(jīng)被使用,然后安裝程序退出。
    ?
    問題分析:
    ?
    第一個問題可能是監(jiān)聽器配置不正確,所以系統(tǒng)會報錯。但是當(dāng)查看日志文件(在D:\OraHome_1\owb\reposasst\log.txt.0中)可以發(fā)現(xiàn)出這個錯誤的時候,系統(tǒng)已經(jīng)將不少資料庫對象安裝到Express數(shù)據(jù)庫中去了,也就是前面的對象安裝的時候系統(tǒng)是可以正確找到監(jiān)聽器信息的,到了某個點(diǎn)上就找不到了。由此,可以進(jìn)一步推測,OWB資料庫的初始化程序的編寫團(tuán)隊(duì)中存在某些配合方面的問題,可能同一個功能(比如這里的向監(jiān)聽器發(fā)出連接請求)由不同的人實(shí)現(xiàn)時采用了完全不同的處理方法,結(jié)果前者是正確的,后者可能錯也可能對,因此是不確定的,程序的魯棒性比較差。
    ?
    第二個問題的原因很明顯,那就是OWB資料庫重新安裝的時候,系統(tǒng)并沒有將原有由于沒有成功安裝而留在Express數(shù)據(jù)庫中的對象清除掉。真搞不清楚為什么OWB的開發(fā)團(tuán)隊(duì)會連這個問題都留給用戶手工去解決。雖然在owb的目錄下有很多sql腳本(D:\OraHome_1\owb\reposasst下有幾乎所有的安裝sql腳本) 也有清除腳本,但這么多腳本放在一起,估計不是OWB的開發(fā)人員親自上馬,一般用戶很難在短時間之內(nèi)輕松的清除這些殘留對象,更別說再次安裝了。
    ?
    解決方法:
    對第一個問題只好手工去修改監(jiān)聽器的配置信息了。
    找到監(jiān)聽器的配置文件(我的機(jī)器上是E:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN\listener.ora,這里千萬當(dāng)心不要把OWB安裝目錄下的那個listener.ora當(dāng)成是監(jiān)聽器的配置文件,因?yàn)槲沂褂玫氖荗racle Express,所以當(dāng)然監(jiān)聽程序當(dāng)然使用Express安裝目錄下的listener.ora作為配置文件),這個文件中原來的內(nèi)容為:
    SID_LIST_LISTENER =???????????????????????????????????????????????????
    ? (SID_LIST =?????????????????????????????????????????????????????????
    ??? (SID_DESC =???????????????????????????????????????????????????????
    ????? (SID_NAME = PLSExtProc)?????????????????????????????????????????
    ????? (ORACLE_HOME = E:\oraclexe\app\oracle\product\10.2.0\server)????
    ????? (PROGRAM = extproc)?????????????????????????????????????????????
    ??? )?????????????????????????????????????????????????????????????????
    ??? (SID_DESC =???????????????????????????????????????????????????????
    ????? (SID_NAME = CLRExtProc)?????????????????????????????????????????
    ????? (ORACLE_HOME = E:\oraclexe\app\oracle\product\10.2.0\server)????
    ????? (PROGRAM = extproc)?????????????????????????????????????????????
    ??? )?????????????????????????????????????????????????????????????????
    ? )???????????????????????????????????????????????????????????????????
    ??????????????????????????????????????????????????????????????????????
    LISTENER =????????????????????????????????????????????????????????????
    ? (DESCRIPTION_LIST =?????????????????????????????????????????????????
    ??? (DESCRIPTION =????????????????????????????????????????????????????
    ????? (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))??????????????
    ????? (ADDRESS = (PROTOCOL = TCP)(HOST =127.0.0.1)(PORT = 1521))??????
    ??? )?????????????????????????????????????????????????????????????????
    ? )???????????????????????????????????????????????????????????????????
    ??????????????????????????????????????????????????????????????????????
    DEFAULT_SERVICE_LISTENER = (XE)??????
    ?
    由上面的內(nèi)容可以看出與TCP協(xié)議對應(yīng)的那個SID_NAME是CLRExtProc,所以O(shè)WB安裝程序就會根據(jù)這個配置信息在機(jī)器上找名為CLRExtProc的實(shí)例,當(dāng)然會失敗,因?yàn)槲业哪J(rèn)實(shí)例名是xe! 于是手工把上面內(nèi)容修改為:
    SID_LIST_LISTENER =
    ? (SID_LIST =
    ??? (SID_DESC =
    ????? (SID_NAME = PLSExtProc)
    ????? (ORACLE_HOME = E:\oraclexe\app\oracle\product\10.2.0\server)
    ????? (PROGRAM = extproc)
    ??? )
    ??
    ? (SID_DESC =
    ?????? (GLOBAL_DBNAME =xe)
    ????? (ORACLE_HOME = E:\oraclexe\app\oracle\product\10.2.0\server)
    ?????? (SID_NAME = xe)
    ??? )
    ? )
    ?
    LISTENER =
    ? (DESCRIPTION_LIST =
    ??? (DESCRIPTION =
    ????? (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
    ????? (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    ?????
    ??? )
    ? )
    ?
    DEFAULT_SERVICE_LISTENER = (XE)
    ?
    這里的xe是oracle express 10g安裝時生成的默認(rèn)數(shù)據(jù)庫實(shí)例。修改完了之后,別忘記重新啟動監(jiān)聽程序!
    ?
    針對第二個問題,除了手工刪除數(shù)據(jù)庫對象之外似乎沒有更好的解決方法了(如果你不想重新安裝Oracle 10g Express的話)
    這里有兩種方法,當(dāng)然都是基于10g express數(shù)據(jù)庫的數(shù)據(jù)字典的。
    1、從dba_sequences,dba_tables,dba_views等系統(tǒng)表中找出安裝用戶所擁有的sequence,表,視圖等數(shù)據(jù)庫對象,然后drop掉。這個方法比較麻煩,并且需要考慮所有的數(shù)據(jù)庫對象,忘記一個的話,下次就得重新來過。
    2、從DBA_OBJECTS表中找出安裝用戶所擁有的所有數(shù)據(jù)庫對象并根據(jù)對象類型的不同產(chǎn)生不同的drop語句,然后將這些語句Paste到PL/SQL Developer或者SQL Plus中去執(zhí)行。
    ??? 該語句的格式類似于:
    SELECT 'DROP '||OBJECT_TYPE||' Ojbect_owner.'||OBJECT_NAME||';' FROM DBA_OBJECTS WHERE OWNER='Ojbect_owner';
    其中的Object_owner是OWB資料庫的所有者。
    使用以上兩個方法其實(shí)并沒有把全部的Owb殘留對象從數(shù)據(jù)庫中清除掉,還要執(zhí)行以下一條sql語句:
    ?
    ?? drop role owb_Ojbect_owner?? (再次提醒Object_owner是OWB資料庫的所有者,你可以替換為你自己的有意義的名字)
    ?
    這個角色是OWB安裝程序在資料庫中自動創(chuàng)建的,所以重新安裝的時候一定要清楚,不然你就要被那些討厭的報錯信息折磨得發(fā)狂了 :)
    ?
    總結(jié):
    ?
    從以上發(fā)現(xiàn)問題,分析問題,解決問題的過程中可以發(fā)現(xiàn)OWB在很多細(xì)節(jié)方面做得還很不好,真讓人難以相信這樣的產(chǎn)品是出自O(shè)racle之手(其它方面暫且不論),另外,開發(fā)團(tuán)隊(duì)內(nèi)部的溝通協(xié)作是多么的重要,如果沒有必要標(biāo)新立異就盡量不要重新去發(fā)明輪子吧!我想,如果Oracle 的OWB團(tuán)隊(duì)再多花點(diǎn)精力在這些細(xì)節(jié)上面,可以避免很多人為這些討厭的錯誤而抓狂了也符合Oracle 的王者風(fēng)范;反之,那就是搬起石頭砸自己的腳了,這樣的產(chǎn)品還是不要退出的好,免得把自己的名氣做壞了。
    ?
    (本文原創(chuàng),其中的解決方法也是經(jīng)歷若干次抓狂之后才找到的,如果引用,請加聯(lián)結(jié),謝謝!)
    *************************************************************************************
    ?
    ?
    ?
    ?
    posted on 2009-07-15 22:15 decode360 閱讀(888) 評論(0)  編輯  收藏 所屬分類: 11.BI
    主站蜘蛛池模板: 亚洲国产亚洲片在线观看播放| 中文亚洲AV片不卡在线观看 | 久久精品国产亚洲av麻豆蜜芽| 亚洲av中文无码乱人伦在线播放 | 亚洲国产精品一区二区第四页 | 1000部夫妻午夜免费| 久久aa毛片免费播放嗯啊| 久久久久国产精品免费网站| 中国好声音第二季免费播放| 国产精品午夜免费观看网站| 中文字幕无线码中文字幕免费| 国产精品极品美女自在线观看免费 | 天堂亚洲免费视频| 深夜国产福利99亚洲视频| 亚洲免费一区二区| 亚洲中文字幕无码一区二区三区 | 久久电影网午夜鲁丝片免费| 成人免费网站在线观看| 成人免费视频国产| 亚洲av成人一区二区三区在线观看| 又粗又硬免费毛片| 亚洲中文字幕无码不卡电影| 亚洲AV中文无码字幕色三| 亚洲第一成年网站大全亚洲| 亚洲第一男人天堂| 羞羞视频免费网站入口| 国产va免费精品| 无码成A毛片免费| 成熟女人特级毛片www免费| 免费一级成人毛片| 国产亚洲精品资源在线26u| 亚洲精品无码不卡| 亚洲人成电影网站色| 免费又黄又爽又猛大片午夜| 另类免费视频一区二区在线观看| 久久国产免费福利永久| 热久久精品免费视频| 久久亚洲中文字幕精品一区| 亚洲精品免费在线观看| 亚洲人成未满十八禁网站| av片在线观看永久免费|