溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何理解手工配置tnsnames.ora文件的處理空格事項

發(fā)布時間:2021-11-08 17:47:00 來源:億速云 閱讀:161 作者:柒染 欄目:建站服務(wù)器

這篇文章將為大家詳細講解有關(guān)如何理解手工配置tnsnames.ora文件的處理空格事項,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

有關(guān)數(shù)據(jù)庫連接串的配置基本上有兩種方法:一種是使用圖形化工具netmgr;另外一種是手工直接編輯修改網(wǎng)絡(luò)配置文件tnsnames.ora。
這兩種配置方法各有利弊。netmgr工具配置方法因為需要啟動圖形化界面,因此受環(huán)境的限制比較多,優(yōu)點是使用netmgr配置的信息不容易出現(xiàn)錯誤;手工配置tnsnames.ora適合經(jīng)驗豐富的DBA使用,優(yōu)點是完全可以在命令行中完成,快速高效,缺點是容易出錯。

給出一個手工配置tnsnames.ora極易出錯的一個案例:謹慎處理空格!

1.標(biāo)準(zhǔn)的tnsnames.ora內(nèi)容
ora10g@secdb /home/oracle$ vi $ORACLE_HOME/network/admin/tnsnames.ora
……
ORA10G =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = secdb)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ora10g)
    )
  )
……

標(biāo)準(zhǔn)的配置以精美的縮進展示了連接串的配置,很容易閱讀。
建議以此為模板去配置其他的連接串。

2.其他形式的配置
1)無縮進形式
ORA10G =
(DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = secdb)(PORT = 1521))
 (CONNECT_DATA =
 (SERVER = DEDICATED)
 (SERVICE_NAME = ora10g)
 )
)

上面這種書寫形式?jīng)]有縮進,因此可閱讀性就大大地降低了。不過這種形式是可行的。
這里需要提醒的是:連接串名需要頂頭書寫,數(shù)據(jù)庫連接串定義中除首尾括號外不允許其他內(nèi)容頂頭書寫?。ê竺鏁绣e誤例子)

2)一行搞定一切
ORA10G=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=secdb)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ora10g)))

這是最精簡的一種配置,但是缺點非常顯然:很難快速的理清語法關(guān)系。這種配置方法可集成在腳本中,達到快速編輯測試環(huán)境下的tnsnames.ora配置文件的目的。

3.謹慎處理空格
上文中“無縮進形式”中已經(jīng)給出了配置規(guī)律:連接串名需要頂頭書寫,數(shù)據(jù)庫連接串定義中除首尾括號外不允許其他內(nèi)容頂頭書寫!
例如下面的配置是不可行的。

ORA10G =
(DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = secdb)(PORT = 1521))
 (CONNECT_DATA =
(SERVER = DEDICATED)
 (SERVICE_NAME = ora10g)
 )
)

注意上面倒數(shù)第三行頂頭書寫是不被允許的!
依此類推,下面的這些書寫格式亦是非法。
ORA10G =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = secdb)(PORT = 1521))
 (CONNECT_DATA =
 (SERVER = DEDICATED)
 (SERVICE_NAME = ora10g)
 )
)

ORA10G =
(DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = secdb)(PORT = 1521))
(CONNECT_DATA =
 (SERVER = DEDICATED)
 (SERVICE_NAME = ora10g)
 )
)

ORA10G =
(DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = secdb)(PORT = 1521))
 (CONNECT_DATA =
 (SERVER = DEDICATED)
(SERVICE_NAME = ora10g)
 )
)

ORA10G =
(DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = secdb)(PORT = 1521))
 (CONNECT_DATA =
 (SERVER = DEDICATED)
 (SERVICE_NAME = ora10g)
)
)

此時連接數(shù)據(jù)庫時的報錯信息如下:
ora10g@secdb /home/oracle$ sqlplus sec/sec@ora10g

SQL*Plus: Release 10.2.0.3.0 - Production on Fri Dec 17 21:10:16 2010

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified


Enter user-name:

如果條件允許的情況下可以使用netmgr工具配置數(shù)據(jù)庫連接串,這樣可以規(guī)避因手工編寫配置文件帶來的錯誤。對于經(jīng)驗豐富的朋友建議采用手工方式來配置,畢竟這樣更加的透明和高效。

關(guān)于如何理解手工配置tnsnames.ora文件的處理空格事項就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI