ORA-48251 ORA-48122 ORA-27046 OSD-04012
数据库在mount阶段报错如下:
ERROR at line 1:
ORA-48251: Failed to open relation due to following error
ORA-48122: error with opening the ADR block file
[d:\app\administrator\diag\rdbms\cbsdb\cbsdb\metadata\SWEEPERR.ams] [0]
ORA-27046: file size is not a multiple of logical block size
OSD-04012: file size mismatch (OS 474884)
之前对ADR用的很少,刚一看有点懵,在网上查了半天资料,对SWEEPERR.ams的介绍都很少,尝试把SWEEPERR.ams改了名字,尝试重新启动,数据库正常open。
****今天在又查了一下资料,转载以下相关ADR说明:
*1.1 ADR 说明
ADR (AutomaticDiagnostic Repository) ,ADR 是一个基于文件的资料档案库,用于存放数据库诊断数据(如跟踪、意外事件转储和程序包、预警日志、健康状况监视器报告、核心转储等)。它对存储在任何数据库外的多个实例和多种产品使用一个统一的目录结构。因此,可用于数据库关闭时的问题诊断。从Oracle Database 11g R1 开始,数据库、自动存储管理(ASM)、集群就绪服务(CRS) 和其它Oracle 产品或组件将所有诊断数据都存储在ADR 中。每种产品的每个实例都将诊断数据存储在自己的ADR 主目录下。例如,在具有共享存储和ASM 的Real Application Clusters 环境中,每个数据库实例和每个ASM 实例在ADR 中都有一个主目录。ADR的统一目录结构对各种产品和实例使用一致的诊断数据格式,而且还有一组统一的工具,使客户和Oracle 技术支持可以相互关联并分析多个实例的诊断数据。
从Oracle Database11g R1 开始,将忽略传统的…_DUMP_DEST 初始化参数。ADR 根目录又称为ADR 基目录,其位置由DIAGNOSTIC_DEST 初始化参数设定。如果省略此参数或将其保留为空,数据库将在启动时按如下方式设置DIAGNOSTIC_DEST:
如果已设置了环境变量ORACLE_BASE,则将DIAGNOSTIC_DEST 设置为 O R A C L E B A S E 。 如 果 未 设 置