ITPub博客

首页 > 数据库 > Oracle > [20211029]udump磁盘空间暴涨.txt

[20211029]udump磁盘空间暴涨.txt

原创 Oracle 作者:lfree 时间:2021-10-29 08:24:28 0 删除 编辑

[20211029]udump磁盘空间暴涨.txt

--//生产系统,udump磁盘空间暴涨.记录一下诊断与解决过程.

1.环境:
SQL> select * from v$version where rownum=1;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

2.分析:

# du -sm udump/ ; sleep 10 ; du -sm udump/
388697  udump/
388701  udump/
--//10秒增加388701-388697 = 4M.
--//10g下udump目录下文件格式是<oracle_sid>_ora_<spid>.trc. 这样以前的也dump也保存在这个文件里面,不能看前面的部分。
--//打开其中一个发现如下内容:
...
WAIT #0: nam='SQL*Net message to client' ela= 0 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1597052889224064
WAIT #0: nam='SQL*Net message from client' ela= 3086 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1597052889331166
=====================
PARSING IN CURSOR #1 len=82 dep=1 uid=0 oct=3 lid=0 tim=1597052889331451 hv=3873422482 ad='a47dba68'
select privilege# from sysauth$ where (grantee#=:1 or grantee#=1) and privilege#>0
END OF STMT
PARSE #1:c=0,e=65,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1597052889331449
BINDS #1:
kkscoacd
 Bind#0
  oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
  oacflg=08 fl2=0001 frm=00 csi=00 siz=24 off=0
  kxsbbbfp=7fdcf3c4d4c0  bln=22  avl=02  flg=05
  value=62
EXEC #1:c=1000,e=172,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1597052889331687
FETCH #1:c=0,e=66,p=0,cr=4,cu=0,mis=0,r=1,dep=1,og=4,tim=1597052889331771
--//感觉是打开10046跟踪。

SQL> oradebug setmypid
Statement processed.

SQL> oradebug eventdump system
10046 trace name CONTEXT level 12, forever

SQL> oradebug eventdump session
10046 trace name CONTEXT level 12, forever

--//可以再次确定某人在系统级别打开10046跟踪。
--//检查alert文件可以确定时间发生在9/29 15:39:08.
# grep -C5 -i "alter system " alert_xxxx.log | grep -C5 10046
kupprdp: master process DM00 started with pid=426, OS id=3378
         to execute - SYS.KUPM$MCP.MAIN('SYS_EXPORT_FULL_02', 'SYS', 'KUPC$C_1_20210929153149', 'KUPC$S_1_20210929153149', 0);
kupprdp: worker process DW01 started with worker id=1, pid=429, OS id=3380
         to execute - SYS.KUPW$WORKER.MAIN('SYS_EXPORT_FULL_02', 'SYS');
Wed Sep 29 15:39:08 2021
OS Pid: 3655 executed alter system set events '10046 trace name context forever, level 12'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Wed Sep 29 15:43:54 2021
WARNING: inbound connection timed out (ORA-3136)
Wed Sep 29 15:43:54 2021
WARNING: inbound connection timed out (ORA-3136)
Wed Sep 29 15:43:54 2021

SQL> alter system set events '10046 trace name context off';
System altered.

--//重新登录检查:
SQL> oradebug setmypid
Statement processed.

SQL> oradebug eventdump session
Statement processed.

SQL> oradebug eventdump system
Statement processed.

--//删除垃圾文件.
# find . -mtime +0  -name "*.trc"  -print | xargs -P10 rm

select * from DBA_AUDIT_TRAIL;
--//10g缺省没有打开审计,无法任何记录。

--//实际上这样还是不行,大量的文件句柄没有释放。空间还是无法回收。
# lsof | grep delete | sort -k7 -nr | head
oracle    30130  oracle    2w      REG                8,3  9503424512   32664042 /u01/app/oracle/admin/xxxx/bdump/xxxx_lns1_30130.trc (deleted)
oracle    28877  oracle    5w      REG                8,3  3274162176   32715899 /u01/app/oracle/admin/xxxx/udump/xxxx_ora_28877.trc (deleted)
oracle    24910  oracle    5w      REG                8,3   522918304   32710401 /u01/app/oracle/admin/xxxx/udump/xxxx_ora_24910.trc (deleted)
oracle    29359  oracle    5w      REG                8,3   394892188   32688562 /u01/app/oracle/admin/xxxx/udump/xxxx_ora_29359.trc (deleted)
oracle    24271  oracle    5w      REG                8,3   254185472   32715859 /u01/app/oracle/admin/xxxx/udump/xxxx_ora_24271.trc (deleted)
oracle    29083  oracle    5w      REG                8,3   241707825   32650091 /u01/app/oracle/admin/xxxx/udump/xxxx_ora_29083.trc (deleted)
oracle    25070  oracle    5w      REG                8,3   237270275   32701512 /u01/app/oracle/admin/xxxx/udump/xxxx_ora_25070.trc (deleted)
oracle    24874  oracle    5w      REG                8,3   188691034   32642091 /u01/app/oracle/admin/xxxx/udump/xxxx_ora_24874.trc (deleted)
oracle    10944  oracle    5w      REG                8,3   188186624   32661146 /u01/app/oracle/admin/xxxx/udump/xxxx_ora_10944.trc (deleted)
oracle    28732  oracle    5w      REG                8,3   186159881   32657692 /u01/app/oracle/admin/xxxx/udump/xxxx_ora_28732.trc (deleted)

--//利用中午的空隙,kill 掉全部用户进程.
# lsof | grep delete | grep xxxx_ora_ | sort -k7 -nr | grep -v lkinstxxxx | awk '{print $2}'| paste -sd, | xargs ps -fp
# lsof | grep delete | grep xxxx_ora_ | sort -k7 -nr | grep -v lkinstxxxx | awk '{print $2}'| paste -sd, | xargs kill -9
or
# lsof | grep delete | grep xxxx_ora_ | sort -k7 -nr | grep -v lkinstxxxx | awk '{print $2}'| xargs -IQ kill -9 Q

--//xxxx_lns1_30130 进程是传输日志的进程.
SYS@xxxx> select * from V$BGPROCESS where name like 'LNS%' and Paddr<>'00';
PADDR              PSERIAL# NAME                 DESCRIPTION                         ERROR
---------------- ---------- -------------------- ------------------------------ ----------
00000000A5BB9F18         89 LNS1                 Network Server 1               0

SYS@xxxx> alter system set log_archive_dest_state_2=defer;
System altered.

SYS@xxxx> alter system archive log current;
System altered.

$ ps -ef | grep ln[s]
--//这样对应的lns进程消失了.

SYS@xxxx> SYS@xxxx> alter system set log_archive_dest_state_2=enable ;
System altered.

SYS@xxxx> alter system archive log current;
System altered.

$ ps -ef | grep ln[s]
oracle   11882     1  0 15:59 ?        00:00:00 ora_lns1_xxxx
--//再次启动,这样磁盘空间就可以回收了.
--//整个过程并不复杂,但是浪费了一个上午时间.

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2839615/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7969784