如题,最近在做oracle数据迁移,把数据迁入到服务器之后,出现了题目的问题,查阅的网上的资料,最终解决,做下记录,防止忘记。
数据库版本:12c
解决步骤:
1.关闭防火墙
2.修改listener.ora文件
在oracle的安装目录内,找到此文件,我的安装目录是如下图
打开文件,在SID_LIST中添加代码,如下(红色部分为添加或修改)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = E:\app\orcl\product\12.1.0\dbhome_3)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:E:\app\orcl\product\12.1.0\dbhome_3\bin\oraclr12.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = E:\app\orcl\product\12.1.0\dbhome_3)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xx.xxx)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
xxx.xxx.xx.xxx 本机的IP地址
3.修改tnsnames.ora文件
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
xxx.xxx.xx.xxx 本机的IP地址
4.最后关闭监听、关闭服务 、开启服务、开启监听
成功!
最后,有的同学可能会遇到一个问题,当使用java代码,链接oracle数据库的时候,会链接不上,报出No matching authentication protocol,产生问题的原因是你数据库的版本与你java项目中odbc.jar包版本不对应,你可以去官网下载与你oracle数据库对应的版本,也可以在下图文件中,加上一句话。SQLNET.ALLOWED_LOGON_VERSION=8