由于ETL在加载表的上一周期全量数据时,undotbs2表空间报满,不释放,本想别建一个undo表空间,进行切换,但又没有相应的裸设备,所以错误的没有在共享存储上建undo表空间,导致DBWR不能定位,原因是这个数据文件只有这个结点有访问权限,所以要把这个表空间删除。
1.建表空间过程:
create undo tablespace undotbs3 datafile '/oracle/app/oracle/undotbs3.dbf'' size 1g;
2.切换的时候就报错
alter system set undo_tablespace=undotbs3 scope=both;
报以下错误
ORA-01157: cannot identify/lock data file 235 - see DBWR trace file
ORA-01110: data file 235: '/oracle/app/oracle/undotbs3.dbf'
3.查sys.dba_data_files这个表时同样也会这个错误
4.所以在这种情况下,要把这个undo表空间删除,但不能直接删除;
SQL> drop tablespace undotbs3 including contents and datafiles;
也会报以错误
5.所以解决方法如下:
a.先将数据文件脱线
SQL> alter database datafile 235 offline ;
b.删除undo表空间
SQL> drop tablespace undotbs3 including contents and datafiles;
这样这个问题就解决了,希望对有出现同样问题的人提供一点参照