如何通过shell脚本连接到不同服务器的多个oracle数据库

时间:2017-05-22 12:05:28

标签: oracle

我想通过shell脚本连接到位于不同服务器(27)的多个(30)oracle数据库,并从每个数据库中获取详细信息。我在所有数据库上创建了一个用户(测试),但我想要获取的详细信息需要sysdba权限。在我的环境中,由于限制,我无法向任何其他用户提供DBA权限。因此我的想法是使用sqlplus -s" $ user / $ password @ $ tnsentry"连接到每个数据库。然后以sysdba身份连接以获取详细信息。

虽然我可以使用test连接到所有数据库,但是" connect as sysdba"正在当前服务器上的当前数据库上执行。

我的剧本:

cat tmp / db.par |读LINE时 做 如果[-n" $ LINE" ];然后 tns_entry = $ LINE export tns_entry sqlplus -s / nolog>> $ tmp / query.log< 出口 sqlconn 科幻 完成

在tns_entry循环中,我已经给出了ABC,DEF,GHI,JKL,MNO数据库来获取详细信息,我从数据库XYZ所在的服务器运行此查询。我没有在我的循环中给出XYZ并且没有连接到数据库,但查询结果来自XYZ数据库。请帮帮我。

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该以sysdba

身份连接

添加" as sysdba"在脚本中试试。

  

conn sys/password@tnsentry as sysdba