oracle常见问题 联系客服

发布时间 : 星期日 文章oracle常见问题更新完毕开始阅读f52c01e5534de518964bcf84b9d528ea81c72fac

故障现象:

如果是数据库启动情况下redolog被破坏,则alert_zxin.log中会报如下错误: ORA-00313: open failed for members of log group 2 of thread 1 ORA-00312: online log 2 thread 1: '/zxindata/oracle/zxin/redo0log' ORA-27037: unable to obtain file status

将导致数据库操作异常。sqlplus可以登录 如果是启动时候redolog损坏,将报:

ORA-00313: 无法打开日志组 1 (线程 1) 的成员

ORA-00312: 联机日志 1 线程 1: '/zxindata/oracle/zxin/redo01.log' 故障原因:

redolog破坏,一般是由于: 人为误删或物理损坏

发生了主备倒换,备机的共享VG信息不全 故障解决:

人为误删或物理损坏

如果未启动数据库,则启动到mount状态,重建日志: (如第1组日志有问题) alter database drop logfile group 1;

alter database add logfile group 1 '/zxindata/oracle/redolog/redo01.log' size 250M ; alter database open;

如果数据库启动着,则查看一下损坏文件是否是活动(active)的日志: select * from v$log;

如果是激活的,则进行日志切换:alter system switch logfile; 如果不是激活的,则执行重建: alter database drop logfile group 1;

alter database add logfile group 1 '/zxindata/oracle/redolog/redo01.log' size 250M ;

发生了主备倒换,备机的共享VG信息不全

将共享VG信息导入到备机,并修改共享文件系统和裸设备属性,使其对oracle用户具有读写权限

9由于控制文件被破坏导致数据库无法正常启动 故障现象:

数据库操作将异常,sqlplus可以登录。 故障原因:

control文件被物理损坏或人为损坏。一般会报:ORA-00210/ ORA-00202/ORA-27041/ORA-27037等错误,所以数据库事务将挂起 故障解决:

a.只要CONTROL_FILE中还有好的control文件,则只要 将其拷贝多份就可以了

b.如果以前做过备份,不能再使用该备份控制文件,因为control 文件和数据文件会不一致。启动时报:

ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

SQL> alter database open resetlogs;

ORA-01152: 文件 1 没有从完备的旧备份中恢复

ORA-01110: 数据文件 1: '/zxindata/oracle/zxin/system01.dbf'

c.只要丢失了所有的备份或修改maxlogfiles或修改数据库名等情况则要重新 创建一个control file,方式如下: startup mount

alter database backup controlfile to trace; alter database open;

到$udump目录下查看最新的文件中包含两份重建controlfile 的语句, 其一是online logs都完好的情况下进行数据库完全恢复的情况 其二是online logs损坏,则所有的在线日志都将丢失,所有的备份 都将失效。

10由于数据文件丢失或破坏导致数据库无法正常启动 故障现象:

一般会导致操作到与该文件有关的数据都将失败,一般报:ORA-01110/ ORA-01116/ ORA-27041等错误,严重一点的报ORA-03113后数据库异常退出 故障原因: 故障解决:

如果只是将数据文件挪了位置,则只要将其mv到原来的位置即可

如果确实损坏了,建议使用数据库备份进行恢复。具体恢复时,可以尝试使用:手工创建数据文件->自动恢复模式,如果不行,只能使用表空间全部恢复方式了。

11由于空间参数设置不合理导致扩展表空间、索引等失败 故障现象:

数据库表空间或索引扩展失败。 故障原因:

可能是表空间的storage参数设置的不合理引起的。 故障解决:

我们一般要求使用如下storage参数:

STORAGE ( INITIAL 20K NEXT 20K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 )

12由于时间格式的环境变量设置问题导致话单无法入库 故障现象:

在zxcom.log报时间格式问题导致话单插入失败。导致话单既要到bill文件中 故障原因:

跟zxin10用户的NLS_DATE_FORMAT参数设置不正确有关 故障解决:

需要将zxin10用户下.profile文件中NLS_DATE_FORMAT设置为: NLS_DATE_FORMAT=\

13由于大事务未使用大回滚段导致事务挂起 故障现象:

大事务运行失败,表现为表空间用满(ORA-01560错误),回滚段扩展到达参数MAXEXTENTS的值(ORA-01628)。 故障原因:

回滚段设置的太小 故障解决:

由于一个事务只能使用一个回滚段来存放它的回滚信息,所以建议给大事务创建专用会滚段 创建时将回滚段表空间设置的大一点;增加MAXEXTENTS的值。

14由于数据库连接数太多导致服务器进程数多或内存耗尽 故障现象:

使用ps –ef检查时有很多oracle进程(包含local关键字),使用内存检查命令看可用内存已经很少。 故障原因:

使用DEDICATED方式连接到数据库的客户端一般在服务器端都对应一个进程,该进程将消耗3~4M的内存空间。 如果客户端连接数比较多,则内存将耗尽,进程数也将达到系统极限或数据库极限。 故障解决:

增加系统的硬件配置,如增加CPU或扩内存

增加系统最大进程数限制,aix和hpux下都有方法设置 增加oracle进程数,在init文件中的processes参数项

15由于使用了MTS方式,导致数据库操作特别慢(包括备份) 故障现象:

使用MTS连接方式的数据库操作将比较慢,尤其是系统资源吃紧的情况下。 故障原因:

智能网前期对smap等客户端的策略是使用MTS(共享进程)解决方案,后发现该方案不可行,主要是该连接方式下的数据库操作性能太差。 故障解决:

共享进程只能支持更多的并发用户访问数据库,但不能提高执行速度, 所以我们商用局中已经取消了这种方式。具体可通过检查initzxin.ora中的配置确认。应该不包含任何含mts关键字的配置

16由于存在一个大事务操作,导致数据库性能特别差或产生频繁日志切换

故障现象:

数据库性能下降,观察alert_zxin.log发现切换日志很频繁 故障原因:

肯定存在一个与呼叫无关的大事务在不停的运行,导致产生大量日志,引起日志切换。

故障解决:

使用oratool工具中的sp_who找出活动sql语句

通过命令找出消耗cpu、IO资源最大的10条语句

查出该语句操作的表的数据量和读写频率,检查是否有应用类逻辑性异常并给予纠正。

17由于没有commit,导致数据库表被锁住

故障现象:

操作某个表的记录时长时间无响应,通过sdf进行的数据库操作则表现为超时,导致sdf进程run too too long 故障原因:

一般跟该表被锁住有关 故障解决:

使用oratool工具中的sp_lock命令查看该表是否有锁

检查是否在某个SQL语句中对该表进行事务类操作时,没有使用commit,这种情况一般发生在手工通过sqlplus修改数据的场合,sdf不会出现

及时进行commit或rollback,解除表锁,如果不能解除的话,则将与该锁有关的进程强制杀掉。

18索引创建不合理,导致数据库查询特别慢

故障现象:

表现为查询特别慢,如果是通过sdf操作,返回超时或触发:sdf run too too long 故障原因:

有可能是在表的数据量比较大的情况下,该表的索引设置不合理造成的。 故障解决:

请使用explain plan查看其查询计划,看是否使用了全表扫描或不适合的索引,据此调整索引或查询语句。

19 由于buffer参数设置不合理导致exp失败

故障现象:

使用exp导出某个表不成功 故障原因:

跟buffer设置有关 故障解决:

一般要求设置比较大的buffer进行exp备份,但当物理内存不够的情况下,buffer