日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

oracle 客户端访问数据库,ORACLE数据库客户端连接访问服务器

發(fā)布時(shí)間:2025/3/19 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 客户端访问数据库,ORACLE数据库客户端连接访问服务器 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)庫(kù)客戶端連接訪問服務(wù)器

oracle客戶端訪問服務(wù)器是通過Listener/Tnsnames協(xié)議機(jī)制。Listener負(fù)責(zé)再服務(wù)器上監(jiān)聽來自遠(yuǎn)端的連接請(qǐng)求,而Tnsnames則是遠(yuǎn)端的連接協(xié)議。用戶在使用這個(gè)機(jī)制的時(shí)候,只需要保證三點(diǎn)即可:

1.客戶端/服務(wù)器之間的網(wǎng)絡(luò)鏈路通暢。

2.服務(wù)器上監(jiān)聽器配置正確并啟動(dòng)($ORACLE_HOME/network/admin/Listener.ora),且數(shù)據(jù)庫(kù)實(shí)例已經(jīng)啟動(dòng)。

3.客戶端上請(qǐng)求器配置正確($ORACLE_HOME/network/admin/Tnsname.ora)。

下面是我的配置并訪問過程:

一:檢查客戶端/服務(wù)器之間的網(wǎng)絡(luò)狀態(tài)

客戶端操作系統(tǒng):Windows XP Professional SP3

數(shù)據(jù)庫(kù)客戶端版本:Oracle 11g Release

IP:192.168.114.103

服務(wù)器操作系統(tǒng):RHEL 5.1

數(shù)據(jù)庫(kù)服務(wù)器版本:Oracle Enterprise 11.1.0.6 Release

IP:192.168.114.222

IP對(duì)應(yīng)名稱:ttecdis.tju-tcb.cn

常見數(shù)據(jù)庫(kù)名稱ttecdis

數(shù)據(jù)庫(kù)啟動(dòng)后實(shí)例名稱ttecdis

客戶端與服務(wù)器互相ping,網(wǎng)絡(luò)通暢。

二:服務(wù)器端Listener.ora配置

在服務(wù)器端,存在一個(gè)初始化參數(shù)SERVICE_NAME,這個(gè)參數(shù)就是用于定義客戶端文件(tnsname.ora)請(qǐng)求的服務(wù)器端的服務(wù)名,也是服務(wù)器端文件(listener.ora)提供的服務(wù)名。

可以使用show parameter service_name來查看。

修改了服務(wù)器的SERVICE_NAME參數(shù),監(jiān)聽文件listerner.ora文件也要做出修改,使二者保持一致,并使客戶端的tnsnames.ora內(nèi)的SERVICE_NAME與之一致。才能保證通暢。

此處特意將服務(wù)器的SERVICE_NAME設(shè)置為兩個(gè)值,以描述客戶端請(qǐng)求服務(wù)器端連接的對(duì)應(yīng)關(guān)系。

ALTER SYSTEM SET SERVICE_NAMES='kanon,emily' scope=both--此修改將使的spfile與內(nèi)存同時(shí)被修改,下面是監(jiān)聽器的配置。

配置舉例:

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

)

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = kanon)

(ORACLE_HOME = $ORACLE_HOME/)

(SID_NAME = ttecdis)

)

(SID_DESC =

(GLOBAL_DBNAME = emily)

(ORACLE_HOME = $ORACLE_HOME/)

(SID_NAME = ttecdis)

)

)

Listener.ora位于目錄$ORACLE_HOME/network/admin.文件內(nèi)包含兩部分內(nèi)容:LISTENER包含了監(jiān)聽使用的協(xié)議、本機(jī)地址和監(jiān)聽端口;SID_LIST_LISTENER描述了本機(jī)對(duì)外提供的服務(wù)(GLOBAL_DBNAME)。

完成上述兩端的配置后,啟動(dòng)數(shù)據(jù)庫(kù),之后,啟動(dòng)監(jiān)聽器(lsnrctl start),顯示信息如下:

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ttecdis.tju-tcb.cn)(PORT=1521)))

Services Summary...

Service "kanon" has 1 instance(s).

Instance "ttecdis", status UNKNOWN, has 1 handler(s) for this service...

Service "emily" has 1 instance(s).

Instance "ttecdis", status UNKNOWN, has 1 handler(s) for this service...

Service "ttecdis" has 1 instance(s).

Instance "ttecdis", status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully

此時(shí),服務(wù)器實(shí)現(xiàn)啟動(dòng)監(jiān)聽程序,向外提供服務(wù)kanon與emily(GLOBAL_DBNAME參數(shù)描述的值就是對(duì)外提供的服務(wù)器名),客戶端可以向服務(wù)器上的kanon(SERVICE_NAME參數(shù)描述的值就是目的服務(wù))發(fā)起連接了。

三:遠(yuǎn)端Tnsnames.ora配置

配置舉例:

wintolinux =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.114.222)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = kanon)

)

)

文件內(nèi)包含兩部分內(nèi)容:ADDRESS_LIST 描述了連接使用的協(xié)議、服務(wù)器地址和端口;CONNECT_DATA描述了目標(biāo)服務(wù)器名(SERVICE_NAME),tnsname.ora內(nèi)的SERVICE_NAME要與服務(wù)器端的GLOBAL_DBNAME相同,這是客戶端請(qǐng)求的服務(wù)。

還可以修改客戶端配置的SERVICE_NAME = emily來請(qǐng)求連接另一個(gè)服務(wù)。

wintolinux =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.114.222)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = emily)

)

)

客戶端并不需要關(guān)心它連接的數(shù)據(jù)庫(kù)究竟是哪個(gè),更不會(huì)想到兩個(gè)客戶端連接的是同一個(gè)數(shù)據(jù)庫(kù)了。

四:測(cè)試客戶端向服務(wù)器發(fā)起連接

1.客戶端啟動(dòng)sqlplus,不登錄

cmd>sqlplus /nolog

2.向服務(wù)器發(fā)起連接

sql> connect sys/ttecdis@wintolinux as sysdba(wintolinux是我的客戶端tnsname.ora內(nèi)的配置連接信息標(biāo)識(shí)符)?得到反饋信息:?ERROR:?ORA-12532: TNS: 無效的參數(shù)?3.檢測(cè)到數(shù)據(jù)庫(kù)服務(wù)器是否可以ping通?cmd>tnsping wintolinux ?不通!!?4.分析原因?檢查網(wǎng)絡(luò)連接---通過!?檢查配置文件正確性---通過!?檢查服務(wù)器防火墻設(shè)置---system-config-securitylevel---發(fā)現(xiàn)1521端口被關(guān)閉。?打開該端口,再次連接,成功。?5.測(cè)試訪問?客戶端執(zhí)行SQL語句select * from dual;?輸出結(jié)果。成功!?擴(kuò)展:在Oracle8i以及之后的版本里,Oracle引入了一個(gè)動(dòng)態(tài)服務(wù)注冊(cè)功能。所謂動(dòng)態(tài)服務(wù)注冊(cè)是指當(dāng)實(shí)例啟動(dòng)之后,由后臺(tái)進(jìn)程PMON在監(jiān)聽器中注冊(cè)數(shù)據(jù)庫(kù)服務(wù)器信息,在此機(jī)制下,原來監(jiān)聽器配置文件listener.ora中的DIS_LIST部分將不是必須的,默認(rèn)的配置文件里面也的確是沒有這部分的。如果先啟動(dòng)監(jiān)聽器,再啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例,我們就可以通過lsnrctl status命令看到動(dòng)態(tài)注冊(cè)進(jìn)入的服務(wù)了,此時(shí)服務(wù)的狀態(tài)不再是UNKNOWN,而是READY了,因?yàn)楸O(jiān)聽器具體知道是哪個(gè)服務(wù)注冊(cè)進(jìn)來了。另外,在客戶端配置工具net manager中,服務(wù)名不支持"域名格式",但tnsname協(xié)議是支持的,所以可以通過手工修改tnsname.ora的方式更改服務(wù)名為"域名格式"的。

總結(jié)

以上是生活随笔為你收集整理的oracle 客户端访问数据库,ORACLE数据库客户端连接访问服务器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。