可能很多朋友都遇到过这样的情况,在UNIX/Linux上定期清理Oracle日志文件夹时可能删除到仍被后台进程open着的trace文件,即某些后台进程一直持有着这些”被已经误删了的“打开文件的描述符(fd),这种情况下文件系统上该文件实际占用的空间是不会被释放的,这就造成使用df命令查看文件系统剩余空间和用du命令查看文件夹空间使用量时数值不一致的问题。此外因为是后台进程持有这些打开文件描述符,所以我们无法像kill服务进程一样来解决该问题(部分后台进程是可以kill的,不建议这样做)。oradebug是sqlplus中威力强大的debug命令,我们可以通过该命令发起多种trace/dump,其中也包括了close_trace事件;close_trace事件可以让指定进程关闭其正持有的trace文件。

下面我们就来演示下相关操作:

[maclean@rh2 ~]$ ps -ef|grep ora_|grep -v grep

maclean   7281     1  0 16:35 ?        00:00:00 ora_pmon_PROD

maclean   7283     1  0 16:35 ?        00:00:00 ora_psp0_PROD

maclean   7285     1  0 16:35 ?        00:00:00 ora_mman_PROD

maclean   7287     1  0 16:35 ?        00:00:00 ora_dbw0_PROD

maclean   7289     1  0 16:35 ?        00:00:00 ora_lgwr_PROD

maclean   7291     1  0 16:35 ?        00:00:00 ora_ckpt_PROD

maclean   7293     1  0 16:35 ?        00:00:00 ora_smon_PROD

maclean   7295     1  0 16:35 ?        00:00:00 ora_reco_PROD

maclean   7297     1  0 16:35 ?        00:00:00 ora_cjq0_PROD

maclean   7299     1  0 16:35 ?        00:00:00 ora_mmon_PROD

maclean   7301     1  0 16:35 ?        00:00:00 ora_mmnl_PROD

maclean   7303     1  0 16:35 ?        00:00:00 ora_d000_PROD

maclean   7305     1  0 16:35 ?        00:00:00 ora_s000_PROD

maclean   7313     1  0 16:35 ?        00:00:00 ora_qmnc_PROD

maclean   7430     1  0 16:35 ?        00:00:00 ora_q000_PROD

maclean   7438     1  0 16:36 ?        00:00:00 ora_q001_PROD

/* lgwr是著名的Oracle后台进程,在这个启动的实例中其系统进程号为7289*/

[maclean@rh2 ~]$ ls -l /proc/7289/fd        /* linux上的proc文件系统可以很方便我们探测进程信息*/

total 0

lr-x------ 1 maclean oinstall 64 Jul 26 16:38 0 -> /dev/null

lr-x------ 1 maclean oinstall 64 Jul 26 16:38 1 -> /dev/null

lr-x------ 1 maclean oinstall 64 Jul 26 16:38 10 -> /dev/zero

lr-x------ 1 maclean oinstall 64 Jul 26 16:38 11 -> /dev/zero

lr-x------ 1 maclean oinstall 64 Jul 26 16:38 12 -> /s01/rac10g/rdbms/mesg/oraus.msb

lrwx------ 1 maclean oinstall 64 Jul 26 16:38 13 -> /s01/rac10g/dbs/hc_PROD.dat

lrwx------ 1 maclean oinstall 64 Jul 26 16:38 14 -> /s01/rac10g/dbs/lkPROD

lrwx------ 1 maclean oinstall 64 Jul 26 16:38 15 -> /s01/rac10g/oradata/PROD/controlfile/o1_mf_64q6xphj_.ctl

lrwx------ 1 maclean oinstall 64 Jul 26 16:38 16 -> /s01/rac10g/flash_recovery_area/PROD/controlfile/o1_mf_64q6xpms_.ctl

lrwx------ 1 maclean oinstall 64 Jul 26 16:38 17 -> /s01/rac10g/oradata/PROD/onlinelog/o1_mf_1_64q6xrsr_.log

lrwx------ 1 maclean oinstall 64 Jul 26 16:38 18 -> /s01/rac10g/flash_recovery_area/PROD/onlinelog/o1_mf_1_64q6xsoy_.log

lrwx------ 1 maclean oinstall 64 Jul 26 16:38 19 -> /s01/rac10g/oradata/PROD/onlinelog/o1_mf_2_64q6xths_.log

l-wx------ 1 maclean oinstall 64 Jul 26 16:38 2 -> /s01/rac10g/admin/PROD/bdump/prod_lgwr_7289.trc

lrwx------ 1 maclean oinstall 64 Jul 26 16:38 20 -> /s01/rac10g/flash_recovery_area/PROD/onlinelog/o1_mf_2_64q6xv9o_.log

lrwx------ 1 maclean oinstall 64 Jul 26 16:38 21 -> /s01/rac10g/oradata/PROD/onlinelog/o1_mf_3_64q6xw1b_.log

lrwx------ 1 maclean oinstall 64 Jul 26 16:38 22 -> /s01/rac10g/flash_recovery_area/PROD/onlinelog/o1_mf_3_64q6xwv0_.log

lrwx------ 1 maclean oinstall 64 Jul 26 16:38 23 -> /s01/rac10g/oradata/PROD/datafile/o1_mf_system_64q6wd5j_.dbf

lrwx------ 1 maclean oinstall 64 Jul 26 16:38 24 -> /s01/rac10g/oradata/PROD/datafile/o1_mf_undotbs1_64q6wd7f_.dbf

lrwx------ 1 maclean oinstall 64 Jul 26 16:38 25 -> /s01/rac10g/oradata/PROD/datafile/o1_mf_sysaux_64q6wd5m_.dbf

lrwx------ 1 maclean oinstall 64 Jul 26 16:38 26 -> /s01/rac10g/oradata/PROD/datafile/o1_mf_users_64q6wd89_.dbf

lrwx------ 1 maclean oinstall 64 Jul 26 16:38 27 -> /s01/rac10g/oradata/PROD/datafile/o1_mf_temp_64q6xyox_.tmp

lr-x------ 1 maclean oinstall 64 Jul 26 16:38 28 -> /s01/rac10g/rdbms/mesg/oraus.msb

lr-x------ 1 maclean oinstall 64 Jul 26 16:38 3 -> /dev/null

lr-x------ 1 maclean oinstall 64 Jul 26 16:38 4 -> /dev/null

l-wx------ 1 maclean oinstall 64 Jul 26 16:38 5 -> /s01/rac10g/admin/PROD/udump/prod_ora_7279.trc

l-wx------ 1 maclean oinstall 64 Jul 26 16:38 6 -> /s01/rac10g/admin/PROD/bdump/alert_PROD.log

lrwx------ 1 maclean oinstall 64 Jul 26 16:38 7 -> /s01/rac10g/dbs/lkinstPROD (deleted)

lrwx------ 1 maclean oinstall 64 Jul 26 16:38 8 -> /s01/rac10g/dbs/hc_PROD.dat

l-wx------ 1 maclean oinstall 64 Jul 26 16:38 9 -> /s01/rac10g/admin/PROD/bdump/alert_PROD.log

/*可以看到lgwr进程相关trace文件为/s01/rac10g/admin/PROD/bdump/prod_lgwr_7289.trc,对应打开文件描述符为2*/

[maclean@rh2 ~]$ ls -lh /s01/rac10g/admin/PROD/bdump/prod_lgwr_7289.trc

-rw-r----- 1 maclean oinstall 1.7M Jul 26 16:37 /s01/rac10g/admin/PROD/bdump/prod_lgwr_7289.trc

[maclean@rh2 ~]$ rm -f /s01/rac10g/admin/PROD/bdump/prod_lgwr_7289.trc

/*尝试删除该trace文件*/

[maclean@rh2 ~]$ ls -l /proc/7289/fd|grep lgwr

l-wx------ 1 maclean oinstall 64 Jul 26 16:38 2 -> /s01/rac10g/admin/PROD/bdump/prod_lgwr_7289.trc (deleted)

/*文件已处在deleted状态,但lgwr进程仍持有该文件相关的文件描述符,这个时候该文件占有的空间并不会被释放*/

[maclean@rh2 ~]$ lsof|grep lgwr

oracle 7289   maclean    2w   REG 8,2   1702391 3867134 /s01/rac10g/admin/PROD/bdump/prod_lgwr_7289.trc (deleted)

[maclean@rh2 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Mon Jul 26 17:03:04 2010

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> oradebug setospid 7289;

Oracle pid: 6, Unix process pid: 7289, image: oracle@rh2 (LGWR)

SQL> oradebug flush;             /*写出trace buffer内容到trace文件*/

Statement processed.

SQL> oradebug close_trace;

Statement processed.

/*close_trace能够释放指定Oracle进程正打开着的文件,To close the current trace file use*/

SQL> host

[maclean@rh2 ~]$ lsof|grep lgwr

[maclean@rh2 ~]$ ls -l /proc/7289/fd/|grep lgwr

[maclean@rh2 ~]$

/* 从进程相关的fd文件夹中查找不到原来的trace文件;close_trace命令成功释放了该文件,并回收了磁盘空间。*/

oracle使用sql关闭trace日志,Linux清理Oracle日志巧用close_trace命令释放误删trace文件...相关推荐

  1. 巧用close_trace命令释放误删trace文件

    可能很多朋友都遇到过这样的情况,在UNIX/Linux上定期清理Oracle日志文件夹时可能删除到仍被后台进程open着的trace文件,即某些后台进程一直持有着这些"被已经误删了的&quo ...

  2. linux清理备份日志,服务器日志清理备份

    "历史上的今天"有没有API接口的功能想添加一个历史上今天功能.人生就像一张有去无回的单程车票,没有彩排,每一场都是现场直播,把握好每次演出便是对人生最好的珍惜.? <历史上 ...

  3. ftp文件服务器登录日志,linux ftp服务器日志

    linux ftp服务器日志 内容精选 换一换 为加强对系统数据的容灾管理,云堡垒机支持配置日志备份,提高审计数据安全性和系统可扩展性.本小节主要介绍如何在系统配置FTP/SFTP服务器参数,将日志远 ...

  4. oracle安装 衍生进程已退出,linux安装oracle 出现问题

    linux安装oracle 出现问题0 出现错误以后, 图片已经插入 请看,然后 我查过资料,说要安装 binutils-2.15.92.0.2-13.0.0.0.2.x86_64.rpm 但是我安装 ...

  5. linux oracle 删除为空的dbf,Linux上Oracle误删除一个没有用的dbf表空间文件

    在Linux下面安装好Oracle只有,Linux 下面就会有一个Oracle用户,Linux上Oracle误删除一个没有用的dbf表空间文件,导致数据库连接 在Linux下面安装好Oracle只有, ...

  6. linux zip压缩包大小,Linux中巧用zip命令压缩和解压缩文件

    在Windows中,我们用得最多的解压缩软件就是WinRAR了,这个软件对我们实现解压缩非常方便.但是如果在Linux系统中,我们还可以尝试用命令来实现对文件的解压缩,这篇文章主要介绍在Linux中用 ...

  7. linux清理log日志文件

    需要清理的场景: 1.linux会自动记录日志,日志文件中包含用户的所有操作.这样虽然可以方便用户查找相关bug,但是也导致的日志文件所占据的空间越来越大.在系统能够正常满足用户使用的条件下,清理日志 ...

  8. Linux系统查看oracle日志,Linux 查询oracle错误日志警告日志

    Java学习基础2 运算符: ++:  int a = 4;  int b = a++;    ++在后:先运算在递增1   输出:a=5  b=4;    int b = ++a;    ++在前: ...

  9. Linux清理Log日志,释放自增长的log文件

    1.使用df查看磁盘使用情况 Size容量  used已用  avail可用  use%已用%  mounted on挂载点 2.若某个目录的空间使用过高,可使用"cd  /目录名" ...

最新文章

  1. VMware Workstation Pro 16 安装教程
  2. 阻止a链接跳转方法总结
  3. 虚拟专题:知识图谱 | 流程工业控制系统的知识图谱构建
  4. 存储过程批量执行脚本
  5. linux开源视频播放器_什么定义了Linux的顶级开源音乐播放器?
  6. MogDB/openGauss 生态工具-MTK(Migration ToolKit) 数据库迁移
  7. 电脑k歌软件_别否认!你就是在K歌软件里偷偷出道的年轻人
  8. MySql中 DELIMITER
  9. Git与GitHub学习笔记(一)如何删除github里面的文件夹?
  10. cadz轴归零命令_CAD的Z轴归零的插件分享
  11. 谷歌翻译突然用不了了
  12. wps加载失败模板文件损坏_Normal模板异常损坏的修复方法
  13. html5直播礼物动画,GitHub - General757/giftanim: 直播礼物动画 送赞送礼物动画 仿映客礼物动画侧栏弹出送花人和礼物以及x1 x2 x3效果,支持队列 排序...
  14. linux 有道 离线词典,有道词典离线版
  15. Java实现 LeetCode 134 加油站
  16. javafx自定义分页控件的实现
  17. 2018金山wps暑期招聘服务器端笔试题(第二批)
  18. CANopen协议解读
  19. ping网站服务器,ping命令的作用,ping真能检测出服务器的快慢吗??
  20. Python中yield的简单理解

热门文章

  1. 2022年贵州省高新技术企业认定奖励补贴及申报条件
  2. 史上最全WindowsMac系统各种快捷键大全(1000余个)
  3. JavaScript 专题(九)数组中查找指定元素
  4. Java毕设项目藏宝阁游戏交易系统(java+VUE+Mybatis+Maven+Mysql)
  5. elasticsearch搭建与java应用实例
  6. 「Java基础」范型
  7. 浅谈解析库XPath,bs4和pyquery
  8. Henry前端笔记之 Node及npm相关
  9. 史上最详细springboot vue UEditor整合(包括遇到的各种坑)
  10. 生产任务分配问题 matlab+lingo