1. 程式人生 > >Oracle11g 建立資料庫中問題處理(必須執行Netca以配置監聽程式)

Oracle11g 建立資料庫中問題處理(必須執行Netca以配置監聽程式)

這兩天學習《OCP/OCA認證考試指南》,要建立新的資料庫,因為此前我的電腦上已經被折騰了好久的Mysql 和oracle10g ,所以可能導致很多環境都變了,建立資料庫的過程中出現了一些小問題,也是搞了好久才搞定,下面記錄一下遇到的兩個大問題吧。

1. 監聽埠 

oracle預設的監聽埠是本機的1521,這個我們用預設就好了。但是我不太清楚是不是因為我之前就已經在用了這個埠,所以在建立新的資料庫的時候遇到這樣的提示錯誤


於是我再次執行Net Configuration Assistant時這個1521的監聽埠明明是好好的,當時還不知道是需要手動啟用並且在net Manager中進行配置。後來索性就重新刪除了這個監聽埠。想要重新建立監聽埠的時候提示我1521埠已經被佔用了,我就抓狂了,於是去網上搜檢視監聽埠的命令。

1. 在執行中輸入 cmd 開啟命令列工具

2. 輸入 netstat -ano 

這個命令之後,你能看到本機上所有埠以及佔用當前埠的程序的PID號:


3. 找到PID後,接著輸入tasklist|findstr 3476 

就可以得到這個PID對應的程序的名字了,如果沒有什麼很複雜的改動埠的操作的話,這個1521的埠基本是被TNSLSNR.exe佔用的,然後我就索性把這個程序給強制關掉了,然後重新在net configuration Assistant 中重新配置,這下1521埠監聽起來了,沒有問題了。其實我就是強迫症想要重頭再弄一邊,感覺應該是沒有必要的,關鍵步驟不在這裡。

2. DB control requires database to be registered with atleast one listener

然後我就回到建立資料庫的過程中,繼續執行enterprise manager的安裝時,仍舊彈出錯誤提示,不過這下提示換了:


這個圖是盜的,不過彈出的對話方塊是一樣,從提示中可以看到,提示我們當前的database沒有被註冊到至少一個listener上,既然我們的linstener已經是ok的了,那就不是Net CA的問題了,於是繼續google,找到了下面的解決辦法,我也是誤打誤撞的,因為書裡面根本沒有寫這些步驟。

1. 在cmd中執行下面的命令:lsnrctl  成功之後接著執行 status 可以檢視listener的狀態,我的執行出來以後是下面的介面:


可以看到這裡並沒有我們的資料庫是例項,所以接下來需要把之前建立半成功(為什麼叫半成功,因為enterprise manager總是失敗啊,我們現在就在解決這個問題)的db關聯到listener上。

2. 開啟Net Manager


注意最頂上有個不是特別容易發現的下拉框,然後選中資料庫服務,如果你和我一樣沒有配置,這裡面應該是空的,選擇下面的新增資料庫,把相應的名稱,SID和主目錄新增進去,這裡如果你和我一樣按照OCP/COA那本書中介紹的話,名稱應該也是ocp11g,那個目錄因人而異了,不太清楚的重新讀一下那本數中講解的建立資料庫的步驟,應該就ok了。

3. 好了,這個步驟完成之後,回到cmd視窗中,執行reload命令,再重新檢視stauts,就會得到下面的介面:


看到了吧,在最下面,服務ocp11g中包含了1個例項了,這樣證明我們的db已經新增到1521上面的listener中去了。

到這裡就大功告成了,返回你的DBCA中繼續進行db的建立吧,這裡應該就不會再彈出什麼么蛾子了。。。一直到建立成功的介面彈出,大喊一聲 FINALLY!


恩,是的,這個圖還是盜的,因為我的已經建立成功了,當時沒有截圖,反正就是這個介面,會告訴我們一個database control URL,據說這個URL很重要,要記號。。。