zoukankan      html  css  js  c++  java
  • 虚拟机电脑重启后连接不上ORACLE

    ORA-12514:TNS:listener does not currently know of service requested in connect descriptor
    连接一个Oracle出现了各种错误
    原博客地址:http://blog.csdn.net/jerry_bj/article/details/6384309

    我的解决方案:打开netmanager,删除所有实例和监听,然后先添加监听再添加实例,添加完后重启oracleservice和oracleListener

    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 for ORACLE/Toad for Oracle 9.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通了。

  • 相关阅读:
    gerapy+scrapyd组合管理分布式爬虫
    selenium之chromedriver与谷歌浏览器映射,到谷歌71.0版本的
    windows10下成功安装docker splash及遇到问题的解决方案
    python安装win32api pywin32 后出现 ImportError: DLL load failed
    git客户端安装
    linux相关命令
    springboot集成swagger2
    git远程分支创建,本地分支关联远程分支,第一次发布、更新分支
    spring事件监听机制
    JavaScript页面被卷去的头部兼容性解决方案
  • 原文地址:https://www.cnblogs.com/jsfh/p/14125359.html
Copyright © 2011-2022 走看看