Cannot allocate new log - Private strand flush not complete
Cannot allocate new log - Private strand flush not complete
Question: I just upgraded to Oracle 10g release 2 and I keep getting this error in my alert log
Thread 1 cannot allocate new log, sequence 509
Private strand flush not complete
Current log# 2 seq# 508 mem# 0: /usr/local/o1_mf_2_2cx5wnw5_.log
What causes the "private strand flush not complete" message?
Answer: This is not a bug, it's the expected behavior in 10gr2. You can get the message suppressed by increasing thedb_writer_processes parameter.
The "private strand flush not complete" is a "noise" error, and can be disregarded because it relates to internal cache redo file management. It does not necessarily mean that you have a problem, but it depends if the error message is accompanied by other errors.
You should check your transaction with used private redo size in the x$ktifp fixed table or why the DBWR wants to write these associated blocks so fast if you have a lot of "Private strand flush not complete" messages.
This "private strand flush cannot complete" error is sometimes accompanied by other errors/mistakes that cause a hung database.
Some DBA's blame a sub-optimal DBWR configuration for the "private strand flush not complete" error. See "DB_WRITER_PROCESSES" MOSC 67422.1, and "Understanding and Tuning Buffer Cache and DBWR", MOSC Note: 62172.1.
Some DBA's note that this error message can be caused by a too-full datafile. Check your data file space, and add space to any nearly full data files.
A"strand" is a new 10gr2 term for redo latches. It notes that a strand is a new mechanism to assign redo latches to multiple processes, and it's related to the log_parallelism parameter. The number of strands depends on the cpu_count.
When you switch redo logs you will see this alert log message since all private strands have to be flushed to the current redo log.
References: Oracle MOSC note 372557.1
目录 返回
首页