唉,項目規定要用Oracle,我這種記憶體小、cpu主頻低的電腦真的不太想用這個大型的資料庫。
沒辦法,評審的時候可能要用到我的電腦,只能先把資料庫配置好。
安裝Oracle還是非常方便的,因為openSUSE有SUSE企業版的支援,官方提供了一個rpm包(orarun),安裝了這個包之後,稍微修改一些環境變數,其他的核心參數都會自動修改。具體的安裝方法在:http://en.opensuse.org/Oracle_on_openSUSE
運行了Oracle之後(由orarun安裝的啟動指令碼,可以在/etc/init.d/下運行Oracle或直接使用rcOracle啟動),所有的參數都會被修改,Oracle使用者和dba使用者組都會被建立,只要在database/install/oraparam.ini中把認證的系統版本修改為自己的系統就可以了,具體的上面的網址上有介紹。使用Oracle使用者登入後,運行Oracle安裝程式後,所有中文會亂碼,最簡單的方法就是把Oracle使用者的語言設定為英文(export LANG=us_EN),這樣安裝語言就變成了英文。
安裝完之後,因為我建的預設資料庫的sid和項目設定檔中的不同,所以準備建立一個資料庫。還是要用Oracle使用者登入,使用dbca可以使用Oracle的嚮導建立資料庫。為了避免亂碼,還是可以設定語言為英文。
建立好資料庫後,因為兩個資料庫的sid不相同,而Oracle的設定檔中預設使用的是系統安裝時預設的sid,也就是說啟動的資料庫是預設的那個資料庫。為了使用新建立的資料庫,需要先更改環境變數Oracle_SID,使用export命令將Oracle_SID臨時改為新建立的sid,然後就可以使用sqlplus登入,啟動資料庫了,使用lsnrctl來啟動資料庫監聽。也可以使用emctrl啟動dbconsole,這樣就可以通過網頁的企業管理器進行資料庫的操作。
資料庫建立完後,就是建立表了。在建立表的時候又遇到了一個問題,我使用了sys使用者進行登入並建立表,這樣會導致無法建立觸發器。大概是為了安全性考慮,Oracle禁止在sys上建立觸發器。所以我先建立了一個使用者。在給使用者指派許可權的時候太麻煩了,160多種許可權啊,還好分配了角色之後,有的許可權就自動有了。然後再用新建立的使用者(user層級)就成功建立了所有的序列、表和觸發器。
一直以為自己不會用到Oracle,所以老師上課的時候沒有怎麼聽,平時也不會去看這種東西,導致我啟動資料庫就查了很長時間的資料,鬱悶啊、麻煩啊!