问题描述
还原回复数据库后,在open数据库时报如下错误:
SQL> alter database open RESETLOGS;
alter database open RESETLOGS
*
ERROR at line 1:
ORA-00392: log 17 of thread 1 is being cleared, operation not allowed
ORA-00312: online log 17 thread 1: '/oradata/redofile/redo17.log'
看起来是,在线日志文件online log 17 正在被清除,不允许操作。
处理方法
--查看日志文件状态,发现有很多文件处于clearing状态
SQL> select group#,status from v$log;
GROUP# STATUS
---------- ----------------
1 CLEARING
20 CLEARING
3 CLEARING
4 CLEARING
5 CLEARING
6 CLEARING
7 CLEARING
8 CLEARING
9 CLEARING
10 CLEARING
11 CLEARING
12 CLEARING
13 CLEARING
14 CLEARING
15 CLEARING
16 CLEARING
17 CLEARING_CURRENT
18 CLEARING
19 CLEARING
2 CLEARING
20 rows selected.
--执行clear logfile 命令
SQL> alter database clear logfile group 18;
Database altered.
SQL> alter database clear logfile group 17;
Database altered.
SQL> alter database clear logfile group 19;
Database altered.
--再次查看日志文件状态
SQL> select group#,status from v$log;
GROUP# STATUS
---------- ----------------
1 CLEARING
20 CLEARING
3 CLEARING
4 CLEARING
5 CLEARING
6 CLEARING
7 CLEARING
8 CLEARING
9 CLEARING
10 CLEARING
11 CLEARING
12 CLEARING
13 CLEARING
14 CLEARING
15 CLEARING
16 CLEARING
17 CURRENT
18 UNUSED
19 UNUSED
2 CLEARING
20 rows selected.
--再次尝试open resetlog启动数据库
SQL> alter database open resetlogs;
Database altered.
--查看当前数据库状态
SQL> select status from v$instance;
STATUS
------------
OPEN
--过一会再次查看日志文件状态,此时状态显示为常见的几种正常状态
SQL> select group#,status from v$log;
GROUP# STATUS
---------- ----------------
1 INACTIVE
2 INACTIVE
3 INACTIVE
4 INACTIVE
5 INACTIVE
6 INACTIVE
7 INACTIVE
8 CURRENT
9 UNUSED
10 UNUSED
11 UNUSED
GROUP# STATUS
---------- ----------------
12 UNUSED
13 UNUSED
14 UNUSED
15 UNUSED
16 UNUSED
17 UNUSED
18 UNUSED
19 UNUSED
20 UNUSED
20 rows selected.