plsql連接oracle數據庫,需要配置的文件:sqlnet.ora ,tnsnames.ora ,
1. sqlnet.ora-----通過這個文件來決定怎么樣找一個連接中出現的連接字符串。
例如我們客戶端輸入 sqlplus sys/oracle@ora
如果我的sqlnet.ora是下面這個樣子
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
那么,客戶端就會首先在tnsnames.ora文件中找ora的記錄.如果沒有相應的記錄則嘗試把ora當作一個主機名,通過網絡的途徑去解析它的 ip地址然后去連接這個ip上GLOBAL_DBNAME=ora這個實例,當然我這里ora並不是一個主機名
如果我的sqlnet.ora是這個樣子 NAMES.DIRECTORY_PATH= (TNSNAMES)
那么客戶端就只會從tnsnames.ora查找ora的記錄,括號中還有其他選項,如LDAP等並不常用。
2. tnsnames.ora------這個文件類似於unix 的hosts文件,提供的tnsname到主機名或者ip的對應。
只有當sqlnet.ora中類似NAMES.DIRECTORY_PATH= (TNSNAMES) 這樣,也就是客戶端解析連接字符串的順序中有TNSNAMES是,才會嘗試使用這個文件。
例子:
ORA_TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ora)
)
)
ORA_TEST:客戶端連接服務器端使用的服務別名。注意一定要頂行書寫,否則會無法識別服務別名。
PROTOCOL:客戶端與服務器端通訊的協議,一般為TCP,該內容一般不用改。
HOST:ORACLE服務器端IP地址或者hostname。確保服務器端的監聽啟動正常。
PORT:數據庫偵聽正在偵聽的端口,可以察看服務器端的listener.ora文件或在數據庫偵聽所在的機器的命令提示符下通過lnsrctl status [listener name]命令察看。此處Port的值一定要與數據庫偵聽正在偵聽的端口一樣。
SERVICE_NAME:在服務器端,用system用戶登陸后,sqlplus> show parameter service_name命令查看。
