【问题标题】:Sql*Plus ERROR: ORA-12154 wile connecting sql*plus with oracle 12.2.0.1 Docker imageSql*Plus 错误:ORA-12154 将 sql*plus 与 oracle 12.2.0.1 Docker 映像连接
【发布时间】:2021-10-23 10:19:19
【问题描述】:

我从以下命令中提取了我的 oracle 映像。

docker pull store/oracle/database-enterprise:12.2.0.1

并运行以下命令来运行它。

docker run -d -it --name <Oracle-DB> store/oracle/database-enterprise:12.2.0.1

该图像工作正常我已经对其进行了测试,然后我尝试将它与需要 Oracle 客户端连接的外部的 oracle 连接所以我安装了它,但是当我运行以下命令时。

sqlplus sys/Oradoc_db1@ORCLCDB as sysdba

将它与 oracle 连接它在控制台上显示以下对话框和错误的奇怪行为。

  SQL*Plus: Release 12.2.0.1.0 Production on Sun Aug 22 17:44:46 2021

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

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


Enter user-name: sys
Enter password: 
ERROR:
ORA-12162: TNS:net service name is incorrectly specified


Enter user-name: sys
Enter password: 
ERROR:
ORA-12162: TNS:net service name is incorrectly specified


SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus

我不知道如何在容器外连接客户端。 我也检查了 tnsname.ora 文件

ORCLCDB =   (DESCRIPTION =     (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))     (CONNECT_DATA =       (SERVER = DEDICATED)       (SERVICE_NAME = ORCLCDB.localdomain)     )   ) 
ORCLPDB1 =   (DESCRIPTION =     (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))     (CONNECT_DATA =       (SERVER = DEDICATED)       (SERVICE_NAME = ORCLPDB1.localdomain)     )   ) 

在一些论坛中,我读到了 sqlnet.ora 中缺少的一些配置

NAME.DIRECTORY_PATH= {TNSNAMES, EZCONNECT, HOSTNAME}
SQLNET.EXPIRE_TIME = 10
SSL_VERSION = 1.0

这也很好。 我希望我不会在这里遗漏任何东西。

谢谢,提前。

【问题讨论】:

    标签: oracle docker sqlplus


    【解决方案1】:

    为了访问容器外的数据库服务,您必须向主机公开数据库侦听器端口。

    docker run -d -it -p 1521:1521 --name <Oracle-DB> store/oracle/database-enterprise:12.2.0.1
    

    祝你好运!

    【讨论】:

    • 在终端上仍然收到相同的消息。
    猜你喜欢
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    相关资源
    最近更新 更多