2020年2月2日 星期日

手工配置tnsnames.ora的空格问题




本文给出一个手工配置tnsnames.ora极易出错的一个案例:谨慎处理空格!

1.标准的tnsnames.ora内容
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)
    )
  )
……

标准的配置以精美的缩进展示了连接串的配置,很容易阅读。
建议以此为模板去配置其他的连接串。

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

上面这种书写形式没有缩进,因此可阅读性就大大地降低了。不过这种形式是可行的。
这里需要提醒的是:连接串名需要顶头书写,数据库连接串定义中除首尾括号外不允许其他内容顶头书写!(后面会有错误例子)

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



这是最精简的一种配置,但是缺点非常显然:很难快速的理清语法关系。这种配置方法可集成在脚本中,达到快速编辑测试环境下的tnsnames.ora配置文件的目的。


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

紅色部份需縮排,無縮排即無法使用


————————————————
版权声明:本文为CSDN博主「半支烟丶」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/q82272513/article/details/50856493


沒有留言:

RHEL install EPEL

  https://www.linuxtechi.com/install-epel-repo-on-rhel-system/ EPEL dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest...