Which three events signal a database writer (DWR) to write buffers to disk?
A.
The database advances a checkpoint.
B.
A client process commits a transaction.
C.
The redo log buffer becomes full.
D.
A server process cannot find non-dirty blocks after scanning a threshold number of buffers.
E.
A tablespace is changed to read-only status.
F.
The database is shut down in immediate mode.
ADF
Answer: A,D,F
Explanation: When tablespace is changed to read only status it will issue a Partial checkpoint.
During db shutdown a checkpoint is also issued. DWR writes when there is a checkpoint.
I say A,D, E is also possibly the answer, based on below.
https://docs.oracle.com/database/121/CNCPT/memory.htm#CNCPT1222
The database writer (DBW) process periodically writes cold, dirty buffers to disk. DBW writes buffers in the following circumstances:
• A server process cannot find clean (non-dirty) buffers for reading new blocks into the database buffer cache.
As buffers are dirtied, the number of free buffers decreases. If the number drops below an internal threshold, and if clean buffers are required, then server processes signal DBW to write.
The database uses the LRU to determine which dirty buffers to write. When dirty buffers reach the cold end of the LRU, the database moves them off the LRU to a write queue. DBW writes buffers in the queue to disk, using multiblock writes if possible. This mechanism prevents the end of the LRU from becoming clogged with dirty buffers and allows clean buffers to be found for reuse.
• The database must advance the checkpoint, which is the position in the redo thread from which instance recovery must begin.
• Tablespaces are changed to read-only status or taken offline.
A,D,E
F is ruled out as the shutdown triggers a checkpoint which is already covered by A.