如何处理同一子网上具有相同 SID 的 Oracle 安装?

如何处理同一子网上具有相同 SID 的 Oracle 安装?

我在同一子网上有两个 Oracle RAC 集群。为了便于讨论,我们假设一个是 QA 集群,一个是 DEV 集群。它们都在 RedHat Enterprise Linux 5(64 位)上运行。

它们的配置相同,因此它们都有一个名为“MyInstance”的实例,并且具有相同的用户(系统和数据库)、密码和所有内容。

使用:

oracle@QA1> sqlplus -S 用户/密码@my_sql_file

实际上,即使我在 QA1 服务器上,也会针对 DEV 实例运行 my_sql_file.sql。我可以尝试以下操作:

oracle@QA1> sqlplus -S 用户/密码@QA1/MyInstance@my_sql_file

但这给了我关于目标主机或对象不存在的错误(QA1 在我的主机文件中,而 MyInstance 在我的“lsnrctl status”输出中)。

  1. 当您在同一子网上拥有集群时,您会怎么做?我应该配置一些特殊的东西吗?我一直在阅读,我认为我应该给它们赋予不同的服务名称。你们 dbas 同意吗?(我目前正在尝试找出如何在 11g 上执行此操作)

  2. 有没有办法强制 SQLPLUS 仅连接到本地实例?

  3. 我的 SID 或监听器是否需要以任何特殊方式进行配置,以允许 user/password@host/sid 连接到 SQLPLUS 正常工作?目前还不需要。

答案1

您所描述的情况非常常见。通常,您会拥有一个相互匹配的 Beta、开发和生产环境。您只需要编辑 tnsdames 文件。请参阅下面的示例

# Generated by Oracle configuration tools.

QA =(描述 =(地址列表 =(地址 =(协议 = TCP)(主机 = computer.somedomain.com)(端口 = 1521)))(连接数据 =(sid=samesid)))

DEV = (描述 = (地址列表 = (地址 = (协议 = TCP)(主机 = “computer2.somedomain.com”)(端口 = 1521))) (连接数据 = (sid=samesid)))

相关内容