1.CDB
①问题:安装好Oracle12C之后连接不上,一直报监听错误
解决:确认自己的oralce安装目录下的配置文件是否正确
SID_NAME:可以参照注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDB12Home5\ORACLE_SID的值
②问题:SID_NAME配置好之后,本机可以连接,别人接不上,报socket error code 10061
解决:listener.ora和tnsnames.ora要改为计算机全名
在桌面上找到“此电脑”图标→属性→系统→计算机名
③添加监听需要认证
解决:修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDB12Home5\ORACLE_SVCUSER_PWDREQ:1→0
④services.msc中监听无法启动,可能是认证信息不对
解决:service上邮件→属性→登录→选择系统认证方式
2.PDB
①问题:安装好Oracle12C之后连接不上,一直报监听错误
解决:确认自己的oralce安装目录下的配置文件是否正确
SID_NAME:PDB的名称(可以用show pdbs命令查看)
SID_NAME名称什么的都改好了之后,发现还是起不起来,一直换着报错:ora-12518,ora-12541,ora-12523,ora-12514
所有东西都重新弄了下之后,报错ora-12518
解决:
原来自己没搞懂GLOBAL_DBNAME的含义,通常格式为 db_name.db_domain
全局数据库名访问 用于客户端和服务端在2个不同的域之间
数据库名(实例名)访问 用于客户端和服务端在同一个域内
而我们现在的问题是当前环境中设置了db_domain,查看方式
show parameter domain,不明白为什么参数global_names是false,CDB可以正常连接,但是PDB不行
修改了listener.ora里面的GLOBAL_DBNAME=db_name.db_domain,tnsnames.ora里面定义的那个可变的名称为db_name.db_domain,然后就可以正常连接PDB了

listener.ora
# listener.ora Network Configuration File: E:\app\user\product\12.1.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = E:\app\user05\product\12.1.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:E:\app\user05\product\12.1.0\dbhome_1\bin\oraclr12.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL05)
(ORACLE_HOME = E:\app\user05\product\12.1.0\dbhome_1)
(SID_NAME = ORCL05)
)
(SID_DESC =
(GLOBAL_DBNAME = PDBORCL.docker.internal)
(ORACLE_HOME = E:\app\user05\product\12.1.0\dbhome_1)
(SID_NAME = PDBORCL)
)
)
ADMIN_RESTRICTIONS_LISTENER = ON
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = G08XHXYA)(PORT = 1521))
)
ADR_BASE_LISTENER = E:\app\user05
SAVE_CONFIG_ON_STOP_LISTENER = TRUE
tnsnames.ora
# tnsnames.ora Network Configuration File: E:\app\user05\product\12.1.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
PDBORCL.docker.internal =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = G08XHXYA)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = PDBORCL)
)
)
ORCL05 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = G08XHXYA)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL05)
)
)

本文主要介绍了在Oracle12C中遇到的连接问题及其解决方案,包括CDB和PDB两个部分。对于CDB,问题涉及监听错误、SID_NAME配置、计算机全名的使用以及监听认证。在PDB部分,同样遇到监听错误,解决方法涉及PDB名称确认、全局数据库名设置以及listener.ora和tnsnames.ora的调整。通过这些步骤,可以解决Oracle12C数据库的连接问题。
226

被折叠的 条评论
为什么被折叠?



