ta13/undotbs01.dbf' --- 此时心想,怎么不能offline了,看能否风能 temporary offline 查询数据文件头,select FILE#,checkpoint_change#,recover, fuzzy from v$datafile_header;
最后通过 SQL> alter system checkpoint; --做一个检查点,再试试: System altered. SQL> alter tablespace undotbs1 offline temporary; Tablespace altered.
再次通过 dba_tablespaces 查看 undotbs1 的状态,发现 是否offline。 offline 状态。
8 测试再看看能否通过其他用户连接或client 连接: -- 发现ok,可以通过其他用户连接了,但是一些程序 涉及到报错:
报错四:
执行存储过程失败 ORA-00376: 此时无法读取文件 3 ORA-01110: 数据文件 3: "/u01/app/oracle/oradata/gtadata13/undotbs01.dbf' ORA-06512: 在 "GTA_DATA.SP_QA_TIMELINESS", line 54 ORA-06512: 在 line 1
如是想了想 ,确实,因为undotbs1 是通过物理删除的,那么oracle 一致性 会是这些需要recovery恢复:
9 既然offline,可否删除掉,(估计比较麻烦,这回退给干掉了,怎么回退了?)
通过dba_rollback_segs 发现 还有很多 recovery 的undotbs1 段需要回滚恢复,是数据一致性。
SQL> select segment_name,tablespace_name,status from dba_rollback_segs; SEGMENT_NAME TABLESPACE_NAME STATUS ------------------------------ ------------------------------ ---------------- SYSTEM SYSTEM ONLINE _SYSSMU122_928896348$ UNDOTBS1 OFFLINE _SYSSMU121_4101333926$ UNDOTBS1 OFFLINE _SYSSMU120_471964226$ UNDOTBS1 OFFLINE _SYSSMU119_3645569891$ UNDOTBS1 OFFLINE _SYSSMU118_1816999230$ UNDOTBS1 OFFLINE _SYSSMU117_3513527861$ UNDOTBS1 OFFLINE _SYSSMU116_2167311593$ UNDOTBS1 OFFLINE _SYSSMU90_1969094056$ UNDOTBS1 NEEDS RECOVERY _SYSSMU89_2804401042$ UNDOTBS1 NEEDS RECOVERY _SYSSMU88_3446396459$ UNDOTBS1 NEEDS RECOVERY _SYSSMU87_268667266$ UNDOTBS1 NEEDS RECOVERY _SYSSMU86_1912503840$ UNDOTBS1 NEEDS RECOVERY _SYSSMU85_2732352333$ UNDOTBS1 NEEDS RECOVERY _SYSSMU84_1805825668$ UNDOTBS1 NEEDS RECOVERY _SYSSMU83_1984855352$ UNDOTBS1 NEEDS RECOVERY _SYSSMU212_1777710046$ UNDOTBS2 ONLINE _SYSSMU211_3260590093$ UNDOTBS2 ONLINE _SYSSMU210_1915944113$ UNDOTBS2 ONLINE _SYSSMU209_2868303011$ UNDOTBS2 ONLINE _SYSSMU208_3687438092$ UNDOTBS2 ONLINE _SYSSMU207_752508113$ UNDOTBS2 ONLINE
此时,百度,及询问了一些高手,说最好做个备份: 如是想通过expdp 导入导出:
报错五:
[oracle@gtadata13 dump_dir]$ impdp dcsys/DCSYS directory=dump_dir dumpfile=TBL_CHN_FN_ForecFin.dmp Import: Release 11.2.0.3.0 - Production on Wed Jan 22 14:40:30 2014 Copyright (c) 1982, 2011,
Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options ORA-31626: job does not exist ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79 ORA-06512: at "SYS.KUPV$FT", line 1042 ORA-31637: cannot create job SYS_IMPORT_FULL_01 for user DCSYS ORA-31632: master table "DCSYS.SYS_IMPORT_FULL_01" not found, invalid, or inaccessible ORA-31635: unable to establish job resource synchronization ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79 ORA-06512: at "SYS.KUPV$FT_INT", line 2401 ORA-00376: file 3 cannot be read at this time ORA-01110: data file 3: '/u01/app/oracle/oradata/gtadata13/undotbs01.dbf' -- 这也不行,看来,只能老实的弄了
10 ,打算删除 这offline undotbs1表空间,看是否跳过:
报错六:
SQL> drop tablespace undotbs1; drop tablespace undotbs1 * ERROR at line 1: ORA-01548: active rollback segment '_SYSSMU1_1240252155$' found, terminate dropping tablespace SQL> DROP ROLLBACK SEGMENT "_SYSSMU1_1240252155$"; DROP ROLLBACK SEGMENT "_SYSSMU1_1240252155$" * ERROR at line 1: ORA-30025: DROP segment '_SYSSMU1_1240252155$' (in undo tablespace) not allowed
再次通过百度,高手请教: 发现需要在pfile 上 添加隐藏参数文件_offline_rollback_segmen |