共计 1664 个字符,预计需要花费 5 分钟才能阅读完成。
【故障现象】
2017 年 5 月 8 日,Oracle10.2.0.4 单实例数据库,突然 CRASH,但进过重启运行恢复。检查 alert.log 日志发现如下“ORA-00600、ORA-27091、ORA-27072”报错信息。
Errors in file /home/db/oracle/admin/db1/bdump/db1_mmon_22544442.trc:
ORA-00600: internal error code, arguments: [kmgs_parameter_update_timeout_1], [27091], [], [], [], [], [], []
ORA-27091: unable to queue I/O
ORA-27072: File I/O error
IBM AIX RISC System/6000 Error: 9: Bad file number
Additional information: 7
Additional information: 4
Additional information: -1
【问题分析】
2016 年 11 月进行双机切换,spfile 为共享卷裸设备,切换前,备机上没有清理不应该存在的 root 权限的 spfile 文件,切换后,出现异常,oracle 的数据裸设备文件的文件权限为 301,且用户不为 Oracle。这些错误,使得数据库持续 ORA-27072 报错
【问题解决】
修改 spfile 为裸设备
# su – oracle
$ export ORACLE_SID=db1
— Create a PFILE from your current SPFILE:
SQL> create pfile=’/tmp/init.ora’ from spfile;
SQL> ho more /tmp/init.ora
SQL> shutdown immediate
SQL> startup pfile=’/tmp/init.ora’;
SQL> ho ls -l /home/db/oracle/oradata/db1/rspfile_db1
lrwxrwxrwx 1 oracle dba 17 Jun 08 2013 /home/db/oracle/oradata/db1/rspfile_db1 -> /dev/recsv01l3110
SQL> create spfile=’/home/db/oracle/oradata/db1/rspfile_db1′ from pfile;
SQL> shutdown immediate
$ mv spfiledb1.ora spfiledb1.ora_OLD
$ vi initdb1.ora
增加 spfile=”/home/db/oracle/oradata/db1/rspfile_db1″
SQL> startup
SQL> show parameter spfile;
NAME TYPE VALUE
———————————— ———– ——————————
spfile string /home/db/oracle/oradata/db1/rspfile_db1
【总结】
实施过程中,在用 pfile 启动实例后,尝试 alter system set spfile 失败,报错信息 ”ORA-02095: specified initialization parameter cannot be modified”.
问题关键是,用 pfile 启动后,没有 spfile 时,无需修改 spfile 参数,也无法修改。应删除 spfile 文件,将 pfile 内容写成 spfile=’xxxx’ 后,启动实例后,修改 spfile 才允许。
更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-05/143580.htm