[20181219]记录自己工作中的错误.txt

来源:这里教程网 时间:2026-03-03 12:46:57 作者:

[20181219]记录自己工作中的错误.txt --//本来想截获标准输入,标准输出,标准错误更好显示输出信息.测试时遇到一些问题,做1个记录. 1.环境: SCOTT@book> @ ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production SCOTT@book> @ spid        SID    SERIAL# PROCESS                  SERVER    SPID       PID  P_SERIAL# C50 ---------- ---------- ------------------------ --------- ------ ------- ---------- --------------------------------------------------        274          9 64263                    DEDICATED 64264       21          5 alter system kill session '274,9' immediate; --//sqlplus进程号64263.连接数据库进程号是64264. 2.分析: $ ps -ef | grep 6426[3] oracle   64263 64259  0 17:05 pts/2    00:00:00 /u01/app/oracle/product/11.2.0.4/dbhome_1/bin/sqlplus oracle   64264 64263  0 17:05 ?        00:00:00 oraclebook (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq))) $ ls -l /proc/64263/fd total 0 lrwx------ 1 oracle oinstall 64 2018-12-19 17:05:04 0 -> /dev/pts/2 lrwx------ 1 oracle oinstall 64 2018-12-19 17:06:52 1 -> /dev/pts/2 lrwx------ 1 oracle oinstall 64 2018-12-19 17:06:22 2 -> /dev/pts/2 lr-x------ 1 oracle oinstall 64 2018-12-19 17:06:52 3 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/sqlplus/mesg/sp1us.msb lr-x------ 1 oracle oinstall 64 2018-12-19 17:06:52 4 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/sqlplus/mesg/sp2us.msb lr-x------ 1 oracle oinstall 64 2018-12-19 17:06:52 5 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/sqlplus/mesg/cpyus.msb lr-x------ 1 oracle oinstall 64 2018-12-19 17:06:52 6 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/ocius.msb l-wx------ 1 oracle oinstall 64 2018-12-19 17:06:52 8 -> pipe:[58683104] lr-x------ 1 oracle oinstall 64 2018-12-19 17:06:52 9 -> pipe:[58683105] # lsof -p 64263 -nnn | egrep "5868310[45]" sqlplus 64263 oracle    8w  FIFO    0,8      0t0  58683104 pipe sqlplus 64263 oracle    9r  FIFO    0,8      0t0  58683105 pipe --//句柄9对应读.9对应写. $ ls -l /proc/64264/fd total 0 lr-x------ 1 oracle oinstall 64 2018-12-19 17:07:26 0 -> /dev/null l-wx------ 1 oracle oinstall 64 2018-12-19 17:07:26 1 -> /dev/null l-wx------ 1 oracle oinstall 64 2018-12-19 17:07:26 10 -> pipe:[58683105] l-wx------ 1 oracle oinstall 64 2018-12-19 17:07:26 2 -> /dev/null lrwx------ 1 oracle oinstall 64 2018-12-19 17:07:26 256 -> /mnt/ramdisk/book/system01.dbf lr-x------ 1 oracle oinstall 64 2018-12-19 17:07:26 3 -> /dev/null lr-x------ 1 oracle oinstall 64 2018-12-19 17:07:26 4 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/oraus.msb lr-x------ 1 oracle oinstall 64 2018-12-19 17:07:26 5 -> /proc/64264/fd lr-x------ 1 oracle oinstall 64 2018-12-19 17:07:26 6 -> /dev/zero lr-x------ 1 oracle oinstall 64 2018-12-19 17:07:26 7 -> pipe:[58683104] # lsof -p 64264 -nnn | egrep "5868310[45]" oracle  64264 oracle    7r  FIFO    0,8       0t0  58683104 pipe oracle  64264 oracle   10w  FIFO    0,8       0t0  58683105 pipe --//你可以发现正好与上面相对,我使用本地连接,这两个进程间相互通讯是使用管道,如果你使用网络,使用socket.大家可以自行测试. 3.如果你使用 cat 管道文件,就可能导致连接无法在使用. $ cat /proc/64263/fd/8 ^c --//再回到数据库连接会话,无论打什么命令都是无法响应. $ ps -elf | egrep "6426[34]|CM[D]" F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD 0 S oracle   64263 64259  0  80   0 - 17969 pipe_w 17:05 pts/2    00:00:00 /u01/app/oracle/product/11.2.0.4/dbhome_1/bin/sqlplus 0 S oracle   64264 64263  0  80   0 - 61250 pipe_w 17:05 ?        00:00:00 oraclebook (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

相关推荐