注:本文講述了oracle數據庫實例連接的配置過程,三個重要的配置文件位於C:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN目錄下
1. sqlplus
sqlnet.ora 文件格式NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)。客戶端就會首先在tnsnames.ora文件中找orcl的記錄。如果沒有相應的記錄則嘗試把orcl當作一個主機名,通過網絡的途徑去解析它的ip地址然后去連接這個ip上GLOBAL_DBNAME=orcl這個實例。
2. 客戶端。Tnsnames.ora
這個文件類似於unix 的hosts文件,提供的tnsname到主機名或者ip的對應,只有當sqlnet.ora中類似NAMES.DIRECTORY_PATH= (TNSNAMES) 這樣,也就是客戶端解析連接字符串的順序中有TNSNAMES時,才會嘗試使用這個文件。
#你所要連接的時候輸入得TNSNAME,如果listner啟動失敗嘗試改IP地址
ora10gcsdl1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ora10gcsdl1)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = IBM-66336DAFE8F.cn.ibm.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
3. 服務器端。listener.ora
listener監聽器進程的配置文件,接受遠程對數據庫的接入申請並轉交給oracle的服務器進程。所以如果不是使用的遠程的連接,listener進程就不是必需的,同樣的如果關閉listener進程並不會影響已經存在的數據庫連接。
#下面定義LISTENER進程為哪個實例提供服務
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\10.1.0\Db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = ora10gcsdl1)
(ORACLE_HOME = C:\oracle\product\10.1.0\Db_1)
)
(SID_DESC =
(SID_NAME = ora10gcs)
(ORACLE_HOME = C:\oracle\product\10.1.0\Db_1)
)
)
#監聽器的名字,一台數據庫可以有不止一個監聽器
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)
)
4.排錯用到的指令:
lsnrctl > help
tnsping ora10gcsdl
Oracle代碼
orCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xx.xx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
主要的參數為HOST、PORT、SERVICE_NAME