参考文档Doc ID 1987437.1
filesystemio_options参数,中间是这个参数的配置值。
Synchronous I/O | Asynchronous I/O | |
---|---|---|
Buffered I/O | none | asynch |
Direct I/O | directIO | setall |
disk_asynch_io参数可以设置成true 或 false。这个参数是主开关,当设置成false时,所有 I/O 都是同步的,不管 filesystemio_options 参数如何设置。这个参数推荐设置成默认的true。
SQL> show parameter disk_as
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
disk_asynch_io boolean TRUE
SQL> COL NAME FORMAT A50
SQL> SELECT NAME,ASYNCH_IO FROM V$DATAFILE F,V$IOSTAT_FILE I
WHERE F.FILE#=I.FILE_NO
AND FILETYPE_NAME='Data File'; 2 3
NAME ASYNCH_IO
-------------------------------------------------- ---------
/u01/app/oracle/oradata/yaoy11G/system01.dbf ASYNC_OFF
/u01/app/oracle/oradata/yaoy11G/sysaux01.dbf ASYNC_OFF
/u01/app/oracle/oradata/yaoy11G/undotbs01.dbf ASYNC_OFF
/u01/app/oracle/oradata/yaoy11G/users01.dbf ASYNC_OFF
/u01/app/oracle/oradata/yaoy11G/example01.dbf ASYNC_OFF
SQL> show parameter systemio
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
filesystemio_options string none
SQL> alter system set filesystemio_options=asynch;
alter system set filesystemio_options=asynch
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
Asynchronous I/O, direct I/O是推荐设置
SQL> alter system set filesystemio_options=setall scope=spfile;
System altered.OPTIONS:
"asynch" - This allows asynchronous IO to be used where supported by the OS.
"directIO" - This allows directIO to be used where supported by the OS. Direct IO bypasses any Unix buffer cache. As of 10.2 most platforms will try to use "directio" option for NFS mounted disks (and will also check NFS attributes are sensible).
"setall" - Enables both ASYNC and DIRECT IO.
"none" - This disables ASYNC IO and DIRECT IO so that Oracle uses normal synchronous writes, without any direct io options.
SQL> startup force;
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2217952 bytes
Variable Size 511707168 bytes
Database Buffers 318767104 bytes
Redo Buffers 2412544 bytes
Database mounted.
Database opened.
SQL> COL NAME FORMAT A50
SQL> SELECT NAME,ASYNCH_IO FROM V$DATAFILE F,V$IOSTAT_FILE I
WHERE F.FILE#=I.FILE_NO
AND FILETYPE_NAME='Data File'; 2 3
NAME ASYNCH_IO
-------------------------------------------------- ---------
/u01/app/oracle/oradata/yaoy11G/system01.dbf ASYNC_ON
/u01/app/oracle/oradata/yaoy11G/sysaux01.dbf ASYNC_ON
/u01/app/oracle/oradata/yaoy11G/undotbs01.dbf ASYNC_ON
/u01/app/oracle/oradata/yaoy11G/users01.dbf ASYNC_ON
/u01/app/oracle/oradata/yaoy11G/example01.dbf ASYNC_ON
ASM 本身是异步IO,不受filesystemio_options 参数的控制,参见 Doc ID 751463.1。ASM I/O 受 DISK_ASYNCH_IO 参数的控制。