Df -F vxfs
/opt/oracle/db02 (/dev/vx/dsk/ipasdg/db02_vol):55665072 blocks 869766 files
/opt/oracle/db03 (/dev/vx/dsk/ipasdg/db03_vol):41688928 blocks 651380 files
/opt/oracle/db04 (/dev/vx/dsk/ipasdg/db04_vol):41688928 blocks 651380 files
/opt/oracle/arch (/dev/vx/dsk/ipasdg/arch_vol):164632064 blocks 2572348 files
/backup (/dev/vx/dsk/ipasdg/backup_vol):314529872 blocks 4914519 files
如果想在vxfs上面使用異步I/O,首先必須要安裝一個(gè)叫做Quick I/O的模塊,并且要啟用Quick I/O,這個(gè)模塊是需要單獨(dú)向Veritas公司購(gòu)買(mǎi)license的。默認(rèn)的時(shí)候vxfs文件系統(tǒng)mount的時(shí)候是啟用了Quick I/O的,如果在mount的時(shí)候指定了-o noqio的選項(xiàng),那么Quick IO是被禁用的。
如果想查看在一個(gè)文件系統(tǒng)上是否采用了Quick IO,常用的fsadmin,fstype這些命令都無(wú)法看出來(lái),/etc/mnttab、/etc/vfstab這些文件也沒(méi)有記錄相關(guān)的信息。這里 介紹一種方法可以查看文件是否是Quick I/O的文件:
ls -al 列出所有文件,包括Quick I/O文件和它的鏈接.
以下是代碼片段: $ ls -al d* .d* -rw-r–r– 1 dba 104890368 Oct 2 13:42 .dbfile lrwxrwxrwx 1 dba 17 Oct 2 13:42 dbfile -> .dbfile::cdev:vxfs: |
ls -lL 顯示是否Quick I/O被成功安裝和啟用。
以下是代碼片段: $ ls -lL dbfile crw-r–r– 1 dba 45, 1 Oct 2 13:42 dbfile |
第一個(gè)字符c,表明這是一個(gè)裸字符設(shè)備文件,如果沒(méi)有這個(gè)字符則表明Quick I/O沒(méi)有正確安裝或者是沒(méi)有一個(gè)合法的license key。
確認(rèn)文件系統(tǒng)啟用了Quick I/O后,然后就可以給Oracle配置異步I/O了,在Oracle的初始化參數(shù)中配置DISK_ASYNCH_IO = TRUE,然后重啟數(shù)據(jù)庫(kù)讓其生效。
因?yàn)閱⒂昧薗uick I/O后,在OS級(jí)別上是消除了緩沖的,所以數(shù)據(jù)庫(kù)的buffer cache在啟用了Quick I/O后是應(yīng)該需要增加的。
三、 如何檢測(cè)在VXFS文件系統(tǒng)上是否支持異步I/O
對(duì)于Solaris操作系統(tǒng)可以使用下面的一段代碼來(lái)檢測(cè)系統(tǒng)是否支持異步I/O:
原代碼如下:
以下是代碼片段: ??? /* * Quick kaio test. Read 1k bytes from a file using async I/O. * To compile: * cc -o aio aio.c -laio * To run: * aio file_name */ #include #include #include #include #define BSIZE 1024 main(int argc, char *argv[]) { aio_result_t res; char buf[BSIZE]; int fd; if ((fd=open(argv[1], O_RDONLY)) == -1) { perror(“open”); exit(-1); } aioread(fd, buf, BSIZE, 0L, SEEK_SET, &res); aiowait(0); if (res.aio_return == BSIZE) { printf(“aio succeeded “); close(fd); exit(0); } perror(“aio”); } |
然后使用root用戶編譯:
以下是代碼片段: # cc -o aio aio.c -laio |
這樣就可以用來(lái)檢測(cè)系統(tǒng)是否支持異步I/O了。