oracle错误00942,oracle-ORA-00942错误

表或视图不存在

原因:1.表或视图真的不存在 2.用户没有访问该表的权限。

ORA-01078: 处理系统参数失败

ORA-01438: value larger than specified precision allows for this column

ORA-01441: cannot decrease column length because some value is too big

ORA-01536: space quota exceeded for tablespace 'ODS'

ORA-01555: snapshot too old: rollback segment number 1 with name "_SYSSMU1$" too small

对ORA-01555的精彩解释

1、在1点钟,有个用户A发出了select * from table1;此时不管将来table1怎么变化,正确的结果

应该是用户A会看到在1点钟这个时刻的内容。这个是没有疑问的。

2、在1点30分,有个用户B执行了update命令,更新了table1表中的第4000万行的这条记录,这时,

用户A的全表扫描还没有到达第4000万条。毫无疑问,这个时候,第4000万行的这条记录是被写

到了回滚段里去了的,我假设是回滚段RBS1,如果用户A的全表扫描到达了第4000万行,是应该

会正确的从回滚段RBS1中读取出1点钟时刻的内容的。

3、这时,用户B将他刚才做的操作commit了,但是这时,系统仍然可以给用户A提供正确的数据,

因为那第4000万行记录的内容仍然还在回滚段RBS1里,系统可以根据SCN来到回滚段里找到正确的

数据,但是大家注意到,这时记录在RBS1里的第4000万行记录已经发生了一点重大的改变:就是

这个第4000万行的在回滚段RBS1里的数据有可能随时被覆盖掉,因为这条记录已经被提交了!!!

4、由于用户A的查询时间漫长,而业务在一直不断的进行,RBS1回滚段在被多个不同的tracnsaction

使用着,这个回滚段里的extent循环到了第4000万行数据所在的extent,由于这条记录已经被标记

提交了,所以这个extent是可以被其他transaction覆盖掉的!

5、到了1点40分,用户A的查询终于到了第4000万行,而这时已经出现了第4条说的情况,需要到回滚

段RBS1去找数据,但是已经被覆盖掉了,于是01555就出现了。

以上只是我当初在看OCP书的时候,对这个01555的一个简单的理解,并同时可以理解书上说的解决

ora-01555的问题的办法,当然可能还有其他的情况导致,我只举个例子。

ORA-08180: no snapshot found based on specified time

ORA-27101: shared memory realm does not exist

解决方法

修改注册表中的键值LocalMechine\software\oracle\home0\ORACLE_SID为你的SID

ID                                       0

MSHELP_TOOLS                    D:\oracle\ora90\MSHELP

NLS_LANG                            SIMPLIFIED CHINESE_CHINA.ZHS16GBK

ORA_HNDSS_AUTOSTART       TRUE

ORA_HNDSS_PFILE                D:\oracle\ora90\database\initHNDSS.ora

ORA_HNDSS_SHUTDOWN       TRUE

ORA_HNDSS_SHUTDOWN_TIMEOUT      30

ORA_HNDSS_SHUTDOWNTYPE       i

ORACLE_BASE  D:\oracle

ORACLE_BUNDLE_NAME  Enterprise

ORACLE_GROUP_NAME          Oracle - OraHome90

ORACLE_HOME                     D:\oracle\ora90

ORACLE_HOME_KEY              Software\ORACLE\HOME0

ORACLE_HOME_NAME            OraHome90

ORACLE_SID                         hndss

RDBMS_ARCHIVE                   D:\oracle\ora90\DATABASE\ARCHIVE

RDBMS_CONTROL                  D:\oracle\ora90\DATABASE

SQLPATH                             D:\oracle\ora90\db

描述

刚在professionall装了9i,在sql*plus用system/manager连接能正常使用。

过了一会儿再用就报错如下:

SQL*Plus: Release 9.0.1.0.1 - Production on 星期三 2月 18 08:32:40 2004

(c) Copyright 2001 Oracle Corporation.??All rights reserved.

ERROR:

ORA-01034: ORACLE not available

ORA-27101: shared memory realm does not exist

记得当时重启后系统提示虚拟页面不足,重新分配了c和d盘的虚拟页面,难道这也有问题???

原因:

原因是在同一个服务器上,使用了不同的ORACLE_HOME

首先检查文件initSID.ora和listener.ora等,看ORACLE_SID和ORACLE_HOME设置的正确与否,ORACLE8.1.7是否用该参数值启动并运行。在UNIX环境中,字母大小写的意义是不一样的,这一点应当注意。如果ORACLE_HOME指向8.1.7版,而数据库是用8.1.6版或8.1.5版建立的,也可能出现该种错误信息。

在WINDOWS系统中,如果修改了机器名或IP地址,ORACLE8.1.7启动时使用的机器名或IP地址就不是真正的机器名或IP地址,就会出现该种错误。可以查看目录database下的文件oradim.log,根据内容确定原因

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值