暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

数据库无法登录了怎么办,怎么收集数据库当前信息

原创 黑獭 2025-02-11
210

数据库无法登录了怎么办,怎么收集数据库当前信息

如何在在无法登录oracle的情况下收集 Systemstate ,某些情况下,我们的数据库无法通过sqlplus 进行连接,这个时候想要生成 systemstate 怎么办?

我们可以通过gdb的方式生成数据库的systemstate,下面是演示步骤:

第一步:找到相应的进程
首先:转储 systemstate 的函数是 “ksudss”,因此使用适当的参数调用此函数将生成 systemstate 跟踪。
使用合适的 O/S 命令(例如"ps")并筛选您感兴趣的实例,以确定要使用的进程:
$ ps -ef |grep $ORACLE_SID

需要注意的是这个地方不要转储后台进程,我们这里找LOCAL=NO的进程进行分析

第二步:通过gdb 连接数据库
[oracle@zc ~]$ gdb $ORACLE_HOME/bin/oracle 17180
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1+114.el7
Copyright © 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type “show copying”
and “show warranty” for details.
This GDB was configured as “x86_64+redhat+linux+gnu”.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/bin/oracle…(no debugging symbols found)…done.
Attaching to program: /u02/app/oracle/product/19.9.0/db_1/bin/oracle, process 17180
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/lib/libodm19.so…(no debugging symbols found)…done.
Loaded symbols for /u02/app/oracle/product/19.9.0/db_1/lib/libodm19.so
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/lib/libofs.so…(no debugging symbols found)…done.
Loaded symbols for /u02/app/oracle/product/19.9.0/db_1/lib/libofs.so
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/lib/libcell19.so…done.
Loaded symbols for /u02/app/oracle/product/19.9.0/db_1/lib/libcell19.so
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/lib/libskgxp19.so…(no debugging symbols found)…done.
Loaded symbols for /u02/app/oracle/product/19.9.0/db_1/lib/libskgxp19.so
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/lib/libskjcx19.so…(no debugging symbols found)…done.
Loaded symbols for /u02/app/oracle/product/19.9.0/db_1/lib/libskjcx19.so
Reading symbols from /lib64/librt.so.1…(no debugging symbols found)…done.
Loaded symbols for /lib64/librt.so.1
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/lib/libclsra19.so…(no debugging symbols found)…done.
Loaded symbols for /u02/app/oracle/product/19.9.0/db_1/lib/libclsra19.so
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/lib/libdbcfg19.so…(no debugging symbols found)…done.
Loaded symbols for /u02/app/oracle/product/19.9.0/db_1/lib/libdbcfg19.so
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/lib/libhasgen19.so…(no debugging symbols found)…done.
Loaded symbols for /u02/app/oracle/product/19.9.0/db_1/lib/libhasgen19.so
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/lib/libskgxn2.so…(no debugging symbols found)…done.
Loaded symbols for /u02/app/oracle/product/19.9.0/db_1/lib/libskgxn2.so
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/lib/libocr19.so…done.
Loaded symbols for /u02/app/oracle/product/19.9.0/db_1/lib/libocr19.so
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/lib/libocrb19.so…done.
Loaded symbols for /u02/app/oracle/product/19.9.0/db_1/lib/libocrb19.so
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/lib/libocrutl19.so…done.
Loaded symbols for /u02/app/oracle/product/19.9.0/db_1/lib/libocrutl19.so
Reading symbols from /lib64/libaio.so.1…Reading symbols from /lib64/libaio.so.1…(no debugging symbols found)…done.
(no debugging symbols found)…done.
Loaded symbols for /lib64/libaio.so.1
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/lib/libons.so…(no debugging symbols found)…done.
Loaded symbols for /u02/app/oracle/product/19.9.0/db_1/lib/libons.so
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/lib/libmql1.so…(no debugging symbols found)…done.
Loaded symbols for /u02/app/oracle/product/19.9.0/db_1/lib/libmql1.so
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/lib/libipc1.so…(no debugging symbols found)…done.
Loaded symbols for /u02/app/oracle/product/19.9.0/db_1/lib/libipc1.so
Reading symbols from /lib64/libdl.so.2…(no debugging symbols found)…done.
Loaded symbols for /lib64/libdl.so.2
Reading symbols from /lib64/libm.so.6…(no debugging symbols found)…done.
Loaded symbols for /lib64/libm.so.6
Reading symbols from /lib64/libpthread.so.0…(no debugging symbols found)…done.
[Thread debugging using libthread_db enabled]
Using host libthread_db library “/lib64/libthread_db.so.1”.
Loaded symbols for /lib64/libpthread.so.0
Reading symbols from /lib64/libnsl.so.1…(no debugging symbols found)…done.
Loaded symbols for /lib64/libnsl.so.1
Reading symbols from /lib64/libresolv.so.2…(no debugging symbols found)…done.
Loaded symbols for /lib64/libresolv.so.2
Reading symbols from /lib64/libc.so.6…(no debugging symbols found)…done.
Loaded symbols for /lib64/libc.so.6
Reading symbols from /lib64/ld+linux+x86+64.so.2…(no debugging symbols found)…done.
Loaded symbols for /lib64/ld+linux+x86+64.so.2
Reading symbols from /usr/lib64/libnuma.so.1…Reading symbols from /usr/lib64/libnuma.so.1…(no debugging symbols found)…done.
(no debugging symbols found)…done.
Loaded symbols for /usr/lib64/libnuma.so.1
Reading symbols from /lib64/libgcc_s.so.1…(no debugging symbols found)…done.
Loaded symbols for /lib64/libgcc_s.so.1
Reading symbols from /lib64/libnss_files.so.2…(no debugging symbols found)…done.
Loaded symbols for /lib64/libnss_files.so.2
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/lib/libshpkavx219.so…(no debugging symbols found)…done.
Loaded symbols for /u02/app/oracle/product/19.9.0/db_1/lib/libshpkavx219.so
Reading symbols from /u02/app/oracle/product/19.9.0/db_1/lib/libnque19.so…(no debugging symbols found)…done.
Loaded symbols for /u02/app/oracle/product/19.9.0/db_1/lib/libnque19.so
0x00007fdccd6e76e0 in __read_nocancel () from /lib64/libpthread.so.0
Missing separate debuginfos, use: debuginfo+install glibc+2.17+260.el7.x86_64 libaio+0.3.109+13.el7.x86_64 libgcc+4.8.5+44.el7.x86_64 numactl+libs+2.0.9+7.el7.x86_64
(gdb)

第三步:生成 Systemstate

(gdb) print ksudss(258)
$1 = 0
(gdb)

第四步:查询trace 文件
通过alert 日志查询

2025+01+20T14:04:59.918758+08:00
Thread 1 advanced to log sequence 2421 (LGWR switch)
Current log# 3 seq# 2421 mem# 0: /u02/app/oracle/oradata/TEST/onlinelog/o1_mf_3_mnj4mr24_.log
2025+01+20T14:05:34.573407+08:00
System State dumped to trace file /u02/app/oracle/diag/rdbms/test/test/trace/test_ora_17180.trc
2025+01+20T14:06:50.917114+08:00
Thread 1 advanced to log sequence 2422 (LGWR switch)
Current log# 1 seq# 2422 mem# 0: /u02/app/oracle/oradata/TEST/onlinelog/o1_mf_1_mnj4mr0x_.log
2025+01+20T14:08:41.915787+08:00

第五步:查询文件的相关内容
[root@zc log]# cat /u02/app/oracle/diag/rdbms/test/test/trace/test_ora_17180.trc|more
Trace file /u02/app/oracle/diag/rdbms/test/test/trace/test_ora_17180.trc
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 + Production
Version 19.3.0.0.0
Build label: RDBMS_19.3.0.0.0DBRU_LINUX.X64_190417
ORACLE_HOME: /u02/app/oracle/product/19.9.0/db_1
System name: Linux
Node name: zc
Release: 3.10.0+957.el7.x86_64
Version: #1 SMP Thu Oct 4 20:48:51 UTC 2018
Machine: x86_64
Instance name: test
Redo thread mounted by this instance: 1
Oracle process number: 83
Unix process pid: 17180, image: oracle@zc

*** 2025+01+20T14:05:34.573774+08:00
*** SESSION ID:(382.48252) 2025+01+20T14:05:34.573807+08:00
*** CLIENT ID:() 2025+01+20T14:05:34.573816+08:00
*** SERVICE NAME:(test) 2025+01+20T14:05:34.573821+08:00
*** MODULE NAME:(SQLPlus) 2025+01+20T14:05:34.573826+08:00
*** ACTION NAME:() 2025+01+20T14:05:34.573831+08:00
*** CLIENT DRIVER:(SQL
PLUS) 2025+01+20T14:05:34.573835+08:00

===================================================
SYSTEM STATE (level=2, with short stacks)
++++++++++++
Dumping the Process Summary
1: PSEUDO process
2: PMON ospid 19180 sid 247 ser 62913, waiting for ‘pmon timer’
3: CLMN ospid 19182 sid 370 ser 845, waiting for ‘pmon timer’
4: PSP0 ospid 19184 sid 493 ser 28316, waiting for ‘rdbms ipc message’
5: VKTM ospid 19187 sid 616 ser 63632, waiting for ‘VKTM Logical Idle Wait’
6: GEN0 ospid 19191 sid 739 ser 8722, waiting for ‘rdbms ipc message’
7: MMAN ospid 19193 sid 863 ser 43013, waiting for ‘rdbms ipc message’
8: M000 ospid 23692 sid 1 ser 7731, waiting for ‘class slave wait’
9: GEN1 ospid 19197_19198 sid 124 ser 50792, waiting for ‘rdbms ipc message’
10: SCMN ospid 19197_19197 sid 248 ser 38659, waiting for ‘watchdog main loop’
11: DIAG ospid 19200 sid 371 ser 63242, waiting for ‘DIAG idle wait’
12: OFSD ospid 19202_19203 sid 494 ser 57138, waiting for ‘OFS idle’
13: SCMN ospid 19202_19202 sid 617 ser 55214, waiting for ‘watchdog main loop’
14: DBRM ospid 19205 sid 740 ser 64174, waiting for ‘rdbms ipc message’

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论