如何查询两个不同的oracle数据库服务器?

时间:2014-12-15 18:33:49

标签: oracle

如何使用shell脚本查询两个不同的Oracle数据库服务器? 如何处理连接到两个不同的服务器? 我有两个不同的用户ID和密码。 我知道在shell脚本文件中包含id / pw是不安全的,但是你能告诉我这是怎么做的吗?

服务器1:

s1.mycompnay.com:1587/hr_dev.mycompany.com/HR_DB

服务器1:

s2.mycompnay.com:1587/bank_dev.mycompany.com/BANK_DB

我的shell脚本有这样的东西:

  

sqlplus hr_db / $ 1<< EOF

1 个答案:

答案 0 :(得分:0)

您需要确保两台服务器之间的路径是打开的,并且两台服务器都在tnsnames.ora文件中有一个注册表:
使用您的描述,您需要两个条目

HR_DB =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(Host = s1.mycompnay.com)(Port = 1587))
   )
 (CONNECT_DATA =
   (SERVICE_NAME = HR_DB)
 )
)

BANK_DB=
     (DESCRIPTION =
       (ADDRESS_LIST =
         (ADDRESS = (PROTOCOL = TCP)(Host = s2.mycompnay.com)(Port = 1587))
       )
     (CONNECT_DATA =
       (SERVICE_NAME = BANK_DB)
     )
    )

您已经注意到在脚本中包含密码是不好的做法,所以我不需要再进一步评论。在您获得条目并已采取措施确保防火墙处于打开状态后,您可以通过tnsping对数据库进行测试:

tnsping HR_DB
tnsping BANK_DB

如果这些成功,它会告诉你,以及MS中的时间以返回数据包。失败将立即显现出来。