Oracle原理:11g中的網絡配置

目錄

1.11g的網絡連接方式

2.   11g中網絡配置的主要文件

3.靜態註冊和動態註冊

4.netca和netManager

 

1.11g的網絡連接方式

   在WINDOWS下,安裝完Oracle會自動完成好網絡配置實現網絡連接,但是在Linux下,得自己手動配置纔行。客戶端有tnsnames.ora的配置文件來配置網絡服務名,如服務器地址,監聽端口,數據庫SID等。而服務器端有listener.ora配置文件來配置監聽器,如監聽協議、地址及其他信息。從本地訪問數據庫服務器,首先要開啓OracleServiceORCL服務,如果是通過網絡訪問數據庫服務器,還要啓動OracleOraDb11g_home1TNSListener服務。

  lsnrctl  [status/start/stop]  

  在WINDOWS和Linux下都可以用上面的命令來查看/開啓/停止監聽服務,當然如果是在WINDOWS下還可以在控制面板的服務裏通過可視化界面直接 查看/開啓/停止服務。

2.   11g中網絡配置的主要文件

主要文件有三個,都位於 $ORACLE_HOME\NETWORK\ADMIN路徑下的 sqlnet.ora 、listener.ora、tnsnames.ora.我的這三個文件在D:\oracle\product\11.2.0\dbhome_3\NETWORK\ADMIN。直接可以用可視界面進行修改參數,或者用vim編輯。

2.1 打開sqlnet.ora 裏面有這一句話:SQLNET.AUTHENTICATION_SERVICES= (NTS) 這是基於操作系統的驗證方式。這可以讓你在以管理員身份登錄操作系統時,可以無需輸入用戶密碼就可以以SYSDBA角色直接登錄上,如下圖所示。如果把NTS改成NONE,那麼就是以口令形式進行登錄,此時就不可以無密碼直接登錄了。

sqlnet.ora 裏面有還有一句話:NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) , 這個是連接方式。默認是先按照tnsnmanes.ora文件裏指定的連接方式,如果在文件裏查無相應記錄則會用簡單連接的方式嘗試連接。想要用什麼連接方式連接往括號裏面加參數就行,不想用該連接方式就刪除對應參數即可。參數有TNSNAMES,ONAMES,HOSTNAME,EZCONNECT。越前面的參數的越先用對應的方式嘗試連接。

sqlplus user/password@IP:端口/orcl   --在cmd窗口下
conn   user/password@IP:端口orcl    --在SQLPLUS窗口下
例如:
sqlplus voapd/voapd@hu-PC/orcl

像這種方式就是簡單連接,如果出現oracle中監聽程序當前無法識別連接描述符中請求服務的錯誤,可以參考

https://www.cnblogs.com/telwanggs/p/10935367.html 的解決方案。

2.2listener.ora文件裏有(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))      ,這個是調用外部過程的監聽,比如調用C++/JAVA等一些高級語言的方法程序來完成相應的任務,如果把這行刪了,就無法調用外部過程了.

GLOBAL_DBNAME :全局數據庫名。通過select * from global_name; 查詢得出 。

PROTOCOL:監聽協議,一般都使用TCP 

LISTENER :監聽名稱,可以配置多個監聽。

GLOBAL_DBNAME:全局數據庫名

SID_NAME:服務名,通常和全局數據庫名一致。

我的配置如圖:

2.3.在客戶端沒有tsnames.ora文件時,除了複製別人的,還可以用netca進行可視化配置。沒有tsnames,ora文件也就無法按照tnsnmanes.ora文件裏指定的連接方式進行連接了。

打頭的左對齊的變量就是服務名(SID),例如上文的ORCL、ORACLR_CONNECTION_DATA。

其中在ADDRESS 寫上要連接服務器的端的信息,連接方式TCP,主機爲hu-PC端口爲1521,當然HOST也可以是IP地址、域名等.

可以在 cmd窗口中 輸入  tnsping [服務名]  來看能不能ping通服務,而這裏的服務名就是tsnames.ora裏的SID來查找的。

3.靜態註冊和動態註冊

  3.1 在listener.ora裏如果有類型下面的語句就是靜態註冊,指明瞭全局數據庫名,服務名,Oracle主目錄等。

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_3)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\oracle\product\11.2.0\dbhome_3\bin\oraclr11.dll")
    )
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL)
      (ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_3)
      (SID_NAME = ORCL)
    )
  )

3.2 在listener.ora裏如果有類型下面的語句就是動態註冊

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = hu-PC)(PORT = 1521))
	  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    )
  )

在cmd中輸入lsnrctl status  如果狀態爲UNKNOWN就是靜態註冊,如果是READY就是動態註冊.動態註冊可以不需要listener.ora文件。在啓動監聽服務時需要讀取listener.ora文件內容,如果沒有listener.ora文件時,默認情況PMON會向LSNTCTL動態註冊協議爲TCP/IP,端口爲1521註冊到監聽器。

 lsnrctl status 來查看我監聽狀態

 想要靜態註冊和動態註冊之間轉化,就需要把listener.ora的靜態註冊的部分給刪掉,或者把listener.ora給刪除。重啓服務如圖所示。在讀listener.ora文件內容裏要是沒有相應的靜態註冊信息,待PMON進程重啓後會對監聽器進行動態註冊。

由於PMON後臺進程是隨着數據庫打開纔會打開的,動態註冊大概需要1分鐘才能完成。

 

4.netca和netManager

    以管理員的身份啓動cmd,輸入netca會有一個界面,如圖,這是一個對參數文件進行修改的可視化界面,要比上面操作文件來改參數要方便得多。監聽程序配置實際上就是配置listener.ora配置文件的可視化界面。命名方法配置是配sql,ora的,本地網絡服務配置tsnames.ora的。

在WIN菜單下搜索net Manageer打開,這裏面可以進行靜態註冊,選擇添加數據庫,寫入相應的信息,Oracle主目錄就是ORACLE_HOME.

添加完數據庫後,重啓lsnrctl服務等待1分鐘。

可以重新查看listener.ora文件,發現靜態註冊信息又添加上去了。

注意:不建議直接手動操作配置文件,儘量採用可視化管理工具來操作。如果出現TNS監聽異常,或者服務無法打開,嘗試把listener.ora備份後刪除,在重新用可視化工具進行配置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章