客戶端網路配置上的一點說明

Diy_os發表於2015-05-06
這幾天qq上很多朋友問及客戶端網路配置問題,希望這篇文章能幫助一些朋友(之前也寫過一篇文章關於用第三方工具連線資料庫:http://blog.itpub.net/29876893/viewspace-1465317/)。首先說明的是資料庫是單例項,資料庫的連線方式是專有連線模式。
SQL> select * from v$version where rownum=1;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

首先淺談一下伺服器端的網路配置,兩種方式可以選擇:
1.
[oracle@localhost ~]$ netca

透過netca來配置,這種透過圖形化的方式,很方便

2.直接去listener.ora檔案裡配置
靜態監聽配置:
LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
  )


SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =       
      (GLOBAL_DBNAME = jing)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = orcl3939)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = tai)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = orcl3939)
    )
  )

這裡的GLOBAL_DBNAME的值(jing,tai)就是為客戶端提供的服務名,也就是客戶端service_name的值:
服務 "jing" 包含 1 個例項。
  例項 "orcl3939", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
服務 "tai" 包含 1 個例項。
  例項 "orcl3939", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
命令執行成功
你也可以新增多個服務名。
如果你想配置動態監聽,很簡單,設定service_names,資料庫預設註冊的是1521的埠,設定了多個service_names後,oracle的後臺程式PMON會給你註冊,是不是很方便!
如果你註冊的動態監聽埠不想是1521,比如是1522還要設定 local_listener=text(alter  system  set  local_listener=text scope=spfile;)
 並在tnsnames.ora檔案裡新增:
text =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 主機名XXXX)(PORT = 1522))
   )
 )

下面我們看看註冊的監聽吧:(注意哦,配置的動態監聽要資料庫開啟才可以啟動)
[oracle@localhost ~]$ lsnrctl status
...
...
服務 "a.localdomain" 包含 1 個例項。
  例項 "ORCL3939", 狀態 READY, 包含此服務的 1 個處理程式...
服務 "b.localdomain" 包含 1 個例項。
  例項 "ORCL3939", 狀態 READY, 包含此服務的 1 個處理程式...
服務 "c.localdomain" 包含 1 個例項。
  例項 "ORCL3939", 狀態 READY, 包含此服務的 1 個處理程式...
服務 "d.localdomain" 包含 1 個例項。
  例項 "ORCL3939", 狀態 READY, 包含此服務的 1 個處理程式...
服務 "jing" 包含 1 個例項。
  例項 "orcl3939", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
服務 "orcl3939.localdomain" 包含 1 個例項。
  例項 "ORCL3939", 狀態 READY, 包含此服務的 1 個處理程式...
服務 "orcl3939XDB.localdomain" 包含 1 個例項。
  例項 "ORCL3939", 狀態 READY, 包含此服務的 1 個處理程式...
服務 "tai" 包含 1 個例項。
  例項 "orcl3939", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
...
...
a.localdomain
b.localdomain
c.localdomain
jing                                     =>都可以給客戶端提供服務(客戶端的service_name)
orcl3939.localdomain
orcl3939XDB.localdomain
tai

下面介紹客戶吧:
同樣我們配置可以有兩種方式:
1.Net manager(圖形化介面還是比較被我們喜愛的):
先配服務命名:
這裡你寫啥都行,我們寫55

主機名建議寫ip,埠號看伺服器端監聽的配置啦

這裡的服務名寫什麼,不要我多說了吧:
a.localdomain
b.localdomain
c.localdomain
jing                                   
orcl3939XDB.localdomain
tai


到此我們的服務命名已經配好了!
測試一下先:

下面我們配置下監聽:(只做以下說明圖片,其他的都不是問題)

oracle主目錄可以不用寫,全域性資料庫名和sid,Google  please啦
2.直接去目錄下配置tnsnames.ora:

55 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.115.78)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)    =>伺服器專有連線模式(如果用的是共享模式,則服務名需要寫動態註冊的監聽)
      (SERVICE_NAME = b.localdomain)
    )
  )
這裡也不用太多說明了吧!
那我們tnsping  服務命名!

OK啦!
下面就是你使用第三方工具連線資料庫了!
pl/sql developer,toad,spotlight.....剩下的問題迎刃而解。
如以上有誤請指正。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29876893/viewspace-1626684/,如需轉載,請註明出處,否則將追究法律責任。

相關文章