日期:2014-05-16  浏览次数:20459 次

Oracle错误 ora-12514 解决方法

Oracle错误 ora-12514 解决方法

?

成功连到数据库上之后,查看listener状态:lsnrctl status

status READY 状态,需要由非归档转为归档模式,故操作如下:

1.关闭数据库shutdown immediate 正常关闭;

2.启动数据库到mount状态,startup mount,发生报错:

3.此时查看listener状态: lsnrctl status

为status BLOCKED状态,网上搜索解决方法http://zhidao.baidu.com/question/278798900.html

4.重写listener.ora文件(蓝色为增加部分)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)

(ORACLE_HOME = f:\oracle\product\10.1.0\Db_1)
(PROGRAM = extproc)

)

(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = f:\oracle\product\10.1.0\Db_1)
(SID_NAME = orcl)
)
)

5.重启监听:lsnrctl start;查看状态lsnrctl status:

为status UNKNOWN状态。

6.连到实例,关闭数据库,启动数据库到mount状态,均正常!

查看某服务是动态注册或是静态注册。

可以使用命令lsnrctl status 来查看数据库是动态注册还是静态注册。

实例状态为UNKNOWN时,表示此服务是静态注册的设置,监听器表明他不知道关于该实例的任何信息,只有当用户发出连接请求时,他才检查该实例是否存在。

而动态注册的数据库通过状态信息中的状态为READY或BLOCKED来指明。不管何时关闭数据库,动态注册的数据库都会动态的从监听器中注销掉,而与之相关的信息将会从状态列表消失,这样不管数据库是在运行还是已经关闭,监听器都知道他的状态。

待补充。。。

************************************************************

ORACLE XE 修改方法

解决办法:

修改目录E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server\NETWORK\ADMIN下的文件tnsnames.ora、listener.ora将这两个文件中HOST后面的主机都修改为127.0.0.1然后重启OracleServiceXE、OracleXETNSListener服务
这时pl/sql developer连接oracle时报出“ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务”的错误,再次修改listener.ora文件,修改前该文件内容为
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)