如何删除大量oracle中的小trace文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何删除大量oracle中的小trace文件相关的知识,希望对你有一定的参考价值。

要先看看数据库的alert日志,有没有错误。所有dump目录下的trace文件大部分是错误补充文件,如果alert日志没什么问题,那么直接操作系统级别删除就行。不过我说的是各个dump目录下的,比如adump,bdump,cdump下的,如果是其他目录下的我不知道,是什么文件。不过个人建议,可以保留一部分(10-15内生成的),毕竟这东西很小不占用什么空间,没准哪天查什么错误或者问题用到。 参考技术A 删除大量的oracle的trace文件需要写shell脚本。

比如删除一个月前的trace文件
find /u01/app/oracle/diag/rdbms/testgg1/testgg1/trace -mtime +30 -type f -name "*" -exec rm -rf \;

可以写成shell脚本如下:
[oracle@Primary shell]$ vi delete_trace.sh
#! /bin/sh

export ORACLE_SID=testgg1
VALUE=`sqlplus -S "/ as sysdba" << EOF_SQLPLus
set pagesize 0 feedback off verify off heading off echo off
select value from v\\\$diag_info where name='Diag Trace';
exit;
END`

find $VALUE -mtime +30 -type f -name "*" -exec rm -rf \;
~
配合crontab自动删除一个月前的trace文件,由于某些数据库可能会产生trace文件比较多如果没有及时去清理这些无效的trace文件,很容易导致空间暴涨,做一个job自动去删除,免去了DBA的烦恼。

Shell可以在DBA的运维过程中带来了很多的方便,目前正在学习shell,谨以此纪录并提高自己
参考技术B set trace off

Hadoop HDFS处理大量的小文件

参考技术A 小文件是指文件大小明显小于HDFS上块(block)大小(默认64MB)的文件。如果存储小文件,必定会有大量这样的小文件,否则你也不会使用Hadoop(If you’re storing small files, then you probably have lots of them

(otherwise you wouldn’t turn to Hadoop)),这样的文件给hadoop的扩展性和性能带来严重问题。当一个文件的大小小于HDFS的块大小(默认64MB),就将认定为小文件否则就是大文件。为了检测输入文件的大小,可以浏览Hadoop DFS 主页 http://machinename:50070/dfshealth.jsp ,并点击Browse filesystem(浏览文件系统)。

首先,在HDFS中,任何一个文件,目录或者block在NameNode节点的内存中均以一个对象表示(元数据)(Every file, directory and block in HDFS is represented as an object in the namenode’s memory),而这受到NameNode物理内存容量的限制。每个元数据对象约占150byte,所以如果有1千万个小文件,每个文件占用一个block,则NameNode大约需要15G空间。如果存储1亿个文件,则NameNode需要150G空间,这毫无疑问1亿个小文件是不可取的。

其次,处理小文件并非Hadoop的设计目标,HDFS的设计目标是流式访问大数据集(TB级别)。因而,在HDFS中存储大量小文件是很低效的。访问大量小文件经常会导致大量的寻找,以及不断的从一个DatanNde跳到另一个DataNode去检索小文件(Reading through small files normally causes lots of seeks and lots of hopping from datanode to datanode to retrieve each small file),这都不是一个很有效的访问模式,严重影响性能。

最后,处理大量小文件速度远远小于处理同等大小的大文件的速度。每一个小文件要占用一个slot,而task启动将耗费大量时间甚至大部分时间都耗费在启动task和释放task上。

Hadoop存档文件系统通常将HDFS中的多个文件打包成一个存档文件,减少namenode内存的使用

hadoop archive命令创建HAR文件

from:https://blog.csdn.net/sunnyyoona/article/details/53870077

以上是关于如何删除大量oracle中的小trace文件的主要内容,如果未能解决你的问题,请参考以下文章

重要文件被误删如何恢复?找回数据的小技巧

oracle 如何恢复误删的表记录数据

ORACLE中trace文件夹下面的文件可以删除么

[Oracle]如何查看 10046 trace 中的 tim= ... 的具体时刻

oracle audit,如何审计ORACLE日志

oracle怎样恢复删除的数据文件