您的位置:首页 > 数据库 > Oracle

Oracle 10g数据库启动ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务;ora-01034:oracle not available

2012-12-01 14:32 1141 查看
我的oracle 10g数据库有半年没用了,最近需要使用,用PL/SQL Developer登录时,出现了“ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务”,以前没碰见过这样的问题,然后就到网上去搜,解决该问题的方法如下:

在目录F:\oracle\product\10.2.0\db_1\NETWORK\ADMIN(我电脑上是这样的,如果你有多个数据实例,那就选db_n,n是数字)下找到listener.ora文件,添加如下红色字体内容:

文件内容变为:

# listener.ora Network Configuration File: F:\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 = F:\oracle\product\10.2.0\db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = orcl)

(ORACLE_HOME = F:\oracle\product\10.2.0\db_1)

(SID_NAME = orcl)

)

)

LISTENER =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

)

其中的GLOBAL_DBNAME = orcl和SID_NAME = orcl中的orcl是你的数据库实例的名称,ORACLE_HOME是你的数据库实例的主目录。

保存后,重启TNSListener服务。这样这个问题就解决了。

但是,解决这个错误后,还是不能连接到Oracle数据库,又出现如下问题:

ora-01034:oracle not available

ora-27101:shared mermory realm does not exist

我又到网上去找,网上说的如下:

1 先看oracle的监听和oracle的服务是否都启动了。启动oracle监听:

cmd的命令行窗口下,输入lsnrctl start,回车即启动监听。

2 查看oracle的sid叫什么,比如创建数据库的时候,实例名叫“orcl”,那么先手工设置一下oralce的sid,cmd命令窗口中,set ORACLE_SID=orcl

3 再输入sqlplus /nolog,回车

再输入 conn / as sysdba;回车

会显示“已连接到空数据库实例”

4、输入startup,回车,本来是可以启动oracle服务的,但是又出现了ORA-01261错误,

ORA-01261: Parameter db_recovery_file_dest destination string cannot be translat

ed

下面还有些错误显示???????????????????????,于是我又到网上去搜ORA-01261的错误,最后发现了问题,是因为缺少flash_recovery_area目录的问题,那么这个flash_recovery_area目录要创建在哪儿呢?可以查看F:\oracle\product\10.2.0\admin\orcl\pfile目录下的init.ora.2302012203440文件(每个人的后面的数字可能不一样,只要是init.ora就行),用记事本打开该文件,在靠近中间上边一点的地方可以找到:

control_files=("F:\oracle\product\10.2.0\oradata\orcl\control01.ctl", "F:\oracle\product\10.2.0\oradata\orcl\control02.ctl", "F:\oracle\product\10.2.0\oradata\orcl\control03.ctl")

db_recovery_file_dest=F:\oracle\product\10.2.0/flash_recovery_area

db_recovery_file_dest_size=2147483648

上面那行标红色的目录就是flash_recovery_area目录所在的地方,所以只要在F:\oracle\product\10.2.0目录下创建一个flash_recovery_area目录就可以了,

再次输入startup,等一会儿,就告诉你Oracle实例启动了,用PL/SQL Developer就能连接到Oracle数据库了!

还有一个值得注意的地方:

如果你的机子上装了一些安全卫士之类的优化软件,可能在你用这些优化软件进行垃圾清理的时候会把flash_recovery_area目录给清理掉(我的就是这样),清理掉之后,当你关闭Oracle数据库之后再次启动就又会出现上面的问题,你又得再创建flash_recovery_area目录,很麻烦,怎么办呢?很简单:直接在flash_recovery_area目录下创建一个任意的空文件(我就创建了一个空的txt文本文件)。这样,优化软件就不会清理flash_recovery_area目录了,你也就不用每次都创建flash_recovery_area目录了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐