Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

The following excerpt is from Oracle concepts. Maybe this is a stupid question, but I really need your help to understand it.

My question is:

  • What's does the thread mean in the context thread checkpoints?
  • Does it means redo log thread(all redo log files that belong to a specific instance)?
  • What does a certain target means?

Thanks all! English is not my mother tongue, and I feel a little difficult to fully understand this.

When Oracle Database Initiates Checkpoints 

The checkpoint process (CKPT) is responsible for writing checkpoints to the data file  
headers and control file. Checkpoints occur in a variety of situations. For example,  
Oracle Database uses the following types of checkpoints: 

■   Thread checkpoints 
    ^^^^^^
    The database writes to disk all buffers modified by redo in a specific thread before  
                                                             ^^^^^^^^^^^^^^^^^^^^
    a certain target. The set of thread checkpoints on all instances in a database is 
    ^^^^^^^^^^^^^^^^^
    a database checkpoint. Thread checkpoints occur in the following situations: 

    – Consistent database shutdown 

    – ALTER SYSTEM CHECKPOINT statement 

    – Online redo log switch 

    – ALTER DATABASE BEGIN BACKUP statement 

■   Tablespace and data file checkpoints 

    The database writes to disk all buffers modified by redo before a specific target. A  
    tablespace checkpoint is a set of data file checkpoints, one for each data file in the  
    tablespace. These checkpoints occur in a variety of situations, including making a  
    tablespace read-only or taking it offline normal, shrinking a data file, or executing  
    ALTER TABLESPACE BEGIN BACKUP. 

■   Incremental checkpoints 

    An incremental checkpoint is a type of thread checkpoint partly intended to avoid  
    writing large numbers of blocks at online redo log switches. DBWn checks at least  
    every three seconds to determine whether it has work to do. When DBWn writes  
    dirty buffers, it advances the checkpoint position, causing CKPT to write the  
    checkpoint position to the control file, but not to the data file headers. 

Other types of checkpoints include instance and media recovery checkpoints and  
checkpoints when schema objects are dropped or truncated.
share|improve this question
add comment

3 Answers 3

Yes, a thread in this case is the redo generated by an instance. If you had a 4-node RAC, you would have 4 redo threads. This is thread# in v$archived_log. The certain target is almost certainly referring to an SCN.

share|improve this answer
add comment

I'm not completely certain, but I believe the "thread" in "thread checkpoint" refers to a DBWR thread/process.

The "certain target" referenced is configurable; several init.ora parameters influence it, including:

FAST_START_MTTR_TARGET 
LOG_CHECKPOINT_INTERVAL
LOG_CHECKPOINT_TIMEOUT
share|improve this answer
add comment

If I am not mistaken, by "thread", the Oracle Concepts book means redo threads and "by redo in a specific thread" it means buffers written to the disk are buffers which are generated by transactions which are the reason for the generation of these named redo records by this specific redo thread. I hope I didn't make it sound more confusing! ;)

I think "certain targets" would be the statements named in the book below the explanation of "thread checkpoints", for example ALTER SYSTEM CHECKPOINT. Checkpoint parameters and the three second interval would trigger "incremental checkpoints" because all are aiming to speed the checkpoint procedure.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.