oracle重整表空间,【Oracle数据恢复】如何重建SYSAUX表空间上的对象

01fac6460a22031b8af8da5848698a70.png

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的人士,所以具体操作步骤移除。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值