Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: directio and async io on redhat linux 3 and oracle 9i
On Sat, 07 May 2005 20:37:25 +1000, Noons wrote:
> hrishy_at_gmail.com apparently said,on my timestamp of 7/05/2005 4:54 PM:
>
>> I know of one way to do it is tracing the dbwr and seeing whether fopen >> call is with o_direct flags.But the strange thing is when i say >> >> sqlplus>conn /as sysdba; >> >> sqlplus>oradebug setospid <<ospid-of-dbwriter>> >> >> no trace file is being produced.Can somebody tell me what magic needs >> to be done by me :-)
On FC3, with another version, things look like this: gettimeofday({1115516619, 411653}, NULL) = 0 gettimeofday({1115516619, 411723}, NULL) = 0 pread(15, "\25\302\0\0\27\0\0\0\311\6\0\0\377\377\1\4\255E\0\0\3\0"..., 16384, 376832) = 16384 gettimeofday({1115516619, 428299}, NULL) = 0 stat64("/oradata/10g/oracle/system01.dbf", {st_mode=S_IFREG|0640, st_size=629153792, ...}) = 0 open("/oradata/10g/oracle/system01.dbf", O_RDONLY|O_DIRECT|O_LARGEFILE) = 18
close(18) = 0 open("/oradata/10g/oracle/system01.dbf", O_RDWR|O_SYNC|O_DIRECT|O_LARGEFILE) = 18 fcntl64(18, F_SETFD, FD_CLOEXEC) = 0io_submit(0xb74a4000, 0x1, 0xbfffe1b8) = 1 io_getevents(0xb74a4000, 0x1, 0x1, 0xbfffe5bc, 0xbfffe148) = 1
fcntl64(18, F_GETFL) = 0xd002 (flags O_RDWR|O_SYNC|O_DIRECT|O_LARGEFILE)fcntl64(18, F_SETLK64, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}, 0xbfffe620) = 0 gettimeofday({1115516619, 435080}, NULL) = 0 pread(15, "\25\302\0\0\23\0\0\0\226\7\0\0\377\377\1\4CS\0\0\0\310"..., 16384, 311296) = 16384 gettimeofday({1115516619, 435487}, NULL) = 0 gettimeofday({1115516619, 435549}, NULL) = 0
You can easily see files being open with O_DIRECT flag. Unfortunately, this is not version 9:
SQL*Plus: Release 10.1.0.4.0 - Production on Sat May 7 21:42:12 2005
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup mount
ORACLE instance started.
Total System Global Area 201326592 bytes
Fixed Size 778452 bytes Variable Size 78651180 bytes Database Buffers 121634816 bytes Redo Buffers 262144 bytesDatabase mounted.
Database altered.
when the database was mounted, I attached strace to dbw, like this:
$ ps -fu $LOGNAME|grep dbw
oracle 10996 1 0 21:42 ? 00:00:00 ora_dbw0_10g
oracle 11045 11021 0 21:43 pts/0 00:00:00 grep dbw
$ strace -o /tmp/dbw.out -p 10996
Process 10996 attached - interrupt to quit
when that was done, I opened the database. The result is above. I don't know about whether direct I/O would work on RH ES 3.0, but that is how you can check. You have the same hammer called "strace". May the force be with you. Noons, do you have any plans to come to the east coast in foreseeable future?
-- Egoist: A person of low taste, more interested in themselves than in me.Received on Sat May 07 2005 - 20:52:30 CDT