0

我正在尝试使用 TNS 和客户端钱包连接到外部 Oracle 数据库。我的组织要求进行确切的设置,所以我没有办法。问题是,当谈到甲骨文时,我是一个完全的菜鸟,而互联网没有完全零的信息——这意味着一些知识。node-oracledb 本身没有非常描述性的错误消息,所以我只是在这里闲逛,我很感激任何指导。

这是我的设置:

// This is the TypeORM config

{
  type: 'oracle',
  connectString: 'org',
  username: process.env.DB_USER,
  password: process.env.DB_PASS,
}



// .bashrc sets the env variable to the config dir

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/oracle/instantclient
export TNS_ADMIN=/opt/oracle



// tnsnames.ora

org =
        (DESCRIPTION =
                (ADDRESS =
                        (PROTOCOL = TCPS)
                        (HOST = prac-scan.it.org.com)
                        (PORT = 1533)
                )
                (CONNECT_DATA =
                        (FAILOVER_MODE =
                                (TYPE = select)
                                (METHOD = basic)
                                (RETRIES = 180)
                                (DELAY = 5)
                        )
                        (SERVICE_NAME = DB.ORG.COM)
                )
        )

// sqlnet.ora

WALLET_LOCATION = (SOURCE =
        (METHOD = FILE)
        (METHOD_DATA =
                (DIRECTORY=/opt/oracle)
        )
)

我得到的是这样的

ORA-12154: TNS:could not resolve the connect identifier specified

如果我将字符串从 tnsnames.ora 直接移动到 JS 的配置中,我会收到以下错误:

ORA-28759: failure to open file

所以我在这里,不知道我在做什么。甚至不确定如何调试,似乎混合节点和oracle并不是一件流行的事情。我会很感激任何方向。

UPD:发现我可以用字符串把钱包目录定义正确,所以我的 TypeORM 配置变成了:

{
  connectString: `(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=prac-scan.it.org.com)(PORT=1533))(CONNECT_DATA=(FAILOVER_MODE=(TYPE=select)(METHOD=basic)(RETRIES=180)(DELAY=5))(SERVICE_NAME=DB.ORG.COM))(SECURITY=(MY_WALLET_DIRECTORY=/opt/oracle)))`,
}

所以我现在得到的错误是:

ORA-28864: SSL connection closed gracefully
4

0 回答 0