如何使用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
答案 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中的时间以返回数据包。失败将立即显现出来。