zoukankan      html  css  js  c++  java
  • Oracle常见错误及解决方法

    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,执行之!


    7、ORA-12638:身份证明检索失败
    原因:服务端开了防火墙,且使用了本地操作系统认证
    解决:修改sqlnet.ora文件,
    1)NTS改为NONE,oracle将采用口令文件认证(此时 remote_login_passwordfile=exclusive)如connect /as sysdba 登录,后报错RA-01031: insufficient privileges,实际上是要求你输入sysdba的用户名和密码
    SQLNET.AUTHENTICATION_SERVICES= (NONE)
    2)修改查找连接的字符串顺序:tnsnames.ora,直接使用简单连接字符串,使用计算机名称
    NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT, HOSTNAME)


    8、ArcSDE数据被锁定后的解锁方法
    描述:(1)删除所选对象失败 锁定请求与已有锁定冲突。
           (2)在sde数据被锁定的情况下,编辑、创建featureclass或者注册版本的时候会报告:Lock request conflicts with an established lock。多半情况下关闭数据库连接可以解决这个问题,但有时候问题依然存在。
    原因:ArcSDE数据被锁定
    解决:sqlplus下查询lock表,如果有记录返回,那么手工删除这些表中的记录。
    select t.*,t.rowid from sde.state_locks t;
    select t.*,t.rowid from sde.object_locks t;
    select t.*,t.rowid from sde.layer_locks t;
    select t.*,t.rowid from sde.table_locks t;


    9、基础 DBMS 错误  ORA-01950: 对表空间 'SYSTEM' 无权限
    描述:新建用户(默认表空间SYSTEM)后用于上传shp,提示该错误
    原因:对表空间权限不足,无法提交数据到该表空间
    解决:对用于存储矢量数据的用户授权
    -- Grant/Revoke role privileges
    grant connect to user_name;
    grant resource to user_name;
    grant select_catalog_role to user_name;
    -- Grant/Revoke system privileges
    grant unlimited tablespace to user_name;



    10、客户端连接Oracle 12c的时候,报错误:ORA-28040: No matching authentication protocol
    描述:
    原因:oracle 12c的参数SQLNET.ALLOWED_LOGON_VERSION默认等于11。当我们使用11g JDBC之前版本的thin驱动连接的时候,就会报错。此处的ALLOWED_LOGON_VERSION不同于oracle版本号,而是内部连接驱动版本号。
    解决:在数据库服务器上的oracle/network/admin/sqlnet.ora文件添加一行SQLNET.ALLOWED_LOGON_VERSION=8,重启数据库,重新连接数据库,可以成功连接,问题解决。



    11、任何ArcGIS连接Oracle问题
    描述:ArcMap、ArcCatalog连接Oracle失败问题
    原因:一般会直接弹出错误信息,若信息不全,请参考%TEMP% 目录中的 sdedc_Oracle.log 文件以获得更多的错误消息。



    12、conn / as sysdba报错连接不上
    1、检查sqlnet.ora是否包含:
        SQLNET.AUTHENTICATION_SERVICES = (NTS)

    2、检查listener.ora是否包含:
        LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))))

    3、检查 我的电脑|右键|管理|本地用户和组|ora_dba 组中是否包含当前电脑登录用户

    4、报错:协议适配器错误
        检查本机是否有32、64位两种sqlplus.exe,且cmd默认启动的是32位的
        必须使用dbhome中的64位sqlplus.exe程序启动,因此在cmd中键入以下命令
        >cd /d %ORACLE_HOME%BIN
        %ORACLE_HOME%BIN > sqlplus / as sysdba

  • 相关阅读:
    变量使用的注意事项
    计算机存储单元
    常量
    mybatis报错There is no getter for property named '***' in 'class ***'
    sonar-scanner扫描各种出错解决
    SonarQube搭建的各种问题
    linux每日命令(18):whereis命令
    Django视图层之路由配置系统(urls)
    Django---MTV模型、基本命令、简单配置
    web框架
  • 原文地址:https://www.cnblogs.com/publiter/p/13595698.html
Copyright © 2011-2022 走看看