这两个数据库都位于远程服务器上,我可以使用TOAD连接和查询它们。当从我的桌面上用OraClient11g_Home1连接到用Python配置的数据库时,连接就建立成功了。但是,试图连接到使用OraClient12Home1结果的数据库时,出现了ORA-12170错误,即TNS:连接超时。下面是配置。
编辑以包含更多信息:
我使用远程桌面连接连接到数据库。编写代码是为了自动化我的部分测试活动,方法是查询两个数据库,并检查单个命令在多个系统(例如爱立信和华为)上是否成功,一个查询的输出是另一个查询的输入(我可以从11g DB获得输出,并且以前已经为它编写了脚本,但这是我们第一次使用python连接到Ora12上的数据库。我可以在远程桌面上使用蟾蜍访问两个DB,也可以使用桌面上的python连接和查询11gDB,但是Ora12为相同的代码抛出了时间。
代码的连接部分和查询方式如下:
#Get chrono number, action code and status from provisioning table
ip = '********'
port = *****
service_name = '*****'
dsn = cx_Oracle.makedsn(ip, port, service_name)
connection = cx_Oracle.connect("********","********",dsn)
cursor = connection.cursor()
totalChronoList = list()
myQuery=list()
inputData = list()
myQuery = ("select CHRONO_NUM_N, ACTION_CODE_V, STATUS_V from gsm_subs_provisioning where ACTION_DT_DT > SYSDATE - 2 order by ACTION_DT_DT desc")
cursor.execute(myQuery)
inputData.append(cursor.fetchall())这些配置如下:
OraClient11g_home1 (11.2.0.1)
ORACLE_HOME:C:\Oracle\product\11.2.0\client_1
ORACLE_HOME_NAME:OraClient11g_home1
ORACLE_HOME_KEY:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11g_home1
ORACLE_SID:
NLS_LANG:AMERICAN_AMERICA.WE8MSWIN1252
SQLPATH:C:\Oracle\product\11.2.0\client_1\dbs
LOCAL:
Client DLL:C:\Oracle\product\11.2.0\client_1\oci.dll
TNSNames.ora:C:\Oracle\product\11.2.0\client_1\Network\Admin\tnsnames.ora
SQLNet.ora:C:\Oracle\product\11.2.0\client_1\Network\Admin\sqlnet.ora
LDAP.ora:C:\Oracle\product\11.2.0\client_1\Network\Admin\ldap.ora
Login.sql:
GLogin.sql:
In system PATH:Yes
Home is valid:Yes
OraClient12Home1 (12.1.0.2)
ORACLE_HOME:E:\app\client\Oracle\product\12.1.0\client_1
ORACLE_HOME_NAME:OraClient12Home1
ORACLE_HOME_KEY:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient12Home1
ORACLE_SID:
NLS_LANG:AMERICAN_AMERICA.WE8MSWIN1252
SQLPATH:E:\app\client\Oracle\product\12.1.0\client_1\dbs
LOCAL:
Client DLL:E:\app\client\Oracle\product\12.1.0\client_1\bin\oci.dll
TNSNames.ora:
SQLNet.ora:E:\app\client\Oracle\product\12.1.0\client_1\Network\Admin\sqlnet.ora
LDAP.ora:
Login.sql:
GLogin.sql:E:\app\client\Oracle\product\12.1.0\client_1\sqlplus\admin\glogin.sql
In system PATH:Yes
Home is valid:Yes发布于 2017-10-02 16:21:23
ORA-12170: TNS:发生了连接超时,意味着您无法访问DB的主机和/或端口。我敢打赌,在你的情况下,这是对防火墙的一些限制(大部分原因,但可能是其他)。首先,试着检查是否可以访问端口。最简单的方法-运行powershell语句:
Test-NetConnection <host-or-ip> -port <port>然后将发现转到sysadmin/dba。
更新:当您使用轻松访问方法(ip、端口、服务名称)连接到DB时,您不必关心tnsnames.ora。
发布于 2017-10-02 13:58:44
在您的12c客户机中,我们可以看到没有找到任何tnsnames.ora文件。从11g客户端目录复制此文件。
https://stackoverflow.com/questions/46526500
复制相似问题