门户网站建设模板下载,承德平台,搜狗网站提交入口,南京免费发布信息网站#x1f4e2;#x1f4e2;#x1f4e2;#x1f4e3;#x1f4e3;#x1f4e3; 哈喽#xff01;大家好#xff0c;我是【IT邦德】#xff0c;江湖人称jeames007#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】#xff01;#x1f61c; 哈喽大家好我是【IT邦德】江湖人称jeames00710余年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天前的归档日志 [rootmesdb1 ~]# su - oracle [oraclemesdb1 ~]$ mkdir -p /home/oracle/script [oraclemesdb1 ~]$ 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_SIDmesdb1
dtdate %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;
}
EOF0 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 --colorauto tnslsnr定时删除 监听的位置在如下位置 cd $ORACLE_BASE/diag/tnslsnr/{hostname} asmnet1lsnr_asm listener listener_scan1 crontable -l 0 23 * * * /home/oracle/scirpt/listener_clear.sh /dev/null 21; #!/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后台报警日志文件 2DBWR、LGWR、SMON等后台进程创建的后台跟踪文件 3连接到Oracle的用户进程(Server Processes)生成的用户跟踪文件 定时删除 这里涉及两个参数 LONGP_POLICY默认保留365天的事件与警告。 SHORTP_POLICY默认保留30天的trace文件或core dump file [oraclerac1 ]$ 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_POLICY360) 清理trace文件单位分钟前一天之前的 adrci purge -age 1440 -type TRACE 默认情况下当天的trace文件是不能被清理的 SYSmesdb1 SELECT * FROM V$DIAG_INFO WHERE NAME ‘Diag Trace’; 4.备份删除
全备脚本
#!/bin/bash
databaseNamePROD
baseDir/usr01/backup/
backupDatedate %Y-%m-%dif [ 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.bakarchivelog all;delete noprompt archivelog until time sysdate-3;release channel c1;release channel c2;
}
EOF
echo date 备份完成 $logFile备份删除
[oraclemes-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 (DBID3146269603)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;