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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle监听注册和sqlnet,Oracle监听的动态注册与静态注册

發(fā)布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle监听注册和sqlnet,Oracle监听的动态注册与静态注册 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Oracle監(jiān)聽

介于Oracle的數(shù)據(jù)庫和客戶端之間的通道。因為數(shù)據(jù)庫本身不對外提供服務(wù),所以需要通過監(jiān)聽器來實現(xiàn)。

幾個相關(guān)的參數(shù):

local_listener

db_domain

remote_listener

service_names

相關(guān)命令:

監(jiān)聽命令:lsnrctl

參數(shù):

1、start/stop 啟動/關(guān)閉服務(wù)

2、service 查看當前已注冊的服務(wù)

3、status? 查看注冊服務(wù)的狀態(tài)

登錄數(shù)據(jù)庫命令:sqlplus

為了使用監(jiān)聽器,首先就要啟動監(jiān)聽:

lsnrctl start

監(jiān)聽注冊過程

一、數(shù)據(jù)庫根據(jù)service_names/db_domain兩個參數(shù),創(chuàng)建服務(wù)名:

service_name1.db_domain ... service_nameN.db_domain

默認為數(shù)據(jù)庫的實例名。

二、將服務(wù)名注冊到監(jiān)聽器,如果監(jiān)聽器沒有啟動,則以:lsnrctl start啟動;注冊內(nèi)容有服務(wù)名、端口(默認1521)等

三、監(jiān)聽器對外提供已注冊的服務(wù)

四、外部客戶端通過該服務(wù)器的1521端口連接到數(shù)據(jù)庫

監(jiān)聽需要注冊服務(wù),有兩種方式:

一種是靜態(tài)注冊。在啟動監(jiān)聽的時候,根據(jù)監(jiān)聽文件($ORACLE_HOME/network/admin/listener.ora)直接注冊

這種方式不管數(shù)據(jù)庫是否啟動,都會注冊一個監(jiān)聽服務(wù)。因此,通過這個服務(wù)去連接數(shù)據(jù)庫,有可能連接不上,也有可能

連接上。

其狀態(tài)顯示的是unknown,也就是說它此時是不知道數(shù)據(jù)庫是否可以連接的。

Service "PLSExtProc" has 1 instance(s).

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

一種是動態(tài)注冊。數(shù)據(jù)庫啟動后,自動會將服務(wù)名注冊到監(jiān)聽器上。因此,通過這類服務(wù)去連接,是可以確保連接成功的。

動態(tài)注冊除了數(shù)據(jù)庫啟動時會自動注冊,也可以通過以下命令手工注冊:

alter system register;

如果不執(zhí)行手工命令進行動態(tài)注冊,數(shù)據(jù)庫也會間隔1分鐘自動發(fā)起注冊。

其狀態(tài)顯示的是ready,也就是說此時已經(jīng)準備好連接了。

Service "orcl" has 1 instance(s).

Instance "orcl", status READY, has 1 handler(s) for this service...

如果此時數(shù)據(jù)庫是關(guān)閉的,將不會有動態(tài)注冊的信息顯示,而靜態(tài)注冊卻依然存在。

對于監(jiān)聽文件

如果不存在,數(shù)據(jù)庫會按照當前的服務(wù)名參數(shù)(service_names)中提供的服務(wù)名,會自動將服務(wù)注冊到監(jiān)聽器上。

如果存在,則按照監(jiān)聽文件中提供的服務(wù)名進行注冊,數(shù)據(jù)庫也會發(fā)起注冊到監(jiān)聽器上。此時動態(tài)注冊和靜態(tài)注冊會同時存在。

前面已經(jīng)說到,注冊到監(jiān)聽器上的服務(wù)名,是由service_names參數(shù)決定的,可以指定多個,以逗號分隔,如下:

SQL> show parameter service_names;

NAME???????????????????????????????? TYPE??????? VALUE

------------------------------------ ----------- ------------------------------

service_names??????????????????????? string????? orcl,wanghf

除了服務(wù)名,還可以為服務(wù)指定一個域名,可以讓將服務(wù)名讓各個不同的外部系統(tǒng)調(diào)用:

SQL> alter system set db_domain='abc.com' scope=memory;

alter system set db_domain='abc.com' scope=memory

*

ERROR at line 1:

ORA-02095: specified initialization parameter cannot be modified

SQL> alter system set db_domain='abc.com' scope=spfile;

從上面可以看到,這個參數(shù)的修改需要重啟數(shù)據(jù)庫,而不能立即生效。

修改后,查看監(jiān)聽狀態(tài)信息便顯示如下(部分):

Service "wanghf.abc.com" has 1 instance(s).

Instance "orcl", status READY, has 1 handler(s) for this service...

The command completed successfully

對于動態(tài)注冊,如果沒有特殊設(shè)置,則到目前為止已經(jīng)可以正常連接和操作了。

但是,如果需要修改默認端口(1521),那該怎么做?這個時候,local_listener參數(shù)就出現(xiàn)了。

可以按如下命令進行設(shè)置:

alter system set local_listener='(ADDRESS = (PROTOCOL=TCP)(HOST=localhost)(PORT=1522))';

其中,端口可以按要求做修改。設(shè)置此參數(shù)后,再手工注冊一下即可:

alter system register;

或者等待最多一分鐘,數(shù)據(jù)庫也會自動重新注冊。

來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/12932950/viewspace-706407/,如需轉(zhuǎn)載,請注明出處,否則將追究法律責任。

總結(jié)

以上是生活随笔為你收集整理的Oracle监听注册和sqlnet,Oracle监听的动态注册与静态注册的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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