深入分析ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
2014-03-10 11:33
453 查看
环境:虚拟机, win03 ,11g
数据库异常关闭的处理办法:
问题出现之前的问题:因为数据库正在创建表空间,然后虚拟机进行了常规关闭。导致文件状态可能不一致。数据库在正常的关闭会有同步校验。因此此次关闭导致了该问题的产生。
感谢作者提供重要分析:http://soulful.blog.51cto.com/468033/389570/
初始表征问题会出现:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
一般操作为重新配置listener.ora 文件
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_1)
(SID_NAME = ORCL)
)
(SID_DESC =
(SID_NAME =CLRExtProc)
(ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
双引号内容为添加本地实例内容,让sqlplus能访问到本地实例。
在过程中发现sys的密码无法查看,但不能登录system,报oracle实例无效。
只能初始化oracle的用户密码:
方案:
将原密码文件重命名为PWD+实例名.oracpy,只要重名命即可。
关键指令例如:
orapwd file=F:\oracle\product\10.2.0\db_1\database\PWDorcl.ora password=123
这样就建立了SYS的密码为123,可以登录了.
Sql代码
SQL> conn sys/123@orcl as sysdba
已连接到空闲例程。
SQL> show parameter session
ORA-01034: ORACLE not available
SQL> startup;
ORACLE 例程已经启动。
Total System Global Area 3423965184 bytes
Fixed Size 2180544 bytes
Variable Size 2415921728 bytes
Database Buffers 989855744 bytes
Redo Buffers 16007168 bytes
数据库装载完毕。
ORA-03113: 通信通道的文件结束
印证了之前错误的可能,介质和文件信息不一致。
Sql代码
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 3423965184 bytes
Fixed Size 2180544 bytes
Variable Size 2415921728 bytes
Database Buffers 989855744 bytes
Redo Buffers 16007168 bytes
数据库装载完毕。
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效
SQL> recover database until cancel;
完成介质恢复。(此处有recover database until time '2010-09-09 1:45:02'; 可恢复介质到某一时间点)
SQL> alter database open resetlogs;
数据库已更改。
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup;
ORACLE 例程已经启动。
Total System Global Area 3423965184 bytes
Fixed Size 2180544 bytes
Variable Size 2415921728 bytes
Database Buffers 989855744 bytes
Redo Buffers 16007168 bytes
数据库装载完毕。
数据库已经打开。
SQL> select 1 from dual;
1
----------
1
完成恢复
总结:硬件环境中经常可能会遇到意外断电或者异常关机的情况,如果之前没有非常规的数据库操作,有限考虑日志和文件的信息不同步情况,进行一次时间点的恢复。
数据库异常关闭的处理办法:
问题出现之前的问题:因为数据库正在创建表空间,然后虚拟机进行了常规关闭。导致文件状态可能不一致。数据库在正常的关闭会有同步校验。因此此次关闭导致了该问题的产生。
感谢作者提供重要分析:http://soulful.blog.51cto.com/468033/389570/
初始表征问题会出现:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
一般操作为重新配置listener.ora 文件
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_1)
(SID_NAME = ORCL)
)
(SID_DESC =
(SID_NAME =CLRExtProc)
(ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
双引号内容为添加本地实例内容,让sqlplus能访问到本地实例。
在过程中发现sys的密码无法查看,但不能登录system,报oracle实例无效。
只能初始化oracle的用户密码:
方案:
将原密码文件重命名为PWD+实例名.oracpy,只要重名命即可。
关键指令例如:
orapwd file=F:\oracle\product\10.2.0\db_1\database\PWDorcl.ora password=123
这样就建立了SYS的密码为123,可以登录了.
Sql代码
SQL> conn sys/123@orcl as sysdba
已连接到空闲例程。
SQL> show parameter session
ORA-01034: ORACLE not available
SQL> startup;
ORACLE 例程已经启动。
Total System Global Area 3423965184 bytes
Fixed Size 2180544 bytes
Variable Size 2415921728 bytes
Database Buffers 989855744 bytes
Redo Buffers 16007168 bytes
数据库装载完毕。
ORA-03113: 通信通道的文件结束
印证了之前错误的可能,介质和文件信息不一致。
Sql代码
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 3423965184 bytes
Fixed Size 2180544 bytes
Variable Size 2415921728 bytes
Database Buffers 989855744 bytes
Redo Buffers 16007168 bytes
数据库装载完毕。
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效
SQL> recover database until cancel;
完成介质恢复。(此处有recover database until time '2010-09-09 1:45:02'; 可恢复介质到某一时间点)
SQL> alter database open resetlogs;
数据库已更改。
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup;
ORACLE 例程已经启动。
Total System Global Area 3423965184 bytes
Fixed Size 2180544 bytes
Variable Size 2415921728 bytes
Database Buffers 989855744 bytes
Redo Buffers 16007168 bytes
数据库装载完毕。
数据库已经打开。
SQL> select 1 from dual;
1
----------
1
完成恢复
总结:硬件环境中经常可能会遇到意外断电或者异常关机的情况,如果之前没有非常规的数据库操作,有限考虑日志和文件的信息不同步情况,进行一次时间点的恢复。
相关文章推荐
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
- ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务的解决方法
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
- 解决ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
- ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务(以及常见oracle数据库错误)
- ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
- Oracle几个基础配置问题:ORA-12154: TNS: 无法解析指定的连接标识符、ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务、ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序
- ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
- ERROR - ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
- ORA-12514 TNS 监听程序当前无法识别连接描述符中请求的服务
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
- ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务
- ORACLE11g ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 & 无监听
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务解决
- oracle 11g ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务解决方法
- ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
- Oracle 11g ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务