GPO ( Grupo de Profissionais Oracle )
A maior comunidade Oracle do Brasil !

Home Fóruns Outros Com executar em Windows o equiv ps -ef |grep

Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #108834
    airoosp
    Participante

    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

    #108835

    Eu 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.com

    Process 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.com

    Process 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.457

    C: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.363

    C: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

Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Você deve fazer login para responder a este tópico.