解决ORA-16038 ORA-19502 ORA-00312错误的方法

22 篇文章 1 订阅
16 篇文章 0 订阅

背景:
客户反馈说业务系统在使用过程中报:ORA-00257: archiver error. Connect internal only, until freed.错误,大意是没有空间来存储归档日志了。从alert日志看错误提示如下:

ORA-16038: log 2 sequence# 138989 cannot be archived
ORA-19502: write error on file "", block number  (block size=)
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/dlyzc/redo02.log'

在操作系统下查看,空间已满:

[oracle@dlyzc script]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        99G  9.9G   85G  11% /
devtmpfs        7.8G     0  7.8G   0% /dev
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           7.8G  540K  7.8G   1% /run
tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/vdb1       178G  133G   36G  100% /u01
/dev/vdc1       493G   73M  467G   1% /u02
tmpfs           1.6G     0  1.6G   0% /run/user/0

解决方法:
1、从磁盘上删除一部分过期的归档日志;
2、然后通过rman删除控制文件的过期信息;

[oracle@dlyzc ~]$ rman target /
恢复管理器: Release 11.2.0.4.0 - Production on 星期二 12月 28 13:44:16 2021

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

已连接到目标数据库: DLYZC (DBID=3870715741)
RMAN> crosscheck archivelog all;
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=1351 设备类型=DISK
对归档日志的验证成功
归档日志文件名=/u01/app/oracle/fast_recovery_area/DLYZC/archivelog/2021_12_26/o1_mf_1_138974_jwgmjyo9_.arc RECID=277171 STAMP=1092272414
对归档日志的验证成功
......
归档日志文件名
=/u01/app/oracle/fast_recovery_area/DLYZC/archivelog/2021_12_28/o1_mf_1_138995_jwo84ntf_.arc RECID=277213 STAMP=1092490132
已交叉检验的 22 对象
RMAN> delete expired archivelog all;
提示输入YES,然后删除;

自动删除归档脚本:
创建一个脚本文件:

vi /home/oracle/scripts/archive_clear.sh
#!/bin/bash
echo *********************begin*****************
source  /home/oracle/.bash_profile
date
export ORACLE_SID=ebank1
$ORACLE_HOME/bin/rman target / <<EOF
crosscheck archivelog all;
list expired backup;
delete  noprompt expired archivelog all;
delete force noprompt archivelog until time 'sysdate - 3';
exit;
EOF
echo *********************end*******************

创建定时任务:

crontab -e
00  04  *  *  *  sh /home/oracle/scripts/archive_clear.sh > /home/oracle/scripts/archive_clear.log

以上为手动和自动删除过期过当日志的方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值