SQL> select file_id,file_name from dba_data_files where tablespace_name='SYSAUX'; FILE_ID ---------- FILE_NAME -------------------------------------------------------------------------------------------------------------------------------------------- 2 /s01/oradata/FIXIT/datafile/o1_mf_sysaux_85wkhmrk_.dbf SQL> alter database datafile 2 offline; Database altered.   假设这里datafile 2即SYSAUX所有的数据文件都丢失了 且没有任何备份,此时我们无法利用任何备份还原该表空间 但是SYSAUX表空间却是数据库必要的系统表空间之一,存放了 AWR等重要数据和其他一些组件的辅助数据     SQL> exec dbms_workload_repository.create_snapshot; BEGIN dbms_workload_repository.create_snapshot; END; * ERROR at line 1: ORA-13509: error encountered during updates to a AWR table ORA-00376: file ORA-00376: file 2 cannot be read at this time ORA-01110: data file 2: '/s01/oradata/FIXIT/datafile/o1_mf_sysaux_85wkhmrk_.dbf' cannot be read at this time ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 99 ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 122 ORA-06512: at line 1   我们需要在 丢失SYSAUX所有数据文件及其备份的情况下 重建该表空间上的对象   除了以上彻底丢失 数据文件的情况, SYSAUX 数据文件存在某些逻辑或物理坏块也可能是重建该表空间上对象的理由 例如以下错误: ORA-00600: [kcbz_check_objd_typ] from MMON slave or its process ORA-00600: [kdsgrp1] while querying WR% tables from SYSAUX 对应不同的AWR负载基表, $ORACLE_HOME/rdbms/admin/目录下存有相关这些系统表的创建脚本,例如: WRI$_OPTSTAT catost.sql - Optimizer Statistics Tables WRI$_ALERT catalrt.sql - Catalog script for server ALeRT WRH$_* catawrtb.sql - Catalog script for AWR Tables catawrvw.sql - Catalog script for AWR Views 接下来我们开始着手重建SYSAUX上的对象,请注意recreate sysaux上的对象是在正常恢复之外的非常规手段,也是恢复SYSAUX的最后一步,不要在产品环境中滥用以下手段: 鉴于该操作过于危险,只适合于深入了解Oracle的人士,所以具体操作步骤移除。 如果不能自行解决该问题,那么也可以联系MACLEAN专业数据库修复团队。