Oracle文件自动“减肥”记

2024-01-06 14:20
文章标签 oracle 自动 减肥

本文主要是介绍Oracle文件自动“减肥”记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

  • 前言
    • 1.归档日志删除
      • 归档概述
      • 定时删除
    • 2.监听日志
      • 监听概述
      • 定时删除
    • 3.告警日志
      • 告警日志述概述
      • 定时删除
    • 4.备份删除
      • 全备脚本
      • 备份删除

前言

日常运维我们会遇到各种Oracle文件过大,导致磁盘爆了,数据库异常Down了,以下分享一些自动处理的脚本给大家。

1.归档日志删除

归档概述

Oracle 归档日志(Archive Log)是一种用于记录数据库事务日志的技术。它可以将数据库中的更改操作(如插入、更新和删除)记录下来,以便在出现故障时恢复数据。归档日志采用增量方式记录,即每次更改操作后,日志文件会逐步变大.

如果归档的空间满了,就会导致
ORA-00257: archiver error. Connect internal only, until freed.

定时删除

以下脚本为定时删除7天前的归档日志
[root@mesdb1 ~]# su - oracle
[oracle@mesdb1 ~]$ mkdir -p /home/oracle/script
[oracle@mesdb1 ~]$ mkdir -p /home/oracle/arch/log

vi /home/oracle/script/arch_del.sh

export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=mesdb1
dt=`date '+%Y%m%d_%H%M'`
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
rman target / log /home/oracle/arch/log/log_arch_$dt.log  <<EOF
run{ 
allocate channel ch1 type;
allocate channel ch2 type;
crosscheck archivelog all;
sql 'ALTER SYSTEM ARCHIVE LOG CURRENT';
delete expired archivelog all;
delete archivelog until time 'sysdate-7' ;  
release channel ch1;
release channel ch2; 
}  
EOF

0 1 * * * sh /home/oracle/script/arch_del.sh

2.监听日志

监听概述

在oracle 10g时候,只有文本格式的listener.log; 在11.2版本时,由于ADR特性出现了xml/log两种格式的监听日志,xml格式的日志会达到一定大小后自动分片,形成log_1.xml 这种数字序号的文件;log格式的日志会达到一定大小后自动分片,形成log_1.log 这种数字序号的文件.

Oracle11g的新特性自动诊断库(ADR)默认会启用,
监听日志默认以xml方式存放,如果空间占用太大,你可以关闭

建议调整监听参数文件DIAG_ADR_ENABLED_listener = OFF ,
然后reload监听,监听就不会存放为XML文件格式,而是使用10g老的方式。

同时建议在SQLNET.ORA文件中设置参数 DIAG_ADR_ENABLED = OFF
来屏蔽ADR向ALERT写入错误信息(如ORA-609),操作如下:

在listener.ora里面加入如下行:
DIAG_ADR_ENABLED_ LISTENER = OFF 其中LISTENER为监听名

sqlnet.ora加入如下行:
DIAG_ADR_ENABLED = OFF

重启监听:
lsnrctl reload

监听进程的查询,RAC一般使用ASM的监听
ps -ef |grep tnslsnrgrid     12386     1  0  2023 ?        05:00:31 /u01/app/19.0.0/grid/bin/tnslsnr LISTENER -no_crs_notify -inherit
grid     12460     1  0  2023 ?        00:47:24 /u01/app/19.0.0/grid/bin/tnslsnr ASMNET1LSNR_ASM -no_crs_notify -inherit
oracle   70467 68189  0 08:40 pts/2    00:00:00 grep --color=auto tnslsnr

定时删除

监听的位置在如下位置
cd $ORACLE_BASE/diag/tnslsnr/{hostname}
asmnet1lsnr_asm
listener
listener_scan1

crontable -l
0 23 * * * /home/oracle/scirpt/listener_clear.sh > /dev/null 2>&1;

#!/bin/sh
#listener
find /u01/app/grid/diag/tnslsnr/rac1/listener/alert -mtime +7 -name “log_.xml" | xargs rm -rf ;
find /u01/app/grid/diag/tnslsnr/rac1/listener/trace -mtime +7 -name "listener_
.llog” | xargs rm -rf ;
#asmnet1lsnr_asm
find /u01/app/grid/diag/tnslsnr/rac1/asmnet1lsnr_asm/alert -mtime +7 -name “log_.xml" | xargs rm -rf ;
find /u01/app/grid/diag/tnslsnr/rac1/asmnet1lsnr_asm/trace -mtime +7 -name "asmnet1lsnr_asm_
.log” | xargs rm -rf ;

3.告警日志

告警日志述概述

Oracle跟踪文件分为三种类型
1)后台报警日志文件
2)DBWR、LGWR、SMON等后台进程创建的后台跟踪文件
3)连接到Oracle的用户进程(Server Processes)生成的用户跟踪文件

定时删除

这里涉及两个参数:
LONGP_POLICY:默认保留365天的事件与警告。
SHORTP_POLICY:默认保留30天的trace文件或core dump file

[oracle@rac1 ]$ adrci
adrci> show home
ADR Homes:
diag/kfod/mes-all-db1/kfod
diag/rdbms/mesdb/mesdb1
diag/clients/user_oracle/host_314373652_110
adrci> set home diag/rdbms/mesdb/mesdb1

删除一天前的alert log
adrci> PURGE -age 1440 -type ALERT

删除一天前的trace 文件
adrci> PURGE -age 1440 -type TRACE

adrci> show control ##单位是小时

更改 SHORTP_POLICY即可实现保留的日期
adrci> set control (SHORTP_POLICY=360)

清理trace文件(单位分钟,前一天之前的)
adrci> purge -age 1440 -type TRACE
默认情况下当天的trace文件是不能被清理的!

SYS@mesdb1> SELECT * FROM V$DIAG_INFO WHERE NAME = ‘Diag Trace’;

4.备份删除

全备脚本

#!/bin/bash
databaseName='PROD'
baseDir='/usr01/backup/'
backupDate=`date "+%Y-%m-%d"`if [ `whoami` != 'oracle' ];thenecho 必须使用 oracle 用户进行备份,备份停止exit
fiif [ ! -e $baseDir ]
thenecho 备份根 $baseDir 目录不存在,备份停止exit
fibackupDir=$baseDir$backupDate
if [ ! -e $backupDir ];thenmkdir -p $backupDir/arcmkdir -p $backupDir/datamkdir -p $backupDir/ctl
elseecho 备份目录 $backupDir 已存在,备份停止exit
filogFile=$backupDir/backup_log_$backupDate
echo `date` 备份开始
# 要添加 catalog
rman target / log=${logFile} <<EOF
run {allocate channel c1 device type disk ;allocate channel c2 device type disk ;CONFIGURE BACKUP OPTIMIZATION ON;backup as compressed backupset incremental level 0tag '${databaseName}_{backupDate}' filesperset 8format '${backupDir}/data/${databaseName}_data_%U.bak' databaseinclude current controlfile  ;sql 'alter system archive log current';backup current controlfile format '${backupDir}/ctl/${databaseName}_ctl_%U.bak';backup as compressed backupsetskip inaccessiblefilesperset 32format '${backupDir}/arc/${databaseName}_arc_%U.bak'archivelog  all;delete noprompt archivelog  until time = 'sysdate-3';release channel c1;release channel c2;
}
EOF
echo `date` 备份完成 >> $logFile

备份删除

[oracle@mes-all-db1 ~]$ rman target /Recovery Manager: Release 19.0.0.0.0 - Production on Sat Jan 6 10:11:34 2024
Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.connected to target database: MESDB (DBID=3146269603)RMAN> show all;using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name MESDB are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/19.0.0/dbhome_1/dbs/snapcf_mesdb1.f'; # default--备份策略调整,备份保留7天
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

这篇关于Oracle文件自动“减肥”记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/576619

相关文章

JAVA实现Token自动续期机制的示例代码

《JAVA实现Token自动续期机制的示例代码》本文主要介绍了JAVA实现Token自动续期机制的示例代码,通过动态调整会话生命周期平衡安全性与用户体验,解决固定有效期Token带来的风险与不便,感兴... 目录1. 固定有效期Token的内在局限性2. 自动续期机制:兼顾安全与体验的解决方案3. 总结PS

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

Oracle Scheduler任务故障诊断方法实战指南

《OracleScheduler任务故障诊断方法实战指南》Oracle数据库作为企业级应用中最常用的关系型数据库管理系统之一,偶尔会遇到各种故障和问题,:本文主要介绍OracleSchedul... 目录前言一、故障场景:当定时任务突然“消失”二、基础环境诊断:搭建“全局视角”1. 数据库实例与PDB状态2

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

基于Redis自动过期的流处理暂停机制

《基于Redis自动过期的流处理暂停机制》基于Redis自动过期的流处理暂停机制是一种高效、可靠且易于实现的解决方案,防止延时过大的数据影响实时处理自动恢复处理,以避免积压的数据影响实时性,下面就来详... 目录核心思路代码实现1. 初始化Redis连接和键前缀2. 接收数据时检查暂停状态3. 检测到延时过

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

Oracle迁移PostgreSQL隐式类型转换配置指南

《Oracle迁移PostgreSQL隐式类型转换配置指南》Oracle迁移PostgreSQL时因类型差异易引发错误,需通过显式/隐式类型转换、转换关系管理及冲突处理解决,并配合验证测试确保数据一致... 目录一、问题背景二、解决方案1. 显式类型转换2. 隐式转换配置三、维护操作1. 转换关系管理2.