错误代码记录

ORA-04030:
    如果在实例启动时,max_sga_size<sga_target或者max_size没设定,此时内存占用超过sga_target,就会出现ORA-04030的错误
    解决:1.设置rman从SGA取内存
alter system set dbwr_io_slaves=2 scope=spfile;
alter system set backup _tape_ioslaves=true scope=spfile;
                    2.调整SGA大小
alter system set_tga_target=1200M;
(如果出错,等待下面命令全部执行完后,重新启动oracle再次执行)
alter system set sga_max_size=1200M scope=spfile;
 
 
 
                3.设置使用内存最大大小
alter system set large_pool_size=80M;
 
                4.重启Oracle Service
 
                5.查看Sga,pga,pool的大小
 
 
 
 
ORA-04031:
 
                1.大量的硬解析(整个SQL语句需要完完全全的解析,生成执行计划)出现。
                2.突然出现一个大的SQL语句
 
解决办法:
直接执行
alter system flush shared_pool;(暂时解决问题,一段时间后再次出现)
将没有共享的SQL转换为共享SQL(使用绑定变量)
 
修改crusor_sharing参数
alter system set cursor_sharing=’force’;
增加shared_pool空间 保留区,专门给大SQL进行缓存
 
 
ORA-01555:
    查询一个已经inactive且被覆盖的回滚段的数据。原因可能有SQL语句执行时间太长,UNDO表空间太小,事务量过大,提交过于频繁,导致执行SQL过程中进行一致读时,原数据在UNDO段已经inactive被覆盖,不能构造一致性读块
    解决方法可以加大回滚段的容量,或者将undo_retention参数提交后保留时间设置大一点。
 
ORA-1652:
    当数据库没有设置为自动扩展,则临时表空间不够时事务执行会报ORA-1652无法扩展临时段的错误
    解决方法:
    1.设置自动扩展
alter database tempfile  ‘/u01/app/oracle/oradata/orcl/temp01.dbf’ autoextend on next 5m maxsize  unlimited;
    2.增大临时表空间:
alter database tempfile  ‘/u01/app/oracle/oradata/orcl/temp01.dbf’ resize 100M;
 

猜你喜欢

转载自www.cnblogs.com/bctingisland/p/12156586.html