【问题标题】:AWS Oracle RDS: ORA-12560: TNS:Protocol adapter errorAWS Oracle RDS:ORA-12560:TNS:协议适配器错误
【发布时间】:2021-10-19 12:31:29
【问题描述】:

我已将使用 Oracle 的本地 .NET MVC 和 WebAPI 应用程序迁移到 AWS 云。在所有条件相同的情况下,我只是将连接字符串更改为引用 RDS Oracle

我的设置文件中有以下连接字符串:

<add key="OracleDatabaseConnectionString" value='Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db-rds.uryrt6fhe.rds.amazonaws.com)(PORT=1526))(CONNECT_DATA=(SID=db-rds)));' />

但是,我得到以下信息:

ORA-12560: TNS:Protocol adapter error

在使用 RDS Oracle 而非本地 Oracle 时如何解决此问题?

(在Oracle SQL Developer中,我可以成功连接..那么为什么不用上面的连接字符串呢?)

【问题讨论】:

    标签: .net oracle amazon-web-services amazon-rds


    【解决方案1】:

    该错误肯定与 打开连接到 oracle rds 实例有关(有一次我调查了 DNS、LDAP 等,只是为了删除所有变量)。

    此连接字符串仅适用于本地 oracle

    <add key="UserLogin" value="User Id=prodabc;Password="pdw$7jhw@1;" />
    <add key="OracleDatabase_onprem" value="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.2.2.87)(PORT=1526))(CONNECT_DATA=(SID=oradb)));" />
    

    在我的代码中,我构造了与数据库的连接,如下所示:

    var conn = Config.OracleDatabase_onprem;
    var usr = Config.UserLogin;
    OracleConnection oraConn = new OracleConnection(string.Format("{0}{1}",conn, usr)
    
    

    以下连接字符串适用于 oracle rds适用于本地 oracle

    <add key="UserLogin" value="User Id=prodabc;Password=pdw$7jhw@1;" />
    <add key="OracleDatabase_cloud" value="Data Source=db-rds.uryrt6fhe.rds.amazonaws.com:1526/oradb" />
    

    在我的代码中,我构造了与数据库的连接,如下所示:

    var conn = Config.OracleDatabase_onprem;
    var usr = Config.UserLogin;
    OracleConnection oraConn = new OracleConnection(string.Format("{0}{1}",str, usr,conn)
    
    

    仅限本地

    "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.2.2.87)(PORT=1526))(CONNECT_DATA=(SID=oradb)));User Id=prodabc;Password=pdw$7jhw@1;"
    

    ORACLE RDS 和本地

    "User Id=prodabc;Password=pdw$7jhw@1;Data Source=db-rds.uryrt6fhe.rds.amazonaws.com:1526/oradb"
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-06
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多