« 在VMWare上测试了一下AUL对Linux裸设备的支持 »
AUL/MyDUL » http://www.anysql.net/aulmydul/aul_linux_raw_device.html 2007-07-24将Oracle数据库的数据文件放在裸设备上, 是很正常的事. 不过我的AUL出来将近两年半了, 还从没有测过裸设备. 因为我认为所有Linux/Unix上的裸设备其实也是一个文件, 在程序中就当作普通的文件来操作就行了, 所以就一直没有作测试. Solaris上用Veritas文件系统作的裸设备到是测试过.
先用fdisk创建一个分区, 然后用dd将windows下的一个Oracle文件拷贝到这个分区. 然后用AUL去打开就行了, 如下所示:
[root@RH4SRV1 oracle]# ./aul
Register Code: 4ZN4-9OVB-EE3Y-OWTN-J5UC
AUL : AnySQL UnLoader(MyDUL) for Oracle 8/8i/9i/10g, release 4.0.4(C) Copyright Lou Fangxin 2005-2007 (AnySQL.net), all rights reserved.
AUL> open b.txt
* ts# fno rfn ver bsize blocks filename
- —- —- —- — —– ———- ————————–
Y 7 7 7 02 8192 1280 /dev/sdb1
接下来要测试一下随机的读取, 如果支持则表示没有问题.
AUL> oradump file 7 block 1
RDBA=0x01c00001(7/1),type=0x0b,fmt=0×02,seq=0×01,flag=0×04
DBID=0xc4ecc64a=3303851594,db=XUE,ts#=7,ts=T,file#=7,blksiz=8192, blks=1280, ver=0×08000000, fzy=—-AUL> oradump file 7 block 10
RDBA=0x01c0000a(7/10)=29360138,type=0×06,fmt=0×02,seq=0×01,flag=0×06
seg/obj=0x00001ed9=7897,csc=0×0000.0034bef5,itc=2,typ=1 – DATA
FLG=0×03, fls=0, nxt=0×00000000(0/0)=0
Transaction Slot:
id xid-usn.slot.wrap uba-rdba.row.seq flag lock fsc/scn
—- ——————- —————— —- —- —————
0×01 0×0003.01d.000000a5 0×00800077.00bb.0c –U- 2 0×0000.0034bef8
0×02 0×0000.000.00000000 0×00000000.0000.00 —- 0 0×0000.00000000
Block Data:
hdsz=92
flag=0×00
ntab=1
nrow=2
ffre=65535
fsbo=0×0072=114
fseo=0x1fc6=8134
avsp=0x1f54=8020
tosp=0x1f54=8020
tab#= 0 nrow= 2 offs= 0
row#= 0 offs=0x1f85= 8069+ 92=0x1fe1= 8161 flag=–H-FL–
row#= 1 offs=0x1f6a= 8042+ 92=0x1fc6= 8134 flag=–H-FL–
我在VMWare上感觉AUL进行裸文件扫描时有些慢, 一个10M的文件, 恢然用了将近30秒. 不知道是不是因为在VMWare的原因.


由于裸设备建成了500MB左右的, 因此这30秒是扫描500mb的时间, 这样应当是正常的.