更新时间:2024-11-29 GMT+08:00

Oracle任务启动后发生“ORA-01284”报错

现象描述

Oracle相关任务开启DDL功能(默认开启)后发生以下报错:
Error at database tier, Please check : java.sql.SQLException: ORA-01284: file /oracle/database/dictionary.ora cannot be opened
ORA-06512: at "SYS.DBMS_LOGMNR", line 58
ORA-06512: at line 2

可能原因

部分版本数据库需要手动指定dictionary_location。

定位思路

手动创建“/oracle/database/”目录,并赋予相关数据库用户权限。设置初始化参数UTL_FILE_DIR,并重启数据库。

处理步骤

  1. 以root用户登录主节点,执行以下命令创建目录。

    mkdir -p /oracle/database/

  2. 执行以下命令赋予权限(确保上层目录也有相应权限, 用户和组以实际的为准)。

    chown -R oracle:osintall /oracle

  3. 执行以下命令修改数据库参数,其中sid的值以实际为准。

    alter system set UTL_FILE_DIR='/oracle/database/dictionary.ora' scope=spfile sid='orcl';

  4. 重启数据库。