oracle rac环境归档日志清除
•
数据库
文章目录
-
-
-
- 一、处理步骤
- 1、使用终端登录上服务器查看磁盘使用状态
- 2、使用恢复备份管理工具RMAN删除归档日志
- 二、详细操作步骤
- 三、定时任务自动清归档日志
-
- 1、编写删除脚本
- 4、测试脚本运行情况
- 5、设置定时任务每周执行一次,并测试运行效果
-
-
昨天单位的所有系统都连不上数据库了,电话已经被打爆了。我一看原来是归档日志满了,心里对着服务商就是一顿输出,竟然都不做日志管理。处理完了这些问题后我又打电话训斥一顿服务商。
oracle 数据库rac环境归档日志满了处理方法
报错如下 ORA-00257: archiver error, Connect internal only, until freed.

一、处理步骤
1、使用终端登录上服务器查看磁盘使用状态
可以看出可用空间只有一百多MB了,所以拒绝连接了。
[root@rac1 ~]# su - grid grid@+ASM1:/home/grid$ asmcmd lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 409600 127 0 127 0 N ARCH/ MOUNTED EXTERN N 512 4096 1048576 1662976 997139 0 997139 0 N DATA/ MOUNTED NORMAL N 512 4096 1048576 30720 29794 10240 9777 0 Y OCRDG/
2、使用恢复备份管理工具RMAN删除归档日志
使用rman工具 执行 删除七天前的归档日志
delete archivelog until time “sysdate-7”;
[root@rac1 ~]# su - oracle Password: oracle@orcl1:/home/oracle$rman target / Recovery Manager: Release 11.2.0.4.0 - Production on Thu Nov 23 15:08:28 2023 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1556520972) RMAN> delete archivelog until time "sysdate-7";
二、详细操作步骤
[root@rac1 ~]# su - grid grid@+ASM1:/home/grid$ asmcmd lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 409600 127 0 127 0 N ARCH/ MOUNTED EXTERN N 512 4096 1048576 1662976 997139 0 997139 0 N DATA/ MOUNTED NORMAL N 512 4096 1048576 30720 29794 10240 9777 0 Y OCRDG/ [root@rac1 ~]# su - oracle Password: oracle@orcl1:/home/oracle$rman target / Recovery Manager: Release 11.2.0.4.0 - Production on Thu Nov 23 15:08:28 2023 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1556520972) RMAN> delete archivelog until time "sysdate-7"; using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=2721 instance=orcl1 device type=DISK archived log file name=+ARCH/orcl/archivelog/2023_10_27/thread_2_seq_47051.1200.1151356777 RECID=94019 STAMP=1151356777 deleted archived log archived log file name=+ARCH/orcl/archivelog/2023_10_28/thread_2_seq_47052.405.1151370003 RECID=94020 STAMP=1151370004 deleted archived log archived log file name=+ARCH/orcl/archivelog/2023_10_28/thread_2_seq_47053.1371.1151370013 RECID=94021 STAMP=1151370014 deleted archived log .............. #省略太多记录。。。。。。 .............. RMAN>exit [root@rac1 ~]# su - grid Password: grid@+ASM1:/home/grid$asmcmd lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 409600 372336 0 372336 0 N ARCH/ MOUNTED EXTERN N 512 4096 1048576 1662976 997139 0 997139 0 N DATA/ MOUNTED NORMAL N 512 4096 1048576 30720 29794 10240 9777 0 Y OCRDG/ grid@+ASM1:/home/grid$
三、定时任务自动清归档日志
为了更好的改善使用体验,我们可以使用shell脚本编写定时任务自动清除归档日志
1、编写删除脚本
mkdir /root/delOracleLog mkdir /root/delOracleLog/log cd /root/delOracleLog chmod 777 /root/delOracleLog -R vi del_ora_log.rman
文件内容如下
crosscheck archivelog all; delete noprompt expired archivelog all; delete noprompt archivelog until time 'sysdate-20'; #清理20天之前的日志 exit;
2、编写shell脚本
vi /home/oracle/delOracleLog/del_oracle_log.sh
#! /bin/bash
dt=`date +%Y%m%d`
rman target=/ cmdfile=/root/delOracleLog/del_ora_log.rman log=/root/delOracleLog/log/del_ora_log_${dt}.log 2>&1
4、测试脚本运行情况
[root@rac2 delOracleLog]# su - oracle -c /root/delOracleLog/del_oracle_log.sh RMAN> 2> 3> 4> [root@rac2 delOracleLog]# cat ./log/del_ora_log_20231124.log Recovery Manager: Release 11.2.0.4.0 - Production on Fri Nov 24 08:53:53 2023 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1556520972) RMAN> crosscheck archivelog all; 2> delete noprompt expired archivelog all; 3> delete noprompt archivelog until time 'sysdate-20'; #清理20天之前日志 exit; 4> using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=2852 instance=orcl2 device type=DISK specification does not match any archived log in the repository Recovery Manager complete.
5、设置定时任务每周执行一次,并测试运行效果
crontab -e
设置为每周五 9点25执行一次。【测试效果用实际情况建议夜间运行】:
25 9 * * 5 su - oracle -c /root/delOracleLog/del_oracle_log.sh
启动定时任务
service crond start
测试定时任务运行效果
[root@rac2 delOracleLog]# pwd /root/delOracleLog [root@rac2 delOracleLog]# ll ./log/ 总用量 4 -rw-r--r--. 1 oracle oinstall 621 11月 24 09:25 del_ora_log_20231124.log [root@rac2 delOracleLog]# cat ./log/del_ora_log_20231124.log Recovery Manager: Release 11.2.0.4.0 - Production on Fri Nov 24 09:25:01 2023 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1556520972) RMAN> crosscheck archivelog all; 2> delete noprompt expired archivelog all; 3> delete noprompt archivelog until time 'sysdate-20'; #清理20天之前日志 exit; 4> using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=3010 instance=orcl2 device type=DISK specification does not match any archived log in the repository Recovery Manager complete. [root@rac2 delOracleLog]#
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/a4f6e7a1a4.html
