標籤:des blog http io os 使用 ar strong 檔案
使用ORACLE的SQL*Net V.2串連客戶機和伺服器,需配置每個客戶機和伺服器。在伺服器上需配置的檔案有:listener.ora、/etc/services,在客戶機上需配置tnsnames.ora檔案。 用戶端不需要知道資料庫名字和執行個體名字,只需要知道資料庫對外提供的服務名(service_name)就可以申請串連到資料庫。這個服務名字可以設定成和執行個體名字一樣,也可以根據業務需求設計。在資料庫啟動過程,oracle會向監聽程式註冊相應的服務,任意的一個資料庫都會有兩條資訊註冊到監聽器中:oracle對應的instance_name和service_name。
用戶端是通過監聽程式串連到資料庫伺服器的,監聽中記錄著相應的oracle service,而用戶端只需要在tnsnames中提供正確的服務名就可以建立和資料庫伺服器的串連。
以下為伺服器上的listener.ora檔案(linux:/oracle/product/10g/network/admin;windows:D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN)內容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/product/10g)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = testserver3)(PORT = 1521))
)
)
其中,LISTENER是伺服器中監聽進程的名稱;
PROTOCOL 表明所使用的網路通訊協定,若是TCP/IP協議,則該值必須為“TCP”;
HOST 表示伺服器的網路地址,為伺服器的IP或者網內的機器名;
PORT 指TCP/IP協議在主機中所佔用連接埠號碼,ORACLE預設使用1521,是在安裝ORACLE資料庫時定義的,在安裝時可以改變,安裝完成後不能改變此值;
SID_NAME 指伺服器上啟動並執行ORACLE資料庫名稱,該值應與.bash_profile檔案中的環境變數ORACLE_SID相同(一般情況下此檔案為預設值“PLSExtProc”);
ORACLE_HOME 是指ORACLE資料庫的主目錄,該值也應與. bash_profile檔案中的環境變數ORACLE_HOME相同。
客戶機為了和伺服器串連,必須先和伺服器上的監聽進程聯絡。ORACLE通過tnsnames.ora檔案中的串連描述符來說明串連資訊。一般tnsnames.ora 是建立在客戶機上的。如果是客戶機/伺服器結構,整個網路上只有一台機器安裝了ORACLE資料庫伺服器,那麼只需在每個要訪問ORACLE伺服器的客戶機上定義該檔案,在伺服器上無需定義。但是,如果網路上有多台機器均安裝了ORACLE資料庫伺服器,並且伺服器之間有資料共用的要求,那麼在每台伺服器上都必須定義該檔案。
以下是用戶端tnsnames.ora內容:
ORCL_18 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.18)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
其中,ADDRESS_LIST 表示該客戶機要經由多種協議與一台或多台伺服器串連。在該樣式檔案中就表示該客戶機要用TCP/IP協議來和伺服器相連。
PROTOCOL 指明要串連使用的協議。
SERVICE_NAME “SERVICE_NAME”就是“Global Database Name”,ORACLE8i資料庫使用“Global Database Name”來唯一標識自己,通常的格式為“name.domain”,此處的值為“ora817.huawei.com”。
HOST 是TCP/IP協議使用的伺服器IP地址或者機器名稱。
PORT 是TCP/IP使用的連接埠地址。
SID 指定要已連線的服務器上ORACLE資料庫的ORACLE_SID。
SERVER=DEDICATED 表示用專用伺服器串連ORACLE資料庫,該選項在伺服器上的tnsnames.ora檔案中會出現。
Lsnrctl命令綜述
Lsnrctl命令用來管理Oracle監聽器,是一個命令列介面。想調用這個命令列工具,在命令列鍵入lsnrctl即可。可以在LSNRCTL>提示符下鍵入help來顯示這些命令的一份清單。
Services 列舉出服務的一個匯總表及為每個協議服務處理常式所建立和拒絕的串連資訊個數
Start listener 啟動指定的監聽器
Status listener顯示指定監聽器的狀態
Stop listener 關閉指定的監聽器
Trace 開啟監聽器的跟蹤特性
Version 顯示Oracle Net軟體與協議適配器的版本
Change_password 允許使用者修改關閉監聽器所需要的密碼
Reload 重新讀取listener.ora檔案,但不關閉監聽器。如果該檔案發生了變化,重新重新整理監聽器。
Save_config 當從lsnrctl工具中對listener.ora檔案進行了修改時,複製一個叫做listener.bak的listener.ora檔案
Exit 退出lsnrctl工具 + 生產力
Quit 執行和exit相同的功能
C:\>lsnrctl services
附錄:
RAC某個節點上的listener.ora 和 tnsnames.ora
# listener.ora.dbsv2 Network Configuration File: /oracle/product/10.2/database/network/admin/listener.ora.dbsv2
# Generated by Oracle configuration tools.
SID_LIST_LISTENER_DBSV2 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/product/10.2/database)
(PROGRAM = extproc)
)
)
LISTENER_DBSV2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbsv2-vip)(PORT = 1521)(IP = FIRST))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.3)(PORT = 1521)(IP = FIRST))
)
)
# tnsnames.ora Network Configuration File: /oracle/product/10.2/database/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbsv1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = dbsv2-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ORCL2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbsv2-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
(INSTANCE_NAME = orcl2)
)
)
ORCL1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbsv1-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
(INSTANCE_NAME = orcl1)
)
)
LISTENERS_ORCL =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.3)(PORT = 1521))
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
《轉自:http://blog.itpub.net/9399028/viewspace-683834》
Oracle 監聽配置詳解(轉載)