cx_Oracle connect - строка подключения с балансировкой нагрузки - PullRequest
0 голосов
/ 28 января 2019

У меня есть строка подключения в формате

jdbc:oracle:thin:@(DESCRIPTION = (LOAD_BALANCE=ON) 
 (ADDRESS = (PROTOCOL = tcp)(HOST = aaa)(PORT = 1531))
 (ADDRESS = (PROTOCOL = tcp)(HOST = bbb)(PORT = 1526))
 (ADDRESS = (PROTOCOL = tcp)(HOST = ccc)(PORT = 1526))
 (ADDRESS = (PROTOCOL = tcp)(HOST = ddd)(PORT = 1526))
 (CONNECT_DATA = (SERVER=dedicated)(SERVICE_NAME=a.b.org))
)

Как я могу использовать cx_Oracle connect

connection = cx_Oracle.connect( .... ) 

, используя строку подключения в указанном выше формате?

1 Ответ

0 голосов
/ 28 января 2019

Это на самом деле довольно просто.Вы можете сделать следующее:

dsn = """(DESCRIPTION = (LOAD_BALANCE=ON) 
 (ADDRESS = (PROTOCOL = tcp)(HOST = aaa)(PORT = 1531))
 (ADDRESS = (PROTOCOL = tcp)(HOST = bbb)(PORT = 1526))
 (ADDRESS = (PROTOCOL = tcp)(HOST = ccc)(PORT = 1526))
 (ADDRESS = (PROTOCOL = tcp)(HOST = ddd)(PORT = 1526))
 (CONNECT_DATA = (SERVER=dedicated)(SERVICE_NAME=a.b.org))
)

"""
cx_Oracle.connect("user", "password", dsn)

По сути, любую строку подключения, которую вы можете найти в файле tnsnames.ora, вы также можете напрямую передать в качестве параметра dsn в cx_Oracle.connect.

...