- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 7 anos, 5 meses atrás por José Laurindo Chiappa.
-
AutorPosts
-
30 de junho de 2017 às 6:03 pm #108834airoospParticipante
Bom dia,
Alguém sabe como executar em ambiente Windows o equivalente ao comando abaixo:
ps -ef |grep 6065 ( onde 6065 é o spid )
Oracle 10g.
Pelo powershell seria possível?
Obrigado.
Airton
30 de junho de 2017 às 10:13 pm #108835José Laurindo ChiappaModeradorEu pessoalmente não sei dizer, pois uso pouquíssimo Powershell – muito recente e específico pra mim : vamos esperar pelas eventuais respostas de quem trabalha mais com powershell e veremos….
NO MEU CASO, sendo assim, sempre que precisei eu usei as soluções alternativas do mercado, EM ESPECIAL o pacote SysInternals, que é meu amigo desde muuuuito antes de ter sido adquirido pela Microsoft…
Além disso, há uma diferença *** FUNDAMENTAL *** de Arquitetura entre Linux versus Windows, que é : no Windows a task principal do aplicativo normalmente é implementada como um Serviço Windows, e as sub-tarefas que o aplicativo precisa fazer (como daemons e slaves, por exemplo) são threads dessa task principal… Já no Linux, cfrme sabemos, vc criar suas tasks diretamente no process manager…
Assim sendo, normalmente vc precisa consultar as estats de execução da task principal (pra saber o geral) e DEPOIS para obter dados ref. sub-tasks individuais precisa consultar threads desse processo principal….
Hoje eu faço assim :==> consultar o processo principal de um banco Oracle pelo pslist , parte do SysInternals :
C:Usersjlchi_000SysInternalsSuite>pslist oracle
PsList v1.4 – Process information lister
Copyright (C) 2000-2016 Mark Russinovich
Sysinternals – http://www.sysinternals.comProcess information for DELL15RSE:
Name Pid Pri Thd Hnd Priv CPU Time Elapsed Time
oracle 3764 8 31 585 798272 0:00:07.171 0:06:22.532==> Consultar as threads desse processo :
C:Usersjlchi_000SysInternalsSuite>pslist -x oracle
PsList v1.4 – Process information lister
Copyright (C) 2000-2016 Mark Russinovich
Sysinternals – http://www.sysinternals.comProcess and thread information for DELL15RSE:
Name Pid VM WS Priv Priv Pk Faults NonP Page
oracle 3764 1588084 354344 798272 811764 103915 59 600
Tid Pri Cswtch State User Time Kernel Time Elapsed Time
8412 14 142 Wait:UserReq 0:00:00.015 0:00:00.015 0:06:37.205
2708 14 186 Wait:UserReq 0:00:00.187 0:00:00.015 0:06:37.011
8352 10 4 Wait:UserReq 0:00:00.000 0:00:00.000 0:06:36.175
6784 8 164 Wait:UserReq 0:00:00.000 0:00:00.015 0:06:18.905
4484 8 1933 Wait:UserReq 0:00:00.000 0:00:00.031 0:06:18.893
8168 15 36708 Wait:DelayExec 0:00:00.015 0:00:00.000 0:06:17.878
1884 8 139 Wait:UserReq 0:00:00.000 0:00:00.000 0:06:17.870
8848 9 383 Wait:UserReq 0:00:00.000 0:00:00.000 0:06:17.866
5272 8 160 Wait:UserReq 0:00:00.015 0:00:00.015 0:06:17.861
8384 8 391 Wait:UserReq 0:00:00.078 0:00:00.000 0:06:17.856
9128 8 147 Wait:UserReq 0:00:00.015 0:00:00.015 0:06:17.852
8188 9 188 Wait:UserReq 0:00:00.000 0:00:00.015 0:06:17.846
8656 8 353 Wait:UserReq 0:00:00.000 0:00:00.015 0:06:17.840
7096 9 507 Wait:UserReq 0:00:00.015 0:00:00.031 0:06:17.835
6564 8 1652 Wait:UserReq 0:00:00.203 0:00:00.062 0:06:17.830
7592 10 139 Wait:UserReq 0:00:00.000 0:00:00.000 0:06:17.825
5520 8 979 Wait:UserReq 0:00:00.515 0:00:00.093 0:06:17.820
8232 8 144 Wait:UserReq 0:00:00.000 0:00:00.015 0:06:17.815
3956 10 127 Wait:UserReq 0:00:00.000 0:00:00.000 0:06:17.809
3320 10 121 Wait:UserReq 0:00:00.000 0:00:00.000 0:06:17.771
3416 10 121 Wait:UserReq 0:00:00.000 0:00:00.015 0:06:17.766
3508 10 123 Wait:UserReq 0:00:00.000 0:00:00.000 0:06:17.761
3936 9 122 Wait:UserReq 0:00:00.000 0:00:00.000 0:06:17.757
5052 8 35752 Wait:DelayExec 0:00:00.015 0:00:00.000 0:06:07.157
8012 10 142 Wait:UserReq 0:00:00.015 0:00:00.000 0:06:04.631
3768 8 270 Wait:UserReq 0:00:00.046 0:00:00.015 0:05:54.609
6424 10 128 Wait:UserReq 0:00:00.015 0:00:00.000 0:05:54.591
1728 10 129 Wait:UserReq 0:00:00.015 0:00:00.000 0:05:54.574
4140 8 313 Wait:UserReq 0:00:00.187 0:00:00.031 0:05:52.555
1764 8 29 Wait:UserReq 0:00:00.000 0:00:00.015 0:01:04.051
6444 10 24 Wait:UserReq 0:00:00.015 0:00:00.000 0:01:01.027
7384 10 80 Wait:UserReq 0:00:00.015 0:00:00.046 0:00:17.457C:Usersjlchi_000SysInternalsSuite>
Dando continuidade, vc quer identificar e separar apenas uma linha do resultset, que nem o grep do Linux faz : Como o grep do Windows é muito fraco e não suporta redirecionamento , OU vc usa um alternativo (googla por windows gnu grep OU por windows unix utilities que vc acha N alternativas) OU vc usa as opções nativas… Como eu disse, é bem capaz do Powershell ter alguma alternativa melhor mas eu Não tenho muita experiência nele, então uso o find ou findstr…
Digamos que eu quero localizar o SPID (que vai ser o THREAD ID no caso de Oracle em Windows) de uma sessão que pertence ao usuário SYSTEM :SQL> select c.spid
2 from v$session a, v$process c
3 where c.addr = a.paddr
4* and a.username=’SYSTEM’;SPID
————————
7384==> Executo o mesmo comando de infos sobre threads mas peço para filtrar pela ‘string’ 7384 :
C:Usersjlchi_000SysInternalsSuite>pslist -x | findstr “7384”
7384 8 219 Wait:UserReq 0:00:04.140 0:00:00.046 0:14:09.363C:Usersjlchi_000SysInternalsSuite>
SE vc quer/fazer o mesmo no Powershell, veja lá quais alternativas ele te dá para listar threads E para o grep….
[]s
Chiappa
-
AutorPosts
- Você deve fazer login para responder a este tópico.