环境说明:
oracle 10.1.0.3.0
linux as4
2.6.9-34.EL
db创建在vg_oracle卷上
如果非当前日志损坏,clear日志组即可解决问题
以下为当前日志损坏的模拟情况,也包括了非当前日志的损坏
[root@test
raw]# dd if=/dev/raw/raw5 of=/data/raw5
106496+0 records in
106496+0
records out
[root@test raw]# dd if=/dev/raw/raw6 of=/data/raw6
106496+0
records in
106496+0 records out
[root@test raw]# dd if=/dev/raw/raw4
of=/data/raw4
106496+0 records in
106496+0 records
out
--------------------------------------------删除redo的lv
[root@test
raw]# lvremove /dev/vg_oracle/lv_redo*
Do you really want to remove active
logical volume "lv_redo1"? [y/n]: y
Logical volume "lv_redo1" successfully
removed
Do you really want to remove active logical volume "lv_redo2"? [y/n]:
y
Logical volume "lv_redo2" successfully removed
Do you really want to
remove active logical volume "lv_redo3"? [y/n]: y
Logical volume "lv_redo3"
successfully removed
SQL> startup
ORACLE instance
started.
Total System Global Area 167772160 bytes
Fixed
Size 778212 bytes
Variable Size 70262812
bytes
Database Buffers 96468992 bytes
Redo
Buffers 262144 bytes
Database mounted.
ORA-00313: open
failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread
1:
'/dev/raw/raw4'
-----------------------------------------------------查看alert日志,
SQL>
!
[oracle@test ~]$ vi /opt/oracle/app/admin/test/bdump/alert_test.log
Fri Jun 29 14:17:33 2007
Errors in file
/opt/oracle/app/admin/test/bdump/test_lgwr_25394.trc:
ORA-00313: open failed
for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1:
'/dev/raw/raw4'
ORA-27041: unable to open file
Linux Error: 6: No such
device or address
Additional information: 2
Fri Jun 29 14:17:33
2007
Errors in file
/opt/oracle/app/admin/test/bdump/test_lgwr_25394.trc:
ORA-00313: open failed
for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1:
'/dev/raw/raw4'
ORA-27041: unable to open file
Linux Error: 6: No such
device or address
Additional information: 2
Fri Jun 29 14:17:33
2007
ORA-313 signalled during: ALTER DATABASE
OPEN...
------------------------------------------------------------clear日志文件
SQL>
alter database clear logfile group 1;
alter database clear logfile group
1
*
ERROR at line 1:
ORA-00344: unable to re-create online log
'/dev/raw/raw4'
ORA-27041: unable to open file
Linux Error: 6: No such
device or address
Additional information:
1
------------------------------------以上提示找不到对应设备,因此创建对应设备
[root@test
data]# lvcreate -L 50M -n lv_redo1 vg_oracle
lvcreate -L 50M -n lv_redo2
vg_oracle
lvcreate -L 50M -n lv_redo3 vg_oracle
Rounding up size to full
physical extent 52.00 MB
Logical volume "lv_redo1" created
[root@test
data]# lvcreate -L 50M -n lv_redo2 vg_oracle
Rounding up size to full
physical extent 52.00 MB
Logical volume "lv_redo2" created
[root@test
data]# lvcreate -L 50M -n lv_redo3 vg_oracle
Rounding up size to full
physical extent 52.00 MB
Logical volume "lv_redo3" created
[root@test
data]# raw /dev/raw/raw4 /dev/vg_oracle/lv_redo1
raw /dev/raw/raw5
/dev/vg_oracle/lv_redo2
raw /dev/raw/raw6
/dev/vg_oracle/lv_redo3
/dev/raw/raw4: bound to major 253, minor
3
[root@test data]# raw /dev/raw/raw5
/dev/vg_oracle/lv_redo2
/dev/raw/raw5: bound to major 253, minor
4
[root@test data]# raw /dev/raw/raw6
/dev/vg_oracle/lv_redo3
/dev/raw/raw6: bound to major 253, minor
5
[root@test data]# chown oracle:dba /dev/raw/raw4
[root@test data]# chown
oracle:dba /dev/raw/raw5
[root@test data]# chown oracle:dba
/dev/raw/raw6
SQL> alter database clear logfile group
1;
Database altered.
SQL> alter database clear logfile group
2;
alter database clear logfile group 2
*
ERROR at line
1:
ORA-00350: log 2 of instance test (thread 1) needs to be
archived
ORA-00312: online log 2 thread 1:
'/dev/raw/raw5'
---------------------------------------------------------group
2为当前日志
SQL> set linesize 1000
SQL> select * from
v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC
STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ----------
---------- ---------- --- ---------------- ------------- ---------
1 1 0 51380224 1 YES UNUSED 375809
29-JUN-07
2 1 3 51380224 1 NO
CURRENT 379739 29-JUN-07
3 1 1
51380224 1 YES INACTIVE 366852 29-JUN-07
SQL>
alter database clear unarchived logfile group 2;
alter database clear
unarchived logfile group 2
*
ERROR at line 1:
ORA-00316: log 2 of
thread 1, type 0 in header is not log file
ORA-00312: online log 2 thread 1:
'/dev/raw/raw5'
SQL> alter database clear logfile group
3;
Database altered.
SQL> recover database until
cancel;
Media recovery complete.
SQL> alter database
open;
alter database open
*
ERROR at line 1:
ORA-01589: must use
RESETLOGS or NORESETLOGS option for database open
SQL> alter
database open resetlogs;
Database altered.
SQL> select * from
v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC
STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ----------
---------- ---------- --- ---------------- ------------- ---------
1 1 0 51380224 1 YES UNUSED
0
2 1 1 51380224 1 NO
CURRENT 380833 29-JUN-07
3 1 0
51380224 1 YES UNUSED 0
SQL> alter
system switch logfile;
System altered.
SQL> /
System
altered.
SQL> /
System altered.
SQL> select * from
v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC
STATUS FIRST_CHANGE# FIRST_TIM
---------- ---------- ----------
---------- ---------- --- ---------------- ------------- ---------
1 1 2 51380224 1 YES INACTIVE 381270
29-JUN-07
2 1 4 51380224 1 NO
CURRENT 381274 29-JUN-07
3 1 3
51380224 1 YES INACTIVE 381272 29-JUN-07
接下来对数据库做一个全备份[@more@]
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9650775/viewspace-923234/
,如需转载,请注明出处,否则将追究法律责任。