在Oracle的ADR中设置自动删除trace文件的策略

简介: 姚远在一个有两万个客户的公司做数据库支持,什么稀奇古怪的事情都能遇到,有个客户的数据库不停地产生大量的trace,经常把硬盘撑爆,看看姚远怎么解决这个问题的。

姚远在一个有两万个客户的公司做数据库支持,什么稀奇古怪的事情都能遇到,有个客户的数据库不停地产生大量的trace,经常把硬盘撑爆,看看姚远怎么解决这个问题的。


trace文件的命令规则是,前端:实例名_ora_进程号.trc,对于后台进程,就把ora换成进程名。根据进程号和时间点分析,这些trace文件是每天凌晨3点30时的合成增量备份的rman进程产生的,Oracle的metelink网站给出了解决方法,参见Document 29061016.8,打补丁即可解决。

Bug 29061016 - huge tracefile generated by rman incremental backups with kcbtse structure (Doc ID 29061016.8) Oracle Support

但客户申请对生产系统打补丁的流程很长,目前短期内只能保守治疗,手工删除trace文件。姚远推荐客户可以在adrci中删除,例如一天内的trace文件都删除掉:


adrci> purge -age 3600 -type trace

最好设置自动删除策略,先查询一下默认的设置





adrci> show homeADR Homes: diag/rdbms/small/smalldiag/rdbms/orcl1/orcl1diag/rdbms/aurreum/aurreumdiag/rdbms/orcl/orcldiag/clients/user_oracle/host_3498212516_110diag/tnslsnr/dell/listener1adrci> set home diag/rdbms/small/smalladrci> show control
ADR Home = /u01/app/oracle/diag/rdbms/small/small:*************************************************************************ADRID                SHORTP_POLICY        LONGP_POLICY         LAST_MOD_TIME                            LAST_AUTOPRG_TIME                        LAST_MANUPRG_TIME                        ADRDIR_VERSION       ADRSCHM_VERSION      ADRSCHMV_SUMMARY     ADRALERT_VERSION     CREATE_TIME                              SIZEP_POLICY         PURGE_PERIOD         FLAGS                PURGE_THRESHOLD      -------------------- -------------------- -------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- -------------------- -------------------- -------------------- -------------------- ---------------------------------------- -------------------- -------------------- -------------------- -------------------- 114559742            720                  8760                 2021-06-25 11:56:19.334671 +08:00        2022-08-05 12:21:51.844023 +08:00                                                 1                    2                    110                  1                    2021-06-25 11:56:19.334671 +08:00        18446744073709551615 0                    0                    95                  1 row fetched
  • SHORTP_POLICY是720,单位小时,表示一个月,用于Incident and health monitor warnings
  • LONGP_POLICY是8760,单位小时,表示1年,用于 trace and core dump files
  • LAST_AUTOPRG_TIME 上次自动删除的时间
  • LAST_MANUPRG_TIME为空,表示没有手动删除过

下面的命令都设置成3天72小时,或者一周168小时。





adrci> set control (SHORTP_POLICY=168)adrci> set control (LONGP_POLICY=168)adrci> show control
ADR Home = /u01/app/oracle/diag/rdbms/small/small:*************************************************************************ADRID                SHORTP_POLICY        LONGP_POLICY         LAST_MOD_TIME                            LAST_AUTOPRG_TIME                        LAST_MANUPRG_TIME                        ADRDIR_VERSION       ADRSCHM_VERSION      ADRSCHMV_SUMMARY     ADRALERT_VERSION     CREATE_TIME                              SIZEP_POLICY         PURGE_PERIOD         FLAGS                PURGE_THRESHOLD      -------------------- -------------------- -------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- -------------------- -------------------- -------------------- -------------------- ---------------------------------------- -------------------- -------------------- -------------------- -------------------- 114559742            168                  168                  2022-08-05 15:47:32.029723 +08:00        2022-08-05 12:21:51.844023 +08:00                                                 1                    2                    110                  1                    2021-06-25 11:56:19.334671 +08:00        18446744073709551615 0                    0                    95                  1 row fetched

运行下面的purge命令,发现LAST_MANUPRG_TIME时间已经有了,trace文件被删除掉了。




adrci> purgeadrci> show control
ADR Home = /u01/app/oracle/diag/rdbms/small/small:*************************************************************************ADRID                SHORTP_POLICY        LONGP_POLICY         LAST_MOD_TIME                            LAST_AUTOPRG_TIME                        LAST_MANUPRG_TIME                        ADRDIR_VERSION       ADRSCHM_VERSION      ADRSCHMV_SUMMARY     ADRALERT_VERSION     CREATE_TIME                              SIZEP_POLICY         PURGE_PERIOD         FLAGS                PURGE_THRESHOLD      -------------------- -------------------- -------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- -------------------- -------------------- -------------------- -------------------- ---------------------------------------- -------------------- -------------------- -------------------- -------------------- 114559742            168                  168                  2022-08-05 15:47:32.029723 +08:00        2022-08-05 12:21:51.844023 +08:00        2022-08-05 15:48:43.927238 +08:00        1                    2                    110                  1                    2021-06-25 11:56:19.334671 +08:00        18446744073709551615 0                    0                    95                  1 row fetched

姚远提供一个脚本,可以对不同的ADR Home批量进行设置



#!/bin/shfor ADRHOME in `adrci exec="show home"`do    if [$ADRHOME ="ADR" -o $ADRHOME = "Homes:"]      then        continue;    fi    echo $ADRHOME    adrci<<EOF      set home $ADRHOME      set control (SHORTP_POLICY=168)      set control (LONGP_POLICY=168)      purge    exitEOFdone
相关文章
|
2月前
|
存储 Oracle NoSQL
Oracle 表空间、数据文件、schema的关系
Oracle 表空间、数据文件、schema的关系
41 2
|
1月前
|
XML Java 数据库连接
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
11 0
|
4月前
|
Oracle 关系型数据库 Linux
Oracle设置监听之Navicat的锅
Oracle设置监听之Navicat的锅
32 0
|
8天前
|
运维 Oracle 安全
Oracle的三重奏:密码文件、警告文件与跟踪文件
【4月更文挑战第19天】Oracle数据库的三大守护者:密码文件保护系统免受未经授权访问,如同宝藏的“密码锁”;警告文件似“哨兵”,记录错误信息,助于及时解决问题;跟踪文件扮演“侦探”角色,详尽记录操作,便于性能优化和故障排查。这三份文件共同确保数据王国的安全与稳定。作为管理员,重视并善用它们是关键。
|
8天前
|
运维 Oracle 关系型数据库
Oracle日志文件:数据王国的“记事本”
【4月更文挑战第19天】Oracle日志文件是数据库稳定运行的关键,记录数据变更历史,用于恢复和故障处理。它们协调并发操作,确保数据一致性和完整性。日志文件实时写入操作信息并定期刷新到磁盘,便于数据恢复。然而,日志文件需备份和归档以保证安全性,防止数据丢失。日志文件,数据王国的“记事本”,默默守护数据安全。
|
5月前
|
Oracle Java 关系型数据库
oracle实现主键自增长及自动生成策略
oracle实现主键自增长及自动生成策略
205 0
|
3月前
|
SQL 存储 Oracle
oracle如何定期备份数据库sql文件
【1月更文挑战第7天】oracle如何定期备份数据库sql文件
58 8
|
4月前
|
Oracle 关系型数据库 数据库
这个问题可能是由于Flink在尝试获取Oracle的预览数据时,没有找到启动标志文件
这个问题可能是由于Flink在尝试获取Oracle的预览数据时,没有找到启动标志文件
43 1
|
4月前
|
SQL Oracle 关系型数据库
Oracle - Spool导出数据到TXT文件
Oracle - Spool导出数据到TXT文件
52 0
|
3月前
|
Oracle 关系型数据库
【Oracle】sqlplus 复制数据文件时出现拒绝访问
【Oracle】sqlplus 复制数据文件时出现拒绝访问

推荐镜像

更多