前言
我們做的項目人家點名要用Oracle資料庫,在查詢、修改等方面,由於有SqlServer的基礎,這塊沒有什麼問題。但是剛剛接觸,不熟悉還是有的,例如建立資料表空間,建立使用者,還需要給使用者賦予許可權。
我用的是PL/SQL,用了這幾天,感覺Oracle的許可權賦予這塊,確實挺強大的。依稀記得我在弄FTP伺服器時,為了控制許可權而大費周折。還有強大的就是串聯刪除這個功能,在用SqlServer時,還需要自己寫觸發器來實現,而Oracle單單只需要一句話就實現了,讓人感覺其強大。
但是,強大的背後,就是它那繁瑣的使用步驟。
我們合作開發,資料庫裝到了我的電腦上,其他兩個人那隻裝PL/SQL。Oracle的遠端連線,不像SqlServer那樣是在登陸介面輸上IP,在往上一搜,就有人教你怎麼用PL/SQL遠端連線資料庫。
在這裡,我只是給大家一個串連,推薦別人的部落格也是一種美德,嘻嘻——用PLSQL遠端連線資料庫(本機沒有安裝ORACLE資料庫)
問題描述
如果事情到這裡就結束了,那麼這部落格也就不會出了。
問題來了,不論怎樣配置,就是登陸不上去,叫過來了寫這篇部落格的本人弄了結果還是不行,後來用這種方法遠程了一下別人的點,發現是可以的,於是開始把矛頭指向了服務端。
本來認為是自己安裝過程中有遺漏選項,所以找了一個安裝教程看了一下,幾乎都是下一步的事情,就算有設定,也不是設定監聽之類的東西,所以就沒有重裝(我用的是ORACLE 11G,如果是10G的話,可能不會有我這種問題)。
於是我開始自己做實驗,找到了我的”oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN“下的的tnsnames.ora。將裡面的localhost改成了我自己的IP,發現居然不可以,於是就確定了,這個問題的源頭在我的資料庫。
解題思路
印象中,SqlServer的遠端連線如果不能用的話,是可以配置的。第一,檢查防火牆;第二。。。。。,於是,就在網上找了一下,結果真的發現了ORACLE遠端連線佈建服務端的一篇文章。
解題方法
遠程服務端配置:
1、資料庫配置(我犯的不是這個錯誤)
將資料庫操作模式配置為“共用服務模式”,如果不確定資料庫的操作模式,可以開啟
“DatabaseConfiguration Assistant”工具的在資料庫中設定資料庫選項進行配置。
2、資料庫服務
開啟資料庫服務(一般不會犯這個錯)。在命令韓剛輸入services.msc看看Oracle的服務是否開啟。
3、監聽程式(我的就是在這個環節出了問題)
確定資料庫已經附加到監聽程式中,並且監聽程式已啟用。
我的資料庫監聽開啟了,但是資料庫沒有附到監聽程式中,方法是:在net manager裡找到你的監聽,然後
在裡面的資料庫中加入伺服器名和Oracle_home的路徑。
儲存,然後重啟監聽伺服器就行。
4、網路狀態
確定監聽程式所使用的連接埠已被列入防火牆允許的行列。(這點對咱們來說,有點陌生,防火牆,我一般
都關閉。。。。)
感想
現在,伺服器端就設定好了,那麼別人是否可以串連你呢?難道非要等到這樣的悲劇發生了之後,才知道自己反省自己嗎?如果能夠早點測試一下,那麼就不會耽誤好些人的時間。
測試的方法很簡單,就是開啟命令列,用“tnsping 伺服器IP地址”,如果能夠ping通,那麼就說明你的伺服器別人是可以遠程到的,就可以放心的讓別人去遠程你的資料庫了。
寫在結尾
初步看了Oracle資料庫的教程,目前位置,對Oracle資料庫的瞭解還屬於小白,還沒有完全遷移到SqlServer上,不過相信只要學一點,就往已學的上面遷移一點,學習起來鴨梨還不算大
ps:我們系統中的許可權部分換人做了,不過許可權那部分我依然想實現。所以得空我就會自己敲Demo,最後上傳一個完整的程式碼範例的~~
Linux下使用Oracle Instant Client遠端連線伺服器