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,根据内容确定原因    

猜你喜欢

转载自www.cnblogs.com/fanweisheng/p/11112582.html