由于电脑在我接手之前,有别人安装过oracle10g的服务端,虽然之后卸载了,但是有些东西没有卸载干净,导致遇到了许多问题,在此记录一下。
首先要保证安装正确,即在sqlplus环境下能否正常使用。
再确定一下监听的地址的环境变量(TNS_ADMIN)是否正确,ORACLE_HOME我并没有配置,不过好像没有什么关系。
关键的:Net Manager、Net Configuration Assistant,这两个管理工具。如果你的电脑是纯净的,没安装过oracle的,那用起来应该是没关系的,但是我现在的情况是,这俩个工具不只是没用,甚至会把我已经调好的配置破坏,所以,干脆直接改配置文件,然后用命令行吧。
具体来说,现在network\admin\listener.ora下设置服务于监听,下面是我配置后的文件
# listener.ora Network Configuration File: F:\app\Administrator\virtual\product\12.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = F:\app\Administrator\virtual\product\12.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:F:\app\Administrator\virtual\product\12.2.0\dbhome_1\bin\oraclr12.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = F:\app\Administrator\virtual\product\12.2.0\dbhome_1)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 666.66.66.66)(PORT = 1521))
)
)
CLRExtProc是推荐关掉的,不过只是本地测试的话,关不关无所谓。
然后,在plsql的tns文件中加上监听信息
test111 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 666.66.66.66)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
进入cmd,进入lsnrctl,依次执行stop、start(就是重启服务、监听),有时候start时会报服务已在运行,但是又关不掉,这时需要在win的服务管理页面强行关掉监听服务(一般是Oracle......Listener
这样的名字),之后再执行start。
这时用plsql进行连接,若报ORA-28040 没有匹配的认证协议
,就在network\admin\sqlnet.ora中加上这句SQLNET.ALLOWED_LOGON_VERSION=8