ORA: ORACLE initialization or shutdown in progress ORACLE error from recovery catalog database: RMAN: database in carnation not set ORA ORA ORA ORA ORA ORA ORA ORA ORA IMP ORA and IMP ORA:unable to extend rollback segment NAME by NUM intablespace NAME ORA:unable to extend temp segment by num in tablespace name ORA:max # of extents num reached for rollback segment ORA:internal error codearguments: ORAendoffile on communication channel ORA:table or view does not exist ORA signalled during: alter rollback segment rb online ORA:unable to extend table namename partition NAME by NUM in tablespace NAME Reference://l ORA: ORACLE initialization or shutdown in progress Example: create tablespace test datafile c:testora size M AUTOEXTEND ON NEXT M MAXSIZE UNLIMITED default storage (initial K next M pctincrease )/
Close all services: net stop OracleWebAssistant″ net stop OracleOraHomeTNSListener net stop OracleServiceORADB shutdown
delete testora: Restart all services: net start OracleWebAssistant″ net start OracleOraHomeTNSListener net start OracleServiceORADB
Cannt connect from SQL*PLUS Error message: ORA: ORACLE initialization or shutdown in progre Solution offline the ORA $svrmgrl svrmgrl>connect internal svrmgrl>shutdown svrmgrl>startup mount
–ARCHIVELOG mode svrmgrl>alter database datafile C:TESTORA offline;
–NOARCHIVELOG mode svrmgrl>alter database datafile C:TESTORA offline drop;
svrmgrl>alter database open;
SQL> select file#namestatus from v$datafile;
SQL> drop tablespace test;
======================================= RMAN: =========================================================== RMAN: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN: =========================================================== RMAN: failure of backup command at xx/xx/x :: RMAN: implicit resync of recovery catalog failed RMAN: ORACLE error from recovery catalog database: RMAN: database in carnation not set RMAN> drop catalog; # rman target sys/oracle@rac catalog sys/oracle@cat RMAN> create catalog; RMAN> register database ; ======================================= ORA:unable to extend rollback segment NAME by NUM intablespace NAME 产生原因上述ORACLE错误为回滚段表空间不足引起的这也是ORACLE数据管理员最常见的ORACLE错误信息当用户在做一个非常庞大的数据操作导致现有回滚段的不足使可分配用的回滚段表空间已满无法再进行分配就会出现上述的错误解决方式使用ALTER TABLESPACE tablespace_name ADD DATAFILE filename SIZE size_of_file命令向指定的数据增加表空间根据具体的情况可以增加一个或多个表空间当然这与还与你主机上的裸盘设备有关如果你主机的裸盘设备已经没有多余的使用空间建议你不要轻意的增加回滚段表空间的大小可使用下列的语句先查询一下剩余的tablespace空间有多少 Select user_namesql_text from V$open_cursor where user_name=<user_name>; 如果多余的空间比较多就可以适当追加一个大的回滚段给表空间使用从而避免上述的错误你也可以用以下语句来检测一下rollback segment的竞争状况 Selectclasscount from V$waitstat where calssin(system undo header system undo blockundo headerundo block); 和 Select sum(value) from V$sysstat where namein(db_block_getsconsistents gets); 如果任何一个class in count/sum(value)大于%就应该考虑增加rollback segment ORAunable to extend temp segment by num in tablespace name 产生原因ORACLE临时段表空间不足因为ORACLE总是尽量分配连续空间一但没有足够的可分配空间或者分配不连续就会出现上述的现象 解决方法我们知道由于ORACLE将表空间作为逻辑结构单元而表空间的物理结构是数据文件数据文件在磁盘上物理地创建表空间的所有对象也存在于磁盘上为了给表空间增加空间就必须增加数据文件先查看一下指定表空间的可用空间使用视图SYSDBA_FREE_SPACE视图中每条记录代表可用空间的碎片大小 Select file_idblock_idblocksbytes from sysdba_free_space where tablespace_name=<users>; 返回的信息可初步确定可用空间的最大块看一下它是否小于错误信息中提到的尺寸再查看一下缺省的表空间参数 SQL>SELECT INITIAL_EXTENTNEXT_EXTENTMIN_EXTENTSPCT_INCREASE FROM SYSDBA_TABLESPACES WHERE TABLESPACE_NAME=name; 通过下面的SQL命令修改临时段表空间的缺省存储值 SQL>ALTER TABLESPACE name DEFAULT STORAGE (INITIAL XXX NEXT YYY); 适当增大缺省值的大小有可能解决出现的错误问题也可以通过修改用户的临时表空间大小来解决这个问题SQL>ALTER USER username TEMPORARY TABLESPACE new_tablespace_name 使用ALTER TABLESPACE命令一但完成所增加的空间就可使用无需退出数据库或使表空间脱机但要注意一旦添加了数据文件就不能再删除它若要删除就要删除表空间 一个报错例子如下 ORA:unable to extend temp segment byintablespace TEMPSPACE ORAmax # of extents num reached for rollback segment 产生原因这种错误通常为一个回滚段和一个表空间已经达到MAXEXTENTS参数设置的极限要注意的是这个MAXEXTENTS不是该回滚段或表空间的硬件极限硬件极限取决于数据库创建时在initora文件中指定的DB_BLOCK_SIZE参数的值 解决方法使用SQL命令ALTER TABLESPACE…STORAGE(MAXEXTENTS XXXX)来增加 MAXEXTENTS其中XXXX值必须大于错误信息中所指的数值但不能大于LARGEST MAXEXTENT的值如果已经达到了LARGEST MAXEXTENT VALUE解决的办法就是重新创建较大的范围尺寸使用带有选项COMPRESS=Y的Export工具导出表如果表空间有可用空间先给表做一个备份用alter tablespace tablespace_name更改其名字然后再装载表回数据库 查看其错误出现的地方如果出现在回滚段或索引上那么必须将其删除并重建如果出现在临时表空间修改临时表空间的存储字段便可解决这个问题 一个报错例子如下 ORA:max # extentsreachedforrollback segment RBS_ ORAinternal error codearguments 产生原因这种错误通常为ORACLE的内部错误只对OSS和ORACLE开发有用ORA的错误经常伴随跟蹤文件的状态转储(系统状态和进程状态)系统状态存储将包括ORACLE RDBMS持有的当前对象的信息进程状态转储则将显示特殊进程持有的对象当进程符合了某错误条件时经常是由于一些信息取自它持有的一个块如果我们知道这些错误进程持有的块就容易跟蹤问题的来源 解决方法一般来说出现这个错误我们本身是无法解决的只有从提高系统本身各方面来解决这个内部问题如增加硬件设备调整系统性能使用OPS(当然 OPS从某种意义上说并不是一种好的解决方式)等ORA错误的第一个变量用于标记代码中错误的位置(代码中的每个部分的第一变量都不一样)从第二个到第五个变量显示附加信息告诉OSS代码在哪里出现了错误 一个报错例子如下 ORA:internalerror code arguments: [] [] [] [] [] [] [] [] ORAendoffile on communication channel 产生原因通讯不正常结束从而导致通讯通道终止解决方法 >检查是否有服进程不正常死机可从alertlog得知 >检查sql*Net Driver是否连接到ORACLE可执行程序 >检查服务器网络是否正常如网络不通或不稳定等 >检查同一个网上是否有两个同样名字的节点 >检查同一个网上是否有重复的IP地址 ORAtable or view does not exist 产生原因这是由于装载的表或视图不存在多半是CATEXPSQL还没有运行无法执行Export视图如果CATEXPSQL已经运行则可能是版本错误 解决方法因为Import和Export共享的一些视图是通过运行CATEXPSQL来装载的(它们具有相同的视图)并不生成单独的 CATEXPSQL因而造成视图与Export代码不同步较难保持彼此之间的兼容用户就必须建立自己的Export应用从而避免ORA 的错误 上述错误均为我们在使用回滚段时比较常见的问题ORA指明当前使用的回滚段的状态为not online不能使用将它改为online状态即可使用ORA指明当前回滚段已经为online状态可以直接使用不用再集合它 ORA signalled during alter rollback segment rb online 我们在做统计时还可能遇到下述问题一个rollback segment的状态为Needs Recovery的现象这是由于ORACLE回退一个事物表中的没有提交的事物时失败所造成的通常原因为一个datafile或者 tablespace是在offline的状态或者一个undo的目标被破坏或者rollback segment被破坏解决的办法是将所有的tablespace和datafile都置为online状态如果不能解决则做下面的工作 >在initsidora中加入event= trace name context forever lever >shutdown数据库然后重启 >在$ORACLE_HOME/rdbms/log下找到startup时生成的trace file >在trace文件中找到下列信息error recovery tx(##) object # >根据object#(与sysdba_objects表中的object_id相同)在sysdba_objects表中查出该object的名字 >将该object drop掉 >在initora文件中将该rollback segment放回rollback_segments参数中删除event >shutdown数据库然后重启此时Needs Recovery的问题应该是完全解决了否则就是rollback segment被破坏了 ORAunable to extend table namename partition NAME by NUM in tablespace NAME 产生原因指定的tablespace空间已经被占用满无法扩展 解决方法使用ALTER TABLESPACE ADD DATAFILE命令增加文件系统文件和原始分区或者增加INITIAL的大小(如alter tablespace CDRS default storage(next M pctincrease ))应该能够解决否则就是有人使用你的表空间上创建了一个比较大的数据文件导致你的表空间不够用 一个报错例子如下 ORA: unable to extend table RMMCDRLOCAL_CDR partition LOCAL_CDR byin tablespace CDRS ====================================================== This document contains information about errors frequently encountered by new DBAs along with appropriate actions to be taken in each circumstance ) ORA a) on Rollback segment when importing Specify commit=y and a large buffer on import This way the Rollback will be released after each array as opposed to each object b) when allocating an extent on a tablespace with alot of free space SQL> Select max(blocks) from DBA_FREE_SPACE You may have free space but it might not be contiguous Make sure it is greater than the extent it is trying to allocate You can reduce the storage parameters NEXT and PCTINCREASE if it isnt
) ORA max extents of exceeded when storage is set for maxextents of Most platforms have a max of even though it allows you to specify (see the readme for your platform)
) ORA shutdown in progress when starting up even after a shutdown was issued quite some time ago If the background processes arent running the SGA could have been left out there… Issue a startup force open (which does a shutdown abort first)
) IMP ORA and IMP on import Run catalogsql and expvewsql (renamed catexpsql in v) as sys before the import Both files are in $ORACLE_HOME/rdbms/admin (UNIX)
) ORA Invalid column name on import Run expvewsql (catexpsql) before the import ) ORA Oracle not available Startup the DB first…if it is started check your searchpath Make sure that ORACLE_SID is set correctly For setuid issues see PRE
) ORA Oracle Data Block corrupted (file # num and block # num) To determine where the corruption is: SQL> select * from sysdba_extents where file_id = filenum and blocknum between block_id and (block_id + blocks ); The filenum and blocknum are the numbers in the error This query should give the segment_name and segment_type (ie table and its name) In order to salvage the uncorrupted part of the table you can add an entry to the initora: event = trace name context forever This will skip the corrupted block on a table scan Export the table drop and recreate it from import
) ORA what does it mean Usually it comes with another error such as …if it cant be found in any of the trace files try setting the following event in initora and restarting the DB event= trace name errorstack forever for the output of this look in the trace files in the directory given by the USER_DUMP_DEST parameter in initora
) My create database is failing with ORA: error while processing file Take out the INIT_SQL_FILES param out of initora run the scripts by hand after the database is created
) Out of shared memory (ORA) Try defragmenting the shared pool by running an alter system flush shared_pool If that is not enough increase the shared_pool_size parameter |