前提:oracle安装的文件没有损坏
步骤一配置注册表
win+r,输入regedit,依次展开[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\Environment]后添加字符串值
1.添加ORACLE_BASE
的系统变量
变量名:ORACLE_BASE
变量值:D:\oracle\product\10.2.0\db_1(这个路径是之前数据库安装的文件路径)
2.添加ORACLE_HOME
的系统变量
变量名:ORACLE_HOME
变量值:D:\oracle\product\10.2.0\db_1
3.添加NLS_LANG
的系统变量
变量名:NLS_LANG
变量值:SIMPLIFIED
CHINESE_CHINA.ZHS16GBK
4.修改环境变量Path
添加%ORACLE_SID%;%NLS_LANG%;%ORACLE_HOME%\bin;
步骤二:重新配置监听
步骤二需要在步骤一完全配置好后操作
运行CMD C:\windows\system32>netca
重新配置监听和网络
1.选择本地net服务名配置,下一步
2.重新配置监听
3.选择原来本地的监听,一般是ORCL
4.重新再命名,和原来本地监听一样的名字就可以,一般为ORCL
5.填写计算机名,写当前的计算机名即可。
步骤三:再重新配置监听文件
1.配置listener.ora文件,修改成如下
# listener.ora Network Configuration File:
D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC
=
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
(ENVS =
"EXTPROC_DLLS=ONLY:D:\oracle\product\10.2.0\db_1\BIN\oci.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION
=
(ADDRESS = (PROTOCOL = TCP)(HOST = 本机计算机名)(PORT = 1521))
)
)
ADR_BASE_LISTENER = D:\oracle
2.配置tnsnames.ora文件
ORCL =(DESCRIPTION
=(ADDRESS_LIST
=(ADDRESS = (PROTOCOL = TCP)(HOST =
本地计算机名)(PORT = 1521)) )(CONNECT_DATA
=(SERVICE_NAME =
orcl)))
步骤四:启动监听
运行CMD
C:\windows\system32>lsnrctl
start
正确的结果如下:
===================================================
C:\Users\Administrator>lsnrctl
start
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 -
Production on 28-4月 -2018 09:5
7:46
Copyright (c) 1991, 2005, Oracle. All
rights reserved.
启动tnslsnr: 请稍候...
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 -
Production
系统参数文件为D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
写入D:\oracle\product\10.2.0\db_1\network\log\listener.log的日志信息
监听:
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=本地计算机名)(PORT=1521)))
正在连接到
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=6G1FLAOP41ICE8M)(PORT=1521)
))
LISTENER 的 STATUS
------------------------
别名
LISTENER
版本
TNSLSNR for
32-bit Windows: Version 10.2.0.1.0 - Produ
ction
启动日期
28-4月 -2018 09:57:52
正常运行时间
0 天 0 小时 0 分 6 秒
跟踪级别
off
安全性
ON: Local OS
Authentication
SNMP
OFF
监听程序参数文件
D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
监听程序日志文件
D:\oracle\product\10.2.0\db_1\network\log\listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=本地计算机名)(PORT=1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1
个处理程序...
命令执行成功
===================================================
这时候可以去服务下看监听监听是否起来
步骤五:配置oracle实例服务
运行oradim.exe -new -sid ORCL -startmode
a建立服务
(注 后面一定要加startmode a,如果不加,oracle
的服务虽然起来了,但是实例启不来。)
C:\windows\system32>oradim.exe -new -sid
ORCL -startmode a
步骤五:修改OracleServiceOracL注册表
win+r,输入regedit打开注册表,依次展开[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\OracleServiceORCL]
查看里面的:ImagePath的值是否是D:\oracle\product\10.2.0\db_1\bin\ORACLE.EXE
ORCL(也就是之前oracle安装的文件路径)
检查没问题后,OracleServiceOracL就可以重新启动了。
当做好上面的步骤后,重启服务OracleServiceOracL和OracleTNSListener,最好再重启下电脑。重启后看这两个服务是否起来。
cmd执行tnsping orcl(orcl本地监听),如果正常的话就算是成功了。