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'
自此题问应当处理。
文章结束给大家分享下程序员的一些笑话语录: 程序语言综述
CLIPPER 程序员不去真的猎捕大象,他们只是购买大象部分的库然后花几年的时间试图综合它们。
DBASE 程序员只在夜间猎捕大象,因为那时没人会注意到他们还在使用石弓。
FOXPRO 程序员开始使用更新更好的步枪,这使他们花掉比实际狩猎更多的时间学习新的射击技术。
C 程序员拒绝直接购买步枪,宁可带着钢管和一个移动式机器车间到非洲,意欲从零开始造一枝完美的步枪。
PARADOX 程序员去非洲时带着好莱坞关于猎捕大象的电影剧本,他们认为照剧本行事就会逮到一头大象。
ACCESS 程序员在没有任何猎象经验的经验下就出发了,他们穿着华丽的猎装、带着全部装备,用漂亮的望远镜找到了大象,然后发觉忘了带扳机。
RBASE 程序员比大象还要稀少,事实上,如果一头大象看到了一个RBASE程序员,对他是个幸运日。
VISUAL ACCESS 程序员装上子弹、举起步枪、瞄准大象,这使大象感到可笑,究竟谁逃跑。他们无法抓住大象,因为由于他们对多重控制的偏爱,他们的吉普车有太多的方向盘因而无法驾驶。
ADA、APL和FORTRAN 程序员与圣诞老人和仙女一样是虚构的。
COBOL 程序员对和自己一样濒临灭绝的大象寄予了深切的同情。