ORACLE 常见错误以及解决办法

本文档详细记录了Oracle数据库中常见的错误及其解决办法,包括ORA-24324错误处理、表空间扩展、undo日志管理及ORA-03113错误修复流程。提供了实用的命令和步骤,帮助读者快速解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

好记性不如烂笔头,以后将项目中常见的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'

       自此问题应该解决。

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值