客户端:windows 11
服务器:rhel 8.4
实验目标:windows作客户端,通过pl sql连接linux服务器上的oracle数据库,确认出linux服务器上对应的进程号.
如下,客户端通过pl sql开启两个连接会话,pid为4908,端口分别为60799,60786.
Linux服务器端通过端口号1521查远程连接,
如下红色高亮部分,可以清晰看到,windows连接过来的进程对应的服务器进程为5392、5381.
[root@dbserver ~]# netstat -antup|grep 1521
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State Timer
tcp 0 0 192.168.133.120:58834 192.168.133.120:1521 ESTABLISHED 4194/ora_lreg_orclc
tcp 0 0 192.168.133.120:59638 192.168.133.120:1521 ESTABLISHED 9675/java
tcp 0 0 192.168.133.120:58800 192.168.133.120:1521 ESTABLISHED 3611/oraagent.bin
tcp 0 0 192.168.133.120:59014 192.168.133.120:1521 ESTABLISHED 4677/java
tcp 0 0 192.168.133.120:58824 192.168.133.120:1521 ESTABLISHED 3917/asm_lreg_+ASM
tcp6 0 0 :::1521 :::* LISTEN 3641/tnslsnr
tcp6 0 0 192.168.133.120:1521 192.168.133.120:59014 ESTABLISHED 5964/oracleorclcdb
tcp6 0 0 192.168.133.120:1521 192.168.133.120:58800 ESTABLISHED 3641/tnslsnr
tcp6 0 0 192.168.133.120:1521 192.168.133.1:60799 ESTABLISHED 5392/oracleorclcdb
tcp6 0 0 192.168.133.120:1521 192.168.133.120:59638 ESTABLISHED 9704/oracleorclcdb
tcp6 0 0 192.168.133.120:1521 192.168.133.120:59710 TIME_WAIT -
tcp6 0 0 192.168.133.120:1521 192.168.133.1:60786 ESTABLISHED 5381/oracleorclcdb
tcp6 0 0 192.168.133.120:1521 192.168.133.120:58834 ESTABLISHED 3641/tnslsnr
tcp6 0 0 192.168.133.120:1521 192.168.133.120:58824 ESTABLISHED 3641/tnslsnr
再通过ps -ef命令确认服务器进程为5392、5381对应的Local确实为NO.
[root@dbserver ~]# ps -ef|grep LOCAL=NO|grep -v grep
oracle 5381 1 0 09:54 ? 00:00:00 oracleorclcdb (LOCAL=NO)
oracle 5392 1 0 09:55 ? 00:00:04 oracleorclcdb (LOCAL=NO)
oracle 5964 1 0 10:29 ? 00:00:10 oracleorclcdb (LOCAL=NO)
oracle 9704 1 0 15:30 ? 00:00:00 oracleorclcdb (LOCAL=NO)
附上windows端pid、端口、应用程序之间的相互查询:
windows通过进程pid查端口号:
C:\Users\Administrator>netstat -ano|findstr 4908
TCP 192.168.133.1:60786 192.168.133.120:1521 ESTABLISHED 4908
TCP 192.168.133.1:60799 192.168.133.120:1521 ESTABLISHED 4908
windows通过端口号查进程pid:
C:\Users\Administrator>netstat -ano|findstr 60799
TCP 192.168.133.1:60799 192.168.133.120:1521 ESTABLISHED 4908
C:\Users\Administrator>netstat -ano|findstr 60786
TCP 192.168.133.1:60786 192.168.133.120:1521 ESTABLISHED 4908
通过pid查询对应进程程序:
C:\Users\Administrator>tasklist | findstr 4908
plsqldev.exe 4908 Console 1 152,456 K
服务器端可以生成sql语句kill远端pl sql的两个连接,此处主机名WorkGroup\NEWMACHINE
SQL> select 'alter system kill session ''' || sid || ',' ||serial# || ''' immediate;' sql,username,program,machine,status,to_char(LOGON_TIME,'yyyy-mm-dd hh24:mi:ss') from v$session where machine='WorkGroup\NEWMACHINE';
SQL USERNAME PROGRAM MACHINE STATUS TO_CHAR(LOGON_TIME,
-------------------------------------------------- ---------- --------------- ----------------------------------- -------- -------------------
alter system kill session '21,1243' immediate; ORA1 plsqldev.exe WorkGroup\NEWMACHINE INACTIVE 2022-06-24 09:54:42
alter system kill session '402,15584' immediate; ORA1 plsqldev.exe WorkGroup\NEWMACHINE INACTIVE 2022-06-24 09:55:25