Once we have the data in the Database buffer cache from datafiles, when are the changes (updates) made to the cache recorded in datafiles back? Is it periodic or at commit or at both? Is there a separate copy of Database buffer cache for each user?
At commit, the only requirement is that the change has to be written to the online redo log, by the LGWR (log writer) process.. It is not required that the change be written to the datafile. After some time (how long depends on the database activity), the DBWR (database writer) process will write changed, dirty blocks to the datafiles. This way, the database can update the datafiles in bulk fashion rather than with each and every commit. But your changes are guaranteed to be captured since they are written to the online redo logs.
There is only one buffer cache for all users.
By submitting your personal information, you agree that TechTarget and its partners may contact you regarding relevant content, products and special offers.