系统环境:

华为刀片服务器+oracle11g+suse10sp2,新建逻辑卷和裸设备并绑定成功。
 
问题描述:
 
重启机器后启动数据库报错,:
 SQL> startup; 
ORACLE instance started.
 
Total System Global Area 4710043648 bytes
Fixed Size                   2167576 bytes
Variable Size             2785021160 bytes
Database Buffers          1912602624 bytes
Redo Buffers                10252288 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 5 - see DBWR trace file
ORA-01110: data file 5: '/dev/raw/raw18'
ORA-01157: cannot identify/lock data file 5 - see DBWR trace file
ORA-01110: data file 5: '/dev/raw/raw18'
 
问题原因:
新建逻辑卷和裸设备后,没有将逻辑卷和裸设备进行绑定永久生效,系统重启后裸设备和逻辑卷绑定失败无法找到数据文件,数据库打开失败。
 
问题处理:
步骤1:查询ORA-01157出错代码,出错原因是:因为数据文件已经在被使用了从而导致数据库的后台进程不能找到相应的数据文件或者不能锁定相应的数据文件,这样数据库将禁止访问这些数据文件而其他的数据文件则没有影响。伴随这个错误操作系统将会提示是哪个数据文件不能被识别。
以下为恢复步骤:
步骤2:查询是否在归档模式,Archive Mode 表示当前在归档模式
 
SQL> archive log list;
Database log mode               Archive Mode
Automatic archival              Enabled
Archive destination             USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence      62
Next log sequence to archive    64
Current log sequence            64
 
步骤3:在归档状态下分步进行如下恢复操作:
1,以DBA角色重新启动数据库实例而不挂接数据库
oracle@cspdbtest:~> sqlplus "/as sysdba"
SQL*Plus: Release 11.1.0.7.0 - Production on Wed Aug 18 11:05:27 2010
Copyright (c) 1982, 2008, Oracle. All rights reserved.
 
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options
 
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 4710043648 bytes
Fixed Size                   2167576 bytes
Variable Size             2785021160 bytes
Database Buffers          1912602624 bytes
Redo Buffers                10252288 bytes
 
2,:挂接数据库
SQL> alter database mount;
Database altered.
 
3,将出问题的裸设备脱机:
SQL>alter database datafile '/dev/raw/raw18' offline;
 
4,以root用户登录,修改裸设备目录权限为所有用户可读写
chmod 777 -R /dev/raw
 
5,将裸设备联机
SQL> alter database datafile '/dev/raw/raw18' online;
Database altered.
 
6,将数据库恢复
SQL> recover database;
Media recovery complete.
 
7:打开数据库成功
SQL> alter database open;
Database altered.
 
 
步骤4,使逻辑卷和裸设备的绑定永久生效,否则导致数据库重启后裸设备和逻辑卷绑定失败:
以root用户登录,编辑/etc/init.d/boot.local文件
# vi /etc/init.d/boot.local
增加如下内容
pvscan
vgscan
vgchange –ay oradg
chmod 777 -R /dev/raw
raw /dev/raw/raw1 /dev/oradg/lv_system
raw /dev/raw/raw2 /dev/oradg/lv_redo01
.
.
.
.
.
.
 
raw /dev/raw/raw297 /dev/oradg/lv_oradg280
raw /dev/raw/raw298 /dev/oradg/lv_oradg281
raw /dev/raw/raw299 /dev/oradg/lv_oradg282
raw /dev/raw/raw300 /dev/oradg/lv_oradg283
 
总结:
新建逻辑卷和裸设备后要及时将逻辑卷和裸设备进行绑定使其永久生效,避免系统重启后裸设备和逻辑卷绑定失败无法找到数据文件,数据库打开失败。