数据库重启时cx_oracle连接丢失

时间:2018-06-01 10:08:47

标签: python oracle oracle11g cx-oracle

我使用cx_oracle连接器将我的API层连接到Oracle数据库,这里的问题是我的数据库计算机由于其他原因而不断重启。

我想免除我的API层重新建立连接或尝试重新连接,这是什么最好的解决方案?

请不要建议尝试抓住。

我的连接代码:

import cx_Oracle
connection_string = "{user}/{password}@{server}:{port}/{sid}".format(
    user=config.DB_USER,
    password=config.DB_PASSWORD,
    server=config.DB_HOST,
    port=config.DB_PORT,
    sid=config.DB_SID)
db_conn = cx_Oracle.connect(connection_string)

cursor = db_conn.cursor()

我对此并不了解,但会在这里提供会话/连接池帮助吗?

1 个答案:

答案 0 :(得分:2)

如果您使用会话池(cx_Oracle.SessionPool),则只要从池中请求死会话,就会替换死会话。这对于从池中获取的现有会话无法帮助您。但是,如果您收到错误,并将会话释放回池中,然后再从池中获取会话,您将获得可以使用的会话。如果您想要更高级的数据库故障保护,您需要探索Oracle数据库提供的一些更高级的技术,如RAC(Real Application Clusters)。