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任务管理器”,杀死及进程,书写⾃⼰的ora_startup.bat,执⾏之!
7、ORA-12638:⾝份证明检索失败
原因:服务端开了防⽕墙,且使⽤了本地操作系统认证
解决:修改a⽂件,
1)NTS改为NONE,oracle将采⽤⼝令⽂件认证(此时 remote_login_passwordfile=exclusive)如connect /as sysdba 登录,后报错RA-01031: insufficient privileges,实际上是要求你输⼊sysdba的⽤户名和密码
SQLNET.AUTHENTICATION_SERVICES= (NONE)
2)修改查连接的字符串顺序:a,直接使⽤简单连接字符串,使⽤计算机名称
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/a⽂件添加⼀⾏SQLNET.ALLOWED_LOGON_VERSION=8,重启数据库,重新连接数据库,可以成功连接,问题解决。
11、任何ArcGIS连接Oracle问题
描述:ArcMap、ArcCatalog连接Oracle失败问题
原因:⼀般会直接弹出错误信息,若信息不全,请参考%TEMP% ⽬录中的 sdedc_Oracle.log ⽂件以获得更多的错误消息。
12、conn / as sysdba报错连接不上
1、检查a是否包含:
适配器字符串是什么
SQLNET.AUTHENTICATION_SERVICES = (NTS)
2、检查a是否包含:
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))))
3、检查我的电脑|右键|管理|本地⽤户和组|ora_dba 组中是否包含当前电脑登录⽤户
4、报错:协议适配器错误
检查本机是否有32、64位两种,且cmd默认启动的是32位的
必须使⽤dbhome中的64位程序启动,因此在cmd中键⼊以下命令
>cd /d %ORACLE_HOME%\BIN
%ORACLE_HOME%\BIN > sqlplus / as sysdba

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。