公司使用linux開發(fā)機進行程序開發(fā)時,由于開發(fā)用Oracle數據庫是由日方提供,所以經常使用sqlplus連接到遠程數據庫上進行開發(fā),例如:
sqlplus username/password@servicename
于是想,用我的兩臺電腦雙機互聯(lián)試一試,也玩?zhèn)€“遠程連接”。實驗如下:
首先在我的臺式機上安裝了Oracle9i的數據庫管理系統(tǒng),并建立了一個數據庫實例:xy
然后為該實例新增了一個用戶,用戶名和密碼都是kxy01。啟動實例xy后,在臺式機上,直接在cmd環(huán)境鍵入:sqlplus kxy01/kxy01@xy 就可以連接上數據庫,呵呵,想來本地連接都是不費吹灰之力就行的。
之后,在我的筆記本上安裝了Oracle9i的Client工具。然后試著直接用上述命令訪問,顯然是不行的,系統(tǒng)返回無法解析服務名的錯誤信息。
要實現連接到遠程數據庫,先了解一下相關知識吧,查了一下書。原來,Oracle數據庫的遠程連接是通過Oracle Net實現的。在服務器和客戶端都必須運行有配置正確的Oracle Net才可以。不管使用的配置和配置工具如何,都應該告訴Oracle Net怎樣找到遠程數據庫。
要怎么配置Oracle Net呢。點開Oracle的開始菜單,尋找相關的工具,發(fā)現一個名為:
Net Configuration Assitant的工具,應該就是它了。啟動之:
Net Configuration Assitant共提供了4個配置功能:
監(jiān)聽程序配置,
命名方法配置,
本地網絡服務名配置
目錄使用配置。
要從遠程位置連接Oracle數據庫,必須配置Oracle網絡監(jiān)聽程序。Net Configuration Assitant可以用于此項配置工作,啟動后選擇監(jiān)聽程序配置,一路下一步即可。
之后點開命名方法配置,系統(tǒng)已經默認提供了三種,其他兩種也不太認識,干脆不改了,直接點后退,回到主菜單。
主菜單中,第三項是本地網絡服務名配置。要通過網絡訪問Oracle數據庫或其他服務,要使用網絡服務名,該項配置允許使用由本地命名解析的網絡服務名。而第四項為目錄使用配置,點開一看,居然要選擇目錄服務器,我這一共就兩臺電腦,要什么目錄服務,看來第四項不適合本實驗了,顯然,關鍵配置就在第三項:本地網絡服務名配置。
將其點開,選擇“添加”網絡服務名操作,然后會詢問你希望訪問何種版本的Oracle數據庫服務。按照常理,我裝的是Oracle9i自然應該選擇******個(Oracle8i或更高版本數據庫服務),可經過實踐證明,只有選擇第二個(Oracle8i發(fā)行版8.0數據庫或服務)才能正常實現遠程連接,不明其中原因,也就只有選第二個拉。
然后輸入我的數據庫實例SID:xy
然后選擇網絡協(xié)議,雙機互聯(lián)應該選擇TCP吧,再然后填寫數據庫所在的主機名:kxyhome。端口號采用默認的1521。
點擊下一步,進行數據庫連接的測試,測試成功后進行網絡服務名的填寫,這個名字就應該是sqlplus連接時候用的服務名了,這里我們使用:xyhome
之后一切配置完成,來到命令行,使用sqlplus進行連接:
sqlplus kxy01/kxy01@xyhome
成功