PS:今天上午,非常郁闷,有很多简单基础的题问搞得我有些迷茫,哎,代码几天不写就忘。目前又不当COO,还是得用心记代码哦!
好忘性不如烂笔头,后以将项目中见常的oracle的错误,已处理办法具体记录下来。
1.ORA-24324:
错误描述:
SQL> shutdown immediate; ORA-24324: service handle not initialized ORA-24323: value not allowed ORA-01089: immediate shutdown in progress - no operations are permitted
错误处理办法:
A、 切换到root用户下,杀掉oracle相干的进程: root> ps -ef|grep $ORACLE_SID|grep -v grep|awk '{print $2}'|xargs -i kill -9 B、 用ipcs令指来查检数据库占用的内存: root> ipcs –m IPC status from /dev/kmem as of Mon Sep 10 16:45:16 2001 T ID KEY MODE OWNER GROUP SEGSZ CPID LPID Shared Memory: m 24064 0x4cb0be18 --rw-r----- oracle dba 28975104 1836 23847 m 1 0x4e040002 --rw-rw-rw- root root 31008 572 572 m 2 0x411ca945 --rw-rw-rw- root root 8192 572 584 m 4611 0x0c6629c9 --rw-r----- root root 7216716 1346 23981 m 4 0x06347849 --rw-rw-rw- root root 77384 1346 1361 C、用ipcrm命令释放掉数据库占用的内存: root> ipcrm -m 24064 D、进入sqlplus重新动启数据库实例
2.见常的表空间缺乏,须要展扩表空间:
错误描述:
********表空间缺乏等
错误处理办法:
alter tablespace SYSTEM add datafile '/ora/oracle/app/oracle/cbsdb164/system17.dbf' size 200m;
3.undo日记过大
错误描述:
当空间够不,没有东西可以删,只能通过重建undo日记
错误处理办法:
1. 新增一个undo tablespace. SQL> create undo tablespace UNDOTBS2 datafile '/opt/oracle/oradata/undotbs001.dbf' size 2048M extent management local; Tablespace created. SQL> 2. 设置用使新增的undo tablespace. SQL> alter system set undo_tablespace=UNDOTBS2 scope=both; System altered. SQL> 3. 除删。 SQL> drop tablespace UNDOTBS1 including contents and datafiles cascade constraints; Tablespace dropped. SQL> 4. 重建 SQL> create undo tablespace UNDOTBS1 DATAFILE '/opt/oracle/oradata/undotbs01.dbf' SIZE 3048M EXTENT MANAGEMENT LOCAL; Tablespace created. SQL> 5. 设置用使新的 SQL> alter system set undo_tablespace=UNDOTBS1 scope=both; System altered. SQL> 6. 除删临时undo tablespace. SQL> drop tablespace UNDOTBS2 including contents and datafiles cascade constraints; Tablespace dropped.
每日一道理
“一年之计在于春”,十几岁的年纪,正是人生的春天,别辜负了岁月老人的厚爱与恩赐。行动起来,播种梦想吧!
3.ORA-03113
错误描述:
ORA-03113: end-of-file on communication channel Process ID: 21812 Session ID: 170 Serial number: 3
错误处理办法:
动启数据库 #su - oracle #sqlplus / as sysdba #startup 看查它的动启日记 #cd /opt/oracle/db/diag/rdbms/iptvmem/iptvmem/trace #tail -f alert_iptvmem.log 会有如下的错误: ALTER DATABASE MOUNT Errors in file /opt/oracle/db/diag/rdbms/iptvmem/iptvmem/trace/iptvmem_mman_29092.trc: ORA-27103: internal error Linux-x86_64 Error: 17: File exists 看查专家的处理办法,建创spfile文件然后在其中入加这样的参数: *.memory_max_target=3200M *.memory_target=1500M 但是如果你修改了前当的spfile文件,那你再次动启就会报错: 不能打开文件/opt/oracle/db/product/11.1.0/dbs/initiptvmem.ora; 而你看查前当的路径下,不存在该文件,当然会报这样的错。 为什么报这样的错呢? 你辑编过前当路径下的spfile文件,致使它不可用,动启时就会找认默的init$SID.ora文件。 处理的路思如下:数据库用pfile动启 1.如何到得pfile 从/opt/oracle/db/admin/iptvmem/pfile路径下获得pfile文件复制到/opt/oracle/db/product/11.1.0/dbs路径下 文件名重新定义为init$SID.ora #cp /opt/oracle/db/admin/iptvmem/pfile/*.ora /opt/oracle/db/product/11.1.0/dbs/initipevmem.ora 2.动启数据库 #sqlplus / as sysdba 动启数据库 #startup pfile='/opt/oracle/db/product/11.1.0/dbs/initipevmem.ora' 3.备份initiptvmem.ora文件 #cp initipevmem.ora initipevmem.ora.cxm 4.在initipevmem.ora中新增: *.memory_max_target=3200M *.memory_target=1500M 查检一下文件中否是存在memory_target的配置,如果有配置,将本来的删掉。 动启数据库: #startup pfile='/opt/oracle/db/product/11.1.0/dbs/initipevmem.ora' 自此题问应当处理。
文章结束给大家分享下程序员的一些笑话语录