oracle连不上的各种现象

原博客地址:http://blog.csdn.net/jerry_bj/article/details/6384309

windows 2008上启用防火墙后Oracle tnsping不通的解决办法

1、解决方法:
     很简单,windows2008防火墙将Oracle 1521端口给封了,新建并开启就行了。当然,如果你的listener是其他端口,按照下述方法把其他的端口开了,也就可以了。

在cmd中,输入:

C:/Users/Administrator>netsh firewall set portopening TCP 1521 "ORACLE"

2、ORA-12154:TNS:无法解析指定的连接标识符:
    TNS-03505:无法解析名称:

    最近在安装完Oracle Developer Suite之后,就无法登录系统,输入帐号登录发生错误:ORA-12154:TNS:无法解析指定的连接标帜符。

从网上查看说一般是因为 配置文件中没有对应的实例名,然后我就输入C:/tnsping myoracle(我的ora实例名),查看tnsnames.ora和sqlnet.ora是否配置正确,结果报错,提示:TNS-03505:无法解析名称 说明配置文件有误。

    然后我就查看%Oracle_Home%/Db_1/NetWork/admin/TNSNAMES.ORA 文件,发现其中包含我需要登录的实例名。我在尝试tnsping命令,发现其查看到的参数文件sqlnet.ora不是我默认安装的oracle下面的sqlnet.ora,而是Oracle Developer Suite目录下NetWork文件夹下面的sqlnet.ora文件,把安装目录下的tnsnames.ora中的实例配置内容拷贝过去,OK.

MYORACLE =
(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = MYORACLE)
    )
)

    至于为什么会修改为使用那个目录下的参数文件,还没有研究怎么处理。先记下处理过程

    一个很难想到的引起ORA-12154的原因
        使用OracleClient.OracleConnection时(我连的是Oracle 9i,其他版本未知),如果你的执行目录太长或者有括号等(未考察有些什么符号),那么即使你的服务名是对的,也会引起ORA-12154问题“TNS: 无法处理服务名”,当出现这个问题时,请也考虑这个原因。

http://render.cnblogs.com/archive/2005/10/13/253688.aspx

写正确了tnsnames文件却tnsping无法ping通:
http://www.oracleblog.cn/working-case/tnsping-block/
http://www.oracleblog.cn/tag/11g/

3、ORA-12154: TNS: 无法解析指定的连接标识符

    你看看是不是你的TnaNames.ora里面TNS名称之前有空格,如果有则删除,呵呵,我以前碰到过这样的BT问题
把   
(CONNECT_DATA   =   
              (SERVICE_NAME=HXDB)   
          )   
换成   
(CONNECT_DATA   =   
              (SID=HXDB)   
          )   
看看  

Toad for Oracle免费下载
http://www.innovatedigital.com/node/319/done?sid=375

4、解决ORA-12560: TNS: 协议适配器错误,与大家共享

    今天遭遇ORA-12560: TNS: 协议适配器错误的问题,经过一番努力问题已经解决,与大家共享。
造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个:
    1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,

启动oraclehome92TNSlistener服务。
    2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务

面板,启动oracleserviceXXXX,XXXX就是你的database SID.
    3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0将该环境变量 ORACLE_SI

D设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建

,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下

输set oracle_sid=XXXX,XXXX就是你的database SID.
    经过以上步骤,就可以解决问题。

5、TNS:协议适配器错误的解决方法 
 http://hi.baidu.com/8741659422/blog/item/62333d300112699fa9018e2d.html

    没有人会否认ORACLE是全球最有影响的数据库产品之一;不过好的东西似乎总不是那么好用(初看起来如此),甚至有些无情--总会给layman 们一个个无情的错误号。下面是我个人的总结,条条有用,希望能给初学者一点启示。

  关于“好的东西似乎总不是那么好用(初看起来如此)”的一个笑话:在参加 IBM DB2 512、513培训前,在校园网上下载到了安装程序,不过任凭我们几个同学研究个半天,也不知哪个文件是安装文件,竟没有安装成功。最后,一致认为:看来这个培训真是太有必要了!事后,才知道--我们下载的是4linux的!

[以8.1.6为例]:

1、 ORA-12541:TNS:没有监听器

  原因:没有启动监听器或者监听器损坏。如果是前者,使用命令net start OracleOraHome81TNSListener(名字可能有出入)即可;如果是后者,则使用“Net8 Configuration Assistant”工具向导之“监听程序配置”增加一个监听器即可(基本不用写任何信息,一路OK。在添加之前可能需要把所有的监听器先删除!)

2、 ORA-12500:TNS:监听程序无法启动专用服务器进程
  或
  ORA-12560:TNS:协议适配器错误

  原因:ORACLE的数据库服务没有启动。使用命令net start ORACLESERVICEORADB(ORADB为数据库名字)即可。如果仍没有解决,请继续向下看。

3、如果数据库服务启动失败,则很有可能是其注册表项值损坏,最好的做法是以下两步:

  1)ORADIM -DELETE -SID oradb 删除数据库服务项
  2)ORADIM -NEW -SID oradb 新增数据库服务项
  注:这个过程中如果出错,就重启计算机!

4、 ORA-12154:TNS:能解析服务名

  原因:ORACLE的网络服务名没有正确配置。请使用“Net8 Configuration Assistant”工具向导之“本地网络服务名配置”配置TNS即可。如果仍没有解决,请继续向下看。

5、 ORA-1034 :TNS:ORACLE不可用

  原因:ORACLE的数据库服务正确启动,但是数据库没有打开!

  使用命令:

  1)svrmgrl 启动服务管理器
  2)connect internal 以internal身份登陆
  3)startup 打开数据库

6、ORA-12560:TNS:协议适配器错误(顽固性的)

  原因:未知。

  解决:必杀技--打开“Windows任务管理器”,杀死ORACLE.exe及ORADIM.exe进程,书写自己的 ora_startup.bat,执行之!

PS:

1、我的ora_startup.bat:

net start OracleOraHome81TNSListener
net start ORACLESERVICEORADB
svrmgrl 一般情况下不用,不过有时少不了它的,具体步骤见第5步。

2、我的ora_shutdown.bat:

net stop OracleOraHome81TNSListener
net stop ORACLESERVICEORADB

3、ORACLE 相关服务名请参见“管理工具”之“服务”中以ORACLE开头的服务名。

http://lelong.javaeye.com/blog/593225
我在XP系统中安装了oracle10g 但是当我用system登录时出现以下错误:SQL> conn system
Enter password: *********
ERROR:
ORA-12560: TNS:protocol adapter error
怎么处理?

------解决方法 --------------------------------------------------------
看看类似OracleserviceXXXX这样的一个服务
------解决方法 --------------------------------------------------------
适配器错误,查看监听和服务,并看是否配置正确

oracle从10开始企业管理器就成网页版了,你还可以借助第三方工具来管理你的数据库,PL/SQL或Toad

Toad for oracle9.5 
下载地址:
http://www.orbitsw.net/toad/dls/TOAD%20for%20ORACLE/Toad%20for%20Oracle%209.5.exe

注册码:
Key : 0-63920-07153-29060-03749
Site: admin_88

你还可以只装客户端oracle 然后再装PL/SQL 来管理和连接你的数据库

oracle客户端装完,直接打开sqlplus 就让你输入用户名和密码,结果我怎么输入,它都报

ORA-12560:TNS:协议适配器错误

你可以这样来连接:一定要加上实例才能正常连接的

输入用户名:system@soshoo

输入口令:******

这样就可以连上了。

另:我的笔记:

oracle 获取当前用户的默认表空间:
select username,default_tablespace from user_users;

如何获取当前的Oracle用户的session id 两种方法:

1.环境变量:SELECT USERENV('SID') FROM DUAL;直接获取SID,这种方式要注意的是它在oracle 10g以后的版本才有这个环境变量

2.有时候v$mystat有权限, SELECT SID FROM V$MYSTAT WHERE ROWNUM =1;

前面一种显然简单点
select   *   from   v$instance;   获取当明实例

C:/Documents and Settings/Zianed>tnsping orcl

口令中若含@ 连接oracle记得要加""  

http://blog.csdn.net/aloha191/archive/2009/05/08/4161372.aspx
http://space.itpub.net/12778571/viewspace-624461 更改Oracle字符集

安装完Oracle后,在服务里可以看到oracleDBConsole和OracleService两个服务,其后还会紧跟数据库名或服务名;

oracleDBConsole是EM的服务
oracleService+(Servicename) 才是实例的服务

    我们只要启动OracleService,就可以利用PL/SQL对数据库进行连接操作了.

    有时也会因为IP问题而导致PL/SQL连不上数据库实例,我上次就是这样的情况,因为是在没装网线时装的,结果启动了OracleService,PL/SQl也连不上,这时,我们就需要在"程序"-->"Oracle - oraDb10g_home1"-->"Configuration and Migration Tools"-->"Net Manager"里进行配置,里面有一个监听程序和服务命名,里面的主机我们最好都用"计算机名",系统默认的是"localhost",我们需要在服务命名里新建一个关于数据库的服务名,然后对其进行注册,注册完毕后,保存,PLSQL应该就能连上了。

oracleDBConsole如果不启动的话,http://localhost:5500/em是打不开的,而我上次没插网线的问题就导致了oracleDBConsole无法启动,也出现了上篇中的错误。

    我机子上装了oracle11服务器端,又装了客户端,还装了pl/sql,结果出现

tnsping 实例名 :导致无法解析名称。所以,OEM可以进,而SQL/PLUS 一直连不上实例,查了好久都不知道原因。实在无耐就卸载了客户端,然而这样操作完后,SQL/PLUS居然可以连实例了,也能tnsping通了。

你可能感兴趣的:(oracle连不上的各种现象)