要使一個客戶端機器能連接oracle數據庫,需要在客戶端機器上安裝oracle的客戶端軟件,唯一的例外就是java連接數據庫的時候,可以用jdbc thin模式,不用裝oracle的客戶端軟件。加入你在機器上裝了oracle數據庫,就不需要在單獨在該機器上安裝oracle客戶端了,因為裝oracle數據庫的時候會自動安裝oracle客戶端。
用過sql server數據庫然後又用oracle的新手可能會有這樣的疑問:問什麼我用sql server的時候不用裝sql server的客戶端呢?原因很簡單,sql server也是microsoft的,它在操作系統中集成了sql server客戶端,如果microsoft與oracle有協議,將oracle客戶端也集成到操作系統中,那我們也就不用在客戶端機器裝oracle客戶端軟機就可訪問數據庫了,不過,這好像是不可能實現的事情。
也有的人會問:為什麼在sql server中沒有偵聽端口一說,而在oracle中要配置偵聽端口?其實sql server中也有偵聽端口,只不過microsoft將偵聽端口固定為1433,不允許你隨便改動,這樣給你一個錯覺感覺sql server中沒有偵聽端口,咳,microsoft把太多的東西都封裝到黑盒子裡,方便使用的同時也帶來的需要副作用。而oracle中的偵聽端口直接在配置文件中,允許隨便改動,只不過無論怎樣改動,要與oracle服務器端設置的偵聽端口一致。
好,言歸正傳,我們如何做才能使客戶端機器連接到oracle數據庫呢?
A. 安裝相關軟件
B. 進行適當的配置
A.在適當的位置安裝適當的軟件:
在客戶端機器:
1.在客戶端機器上安裝ORACLE的Oracle Net通訊軟件,它包含在oracle的客戶端軟件中。
2.正確配置了sqlnet.ora文件:
NAMES.DIRECTORY_PATH = (TNSNAMES, ….)
NAMES.DEFAULT_DOMAIN=DB_DOMAIN
一般情況下我們不用NAMES.DEFAULT_DOMAIN參數。如果想不用該參數用#注釋掉或將該參數刪除即可,對於NAMES.DIRECTORY_PATH參數采用缺省值即可,對於NAMES.DEFAULT_DOMAIN參數有時需要注釋掉,在下面有詳細解釋。
3.正確配置了tnsname.ora文件
在服務器端機器:
1.保證listener已經啟動
2.保證數據庫已經啟動。
如果數據庫沒有啟動,用:
Oracle 9i:
dos>sqlplus “/ as sysdba”
sqlplus> startup
Oracle 8i:
dos>svrmgrl
svrmgrl>connect internal
svrmgrl>startup
命令啟動數據庫
如果listener沒有啟動,用:
lsnrctl start [listener name]
lsnrctl status [listener name]
命令啟動listener