I am very confused about when USER PROCESS, SERVER PROCESS, INSTANCE and SESSION start. Can you help me understand the sequence?
If there are no Oracle processes running on your machine, then you only have the datafiles on disk, which are not accessible. Oracle calls this the "database". When you sign on to SQL*Plus and issue the STARTUP command, you are creating an "instance" of the database. This instance includes the allocated shared memory, the System Global Area or SGA, and the required background server processes like Database Writer (DBWn), Log Writer (LGWn), Checkpoint (CKPT), Process Monitor (PMON), System Monitor (SMON) and any optional, configured parameters such as the Archiver process (ARCn). These server processes start when you start the instance.
When a user requests a session with the database, the system starts a dedicated server process for that user. When the user disconnects from the database, this dedicated server process terminates. Many people call this dedicated server process a user process as well. In the Multi-Threaded Server (MTS) configuration, the end users can share server processes. In MTS, a minimum number of server processes are initiated at database startup and more processes are started as the database load increases.
For More Information
- Dozens more answers to tough Oracle questions from Brian Peasland are available.
- The Best Oracle Web Links: tips, tutorials, scripts, and more.
- Have an Oracle or SQL tip to offer your fellow DBAs and developers? The best tips submitted will receive a cool prize. Submit your tip today!
- Ask your technical Oracle and SQL questions -- or help out your peers by answering them -- in our live discussion forums.
- Ask the Experts yourself: Our SQL, database design, Oracle, SQL Server, DB2, metadata, object-oriented and data warehousing gurus are waiting to answer your toughest questions.