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

简介: [20180224]理解exp direct导出操作.txt 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER -------------...

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

目录
相关文章
|
6月前
|
Java
Files.find 去除部分目录/dev/fd,/proc如何操作
在使用 `Files.find` 方法时,如果你想在搜索过程中排除特定目录,如 `/dev/fd` 和 `/proc`,可以在 `BiPredicate` 实现中添加相应的逻辑。以下是一个示例,演示如何在 `Files.find` 中排除这些目录: ```java import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.BasicFileAttributes; imp
|
7月前
|
弹性计算 运维 Shell
批量将txt 文件修改为doc 文件
【4月更文挑战第29天】
60 1
|
SQL 缓存 Oracle
[20180226]exp buffer RECORDLENGTH.txt
[20180226]exp buffer RECORDLENGTH.txt --//虽然已经很少使用exp导致,如果加入direct=y参数,设置RECORDLENGTH参数能加快数据导出.
1267 0
|
SQL Oracle 关系型数据库
[20180224]exp参数RECORDLENGTH.txt
[20180224]exp参数RECORDLENGTH.txt --//虽然已经很少使用exp导致,如果加入direct=y参数,设置RECORDLENGTH参数能加快数据导出.
1590 0
|
Oracle 关系型数据库 SQL
[20171105]exp imp buffer参数解析.txt
[20171105]exp imp buffer参数解析.txt oracle官方所给的关于buffer的解释如下: https://docs.oracle.com/cd/A84870_01/doc/server.
1774 0
|
SQL Oracle 关系型数据库
[20170918]exp 直接路径导出.txt
[20170918]exp 直接路径导出.txt --//昨天看链接blogs.oracle.com/database4cn/%e5%af%b9%e4%ba%8e%e4%b8%80%e4%b8%aa%e9%9d%9e%e7%a9%ba%e5%ad%97%e6%ae%...
1475 0
|
SQL Oracle 关系型数据库
[20170910]imp参数buffer的简单探究2.txt
[20170910]imp参数buffer的简单探究2.txt --//exp,imp已经很少在用,如果存在8i估计还会用一下,下面因为别人遇到升级忘记家buffer参数(8i),导致导入缓慢, --//当然还有许多因素,比如存在lob字段,不过还是简单探究参数buffer.
1101 0
|
SQL Oracle 关系型数据库
[20170908]imp参数buffer的简单探究.txt
[20170908]imp参数buffer的简单探究.txt --//exp,imp已经很少在用,如果存在8i估计还会用一下,下面因为别人遇到升级忘记家buffer参数(8i),导致导入缓慢, --//当然还有许多因素,比如存在lob字段,不过还是简单探究参数buffer.
1305 0
|
Shell 网络协议
[20170705]diff比较执行结果的内容.txt
[20170705]diff比较执行结果的内容.txt --//有时候需要比较2个命令输出的结果进行比较,比较笨的方法如下,例子: $  lsnrctl status LISTENER_SCAN2 > /tmp/b2.
1059 0