redolog是oracle中极其重要的组建,它的目的在于保证数据的安全。redolog的丢失可能导致数据库中数据的丢失。涉及redolog的故障恢复,应该是DBA应该掌握的。在生产库上,我们应该尽量将数据库运行在归档模式。
2、添加日志组
3、添加日志成员
4、删除日志组
二、redolog损坏的恢复
在做下面实验之前,请先对数据库进行一次全库备份。
1、日志组一个成员损坏
2、非当前日志组损坏
这种情况也是比较好恢复的。与上面的实例相似。
3、当前日志组损坏
这种状态处理起来是比较麻烦的。需要做不完全恢复或者强制打开,这些都是有可能导致数据丢失的。因此我们要尽量避免这种情况的发生,对每组日志进行镜像就是一个不错的方法。
下面演示一下不完全恢复的方法
--END--
说明:我操作的数据库版本是11.2.0.3
一、online redolog日常管理
1、查询redolog信息
1、查询redolog信息
-->日志状态信息
SYS@PROD>select group#,thread#,sequence#,bytes/1024/1024 size_MB,members,archived,status,first_change#,to_char(FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') first_time from v$log;
GROUP# THREAD# SEQUENCE# SIZE_MB MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
1 1 28 100 2 YES CLEARING_CURRENT 1961831 2014-03-31 03:05:38
3 1 27 100 2 YES CLEARING 1841509 2014-03-27 15:49:34
2 1 28 100 2 YES CLEARING 1961831 2014-03-31 03:05:38
-->日志文件信息
SYS@PROD>select a.group#,a.thread#,b.member,a.bytes/1024/1024 size_MB,a.members,a.archived,a.status from v$log a,v$logfile b where a.group#=b.group#;
GROUP# THREAD# MEMBER SIZE_MB MEMBERS ARC STATUS
---------- ---------- -------------------------------------------------- ---------- ---------- --- ----------------
1 1 /u01/app/oracle/oradata/PROD/disk1/redo01.log 100 2 YES CLEARING_CURRENT
1 1 /u01/app/oracle/oradata/PROD/disk1/redo04.log 100 2 YES CLEARING_CURRENT
3 1 /u01/app/oracle/oradata/PROD/disk1/redo06.log 100 2 YES CLEARING
2 1 /u01/app/oracle/oradata/PROD/disk1/redo05.log 100 2 YES CLEARING
3 1 /u01/app/oracle/oradata/PROD/disk1/redo03.log 100 2 YES CLEARING
2 1 /u01/app/oracle/oradata/PROD/disk1/redo02.log 100 2 YES CLEARING
6 rows selected.
-->列出日志切换的线程号和切换时间
col 00 for '999'
col 01 for '999'
col 02 for '999'
col 03 for '999'
col 04 for '999'
col 05 for '999'
col 06 for '999'
col 07 for '999'
col 08 for '999'
col 09 for '999'
col 10 for '999'
col 11 for '999'
col 12 for '999'
col 13 for '999'
col 14 for '999'
col 15 for '999'
col 16 for '999'
col 17 for '999'
col 18 for '999'
col 19 for '999'
col 20 for '999'
col 21 for '999'
col 22 for '999'
col 23 for '999'
SELECT thread#, a.ttime, SUM (c8) "08", SUM (c9) "09", SUM (c10) "10",
SUM (c11) "11", SUM (c12) "12", SUM (c13) "13", SUM (c14) "14",
SUM (c15) "15", SUM (c16) "16", SUM (c17) "17", SUM (c18) "18",
SUM (c0) "00", SUM (c1) "01", SUM (c2) "02", SUM (c3) "03",
SUM (c4) "04", SUM (c5) "05", SUM (c6) "06", SUM (c7) "07",
SUM (c19) "19", SUM (c20) "20", SUM (c21) "21", SUM (c22) "22",
SUM (c23) "23"
FROM (SELECT thread#, ttime, DECODE (tthour, '00', 1, 0) c0,
DECODE (tthour, '01', 1, 0) c1,
DECODE (tthour, '02', 1, 0) c2,
DECODE (tthour, '03', 1, 0) c3,
DECODE (tthour, '04', 1, 0) c4,
DECODE (tthour, '05', 1, 0) c5,
DECODE (tthour, '06', 1, 0) c6,
DECODE (tthour, '07', 1, 0) c7,
DECODE (tthour, '08', 1, 0) c8,
DECODE (tthour, '09', 1, 0) c9,
DECODE (tthour, '10', 1, 0) c10,
DECODE (tthour, '11', 1, 0) c11,
DECODE (tthour, '12', 1, 0) c12,
DECODE (tthour, '13', 1, 0) c13,
DECODE (tthour, '14', 1, 0) c14,
DECODE (tthour, '15', 1, 0) c15,
DECODE (tthour, '16', 1, 0) c16,
DECODE (tthour, '17', 1, 0) c17,
DECODE (tthour, '18', 1, 0) c18,
DECODE (tthour, '19', 1, 0) c19,
DECODE (tthour, '20', 1, 0) c20,
DECODE (tthour, '21', 1, 0) c21,
DECODE (tthour, '22', 1, 0) c22,
DECODE (tthour, '23', 1, 0) c23
FROM (SELECT thread#, TO_CHAR (first_time, 'yyyy-mm-dd') ttime,
TO_CHAR (first_time, 'hh24') tthour
FROM v$log_history
WHERE (SYSDATE - first_time < 30))) a
GROUP BY thread#, ttime
order by ttime;
2、添加日志组
SQL> alter database add logfile group 4 ('/u01/app/oracle/oradata/redolog/redo04a.log','/u01/app/oracle/oradata/redolog/redo04b.log') size 20M;
Database altered.
3、添加日志成员
SQL> alter database add logfile group 5 ('/u01/app/oracle/oradata/redolog/redo05a.log') size 20M;
Database altered.
-->给group 5添加一个日志成员
SQL> alter database add logfile member '/u01/app/oracle/oradata/redolog/redo05b.log' to group 5;
Database altered.
SQL> select group#,member from v$logfile;
GROUP# MEMBER
---------- --------------------------------------------------
1 /u01/app/oracle/oradata/redolog/redo01a.log
1 /u01/app/oracle/oradata/redolog/redo01b.log
2 /u01/app/oracle/oradata/redolog/redo02a.log
2 /u01/app/oracle/oradata/redolog/redo02b.log
3 /u01/app/oracle/oradata/redolog/redo03a.log
3 /u01/app/oracle/oradata/redolog/redo03b.log
4 /u01/app/oracle/oradata/redolog/redo04a.log
4 /u01/app/oracle/oradata/redolog/redo04b.log
5 /u01/app/oracle/oradata/redolog/redo05a.log
5 /u01/app/oracle/oradata/redolog/redo05b.log
10 rows selected.
4、删除日志组
-->检查日志组状态
SQL> select group#,thread#,sequence#,bytes/1024/1024 size_MB,members,archived,status,first_change#,to_char(FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') first_time from v$log;
GROUP# THREAD# SEQUENCE# SIZE_MB MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
1 1 31 100 2 YES INACTIVE 4219305791 2013-12-23 00:12:35
2 1 32 100 2 NO CURRENT 4219324100 2013-12-25 16:29:10
3 1 30 100 2 YES INACTIVE 4219267204 2013-12-22 03:00:58
4 1 0 20 2 YES UNUSED 0
5 1 0 20 2 YES UNUSED 0
-->当archvied状态为yes,status状态为inactive or unused状态时,可以删除该redolog group。
SQL> alter database drop logfile group 5;
Database altered.
二、redolog损坏的恢复
在做下面实验之前,请先对数据库进行一次全库备份。
RMAN> run{
2> backup database format '/s01/backup/database_full_%U';
3> backup format '/s01/backup/al_%s_%p_%t' archivelog all delete input;
4> backup current controlfile format '/s01/backup/control_%s_%p_%t';
5> }
1、日志组一个成员损坏
-->检查redolog日志组状态
SQL> select group#,thread#,sequence#,bytes/1024/1024 size_MB,members,archived,status,first_change#,to_char(FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') first_time from v$log;
GROUP# THREAD# SEQUENCE# SIZE_MB MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
1 1 39 100 2 YES INACTIVE 4219341679 2014-03-31 11:38:20
2 1 40 100 2 NO CURRENT 4219346542 2014-03-31 13:51:26
3 1 38 100 2 YES INACTIVE 4219340026 2014-03-31 11:38:08
4 1 37 20 2 YES INACTIVE 4219339805 2014-03-31 11:38:02
-->正常关闭数据库
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
-->删除日志组4的一个日志组成员
SQL> ! rm -f /u01/app/oracle/oradata/redolog/redo04b.log
-->启动数据库,数据库可以正常启动但是在alert log 日志中报错误。
Mon Mar 31 14:02:30 2014
ARC3 started with pid=23, OS id=5593
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_lgwr_5503.trc:
ORA-00313: open failed for members of log group 4 of thread 1
ORA-00312: online log 4 thread 1: '/u01/app/oracle/oradata/redolog/redo04b.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_lgwr_5503.trc:
ORA-00321: log 4 of thread 1, cannot update log file header
ORA-00312: online log 4 thread 1: '/u01/app/oracle/oradata/redolog/redo04b.log'
Mon Mar 31 14:02:31 2014
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_m000_5595.trc:
ORA-00313: open failed for members of log group 4 of thread 1
ORA-00312: online log 4 thread 1: '/u01/app/oracle/oradata/redolog/redo04b.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
-->检查发现
SQL> select a.group#,a.thread#,b.member,a.bytes/1024/1024 size_MB,a.members,a.archived,a.status from v$log a,v$logfile b where a.group#=b.group#;
GROUP# THREAD# MEMBER SIZE_MB MEMBERS ARC STATUS
---------- ---------- -------------------------------------------------- ---------- ---------- --- ----------------
1 1 /u01/app/oracle/oradata/redolog/redo01a.log 100 2 YES INACTIVE
1 1 /u01/app/oracle/oradata/redolog/redo01b.log 100 2 YES INACTIVE
2 1 /u01/app/oracle/oradata/redolog/redo02a.log 100 2 NO CURRENT
2 1 /u01/app/oracle/oradata/redolog/redo02b.log 100 2 NO CURRENT
3 1 /u01/app/oracle/oradata/redolog/redo03a.log 100 2 YES INACTIVE
3 1 /u01/app/oracle/oradata/redolog/redo03b.log 100 2 YES INACTIVE
4 1 /u01/app/oracle/oradata/redolog/redo04a.log 20 2 YES INACTIVE
4 1 /u01/app/oracle/oradata/redolog/redo04b.log 20 2 YES INACTIVE
8 rows selected.
-->
SQL> ! ls /u01/app/oracle/oradata/redolog/
redo01a.log redo01b.log redo02a.log redo02b.log redo03a.log redo03b.log redo04a.log
-->
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- -------------------------------------------------- ---
1 ONLINE /u01/app/oracle/oradata/redolog/redo01a.log NO
1 ONLINE /u01/app/oracle/oradata/redolog/redo01b.log NO
2 ONLINE /u01/app/oracle/oradata/redolog/redo02a.log NO
2 ONLINE /u01/app/oracle/oradata/redolog/redo02b.log NO
3 ONLINE /u01/app/oracle/oradata/redolog/redo03a.log NO
3 ONLINE /u01/app/oracle/oradata/redolog/redo03b.log NO
4 ONLINE /u01/app/oracle/oradata/redolog/redo04a.log NO
4 INVALID ONLINE /u01/app/oracle/oradata/redolog/redo04b.log NO
8 rows selected.
-->
SQL> alter database add logfile member '/u01/app/oracle/oradata/redolog/redo04b.log' to group 4;
alter database add logfile member '/u01/app/oracle/oradata/redolog/redo04b.log' to group 4
*
ERROR at line 1:
ORA-01577: cannot add log file '/u01/app/oracle/oradata/redolog/redo04b.log' - file already part of database
-->遇到这种情况使用alter database clear方式重建group.
SQL> alter database clear logfile group 4;
Database altered.
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- -------------------------------------------------- ---
1 ONLINE /u01/app/oracle/oradata/redolog/redo01a.log NO
1 ONLINE /u01/app/oracle/oradata/redolog/redo01b.log NO
2 ONLINE /u01/app/oracle/oradata/redolog/redo02a.log NO
2 ONLINE /u01/app/oracle/oradata/redolog/redo02b.log NO
3 ONLINE /u01/app/oracle/oradata/redolog/redo03a.log NO
3 ONLINE /u01/app/oracle/oradata/redolog/redo03b.log NO
4 ONLINE /u01/app/oracle/oradata/redolog/redo04a.log NO
4 ONLINE /u01/app/oracle/oradata/redolog/redo04b.log NO
8 rows selected.
SQL> ! ls /u01/app/oracle/oradata/redolog/
redo01a.log redo01b.log redo02a.log redo02b.log redo03a.log redo03b.log redo04a.log redo04b.log
2、非当前日志组损坏
这种情况也是比较好恢复的。与上面的实例相似。
-->检查日志组状态
SQL> select group#,thread#,sequence#,bytes/1024/1024 size_MB,members,archived,status,first_change#,to_char(FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') first_time from v$log;
GROUP# THREAD# SEQUENCE# SIZE_MB MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
1 1 39 100 2 YES INACTIVE 4219341679 2014-03-31 11:38:20
2 1 40 100 2 YES INACTIVE 4219346542 2014-03-31 13:51:26
3 1 42 100 2 NO CURRENT 4219347530 2014-03-31 14:19:17
4 1 41 20 2 YES INACTIVE 4219347526 2014-03-31 14:19:12
-->关闭数据库
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
-->删除日志组2全部成员
SQL> ! rm -f /u01/app/oracle/oradata/redolog/redo02*
-->启动数据库
SQL> startup
ORACLE instance started.
Total System Global Area 1068937216 bytes
Fixed Size 2235208 bytes
Variable Size 792724664 bytes
Database Buffers 268435456 bytes
Redo Buffers 5541888 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 5879
Session ID: 1 Serial number: 5
Mon Mar 31 14:22:00 2014
ARC1 started with pid=21, OS id=5883
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_lgwr_5797.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/redolog/redo02b.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/redolog/redo02a.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_lgwr_5797.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/redolog/redo02b.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/redolog/redo02a.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_ora_5879.trc:
ORA-00313: open failed for members of log group 1 of thread
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/redolog/redo02a.log'
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/redolog/redo02b.log'
Mon Mar 31 14:22:00 2014
ARC2 started with pid=22, OS id=5885
USER (ospid: 5879): terminating the instance due to error 313
System state dump requested by (instance=1, osid=5879), summary=[abnormal instance termination].
System State dumped to trace file /u01/app/oracle/diag/rdbms/db/db/trace/db_diag_5787.trc
Dumping diagnostic data in directory=[cdmp_20140331142200], requested by (instance=1, osid=5879), summary=[abnormal instance termination].
Instance terminated by USER, pid = 5879
-->启动数据库到mount状态
SQL> startup mount
ORACLE instance started.
Total System Global Area 1068937216 bytes
Fixed Size 2235208 bytes
Variable Size 792724664 bytes
Database Buffers 268435456 bytes
Redo Buffers 5541888 bytes
Database mounted.
SQL> select group#,thread#,sequence#,bytes/1024/1024 size_MB,members,archived,status,first_change#,to_char(FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') first_time from v$log;
GROUP# THREAD# SEQUENCE# SIZE_MB MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
1 1 39 100 2 YES INACTIVE 4219341679 2014-03-31 11:38:20
4 1 41 20 2 YES INACTIVE 4219347526 2014-03-31 14:19:12
3 1 42 100 2 NO CURRENT 4219347530 2014-03-31 14:19:17
2 1 40 100 2 YES INACTIVE 4219346542 2014-03-31 13:51:26
-->处理
SQL> alter database clear logfile group 2;
Database altered.
-->数据库可以正常打开。
SQL> alter database open;
Database altered.
3、当前日志组损坏
这种状态处理起来是比较麻烦的。需要做不完全恢复或者强制打开,这些都是有可能导致数据丢失的。因此我们要尽量避免这种情况的发生,对每组日志进行镜像就是一个不错的方法。
-->恢复方法:
1)如果有归档和备份,用不完全恢复。
SQL>startup mount;
SQL>recover database until cancel; 先选择auto尽可能多的利用归档日志进行恢复,然后再次执行
SQL>recover database until cancel; 这次输入cancel,完成不完全恢复
用resetlogs打开数据
SQL>alter database open resetlogs;
2)强制恢复, 这种方法可能会导致数据不一致
sql>startup mount;
sql>alter system set "_allow_resetlogs_corruption"=true scope=spfile;
sql>recover database until cancel;
sql>alter database open resetlogs;
-->使用该隐含参数将库来起来以后,需要将数据导出然后重新建库。
下面演示一下不完全恢复的方法
-->检查日志组状态
SQL> select group#,thread#,sequence#,bytes/1024/1024 size_MB,members,archived,status,first_change#,to_char(FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') first_time from v$log;
GROUP# THREAD# SEQUENCE# SIZE_MB MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
1 1 39 100 2 YES INACTIVE 4219341679 2014-03-31 11:38:20
2 1 0 100 2 YES UNUSED 4219346542 2014-03-31 13:51:26
3 1 42 100 2 NO CURRENT 4219347530 2014-03-31 14:19:17
4 1 41 20 2 YES INACTIVE 4219347526 2014-03-31 14:19:12
-->关闭数据库
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
-->
SQL> ! rm -f /u01/app/oracle/oradata/redolog/redo03*
-->
SQL> startup
ORACLE instance started.
Total System Global Area 1068937216 bytes
Fixed Size 2235208 bytes
Variable Size 792724664 bytes
Database Buffers 268435456 bytes
Redo Buffers 5541888 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 6353
Session ID: 1 Serial number: 5
Mon Mar 31 14:31:17 2014
ARC1 started with pid=21, OS id=6357
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_lgwr_6271.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/redolog/redo03b.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/redolog/redo03a.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_lgwr_6271.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/redolog/redo03b.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/redolog/redo03a.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_ora_6353.trc:
ORA-00313: open failed for members of log group 1 of thread
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/redolog/redo03a.log'
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/redolog/redo03b.log'
Mon Mar 31 14:31:17 2014
ARC2 started with pid=22, OS id=6359
USER (ospid: 6353): terminating the instance due to error 313
System state dump requested by (instance=1, osid=6353), summary=[abnormal instance termination].
System State dumped to trace file /u01/app/oracle/diag/rdbms/db/db/trace/db_diag_6261.trc
Dumping diagnostic data in directory=[cdmp_20140331143117], requested by (instance=1, osid=6353), summary=[abnormal instance termination].
Instance terminated by USER, pid = 6353
-->
SQL> startup mount
ORACLE instance started.
Total System Global Area 1068937216 bytes
Fixed Size 2235208 bytes
Variable Size 792724664 bytes
Database Buffers 268435456 bytes
Redo Buffers 5541888 bytes
Database mounted.
SQL> select group#,thread#,sequence#,bytes/1024/1024 size_MB,members,archived,status,first_change#,to_char(FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') first_time from v$log;
GROUP# THREAD# SEQUENCE# SIZE_MB MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
1 1 39 100 2 YES INACTIVE 4219341679 2014-03-31 11:38:20
4 1 41 20 2 YES INACTIVE 4219347526 2014-03-31 14:19:12
3 1 42 100 2 NO CURRENT 4219347530 2014-03-31 14:19:17
2 1 0 100 2 YES UNUSED 4219346542 2014-03-31 13:51:26
SQL> alter database clear logfile group 3;
alter database clear logfile group 3
*
ERROR at line 1:
ORA-00350: log 3 of instance db (thread 1) needs to be archived
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/redolog/redo03a.log'
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/redolog/redo03b.log'
-->做不完全恢复
SQL> recover database until cancel;
Media recovery complete.
-->使用resetlogs方式打开数据库
SQL> alter database open resetlogs;
Database altered.
--END--