Oracle 解决ORA-00257 Archiver error 报错

Oracle 解决ORA-00257 Archiver error 报错

日期: 2023-12-11
作者: Tingy, H

文章目录

  • Oracle 解决ORA-00257 Archiver error 报错
    • 一、问题描述
    • 二、原因分析
    • 三、解决步骤
      • 1. 登录 Linux 用户
      • 2. 切换到 Oracle 用户
      • 3. 以 sysdba 登录数据库
      • 4. 清理 Oracle Home 目录所在磁盘空间
        • 4.1 重新切回 root 用户
        • 4.2 查看磁盘挂载盘符空间
        • 4.3 删除 Oracle 的 trace 文件
      • 5. 手动删除数据库归档日志
        • 5.1 切换到 Oracle 用户
        • 5.2 以 sysdba 登录数据库并修改检查点
        • 5.3 以 Oracle 用户执行删除归档命令
      • 6. 再次登录 Oracle 数据库

一、问题描述

订单投资交易环境进行 impdb 数据泵恢复数据,执行到一半,报错终止。
系统弹出提示:

 ORA-00257: Archiver error. Connect AS SYSDBA only until resolved.

Oralce 安装在 Linux 机器上。

二、原因分析

归档策略保留时间较长,或归档频率过高,导致数据库挂载盘符空间不足。
临时处理办法:

手动删除归档文件。

三、解决步骤

1. 登录 Linux 用户

>>> ssh [email protected]
password:
[root@U2DBBASE]#

2. 切换到 Oracle 用户

此处的 Oracle 用户为:oracle

[root@U2DBBASE]# su - oralce
Last login: Sun Dec 10 21:55:08 CST 2023
[oralce@U2DBBASE]$

3. 以 sysdba 登录数据库

[oralce@U2DBBASE]$ sqlplus / as sysdba
  SQL*Plus: Release 19.0.0.0 - Production on Mon Dec 11 14:52:03 2023
  Version 19.13.0.0.0

  Copyright (c) 1982, 2021, Oracle. All rights reserved.

  ERROR:
  ORA-09925: Unable to create audit trail file
  Linux-x86_64 Error: 28: No space left on device
  Additional information: 9925
  ORA_01075: you are currently logged on

  Enter user-name:

  • 登录失败,没有储存空间,无法以 sysdba 方式登录。
  • 如果登录成功,跳到步骤 5. 手动删除数据库归档日志

4. 清理 Oracle Home 目录所在磁盘空间

4.1 重新切回 root 用户
>>> ssh [email protected]
  password:
[root@U2DBBASE]#
4.2 查看磁盘挂载盘符空间
[root@U2DBBASE]# du -sh *
  • 查看 Use% 比例比较高的,进入;
  • 本次发现为 Oralce Home 目录已满,删除 trace 文件;
4.3 删除 Oracle 的 trace 文件
[root@U2DBBASE oralce]# cd $ORACLE_HOME
[root@U2DBBASE oralce]# du -sh *
  - admin - 337MB
  - audit - 500K
  - cfgtoollogs - 149MB
  - checkpoints - 0
  - diag - 8.7G
  - product - 11G
[root@U2DBBASE oracle]# 
[root@U2DBBASE oracle]# cd diag/rdbms
[root@U2DBBASE rdbms]#
[root@U2DBBASE rdbms]# ll
  -rw-r----- i_1.mif
  drw-r----- dbbase1
[root@U2DBBASE rdbms]# dbbase1
[root@U2DBBASE dbbase1]#
[root@U2DBBASE dbbase1]# cd trace
[root@U2DBBASE trace]# 
[root@U2DBBASE trace]# rm *.trc

5. 手动删除数据库归档日志

5.1 切换到 Oracle 用户

此处的 Oracle 用户为:oracle

[root@U2DBBASE]# su - oralce
Last login: Sun Dec 10 21:55:08 CST 2023
5.2 以 sysdba 登录数据库并修改检查点
[oralce@U2DBBASE]$ sqlplus / as sysdba
  Connected to:
  SQL*Plus: Release 19.0.0.0 - Production on Mon Dec 11 14:52:03 2023
  Version 19.13.0.0.0

SQL> alter system checkpoint;

  System altered.

SQL>
SQL> exit;

5.3 以 Oracle 用户执行删除归档命令
[root@U2DBBASE oralce]# rman target
RMAN> delete noprompt archivelog all completed before 'sysdate-1';
  archived log file name=+ORACLEDBHDG/ORACLEDB>ARCHIVER/2023_12_09/thread_2_seq_1_1695.340.115
  Deleted 130 objects

RMAN> _
  • 删除归档日志完成。

6. 再次登录 Oracle 数据库

C:\Users\admin> sqlplus username/[email protected]/orcl

  Connected to:
  SQL*Plus: Release 19.0.0.0 - Production on Mon Dec 11 14:52:03 2023
  Version 19.13.0.0.0

SQL> 
SQL> exit;
C:\Users\admin>

数据库登录成功。

你可能感兴趣的:(oracle,数据库,linux)