ORA-000000000

本文解析了Oracle数据库中的常见错误,如ORA-12560协议适配器错误、ORA-28547连接服务器失败等,并提供了详细的解决步骤。同时,文章还探讨了SQLNET.AUTHENTICATION_SERVICES设置的影响及解决方法。

ORA-12560 协议适配器错误

可能是以下原因:

1:服务没有开启(oracle的服务,oraclehome92TNSlistener)

2:数据库实例没有开启(oracleserviceORCL)

3:注册表中默认oracle_sid设置错误(oracle_id=ORCL)

更多:

http://apps.hi.baidu.com/share/detail/38149122

关于SQLNET.AUTHENTICATION_SERVICES

!!!!!!!ORA-28547:连接服务器失败,可能是Net8管理错误。

解决办法

1.在$\NetWork\Admin\sqlnet.ora中将

SQLNET.AUTHENTICATION_SERVICES= (NTS)改为

SQLNET.AUTHENTICATION_SERVICES= (NONE)

SQLNET.AUTHENTICATION_SERVICES= (NTS)解释:使用windows操作系统本地验证,一般不用,有安全问题。通常需要改成下面的值:

SQLNET.AUTHENTICATION_SERVICES= (NONE)

 

!!!!!!!在将SQLNET.AUTHENTICATION_SERVICES= (ALL)设置为ALL后,报错:

ORA-12641验证服务无法初始化 。

!!!!!!!将SQLNET.AUTHENTICATION_SERVICES= (ALL)改成

SQLNET.AUTHENTICATION_SERVICES= (NONE)后,报错:

使用scott登录normal登录成功

使用system登录sysdba提示错误。ORA-01031:权限不足

使用sys登录sysoper登录成功。

 

!!!!!!!最后又将SQLNET.AUTHENTICATION_SERVICES=(NTS)最开始那个错误居然不报了。绕了个圈圈问题就解决了。很莫名其妙。这一系列问题花了我2、3个小时都没搞明白,希望有碰到过类似问题并解决的分享经验!!

-------------------------------------

 

ORA-01453: SET TRANSACTION 必须是事务处理的第一个语句

 

造成原因:之前的事务没有结束。

比如insert或update后,没有commit!

ORA-01453: SET TRANSACTION must be first statement of transaction

Cause: self-evident

Action: commit (or rollback) transaction, and re-execute

-------------------------------------

ORA-01456: 不能在 READ ONLY 事务处理中执行插入/删除/更新操作

>  set transaction read only后,依旧可以进行读写事务。可能是由于登录用户是DBA造成的,我自己更新为scott登录就可以限制读写事务。具体原因不明。

 

--------------------------------------

ORA-08177: 无法连续访问此事务处理

可能原因是设置了事务隔离为串行隔离

set transaction isolation level serializable;这时候如果另外一个事务正在修改某数据,与串行隔离的事务有冲突就会报错。

事务read committed 与serialiazable隔离的分别:

参考:http://blog.youkuaiyun.com/wyzxg/archive/2009/11/20/4842769.aspx

 

 

 

 

 

 

转载于:https://www.cnblogs.com/SEEKTHINKING/archive/2011/06/20/2085286.html

### 关于 Oracle 数据库错误代码 ORA-01458、ORA-01157 和 ORA-01110 的原因及解决方案 #### 错误描述与可能原因 1. **ORA-01458**: 此错误表示尝试插入或更新的数据违反了唯一约束条件。具体来说,数据中存在重复值或者 NULL 值不符合索引定义的要求[^1]。此问题通常发生在创建唯一索引时,表中的某些列已经包含了重复值。 2. **ORA-01157**: 这一错误表明无法获取控制文件所需的资源锁。常见原因是磁盘空间不足、操作系统级别的锁定冲突或其他进程正在占用相关资源[^4]。 3. **ORA-01110**: 该错误提供了受影响的数据文件名称及其编号的信息。它通常是其他更严重错误(如 ORA-01157 或 ORA-01119)的一部分,用于指示具体的文件路径和位置。 --- #### 解决方案 ##### 对于 ORA-01458: 为了修复这一问题,可以采取以下措施: - 验证目标字段是否存在重复值: ```sql SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) > 1; ``` - 如果发现重复记录,则需要清理这些冗余数据后再重新执行操作。 - 确认是否允许 NULL 值参与唯一索引构建;如果不允许,在设计阶段应避免这种情况发生。 ##### 对于 ORA-01157: 针对此类情况可考虑如下处理方式: - 检查是否有足够的可用存储容量来满足数据库需求; - 查看系统日志以识别潜在的竞争者并终止不必要的会话; - 使用 `ALTER SYSTEM CHECKPOINT` 手动触发检查点从而释放部分已修改缓冲区到磁盘上。 ##### 对于 ORA-01110: 由于这是辅助性的诊断消息而非独立存在的异常状况,因此重点在于解决引发它的根本性事件 (比如前面提到过的那些)。一旦基础层面恢复正常运作之后,这类提示自然也会消失不见。 ```bash ls -lh $(grep 'datafile' mesdb2_ora_5920.trc | awk '{print $NF}') ``` 上述命令可以帮助快速定位实际物理文件大小与其逻辑结构之间的一致性状态[^3]。 --- #### 总结 通过以上分析可以看出每种类型的报错背后都隐藏着特定的技术背景以及相应的调试技巧。当面对复杂场景下的多重叠加型故障现象时,建议按照先易后难的原则逐一排查直至最终找到症结所在为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值