ITPub博客

首页 > 数据库 > Oracle > [20241115]gdb检查选择进程注意.txt

[20241115]gdb检查选择进程注意.txt

原创 Oracle 作者:lfree 时间:2024-11-16 20:53:41 0 删除 编辑

[20241115]gdb检查选择进程注意.txt

--//前一段时间写ext_kglob.sh脚本,选择ora_dbw0_<sid>进程有点不妥.
--//通过演示说明问题:

1.环境:
SCOTT@book01p> @ver2
==============================
PORT_STRING                   : x86_64/Linux 2.4.xx
VERSION                       : 21.0.0.0.0
BANNER                        : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
BANNER_FULL                   : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
BANNER_LEGACY                 : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
CON_ID                        : 0
PL/SQL procedure successfully completed.

2.测试:
$ ps -ef| grep ora_dbw[0]
oracle    2761     1  0 08:13 ?        00:00:00 ora_dbw0_book

--//window 1:
$ rlgdb -f -p 2761
Loaded symbols for /u01/app/oracle/product/21.0.0/dbhome_1/lib/libshpkavx2.so
0x00007f90f45fcfca in semtimedop () at ../sysdeps/unix/syscall-template.S:81
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/src/debug/glibc-2.17-c758a686/sysdeps/unix/syscall-template.S:81:3374:beg:0x7f90f45fcfca
(gdb)

--//开始我一直没注意下划线内容.实际如果你使用gdb检查普通用户进程是看不见类似内容的.

--//以sys用户登录.执行:
--//session 1:
SYS@book> alter system checkpoint ;

--//挂起..
SYS@book> @ ashtop event,p1raw,p1,p3raw 1=1 &30s
    Total                                                                                                                                Distinct Distinct    Distinct
  Seconds     AAS %This   EVENT                          P1RAW             P1 P3RAW            FIRST_SEEN          LAST_SEEN           Execs Seen  Tstamps Execs Seen1
--------- ------- ------- ------------------------------ ---------------- --- ---------------- ------------------- ------------------- ---------- -------- -----------
       30     1.0   77% | DLM cross inst call completion 0000000000000001   1 0000000000000008 2024-11-15 08:38:06 2024-11-15 08:38:35          1       30          30
        4      .1   10% |                                                 300                  2024-11-15 08:38:12 2024-11-15 08:38:24          1        4           4
        2      .1    5% |                                                   3                  2024-11-15 08:38:06 2024-11-15 08:38:13          1        2           2
        2      .1    5% |                                                 100                  2024-11-15 08:38:12 2024-11-15 08:38:16          1        2           2
        1      .0    3% |                                                  20                  2024-11-15 08:38:20 2024-11-15 08:38:20          1        1           1

--//window 1,按c继续:
(gdb) c
Continuing.

--//session 1:
SYS@book> alter system checkpoint ;
System altered.

--//也就是选择ora_dbw0_<sid>进程有点不妥,可能影响正常的业务.必须选择1个后台进程,不大可能影响正常的业务.

SYS@book> @ bgkill mmon
      INDX KSUPRPNM                       PROCESS_FLAG      KSUPRPID
---------- ------------------------------ ----------------- ------------------------
        29 oracle@centtest (MMON)                         2 2791

--//我也不知道该选择那个后台进程.最终选择mmon,kill该进程可以再次生成.

$ ps -ef | grep mmo[n]
oracle    2791     1  0 08:13 ?        00:00:03 ora_mmon_book

$ kill -9 2791

$ ps -ef | grep mmo[n]

--//等上一小会发现可以再次建立mmon进程.
$ ps -ef | grep mmo[n]
oracle    4177     1  6 08:52 ?        00:00:00 ora_mmon_book
--//进程号已经变化.

--//alert*.log出现如下信息:
Restarting dead background process MMON
Starting background process MMON
2024-11-15T08:52:02.740413+08:00
MMON started with pid=29, OS id=4177

3.附上bgkill.sql脚本:

$ cat bgkill.sql
column KSUPRPNM format a30
SELECT indx,ksuprpnm,TO_CHAR(ksuprflg,'XXXXXXXXXXXXXXXX') process_flag,KSUPRPID
FROM x$ksupr
WHERE BITAND(ksuprflg,4) != 4 and KSUPRPID is not null  and ksuprpnm like upper('%&&1%')
ORDER BY indx ;

--//该脚本用来确定后台进程是否可以kill.

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

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

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7969378