问题描述:当我们把RAC数据库通过rman恢复到单实例后,查看v$thread视图的时候,还能看到thread2的信息,现进行thread 2信息删除和资源清理。
操作如下:
1、查看THREAD 2状态:
SQL> select THREAD#, STATUS, ENABLED from v$thread;
THREAD# STATUS ENABLED
---------- ------ --------
1 OPEN PUBLIC
2
CLOSED PUBLIC
从上可以看到thread 2状态是closed。
2、查看THREAD 2 redo信息:
SQL> select group# from v$log where THREAD#=2;
GROUP#
----------
8
9
3、对THREAD 2进行disable:
SQL> alter database disable thread 2;
Database altered.
Database altered.
4、检查:
SQL> select THREAD#, STATUS, ENABLED from v$thread;
THREAD# STATUS ENABLED
---------- ------ --------
1 OPEN PUBLIC
THREAD# STATUS ENABLED
---------- ------ --------
1 OPEN PUBLIC
可以看到thread 2信息已经删除了。
5、删除THREAD 2 redo日志:
SQL> alter database drop logfile group 8;
Database altered.
Database altered.
SQL> alter database drop logfile group 9;
Database altered.
Database altered.
注:如果没有执行第3步disable thread 2,就执行删除redo组,就会报以下错:
SQL> alter database drop logfile group 8;
alter database drop logfile group 8
*
ERROR at line 1:
ORA-01567: dropping log 8 would leave less than 2 log files for instance UNNAMED_INSTANCE_2 (thread 2)
ORA-00312: online log 8 thread 2: '/oracle/app /flash_recovery_area/orcl /onlinelog/o1_mf_8_d74nr9mk_.log'
alter database drop logfile group 8
*
ERROR at line 1:
ORA-01567: dropping log 8 would leave less than 2 log files for instance UNNAMED_INSTANCE_2 (thread 2)
ORA-00312: online log 8 thread 2: '/oracle/app /flash_recovery_area/orcl /onlinelog/o1_mf_8_d74nr9mk_.log'
6、UNDO表空间(THREAD 2)清理:
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 1800
undo_tablespace string UNDOTBS1
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 1800
undo_tablespace string UNDOTBS1
SQL> select tablespace_name from dba_tablespaces where contents='UNDO';
TABLESPACE_NAME
------------------------------
UNDOTBS1
UNDOTBS2
TABLESPACE_NAME
------------------------------
UNDOTBS1
UNDOTBS2
SQL> drop tablespace UNDOTBS2 including contents and datafiles;
Tablespace dropped.
SQL> select tablespace_name from dba_tablespaces where contents='UNDO';
TABLESPACE_NAME
------------------------------
UNDOTBS1
Tablespace dropped.
SQL> select tablespace_name from dba_tablespaces where contents='UNDO';
TABLESPACE_NAME
------------------------------
UNDOTBS1
完成!