首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TNS重定向?

TNS重定向?
EN

Stack Overflow用户
提问于 2009-12-03 18:03:23
回答 5查看 2K关注 0票数 2

是否可以将TNS声明重定向到另一个声明?

对于我当前的项目,在某些情况下,我需要在服务器之间“翻转”。为此,我使用了3个TNS条目。

一个用于保存我的应用程序将连接到的TNS名称:

代码语言:javascript
复制
# application access to DB
DB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = SAMPLENAME)
    )
  )

为了让我自己“手动”连接到任何一个数据库,我又使用了两个TNS条目:

代码语言:javascript
复制
# Central_Server "Manual"
Central_Server =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = SAMPLENAME)
    )
  )

# Local "Manual"
Local =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = SAMPLENAME)
    )
  )

与其一直对DB的TNS条目进行调整,还有没有可能这样做呢?:

代码语言:javascript
复制
DB = Local

or

DB = Central_Server

由于部署策略的原因,我不希望在我的应用程序中直接实现这个逻辑。

谢谢:)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-01-14 18:28:44

在给出了所有的建议之后,我发现最简单的方法是继续使用我的手工“完全”重写tnsnames.ora条目。

票数 0
EN

Stack Overflow用户

发布于 2009-12-03 21:25:00

您可以在tnsnames.ora文件中配置多个地址。从您的描述中并不清楚您这样做是为了故障转移还是负载平衡。The Oracle documentation为这应该是什么样子提供了一个很好的参考。

票数 1
EN

Stack Overflow用户

发布于 2009-12-04 08:14:08

在我看来,你必须在某个地方“调整”一些东西。如果您在windows上通过sqlplus连接,请尝试:

代码语言:javascript
复制
set local=<Your TNS Alias Here>
sqlplus userid

在*nix上,尝试:

代码语言:javascript
复制
TWO_TASK=<your TNS Alias here>; export TWO_TASK
sqlplus userid

对于其他客户端,这可能会更棘手,这取决于它们是否遵守上述环境变量。当然,如果您提供的是连接字符串,则可以简单地使用以下连接字符串:

代码语言:javascript
复制
userid@$TWO_TASK

代码语言:javascript
复制
userid@%local%
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1838913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档