因为现场需要在公司做了内核升级将Linux dsgdata 2.6.18-164.el5xen #1 SMP Tue Aug 18 16:06:30 EDT 2009 i686 i686 i386 GNU/Linux
升级到了Linux dsgdata 2.6.18-194.el5xen #1 SMP Tue Aug 18 16:06:30 EDT 2009 i686 i686 i386 GNU/Linux结果报以下错:
dsgdata:{/opt/app/oracle/admin/oradb_1/dpdump}>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Tue Feb 19 17:50:46 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DGASM1/oradb1/spfileoradb1.ora'
ORA-17503: ksfdopn:2 Failed to open file +DGASM1/oradb1/spfileoradb1.ora
ORA-15056: additional error message
ORA-17503: ksfdopn:DGOpenFile05 Failed to open file +DGASM1/oradb1/spfileoradb1.ora
ORA-17503: ksfdopn:2 Failed to open file +DGASM1/oradb1/spfileoradb1.ora
ORA-15001: diskgroup "DGASM1" does not exist or is not mounted
ORA-06512: at line 4
SQL>
初步怀疑是ASM实例没有起来
dsgdata:{/opt/app/oracle/admin/oradb_1/dpdump}>
dsgdata:{/opt/app/oracle/admin/oradb_1/dpdump}>su - grid
Password:
[grid@dsgdata ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Tue Feb 19 17:52:19 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected.
SQL> select status from v$instance;
STATUS
------------
STARTED
SQL>
从这发现ASM实例起来了,那就排除这个原因
SQL> DESC V$ASM_DISKGROUP;
Name Null? Type
----------------------------------------- -------- ----------------------------
GROUP_NUMBER NUMBER
NAME VARCHAR2(30)
SECTOR_SIZE NUMBER
BLOCK_SIZE NUMBER
ALLOCATION_UNIT_SIZE NUMBER
STATE VARCHAR2(11)
TYPE VARCHAR2(6)
TOTAL_MB NUMBER
FREE_MB NUMBER
HOT_USED_MB NUMBER
COLD_USED_MB NUMBER
REQUIRED_MIRROR_FREE_MB NUMBER
USABLE_FILE_MB NUMBER
OFFLINE_DISKS NUMBER
COMPATIBILITY VARCHAR2(60)
DATABASE_COMPATIBILITY VARCHAR2(60)
VOTING_FILES VARCHAR2(1)
SQL> SELECT NAME,STATE FROM V$ASM_DISKGROUP;
no rows selected
SQL> SHOW PARAMETER ASM
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskgroups string DGASM1
asm_diskstring string /dev/sda2
asm_power_limit integer 1
asm_preferred_read_failure_groups string
SQL>
最后重启ASM实例,报错:
SQL> startup
ASM instance started
Total System Global Area 284565504 bytes
Fixed Size 1336036 bytes
Variable Size 258063644 bytes
ASM Cache 25165824 bytes
ORA-15032: not all alterations performed
ORA-15017: diskgroup "DGASM1" cannot be mounted
ORA-15063: ASM discovered an insufficient number of disks for diskgroup
"DGASM1"
SQL>
无法成功挂载磁盘组DGASM1,最后查看ASM安装包是否能正常启动:
[root@dsgdata ~]# /etc/init.d/oracleasm
Usage: /etc/init.d/oracleasm {start|stop|restart|enable|disable|configure|createdisk|deletedisk|querydisk|listdisks|scandisks|status}
[root@dsgdata ~]# /etc/init.d/oracleasm status
Checking if ASM is loaded: no
Checking if /dev/oracleasm is mounted: no
[root@dsgdata ~]# /etc/init.d/oracleasm start
Initializing the Oracle ASMLib driver: [FAILED]
结果发现不能,这才想到安装的oracleasm包与可能与内核版本不对应导致的
dsgdata:{/home/oracle}> rpm -qa |grep oracleasm
oracleasmlib-2.0.4-1.el5
oracleasm-support-2.1.7-1.el5
oracleasm-2.6.18-164.el5-debuginfo-2.0.5-1.el5
oracleasm-2.6.18-164.el5xen-2.0.5-1.el5
oracleasm-2.6.18-164.el5-2.0.5-1.el5
dsgdata:{/home/oracle}>uname -a
Linux dsgdata 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:35 EDT 2010 i686 i686 i386 GNU/Linux
dsgdata:{/home/oracle}>