在Oracle網絡結構解決連接問題建站知識
導讀:1建站知識在Oracle網絡結構解決連接問題seo網站優化公司網站建設。
正在看的ORACLE教程是:在Oracle網絡結構解決連接問題。最近看到好多人說到tns或者數據庫不能登錄等問題,就索性總結了下面的文檔。 首先來說Oracle的網絡結構,往復雜處說能加上加密、LDAP等等。。這里不做討論,重點放在基本的網絡結構也就是我們最常用的這種情況 三個配置文件 listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME\network\admin目錄下。 重點:三個文件的作用和使用 #----------------------- sqlnet.ora-----作用類似于linux或者其他unix的nsswitch.conf文件,通過這個文件來決定怎么樣找一個連接中出現的連接字符串, 例如我們客戶端輸入 sqlplus sys/oracle@orcl 假如我的sqlnet.ora是下面這個樣子 SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME) 那么,客戶端就會首先在tnsnames.ora文件中找orcl的記錄.如果沒有相應的記錄則嘗試把orcl當作一個主機名,通過網絡的途徑去解析它的ip地址然后去連接這個ip上GLOBAL_DBNAME=orcl這個實例,當然我這里orcl并不是一個主機名 如果我是這個樣子 NAMES.DIRECTORY_PATH= (TNSNAMES) 那么客戶端就只會從tnsnames.ora查找orcl的記錄 括號中還有其他選項,如LDAP等并不常用。 #------------------------ Tnsnames.ora------這個文件類似于unix 的hosts文件,提供的tnsname到主機名或者ip的對應,只有當sqlnet.ora中類似 NAMES.DIRECTORY_PATH= (TNSNAMES) 這樣,也就是客戶端解析連接字符串的順序中有TNSNAMES是,才會嘗試使用這個文件。 例子中有兩個,ORCL 對應的本機,SALES對應的另外一個IP地址,里邊還定義了使用主用服務器還是共享服務器模式進行連接,一句一句說 #你所要連接的時候輸入得TNSNAME ORCL = (DESCRIPTION = (ADDRESS_LIST = #下面是這個TNSNAME對應的主機,端口,協議 (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) ) (CONNECT_DATA = #使用專用服務器模式去連接需要跟服務器的模式匹配,如果沒有就根據服務器的模式 #自動調節 (SERVER = DEDICATED) #對應service_name,SQLPLUS>show parameter service_name; #進行查看 (SERVICE_NAME = orcl) ) ) #下面這個類似 SALES = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.188.219)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = sales) ) ) #---------------------- 客戶端完了我們來看服務器端 listener.ora------listener監聽器進程的配置文件 關于listener進程就不多說了,接受遠程對數據庫的接入申請并轉交給oracle的服務器進程。所以如果不是使用的遠程的連接,listener進程就不是必需的,同樣的如果關閉listener進程并不會影響已經存在的數據庫連接。 Listener.ora文件的例子 #listener.ora Network Configuration File: #E:\oracle\product\10.1.0\Db_2\NETWORK\ADMIN\listener.ora # Generated by Ora網站推廣優化seocle configuration tools. #下面定義LIST高端網站建設ENER進程為哪個實例提供服務 #這里是ORCL,并且它對應的ORACLE_HOME和GLOBAL_DBNAME #其中GLOBAL_DBNAME不是必需的除非使用HOSTNAME做數據庫連接 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = boway) (ORACLE_HOME = E:\oracle\product\10.1.0\Db_2) (SID_NAME = ORCL) ) ) #監聽器的名字,一臺數據庫可以有不止一個監聽器 #再向下面是監聽器監聽的協議,ip,端口等,這里使用的tcp1521端口,并且使#用的是主機名 LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = boway)(PORT = 1521)) ) 上面的例子是一個最簡單的例子,但也是最普遍的。一個listener進程為一個instance(SID)提供服務。 監聽器的操作命令 $ORACLE_HOME/bin/lsnrctl start,其他諸如stop,status等。具體敲完一個lsnrctl后看幫助。 上面說到的三個文件都可以通過圖形的配置工具來完成配置 $ORACLE_HOME/netca 向導形式的 $ORACLE_HOME/netmgr 本人比較習慣netmgr, profile 配置的是sqlnet.ora也就是名稱解析的方式 service name 配置的是tnsnames.ora文件 listeners配置的是listener.ora文件,即監聽器進程 具體的配置可以嘗試一下然后來看一下配置文件。 這樣一來總體結構就有了,是當你輸入sqlplus sy營銷型網站建設s/oracle@orcl的時候 1. 查詢sqlnet.ora看看名稱的解析方式,發現是TNSNAME 2. 則查詢tnsnames.ora文件,從里邊找orcl的記錄,并且找到主機名,端口和service_name 3. 如果listener進程沒有問題的話,建立與listener進程的連接。 4. 根據不同的服務器模式如專用服務器模式或者共享服務器模式,listener采取接下去的動作。默認是專用服務器模式,沒有問題的話客戶端就連接上了數據庫的server process。 5. 這時候網絡連接已經建立,listener進程的歷史使命也就完成了。
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-22 ,文章在Oracle網絡結構解決連接問題建站知識主要講述結構,標簽,在Oracle網絡結構解決連接問題建站知識網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_5332.html