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.

I would really like to know what signals are in the following quote from the Process Architecture docs, and how does DBWn know LGWR has completed?

Before DBWn can write a modified buffer, all redo records that are associated with the changes to the buffer must be written to disk (the write-ahead protocol). If DBWn finds that some redo records have not been written, it signals LGWR to write the redo records to disk and waits for LGWR to complete writing the redo log buffer before it can write out the data buffers.

share|improve this question
    
@Mat Thank for your editing for my question :-) –  Happy Girl Jun 7 '13 at 16:00
3  
Well, I'm not really sure what you're asking here exactly. "signals" is just a generic term to mean that the processes communicate. Are you after the actual technical internal details of how that communication is implemented? –  Mat Jun 7 '13 at 16:07
    
@Mat I have a doubt about it when i research DBA's book, i'm preparing to take the OCA exam :-) –  Happy Girl Jun 7 '13 at 16:17
add comment

1 Answer

up vote 3 down vote accepted

Actually, you're not required to have that deep knowledge for OCA exam, you just need to know which processes are required for database to function (PMON, SMON, DBWR, LGWR, CKPT, MMON, MMNL, RECO), some other processes that may be required when you configure other database options such as ARCHIVELOG database mode, what each of these processes does, and how they communicate with each other in rough outline.

As far as inter-process communication (IPC) is concerned, it is quite possible, for example, that on *nix, Oracle uses POSIX calls for communication, whereas on Windows it uses Windows API calls, in other words, the way Oracle implements inter-process communication differs between platforms because these platforms are implemented differently.

If you're preparing for OCA exam, you may already know (and you really should know) the memory architecture of Oracle, and that there's an area of memory called System Global Area (SGA). This memory area is used to keep the information used by many background and foreground processes including server processes and shared server processes (when Shared Server Architecture is used).

There's also the Fixed SGA area within the SGA which contains:

Information communicated between processes, such as information about locks

You can also determine if Oracle allocates some IPC resources on *nix if you run ipcs command before and after you start up the database. (I stumbled upon this in this AskTom article).

Therefore, you can see that Oracle uses both system calls, and shared memory to share information between Oracle processes.

share|improve this answer
    
Thank for your answer :-) –  Happy Girl Jun 8 '13 at 3:40
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.