Oracle错误 ora-12514 解决方法

2 篇文章 0 订阅
0 篇文章 0 订阅
[size=x-large]Oracle错误 ora-12514 解决方法[/size]
原文链接:[url]http://www.cnblogs.com/qixin622/archive/2012/02/23/2364412.html[/url]


成功连到数据库上之后,查看listener状态:lsnrctl status
[img]http://dl2.iteye.com/upload/attachment/0095/3896/7062f81d-b6b4-3247-ab48-bd0172e089ba.jpg[/img]


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

1.关闭数据库shutdown immediate 正常关闭;
2.启动数据库到mount状态,startup mount,发生报错:
[img]http://dl2.iteye.com/upload/attachment/0095/3899/8da68ec0-62a1-3940-b3ef-8137662be2f5.jpg[/img]

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

[img]http://dl2.iteye.com/upload/attachment/0095/3901/54d88f45-ce5f-36ed-b6ab-8099a9404091.jpg[/img]
为status BLOCKED状态,网上搜索解决方法[url]http://zhidao.baidu.com/question/278798900.html[/url]
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)

)

[color=blue](SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = f:\oracle\product\10.1.0\Db_1)
(SID_NAME = orcl)
)
)[/color]


5.重启监听:lsnrctl start;查看状态lsnrctl status:
[img]http://dl2.iteye.com/upload/attachment/0095/3907/a3873ce5-e9c7-389e-9276-c09e15634e19.jpg[/img]
为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)
(ORACLE_HOME = E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server)
(PROGRAM = extproc)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)

DEFAULT_SERVICE_LISTENER = (XE)


修改的方式是:再在该文件中添加一个需要连接的数据库实例的描述,就是添加一个SID_DESC,我自己连接的数据库实例是XE,添加后的文件内容为:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server)
(PROGRAM = extproc)
)
[color=red](SID_DESC =
(SID_NAME = XE)
(ORACLE_HOME = E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server)
)[/color]

/*红色字体部分即为新加的数据库实例XE的实例描述,注意该实例描述的ORACLE_HOME后面不能像其它实例那样加(PROGRAM = extproc),否则会报“ORA-28547: TNS: 连接服务器失败,可能是Net8管理错误。”*/
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)

DEFAULT_SERVICE_LISTENER = (XE)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值