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備份后刪除,在重新用可視化工具進行配置。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Oracle原理:11g中的网络配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle 原理:用户和权限,Prof
- 下一篇: Oracle原理: 行级锁和表级锁