[20180224]理解exp direct匯出操作.txt

lfree發表於2018-02-26

[20180224]理解exp direct匯出操作.txt

1.環境:
SCOTT@book> @ &r/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> show parameter filesystemio_options
NAME                 TYPE   VALUE
-------------------- ------ -----
filesystemio_options string NONE

--//主要目的不使用非同步IO,跟蹤資訊目前還不會看,讀懂.

create table t(x number, x2 varchar2(2000),x3 varchar2(1000))  SEGMENT CREATION IMMEDIATE;
insert into t select level, rpad(' ', 100, ' '),rpad('a',100,'a') from dual connect by level <= 1e6;
commit ;
exec sys.dbms_stats.gather_table_stats ( OwnName => 'SCOTT',TabName => 't',Estimate_Percent => NULL,Method_Opt => 'FOR ALL COLUMNS SIZE 1 ',Cascade => True ,No_Invalidate => false);

SCOTT@book> select bytes/1024/1024 from dba_segments where owner=user and segment_name='T';
BYTES/1024/1024
---------------
            238

2.測試:
$ strace -f -o /tmp/exp2b.trace exp scott/book file=t.dmp tables=t buffer=8192 direct=y
Export: Release 11.2.0.4.0 - Production on Sat Feb 24 16:33:03 2018
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set

About to export specified tables via Direct Path ...
. . exporting table                              T    1000000 rows exported
Export terminated successfully without warnings.

--//不要等結束,開啟新終端執行:
$ ps -ef | grep ex[p]
oracle   57441 33370 59 16:33 pts/4    00:00:02 strace -f -o /tmp/exp2b.trace exp scott/book file=t.dmp tables=t buffer=8192 direct=y
oracle   57442 57441 15 16:33 pts/4    00:00:00 exp            file=t.dmp tables=t buffer=8192 direct=y

--//程式57441執行exp操作(程式號57442),實際上exp登入資料庫還會開啟程式57443.檢查檔案控制程式碼

$ ls -l /proc/5744[23]/fd
/proc/57442/fd:
total 0
lrwx------ 1 oracle oinstall 64 2018-02-24 16:33:03 0 -> /dev/pts/4
lrwx------ 1 oracle oinstall 64 2018-02-24 16:33:17 1 -> /dev/pts/4
lrwx------ 1 oracle oinstall 64 2018-02-24 16:33:06 2 -> /dev/pts/4
lr-x------ 1 oracle oinstall 64 2018-02-24 16:33:17 3 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/expus.msb
lr-x------ 1 oracle oinstall 64 2018-02-24 16:33:17 4 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/oracore/mesg/lrmus.msb
lr-x------ 1 oracle oinstall 64 2018-02-24 16:33:17 5 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/ocius.msb
l-wx------ 1 oracle oinstall 64 2018-02-24 16:33:17 6 -> /home/oracle/hrp430/testb/t.dmp
l-wx------ 1 oracle oinstall 64 2018-02-24 16:33:17 7 -> pipe:[42955107]
lr-x------ 1 oracle oinstall 64 2018-02-24 16:33:17 8 -> pipe:[42955108]

/proc/57443/fd:
total 0
lr-x------ 1 oracle oinstall 64 2018-02-24 16:33:17 0 -> /dev/null
l-wx------ 1 oracle oinstall 64 2018-02-24 16:33:17 1 -> /dev/null
l-wx------ 1 oracle oinstall 64 2018-02-24 16:33:17 2 -> /dev/null
lrwx------ 1 oracle oinstall 64 2018-02-24 16:33:17 256 -> /mnt/ramdisk/book/system01.dbf
lrwx------ 1 oracle oinstall 64 2018-02-24 16:33:17 257 -> /mnt/ramdisk/book/users01.dbf
lr-x------ 1 oracle oinstall 64 2018-02-24 16:33:17 3 -> /dev/null
lr-x------ 1 oracle oinstall 64 2018-02-24 16:33:17 4 -> /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/mesg/oraus.msb
lr-x------ 1 oracle oinstall 64 2018-02-24 16:33:17 5 -> /proc/57443/fd
lr-x------ 1 oracle oinstall 64 2018-02-24 16:33:17 6 -> pipe:[42955107]
lr-x------ 1 oracle oinstall 64 2018-02-24 16:33:17 7 -> /dev/zero
l-wx------ 1 oracle oinstall 64 2018-02-24 16:33:17 9 -> pipe:[42955108]

--//注意看pipe括號裡面的數字,上下相對.

--//先看程式57443:
$ grep 'pread(257' /tmp/exp2b.trace | head -3
57443 pread(257, "\6\242\0\0#\2\0\1Q\373]\27\3\0\1\6\16@\0\0\1\0\0\0\5a\1\0\10\371]\27"..., 40960, 4481024) = 40960
57443 pread(257, "\6\242\0\0000\2\0\1Q\373]\27\3\0\1\6\313\353\0\0\1\0\0\0\5a\1\0\n\371]\27"..., 65536, 4587520) = 65536
57443 pread(257, "\6\242\0\0\241\2\0\1Q\373]\27\3\0\1\6\244\250\0\0\1\0\0\0\5a\1\0\v\371]\27"..., 122880, 5513216) = 122880
--//讀資料檔案257 -> /mnt/ramdisk/book/users01.dbf.

--//程式57443:
$ grep 'write(9' /tmp/exp2b.trace | grep 57443| head
57443 write(9, "NTP0 57443\n", 11)      = 11
57443 write(9, "\0 \0\0\2\0\0\0\1:\f\1 \0\20\0\1\0\0\0\0 AA\0\0\0\0\0\0\0\0", 32 <unfinished ...>
57443 write(9, "\0\213\0\0\6\0\0\0\0\0\336\255\276\357\0\201\0\0\0\0\0\4\0\0\4\0\3\0\0\0\0\0"..., 139) = 139
57443 write(9, "\0\332\0\0\6\0\0\0\0\0\1\6\0x86_64/Linux 2.4.xx"..., 218) = 218
57443 write(9, "\0\32\0\0\6\0\0\0\0\0\2\200\0\0\0<<<\200\0\0\0\0\0\0\16", 26) = 26
57443 write(9, "\1\206\0\0\6\0\0\0\0\0\10\3\0\f\0\0\0\fAUTH_SESSKEY`\0"..., 390) = 390
57443 write(9, "\4\211\0\0\6\0\0\0\0\0\10\31\0\23\0\0\0\23AUTH_VERSION_S"..., 1161) = 1161
57443 write(9, "\0\34\0\0\6\0\0\0\0\0\10\22\1\0\0003\0\0\0\0\0\t\1\0\0\0\3\0", 28) = 28
57443 write(9, "\0\26\0\0\6\0\0\0\0\0\10\3\0\0\0\t\1\0\0\0\4\0", 22) = 22
57443 write(9, "\0\222\0\0\6\0\0\0\0\0\4\1\0\0\0\5\0\1\0\0\0\0\0\0\0\0\0\0\3\0\0\0"..., 146) = 146
...
57443 write(9, "\35\260\0\0\6\0\0\0\0\0\10\225\35\0\0\2\0\301\2d\0           "..., 7600) = 7600
57443 write(9, "\37\333\0\0\6\0\0\0\0\0\10\0 \0\0                 "..., 8155) = 8155
57443 write(9, "\0J\0\0\6\0\0\0\0\0 d\0aaaaaaaaaaaaaaaaaaa"..., 74 <unfinished ...>
57443 write(9, "\37\333\0\0\6\0\0\0\0\0\10\0 \0\0aaaaaaaaaaaaaaaaa"..., 8155) = 8155
57443 write(9, "\0J\0\0\6\0\0\0\0\0aaaaaaaaaaaaaaaaaaaaaa"..., 74 <unfinished ...>
57443 write(9, "\37\333\0\0\6\0\0\0\0\0\10\0 \0\0Sd\0              "..., 8155) = 8155
57443 write(9, "\0J\0\0\6\0\0\0\0\0                      "..., 74 <unfinished ...>
57443 write(9, "\37\333\0\0\6\0\0\0\0\0\10\0 \0\0                 "..., 8155) = 8155
57443 write(9, "\0J\0\0\6\0\0\0\0\0                      "..., 74 <unfinished ...>
57443 write(9, "\37\333\0\0\6\0\0\0\0\0\10\0 \0\0   d\0aaaaaaaaaaaa"..., 8155) = 8155
57443 write(9, "\0J\0\0\6\0\0\0\0\0             d\0aaaaaaa"..., 74 <unfinished ...>
57443 write(9, "\37\333\0\0\6\0\0\0\0\0\10\0 \0\0aaaaaaaaaaaaaaaaa"..., 8155) = 8155
57443 write(9, "\0J\0\0\6\0\0\0\0\0aaaaaaaaaaaaaaaaaaaaaa"..., 74 <unfinished ...>
57443 write(9, "\37\333\0\0\6\0\0\0\0\0\10\0 \0\0aaaaaaaaaaaaaaaaa"..., 8155) = 8155
57443 write(9, "\0J\0\0\6\0\0\0\0\0aaaaaaaaaaaaaaaaaaaaaa"..., 74 <unfinished ...>
57443 write(9, "\37\333\0\0\6\0\0\0\0\0\10\0 \0\0                 "..., 8155) = 8155
57443 write(9, "\0J\0\0\6\0\0\0\0\0                      "..., 74 <unfinished ...>
57443 write(9, "\37\333\0\0\6\0\0\0\0\0\10\0 \0\0                 "..., 8155) = 8155
57443 write(9, "\0J\0\0\6\0\0\0\0\0                      "..., 74 <unfinished ...>
57443 write(9, "\37\333\0\0\6\0\0\0\0\0\10\0 \0\0     d\0aaaaaaaaaa"..., 8155) = 8155
57443 write(9, "\0J\0\0\6\0\0\0\0\0               d\0aaaaa"..., 74 <unfinished ...>
57443 write(9, "\37\333\0\0\6\0\0\0\0\0\10\0 \0\0aaaaaaaaaaaaaaaaa"..., 8155) = 8155
57443 write(9, "\0J\0\0\6\0\0\0\0\0aaaaaaaaaaaaaaaaaaaaaa"..., 74 <unfinished ...>
57443 write(9, "\37\333\0\0\6\0\0\0\0\0\10\0 \0\0aaaaaaaaaaaaaaaaa"..., 8155) = 8155
57443 write(9, "\0J\0\0\6\0\0\0\0\0aaaaaaaaaaaaaaaaaaaaaa"..., 74 <unfinished ...>
57443 write(9, "\37\333\0\0\6\0\0\0\0\0\10\0 \0\0                 "..., 8155) = 8155
57443 write(9, "\0J\0\0\6\0\0\0\0\0\0                     "..., 74 <unfinished ...>
57443 write(9, "\37\333\0\0\6\0\0\0\0\0\10\0 \0\0                 "..., 8155) = 8155
57443 write(9, "\0J\0\0\6\0\0\0\0\0                      "..., 74 <unfinished ...>
.....
57443 write(9, "\0\222\0\0\6\0\0\0\0\0\4\1\0\0\0\327d\1\0\0\0\0\0\0\26\0\0\0\7\0\0\0"..., 146) = 146
57443 write(9, "\0\235\0\0\6\0\0\0\0\0\10\2\0[\23^\27\3\0\0\0\4\1\0\0\0\330d\1\0\0\0"..., 157) = 157
57443 write(9, "\0\254\0\0\6\0\0\0\0\0\4\1\0\0\0\331d\1\0\0\0\0{\5\26\0\0\0\7\0\0\0"..., 172) = 172
57443 write(9, "\0\21\0\0\6\0\0\0\0\0\t\1\0\0\0\332d", 17) = 17
57443 write(9, "\0\26\0\0\6\0\0\0\0\0\10\6\0\0\0\t\1\0\0\0\333d", 22) = 22
57443 write(9, "\0\222\0\0\6\0\0\0\0\0\4\1\0\0\0\334d\1\0\0\0\0\0\0\26\0\0\0\6\0\0\0"..., 146) = 146
57443 write(9, "\0\235\0\0\6\0\0\0\0\0\10\2\0[\23^\27\3\0\0\0\4\1\0\0\0\335d\1\0\0\0"..., 157) = 157
57443 write(9, "\0\254\0\0\6\0\0\0\0\0\4\1\0\0\0\336d\1\0\0\0\0{\5\26\0\0\0\6\0\0\0"..., 172) = 172
57443 write(9, "\0\21\0\0\6\0\0\0\0\0\t\1\0\0\0\337d", 17) = 17
57443 write(9, "\0\21\0\0\6\0\0\0\0\0\t\1\0\0\0\0\0", 17) = 17

$ grep 'open(9' /tmp/exp2b.trace | grep 57443| head
--//沒有讀.下面不再看,都是隻讀或者只寫的情況.

--//對應程式57443的檔案描述9 -> pipe:[42955108],對應程式57442的檔案描述8 -> pipe:[42955108],就是讀.
--//程式57442:
$ grep 'write(8' /tmp/exp2b.trace | grep 57442 | uniq -c
$ grep 'read(8' /tmp/exp2b.trace | grep 57442 | uniq -c
    599 57442 read(8,  <unfinished ...>
      1 57442 read(8, "\37\333\0\0\6\0\0\0\0\0\10\0 \0\0                 "..., 8208) = 8208
      1 57442 read(8, "         '\0\0\0\1\t\1\0\0\0[\1", 8155) = 21
   8105 57442 read(8,  <unfinished ...>
      1 57442 read(8, "\0J\0\0\6\0\0\0\0\0aaaaaaaaaaaaaaaaaaaaaa"..., 8208) = 74
    581 57442 read(8,  <unfinished ...>
      1 57442 read(8, "\0J\0\0\6\0\0\0\0\0                      "..., 8208) = 74
  10353 57442 read(8,  <unfinished ...>
      1 57442 read(8, "\0J\0\0\6\0\0\0\0\0                      "..., 8208) = 74
      1 57442 read(8,  <unfinished ...>
      1 57442 read(8, "\0J\0\0\6\0\0\0\0\0                      "..., 8208) = 74
   3857 57442 read(8,  <unfinished ...>
      1 57442 read(8, "\0J\0\0\6\0\0\0\0\0                      "..., 8208) = 74
   3883 57442 read(8,  <unfinished ...>
      1 57442 read(8, "\0J\0\0\6\0\0\0\0\0                      "..., 8208) = 74
   5981 57442 read(8,  <unfinished ...>
      1 57442 read(8, "\0J\0\0\6\0\0\0\0\0               d\0aaaaa"..., 8208) = 74
  18099 57442 read(8,  <unfinished ...>
--//程式57442對應的檔案描述8 -> pipe:[42955108] 讀資料檔案的內容.

--//程式57442:
$ grep 'write(6' /tmp/exp2b.trace | grep 57442 | less
57442 write(6, "\3\3TD\nEXPORT:V11.02.00\nDSCOTT\nRTA"..., 8192) = 8192
57442 write(6, "d\0\0\0\0`\1$\17\5\v\f\3\f\f\5\4\5\r\6\t\7\10\5\5\5\5\5\17\5\5\5"..., 4096) = 4096
57442 write(6, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"..., 4096) = 4096
57442 write(6, "                     d\0aaaaaaaaa"..., 4096) = 4096
57442 write(6, "                                "..., 4096) = 4096
57442 write(6, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"..., 4096) = 4096
57442 write(6, "                                "..., 4096) = 4096
57442 write(6, "Sd\0                             "..., 4096) = 4096
57442 write(6, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"..., 4096) = 4096
57442 write(6, "                                "..., 4096) = 4096
57442 write(6, "aaaaaaaaaaaaaaaaaaaaa\3\0\302\3,d\0    "..., 4096) = 4096
57442 write(6, "   d\0aaaaaaaaaaaaaaaaaaaaaaaaaaa"..., 4096) = 4096
57442 write(6, "                                "..., 4096) = 4096
57442 write(6, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"..., 4096) = 4096
57442 write(6, "                                "..., 4096) = 4096
57442 write(6, "aaaaaaaaaaaaaaaaaaaaaa\3\0\302\4\10d\0   "..., 4096) = 4096
57442 write(6, "    d\0aaaaaaaaaaaaaaaaaaaaaaaaaa"..., 4096) = 4096
57442 write(6, "                                "..., 4096) = 4096
57442 write(6, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"..., 4096) = 4096
57442 write(6, "                                "..., 4096) = 4096
...
$ grep 'write(6' /tmp/exp2b.trace | grep 57442 | tail
57442 write(6, "                                "..., 4096) = 4096
57442 write(6, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"..., 4096) = 4096
57442 write(6, "                                "..., 4096) = 4096
57442 write(6, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"..., 4096) = 4096
57442 write(6, "                                "..., 4096) = 4096
57442 write(6, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"..., 4096) = 4096
57442 write(6, "                                "..., 4096) = 4096
57442 write(6, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"..., 4096) = 4096
57442 write(6, "                                "..., 4096 <unfinished ...>
57442 write(6, "ARE  SREC DBMS_STATS.STATREC; BE"..., 4096) = 4096
--//RECORDLENGTH引數沒有定義,預設8192.影響寫入,導致呼叫write次數增加.

--//說明程式57443讀檔案描述257(257 -> /mnt/ramdisk/book/users01.dbf),寫資訊到檔案描述9(9 -> pipe:[42955108]),然後讀到
--//程式57442的檔案描述(8 -> pipe:[42955108]). 我的理解對應就是一個快取buffer.
--//透過程式號57442的檔案描述6(6 -> /home/oracle/hrp430/testb/t.dmp)寫入檔案t.dmp.

--//另外管道呢? 程式57442檔案描述7(7 -> pipe:[42955107]),程式57443檔案描述6(6 -> pipe:[42955107])

--//程式57442:
$ grep 'read(7' /tmp/exp2b.trace | grep 57442 | head
$ grep 'write(7' /tmp/exp2b.trace | grep 57442 | head
57442 write(7, "\0:\0\0\1\0\0\0\1:\1,\f\1 \0\20\0O\230\0\0\1\0\1\2\0:\0\0\10\0"..., 58 <unfinished ...>
57442 write(7, "\1\f\0\0\6\0\0\0\0\0(DESCRIPTION=(ADDRESS="..., 268 <unfinished ...>
57442 write(7, "\0\250\0\0\6\0\0\0\0\0\336\255\276\357\0\236\0\0\0\0\0\4\0\0\4\0\3\0\0\0\0\0"..., 168 <unfinished ...>
57442 write(7, "\0&\0\0\6\0\0\0\0\0\1\6\5\4\3\2\1\0x86_64/Linux 2"..., 38 <unfinished ...>
57442 write(7, "\0Q\0\0\6\0\0\0\0\0\2T\3T\3\203'\6\1\1\1\17\1\1\6\1\1\1\1\1\1\1"..., 81) = 81
57442 write(7, "\0\361\0\0\6\0\0\0\0\0\3v\2\376\377\377\377\377\377\377\377\5\0\0\0\1\0\0\0\376\377\377"..., 241 <unfinished ...>
57442 write(7, "\5^\0\0\6\0\0\0\0\0\3s\3\376\377\377\377\377\377\377\377\5\0\0\0\1\1\0\0\376\377\377"..., 1374) = 1374
57442 write(7, "\0V\0\0\6\0\0\0\0\0\21k\4\22\1\0\0003\0\0\0\1\0\0\0\3T\5\376\377\377\377"..., 86) = 86
57442 write(7, "\0\35\0\0\6\0\0\0\0\0\3\2\6\376\377\377\377\377\377\377\377\0@\0\0\0\0\0\0", 29 <unfinished ...>
57442 write(7, "\0e\0\0\6\0\0\0\0\0\3\3\7\3\0\0\0\0\0\0\0\376\377\377\377\377\377\377\377?\0\0"..., 101) = 101
...
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\216\376\377\377\377\377\377\377\377\225\35\0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\217\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\220\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\221\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\222\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\223\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\224\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\225\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\226\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\227\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\230\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\231\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
...

57442 write(7, "\0\310\0\0\6\0\0\0\0\0\3G\3(\200\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 200 <unfinished ...>
57442 write(7, "\2\n\0\0\6\0\0\0\0\0\3G\4P\200\0\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 522 <unfinished ...>
57442 write(7, "\0\21\0\0\6\0\0\0\0\0\3\10\5\7\0\0\0", 17 <unfinished ...>
57442 write(7, "\0\35\0\0\6\0\0\0\0\0\3\2\6\376\377\377\377\377\377\377\377\0@\0\0\0\0\0\0", 29 <unfinished ...>
57442 write(7, "\0\340\0\0\6\0\0\0\0\0\3\3\7\6\0\0\0\0\0\0\0\376\377\377\377\377\377\377\377\272\0\0"..., 224 <unfinished ...>
57442 write(7, "\0\310\0\0\6\0\0\0\0\0\3G\10(\200\0\0\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 200 <unfinished ...>
57442 write(7, "\1\341\0\0\6\0\0\0\0\0\3G\tP\200\0\0\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 481 <unfinished ...>
57442 write(7, "\0\21\0\0\6\0\0\0\0\0\3\10\n\6\0\0\0", 17 <unfinished ...>
57442 write(7, "\0\r\0\0\6\0\0\0\0\0\3\t\v", 13 <unfinished ...>
57442 write(7, "\0\n\0\0\6\0\0\0\0@", 10 <unfinished ...>

--//程式57443:
$ grep 'read(6' /tmp/exp2b.trace | grep 57443 | uniq -c
  18900 57443 read(6,  <unfinished ...>
      1 57443 read(6, "\0o\0\0\6\0\0\0\0\0\3[\356\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 8208) = 111
   1271 57443 read(6,  <unfinished ...>
      1 57443 read(6, "\0o\0\0\6\0\0\0\0\0\3[\346\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 8208) = 111
   5665 57443 read(6,  <unfinished ...>
$ grep 'write(6' /tmp/exp2b.trace | grep 57443


--//寫資訊到程式號57442的檔案描述7(7 -> pipe:[42955107]),接著程式號57443的讀檔案描述6(6 -> pipe:[42955107]),
--//這裡應該是確定資訊經正常寫入的包.我在本機操作(沒有使用網路),可以看到寫入的量很小111位元組.

57442 write(7, "\1\f\0\0\6\0\0\0\0\0(DESCRIPTION=(ADDRESS="..., 268 <unfinished ...>. => 猜出用於連線.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\220\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\221\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\222\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\223\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\224\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\225\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\226\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\227\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\230\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>
57442 write(7, "\0o\0\0\6\0\0\0\0\0\3[\231\376\377\377\377\377\377\377\377\0 \0\0\0\0\0\0\376\377\377"..., 111 <unfinished ...>

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2151283/,如需轉載,請註明出處,否則將追究法律責任。

相關文章