[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 ...>