Oracle TNS重定向?

Oracle TNS重定向?,oracle,oracle10g,Oracle,Oracle10g,是否可以将TNS声明重定向到另一个TNS声明 对于我当前的项目,我需要在某些情况下从一台服务器“翻转”到另一台服务器。为此,我使用了3个TNS条目 一个用于保存我的应用程序将连接到的TNS名称: # application access to DB DB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = D

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

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

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

# application access to DB
DB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = SAMPLENAME)
    )
  )
为了能够自己“手动”连接到任一数据库,我使用了另外两个TNS条目:

# 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条目,是否可以按照以下方式进行操作:

DB = Local

or

DB = Central_Server
由于部署策略的原因,我不希望直接在应用程序中实现此逻辑


谢谢:)

您可以在
tnsnames.ora
文件中配置多个地址。从您的描述中不清楚您这样做是为了故障转移还是负载平衡。提供了一个很好的参考,说明了它的外观。

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

根据环境的不同,您可以使用ORACLE_SID环境变量


例如,SQLPLUS fred/flintstone(没有@来明确标识数据库)将连接到ORACLE_SID中指定的数据库。

取决于您可以使用ORACLE_SID环境变量的环境


例如,SQLPLUS-fred/flintstone(没有@来明确标识数据库)将连接到ORACLE\u SID中指定的数据库。

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

set local=<Your TNS Alias Here>
sqlplus userid


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

set local=<Your TNS Alias Here>
sqlplus userid


给出所有建议后,我发现最简单的方法是继续使用我的手册“完整”重新编写tnsnames.ora条目。

给出所有建议后,我发现最简单的方法是继续使用我的手册“完整”重新编写tnsnames.ora条目。

您考虑过tnsnames.ora之外的解决方案吗

如果您可以控制本地DNS,则可以设置别名。当需要切换时,您可以更新DNS条目。。。当然,需要考虑DNS和任何本地DNS缓存的传播


第二种可能是Oracle连接管理器。它可以用作代理,并且高度可配置。您将拥有连接管理器实例的单个TNSNAMES入口点。然后,当您想要切换时,在连接管理器配置中进行更改,将传入端口指向新的传出服务器,然后将更改付诸实施

您是否考虑过tnsnames.ora之外的解决方案

如果您可以控制本地DNS,则可以设置别名。当需要切换时,您可以更新DNS条目。。。当然,需要考虑DNS和任何本地DNS缓存的传播


第二种可能是Oracle连接管理器。它可以用作代理,并且高度可配置。您将拥有连接管理器实例的单个TNSNAMES入口点。然后,当您想要切换时,在连接管理器配置中进行更改,将传入端口指向新的传出服务器,然后将更改付诸实施

我想我是问你能不能给别名加个别名?也许我不明白。您会说“对于我当前的项目,在某些情况下,我需要从一台服务器“翻转”到另一台服务器”,但也会说“由于部署策略,我不希望在我的应用程序中直接实现此逻辑”。您希望使用什么机制来实现此“翻转”我想我是问你能不能给别名加个别名?也许我不明白。您可以说“对于我当前的项目,在某些情况下,我需要从服务器到服务器的“翻转”,但也可以说“由于部署策略,我不希望直接在应用程序中实现此逻辑”。您希望使用什么机制来进行此“翻转”?只有当数据库位于您所在系统的本地时,这才是正确的。如果你要通过网络,这是行不通的。只有当数据库是你所在系统的本地数据库时,这才是正确的。如果你要通过网络,这是行不通的。正在使用哪个客户端?这是windows、*nux还是?正在使用哪个客户端?这是windows、*nux还是?谢谢你的回答。我所希望的解决办法只是为发展提供少量援助。我不想过于复杂化&为一个相对不重要的问题重新创建轮子。虽然连接管理器听起来很有趣,我会看一看,谢谢。谢谢你的回答。我所希望的解决办法只是为发展提供少量援助。我不想过于复杂化&为一个相对不重要的问题重新创建轮子。虽然连接管理器听起来很有趣,我会看一看,谢谢。
userid@$TWO_TASK
userid@%local%