1

我无法连接到我的 Oracle 19C 云数据库,我已经下载了钱包并将其放在我的机器(Windows)中的安全位置。我已经在我的机器上安装了 Oracle 19C 客户端,并使用钱包 zip 中的连接字符串更新了 tnsnames.ora(network/admin),不确定我是否错过了任何配置,如环境变量从 sqlplus 错误中获取以下错误:ORA-12154: TNS:无法解析指定的连接标识符

注意:我可以使用钱包文件从 Sql 开发人员连接到云。我的机器上运行着 Oracle 18c XE。

任何帮助将不胜感激,在此先感谢。

4

1 回答 1

1

您的问题似乎与您在自己的笔记本电脑上安装了 Oracle XE 数据库版本的问题有关。

当您运行 sqlplus 或任何其他 OCI 工具连接到 Oracle 时,无论数据库是远程主机还是在云中,sqlplus 都会评估 TNS_ADMIN 环境变量以识别您的 sqlnet 和 tnsnames 文件所在的位置。如果没有变量,它将使用您的主要 Oracle 注册表项的默认值,该值肯定指向您的 XE 版本,因为它是以前安装的。

当您收到ORA-12154: TNS:could not resolve the connect identifier specified时,您的会话未在配置文件中找到任何有关目标的信息,可能是因为会话正在评估您的 XE 安装中的文件

尝试执行以下操作

  • 将 Oracle Cloud 提供的钱包文件复制到与 XE 安装不同的位置。
  • 将 sqlplus cmd 会话中的 TNS_ADMIN 变量导出到这个新路径
  • 使用钱包运行 sqlplus

示例(我相信您做了第 1 点和第 2 点)

  1. 在您的计算机上安装 Oracle 客户端软件。使用完整的 Oracle Database Client 11.2.0.4(或更高版本)或 Oracle Instant Client 12.1.0.2(或更高版本)。Instant Client 包含建立 Oracle 调用接口连接所需的最少软件。Instant Client 12.1.0.2(或更高版本)对于大多数应用程序来说已经足够了。
  2. 下载客户端凭据并将文件存储在客户端计算机上的安全文件夹中。请参阅下载客户端凭据(钱包)。
  3. 将凭据文件解压缩/解压缩到客户端计算机上的安全文件夹中。
  4. 在解压凭证文件的文件夹中编辑 sqlnet.ora 文件,将“?/network/admin”替换为包含客户端凭证的文件夹的名称

例子

WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/my_new_path")))
SSL_SERVER_DN_MATCH=yes

cmd> set tns_admin = my_new_path
cmd> sqlplus /@yourtnsentry 

我不知道您的云数据库是否使用公共 IP 地址,或者您是否想使用 SSH 隧道连接到数据库。看看这里,因为那时你可能想使用 SQLcl ( Sql Developer Command Line )

https://docs.cloud.oracle.com/en-us/iaas/Content/Database/Tasks/connectingDB.htm

于 2020-07-19T11:20:28.533 回答