RelationalDBDesign RelationalDBDesign


Instance Architecture   «Prev 

Multiple Database Writers

Beginning with the release of Oracle, an instance may have up to ten database writer processes. If your database experiences a very high level of update activity, multiple database writers may be necessary to keep up with the changes.
The number of database writer processes is controlled by an initialization file parameter that is read at instance startup. The parameter name is DB_WRITER_PROCESSES. To configure an instance for five database writer processes, for example, you would place the following line in your initialization file:

db_writer_processes=5

Using this parameter, when the instance starts, you would have five database writer named
DBW0, DBW1, DBW2, DBW3, and DBW4.

Multiple database writers really only make sense in a multiple CPU system, because they can spread the work of writing to the datafiles evenly across the CPUs. If you are running on a single-CPU machine, multiple database writers will not give you any advantage.
Pior to the release of Oracle, an instance could have only one database writer. Because there was only one writer, there was no need for a digit in the name, and the abbreviation DBWR was used. You will still see references in some Oracle related books to DBWR.

Database writer slaves

If it is not practical to use multiple database writer processes, such as when the computer has one CPU, then the database can distribute I/O over multiple slave processes. DBWR is the only process that scans the buffer cache LRU list for blocks to be written to disk. However, I/O slaves perform the I/O for these blocks.