什么是PSP0进程

alert上日志显示:
Sun Jun 14 15:01:06 2009
Thread 1 advanced to log sequence 3 (LGWR switch)
  Current log# 3 seq# 3 mem# 0: /oradata/test/redo03.log
Sun Jun 14 15:51:27 2009
Thread 1 advanced to log sequence 4 (LGWR switch)
  Current log# 1 seq# 4 mem# 0: /oradata/test/redo01.log
Sun Jun 14 15:51:46 2009
PSP0: terminating instance due to error 472
Instance terminated by PSP0, pid = 23322
在操作系统上显示
[ora10g@dbsvr bdump]$ ps -ef|grep ora_
ora10g   23453     1  0 16:00 ?        00:00:00 ora_pmon_test
ora10g   23455     1  0 16:00 ?        00:00:00 ora_psp0_test
ora10g   23457     1  0 16:00 ?        00:00:00 ora_mman_test
ora10g   23459     1  0 16:00 ?        00:00:00 ora_dbw0_test
ora10g   23461     1  0 16:00 ?        00:00:00 ora_lgwr_test
ora10g   23463     1  0 16:00 ?        00:00:00 ora_ckpt_test
ora10g   23465     1  3 16:00 ?        00:00:00 ora_smon_test
ora10g   23467     1  0 16:00 ?        00:00:00 ora_reco_test
ora10g   23469     1  1 16:00 ?        00:00:00 ora_cjq0_test
ora10g   23471     1  3 16:00 ?        00:00:00 ora_mmon_test
ora10g   23473     1  0 16:00 ?        00:00:00 ora_mmnl_test
ora10g   23475     1  0 16:00 ?        00:00:00 ora_d000_test
ora10g   23477     1  0 16:00 ?        00:00:00 ora_s000_test
ora10g   23481     1  0 16:01 ?        00:00:00 ora_arc0_test
ora10g   23483     1  0 16:01 ?        00:00:00 ora_arc1_test
ora10g   23487     1  0 16:01 ?        00:00:00 ora_qmnc_test
ora10g   23489     1 23 16:01 ?        00:00:00 ora_j000_test
ora10g   23491     1 10 16:01 ?        00:00:00 ora_m000_test

PSP stands for Process SPawner and this process has the job of creating and managing other Oracle processes.
简言之,PSP进程就是进程产生器。
它在ORACLE上的pid为3
SQL>  select PROGRAM from v$process where pid=3;

PROGRAM
------------------------------------------------
oracle@dbsvr (PSP0)

SQL> select sid,SERIAL# from v$session where paddr=(select addr from v$process where pid=3);

       SID    SERIAL#
---------- ----------
       170          1

SQL> alter system kill session '170,1';
alter system kill session '170,1'
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel

alert日志显示
Sun Jun 14 16:37:25 2009
Errors in file /ora10g/app/admin/test/udump/test_ora_23514.trc:
ORA-07445: exception encountered: core dump [ksuklms()+444] [SIGSEGV] [Address not mapped to object] [0x39] [] []


那pid为1的是什么进程呢
SQL> select PROGRAM from v$process where pid=1;

PROGRAM
------------------------------------------------
PSEUDO

网上有此说法
“pid=1的进程是一个PSEUDO进程,这个进程被认为是初始化数据库的进程,启动其他进程之前即被占用,并在数据库中一直存在。”
可以看到这个进程在操作系统级别也没看到
SQL> select SPID,PROGRAM,SERIAL# from  v$process where pid=1;

SPID         PROGRAM                                             SERIAL#
------------ ------------------------------------------------ ----------
             PSEUDO                                                    0



再查看此进程的session信息
SQL> select sid,SERIAL# from v$session where paddr=(select addr from v$process where pid=1);

no rows selected







你可能感兴趣的:(thread,oracle,sql,sun)