【问题标题】:How to connect to Oracle-RAC using SCAN in python?如何在 python 中使用 SCAN 连接到 Oracle-RAC?
【发布时间】:2020-04-09 15:18:07
【问题描述】:

我使用 cx_Oracle 模块连接到独立的 Oracle 服务器,如下所示

import cx_Oracle

CONN_INFO = {
    'host': 'xxx.xx.xxx.x',
    'port': 12345,
    'user': 'user_name',
    'psw': 'your_password',
    'service': 'abc.xyz.com',
}

CONN_STR = '{user}/{psw}@{host}:{port}/{service}'.format(**CONN_INFO)

connection = cx_Oracle.connect(CONN_STR)

但是由于扫描IP没有机器和自己的用户名密码,我们如何连接?

【问题讨论】:

  • 您连接到扫描就像连接到任何其他非 RAC 数据库一样。扫描使用虚拟 IP,以便它们可以从一个服务器移动到另一个服务器,以防第一个服务器出现故障。连接字符串是一样的。

标签: python oracle cx-oracle oracle-rac


【解决方案1】:

documentation 中描述的 Es,您可以简单地使用tnsnames.ora 中定义的名称。

假设您的RAC tnsnames 条目称为MAXIMIR,而不是您可以连接

 con = cx_Oracle.connect("my_usr", "my_pwd", "MAXIMIR", encoding="UTF-8")

或者,您可以在 dns 变量中传递整个连接字符串

dsn = """(DESCRIPTION=
             (FAILOVER=on)
             (ADDRESS_LIST=
               (ADDRESS=(PROTOCOL=tcp)(HOST=scan1)(PORT=1521))
               (ADDRESS=(PROTOCOL=tcp)(HOST=scan2)(PORT=1521)))
             (CONNECT_DATA=(SERVICE_NAME=MAXIMIR)))"""

connection = cx_Oracle.connect("my_usr", "my_pwd", dsn, encoding="UTF-8")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-25
    • 2016-04-20
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多