ORA-12514 Oracle错误解决办法及startup命令、shutdown命令和lsnrctl 命令介绍
2014-09-30 11:01
696 查看
最近为一个老的系统做Oracle数据备份、恢复的时候,首先遇到了一个ORA-12514的错误。当时自己查了下网上资料就开始处理,最后因为没有正确启动Oracle服务,所以没有成功,最后是其他同事在启动的时候换了一个强制启动的命令就搞定,惭愧啊!所以把相关知识点记录一下,以便后续工作和学习。
网上其他人的解决经验:
oracle安装成功后,一直未停止数据库(即数据库是启动的),客户端配置成功后,应该一直不会有什么问题。
而一旦你和我同事一样,有时把Oracle安装在虚拟机中,而且Oracle安装完毕后,没在进行任何监听的配置,则虚拟机再启动,则就会出现ORA-12514的问题。如下图
如下是解决思路:
根据出错信息判断出客户端未监听到实例服务名
1、通过重启服务的方式启动数据库,再次连接仍无法连接服务器。
2、既然第一种方法不能解决问题,那就第二种方法。考虑监听listener.ora
监听配置文件listener.ora中可以不必指定监听的服务名(安装Oracle10g后也是没有指定的)。正常情况下一般只要数据库启动,客户端连接数据库也没有什么问题,但是有时重复启动关闭也会出现ORA-12514错误。
既然listener.ora中没有指定监听,我们可以在listener.ora文件中指定监听的实例名,这样该问题应该可以连接。
步骤如下:
在oracle服务器Oracle安装目录(我的在E:\Oracle10g下,每个人的不一样,根据自己的情况查找)Network/admin目录下找到listener.ora 我的如下图所示
# listener.ora Network Configuration File: E:\Oracle10g\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\Oracle10g)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = E:\Oracle10g)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = onest)(PORT = 1521))
)
)
标红的为我添加的部分,ORCL为监听的实例名。
然后在Oracle服务器的服务中重新启动监听服务
,然后在oracle客户端通过再次配置对Orcl实例的监听,如下图所示
结果出现如下图的提示。
这时我们不要着急,只需要oracle服务器重新启动一下,再次连接即成功。这也是我们配置完listener.ora 监听后,经常忘记的。再次尝试,可以看到客户端可以连接上oracle服务器了,而且PL/SQL再次连接也没有问题了。
而有些朋友在配置客户端时,连接数据库成功,而使用PL/SQL时,又出现了如下图所示的问题。这又如何解决呢?为什么oracle客户端已经连接成功了,而PL/SQL确不行呢?
出现如上的原因是,可能是大家再配置oracle客户端时,虽然链接成功了,步骤上可能有些错误。大家使用Net Cofiguration Assistant客户端时重新配置了Orcl,而不是添加,我们应该如下步骤处理,就不会出问题了。
1、如果Net Cofiguration Assistant中已经有了Orcl。我们可以重新配置
2、如果Net Cofiguration Assistant中没有Orcl,我们应该添加 具体界面如下图所示。
如果大家该步处理也没有问题了,listener.ora 修改成功,并且重新启动了oracle服务器,无论oracle客户端还是PL/SQL都能够成功连接数据库了。
总结一下。当大家遇到“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误的解决步骤:
1、通过重启服务的方式启动数据库,再次连接尝试。
2、如果第一种方法不可行,我们采用第二种方法
[align=left]正确添加listener.ora;[/align]
[align=left]重新启动了oracle服务器,并检查oracle所有服务是否启动;[/align]
[align=left]oracle客户端Net Cofiguration Assistant正确添加或重新配置实例名 [/align]
我的解决方法是:
刚开始直接使用:
sqlplus /nolog
connect / as sysdba
startup
结果提示启动不起来,然后我先停掉 lsnrctl stop 再改监听listener.ora,最好启动监听服务 lsnrctl start ,提示监听服务启动成功
但是这个时候去执行oracle数据导出命令 expdp cms_system/wlyd2o12No.1@wlyd dumpfile=cms_system.dmp directory=DATA_PUMP_DIR schemas=cms_system logfile=fri.log REUSE_DUMPFILES=Y
执行结果提示:
UDE-01034: 操作产生了 ORACLE 错误 1034
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
UDE-00003: 所有允许的登录尝试均失败
Oracle服务还是不能使用,到此我就没辙了.最后是同事用 startup force 代替了 startup命令,启动了oracle服务,也没有修改监听配置文件listener.ora,就可以正常导出数据了。
Oracle数据库的几种启动 startup 和关闭 shutdown方式
STARTUP 命令介绍:
有以下几种启动方式:
1、startup nomount
非安装启动,这种方式启动下可执行:重建控制文件、重建数据库
读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。
2、startup mount dbname
安装启动,这种方式启动下可执行:
数据库日志归档、
数据库介质恢复、
使数据文件联机或脱机,
重新定位数据文件、重做日志文件。
执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置,
但此时不对数据文件和日志文件进行校验检查。
3、startup open dbname
先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,
这种方式下可访问数据库中的数据。
4、startup,等于以下三个命令
startup nomount
alter database mount
alter database open
如果startup命令行上没有指定任何模式,startup
open选项就是默认的启动模式
5、startup restrict
约束方式启动
这种方式能够启动数据库,但只允许具有一定特权的用户访问
非特权用户访问时,会出现以下提示:
ERROR:
ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用
6、startup force
强制启动方式
用正常方式启动数据库时遇到了困难,可以用startup
force来完成数据库的关闭和启动
先关闭数据库,再执行正常启动数据库命令
7、startup pfile=参数文件名
带初始化参数文件的启动方式
先读取参数文件,再按参数文件中的设置启动数据库
例:startup pfile=E:\Oracle\admin\oradb\pfile\init.ora
8、startup EXCLUSIVE
SHUTDOWN 命令介绍:
1、shutdown normal
正常方式关闭数据库。
2、shutdown immediate
立即方式关闭数据库。
在SVRMGRL中执行shutdown immediate,数据库并不立即关闭,
而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),
当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。
3、shutdown abort
直接关闭数据库,正在访问数据库的会话会被突然终止,
如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。
LSNRCTL命令介绍:
启动监听:lsnrctl
start
查看监听:lsnrctl status
停止监听:lsnrctl stop
网上其他人的解决经验:
oracle安装成功后,一直未停止数据库(即数据库是启动的),客户端配置成功后,应该一直不会有什么问题。
而一旦你和我同事一样,有时把Oracle安装在虚拟机中,而且Oracle安装完毕后,没在进行任何监听的配置,则虚拟机再启动,则就会出现ORA-12514的问题。如下图
如下是解决思路:
根据出错信息判断出客户端未监听到实例服务名
1、通过重启服务的方式启动数据库,再次连接仍无法连接服务器。
2、既然第一种方法不能解决问题,那就第二种方法。考虑监听listener.ora
监听配置文件listener.ora中可以不必指定监听的服务名(安装Oracle10g后也是没有指定的)。正常情况下一般只要数据库启动,客户端连接数据库也没有什么问题,但是有时重复启动关闭也会出现ORA-12514错误。
既然listener.ora中没有指定监听,我们可以在listener.ora文件中指定监听的实例名,这样该问题应该可以连接。
步骤如下:
在oracle服务器Oracle安装目录(我的在E:\Oracle10g下,每个人的不一样,根据自己的情况查找)Network/admin目录下找到listener.ora 我的如下图所示
# listener.ora Network Configuration File: E:\Oracle10g\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\Oracle10g)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = E:\Oracle10g)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = onest)(PORT = 1521))
)
)
标红的为我添加的部分,ORCL为监听的实例名。
然后在Oracle服务器的服务中重新启动监听服务
,然后在oracle客户端通过再次配置对Orcl实例的监听,如下图所示
结果出现如下图的提示。
这时我们不要着急,只需要oracle服务器重新启动一下,再次连接即成功。这也是我们配置完listener.ora 监听后,经常忘记的。再次尝试,可以看到客户端可以连接上oracle服务器了,而且PL/SQL再次连接也没有问题了。
而有些朋友在配置客户端时,连接数据库成功,而使用PL/SQL时,又出现了如下图所示的问题。这又如何解决呢?为什么oracle客户端已经连接成功了,而PL/SQL确不行呢?
出现如上的原因是,可能是大家再配置oracle客户端时,虽然链接成功了,步骤上可能有些错误。大家使用Net Cofiguration Assistant客户端时重新配置了Orcl,而不是添加,我们应该如下步骤处理,就不会出问题了。
1、如果Net Cofiguration Assistant中已经有了Orcl。我们可以重新配置
2、如果Net Cofiguration Assistant中没有Orcl,我们应该添加 具体界面如下图所示。
如果大家该步处理也没有问题了,listener.ora 修改成功,并且重新启动了oracle服务器,无论oracle客户端还是PL/SQL都能够成功连接数据库了。
总结一下。当大家遇到“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误的解决步骤:
1、通过重启服务的方式启动数据库,再次连接尝试。
2、如果第一种方法不可行,我们采用第二种方法
[align=left]正确添加listener.ora;[/align]
[align=left]重新启动了oracle服务器,并检查oracle所有服务是否启动;[/align]
[align=left]oracle客户端Net Cofiguration Assistant正确添加或重新配置实例名 [/align]
我的解决方法是:
刚开始直接使用:
sqlplus /nolog
connect / as sysdba
startup
结果提示启动不起来,然后我先停掉 lsnrctl stop 再改监听listener.ora,最好启动监听服务 lsnrctl start ,提示监听服务启动成功
但是这个时候去执行oracle数据导出命令 expdp cms_system/wlyd2o12No.1@wlyd dumpfile=cms_system.dmp directory=DATA_PUMP_DIR schemas=cms_system logfile=fri.log REUSE_DUMPFILES=Y
执行结果提示:
UDE-01034: 操作产生了 ORACLE 错误 1034
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
UDE-00003: 所有允许的登录尝试均失败
Oracle服务还是不能使用,到此我就没辙了.最后是同事用 startup force 代替了 startup命令,启动了oracle服务,也没有修改监听配置文件listener.ora,就可以正常导出数据了。
Oracle数据库的几种启动 startup 和关闭 shutdown方式
STARTUP 命令介绍:
有以下几种启动方式:
1、startup nomount
非安装启动,这种方式启动下可执行:重建控制文件、重建数据库
读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。
2、startup mount dbname
安装启动,这种方式启动下可执行:
数据库日志归档、
数据库介质恢复、
使数据文件联机或脱机,
重新定位数据文件、重做日志文件。
执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置,
但此时不对数据文件和日志文件进行校验检查。
3、startup open dbname
先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,
这种方式下可访问数据库中的数据。
4、startup,等于以下三个命令
startup nomount
alter database mount
alter database open
如果startup命令行上没有指定任何模式,startup
open选项就是默认的启动模式
5、startup restrict
约束方式启动
这种方式能够启动数据库,但只允许具有一定特权的用户访问
非特权用户访问时,会出现以下提示:
ERROR:
ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用
6、startup force
强制启动方式
用正常方式启动数据库时遇到了困难,可以用startup
force来完成数据库的关闭和启动
先关闭数据库,再执行正常启动数据库命令
7、startup pfile=参数文件名
带初始化参数文件的启动方式
先读取参数文件,再按参数文件中的设置启动数据库
例:startup pfile=E:\Oracle\admin\oradb\pfile\init.ora
8、startup EXCLUSIVE
SHUTDOWN 命令介绍:
1、shutdown normal
正常方式关闭数据库。
2、shutdown immediate
立即方式关闭数据库。
在SVRMGRL中执行shutdown immediate,数据库并不立即关闭,
而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),
当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。
3、shutdown abort
直接关闭数据库,正在访问数据库的会话会被突然终止,
如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。
LSNRCTL命令介绍:
启动监听:lsnrctl
start
查看监听:lsnrctl status
停止监听:lsnrctl stop
相关文章推荐
- oracle 数据库 错误 ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 解决办法
- Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法
- oracle 11g错误ora-01033:oracle initialization or shutdown in progress解决办法
- Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法
- Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法
- Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法
- Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法
- Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法
- Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法
- Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法
- Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法
- PLSQL连接错误:Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法
- oracle 11g ORA-12514错误,我的解决办法
- ORA-01033 oracle initialization or shutdown in progress错误解决办法
- ORA-01033: ORACLE initialization or shutdown in progress错误解决办法
- oracle错误ora-01658的解决办法
- Oracle 10g中“ERROR-ORA-12514 TNS 监听程序当前无法识别连接描述符中请求的服务”错误的解决方法
- oracle startup时 ORA-00600错误解决
- 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决
- myeclipse连接oracle出现ora-12705错误的解决办法