Warning: OS async I/O limit 128 is lower than recovery batch 1024

zhanglei_itput發表於2010-04-27

一、問題描述:

        A warning message in Alert log asynchronous I/O limit warning of the form.
"Warning: OS async I/O limit 128 is lower than recovery batch 1024"
may be signaled in the alert log by recovery slave or coordinator processes.
        This error is because of kernel has not been configured sufficiently for async IO operations.
        Operations will still continue but IO operations will not be performed asynchronously which may impact recovery performance and will generate more trace files.

In alert.log you will see:
Fri Apr 23 22:58:24 2010
Errors in file /oracle/admin/leizdb/bdump/leizdb_ora_22297.trc:
Fri Apr 23 22:58:24 2010
Warning: OS async I/O limit 128 is lower than recovery batch 1024
Fri Apr 23 22:58:24 2010
Errors in file /oracle/admin/leizdb/bdump/leizdb_ora_22295.trc:
Fri Apr 23 22:58:24 2010
Warning: OS async I/O limit 128 is lower than recovery batch 1024
Fri Apr 23 22:58:24 2010


二、原因
This warning is signaled when an Oracle process cannot reserve enough async IO descriptors during instance or media recovery.
Operations will still continue but IO operations will not be performed asynchronously which may impact recovery performance.

三、解決方案
1.IN HP-UNIX
    A. For more details about how to tune ASYNC I/O for Raw disk partitions on HP_UX kindly refer,

   B. For File system to improve the performance
     Set disk_asynch_io = FALSE and increase the DB writer process.
     eg:Example for 4 CPU machine
     SQL>alter system set dbwr_io_slaves = 0 scope = spfile ;
     SQL>alter system set db_writer_processes = 4 scope = spfile ;
      Sometime the false Warning message will be displayed in alert log eventhough the DISK_AYNC_IO is set to FALSE.
      Inorder to stop this Warning message we have to apply this Patch 8475825 which is available for most of the OS.
      Reference Bug 8475825 - OS ASYNC I/O LIMIT 128 IS LOWER THAN RECOVERY BATCH 1024
  
2.On Redhat Linux 4 and 5 the recommended action is to raise the value of /proc/sys/fs/aio-max-nr.
  eg: Set the value to 1048576 or higher.
  ============================
  To set the value forSUSE linux:
  In the file /etc/sysctl.conf , add the below entry:
  fs.aio-max-nr=1048576
  解決Warning: OS async I/O limit 128 is lower than recovery batch 1024
  問題:起動Oracle資料庫時,特別是在一臺機器上有多個庫時alert檔案中報這個錯誤
  平臺: REHL 5.2 linux x86-64  DB:ORACLE 10.2.0.4
  解決:調整OS引數,在/etc/sysctl.conf加入fs.aio-max-nr = 1048576,然後執行sysctl -p生效,重啟資料庫

四、參考日誌資訊
......
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION
Fri Apr 23 22:58:18 2010
Attempt to start background Managed Standby Recovery process hiszdb)
MRP0 started with pid=17, OS id=22282
Fri Apr 23 22:58:19 2010
MRP0: Background Managed Standby Recovery process started hiszdb)
Managed Standby Recovery not using Real Time Apply
 parallel recovery started with 2 processes
Fri Apr 23 22:58:24 2010
Errors in file /oracle/adminhiszdb/bdumphiszdb_ora_22297.trc:
Fri Apr 23 22:58:24 2010
Warning: OS async I/O limit 128 is lower than recovery batch 1024
Fri Apr 23 22:58:24 2010
Errors in file /oracle/adminhiszdb/bdumphiszdb_ora_22295.trc:
Fri Apr 23 22:58:24 2010
Warning: OS async I/O limit 128 is lower than recovery batch 1024
Fri Apr 23 22:58:24 2010
Waiting for all non-current ORLs to be archived...
Media Recovery Log /bhisz_arch/archive/1_60221_680463587.dbf
Fri Apr 23 22:58:25 2010
Completed: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION
Fri Apr 23 22:58:26 2010
Media Recovery Waiting for thread 1 sequence 60222
Fri Apr 23 23:00:46 2010
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS[2]: Assigned to RFS process 22377
RFS[2]: Identified database type as 'physical standby'
Primary database is in MAXIMUM PERFORMANCE mode
Primary database is in MAXIMUM PERFORMANCE mode
Fri Apr 23 23:00:47 2010
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS[3]: Assigned to RFS process 22379
RFS[3]: Identified database type as 'physical standby'
RFS[3]: Archived Log: '/bhisz_arch/archive/1_60222_680463587.dbf'
Fri Apr 23 23:00:49 2010
Media Recovery Log /bhisz_arch/archive/1_60222_680463587.dbf
Media Recovery Waiting for thread 1 sequence 60223 (in transit)
Fri Apr 23 23:13:44 2010
RFS[2]: Archived Log: '/bhisz_arch/archive/1_60223_680463587.dbf'
Primary database is in MAXIMUM PERFORMANCE mode
RFS[2]: Archived Log: '/bhisz_arch/archive/1_60224_680463587.dbf'
Primary database is in MAXIMUM PERFORMANCE mode

 


參考文獻:
1. Starting Redo Apply -"Warning: OS async I/O limit 128 is lower than recovery batch 1024" on standby [ID 741835.1]
2. "Warning: OS async I/O limit 128 is lower than recovery batch 1024" in Alert log [ID 471846.1]
3. http://blog.chinaunix.net/u/12521/showart_1903965.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9252210/viewspace-660898/,如需轉載,請註明出處,否則將追究法律責任。

相關文章