What’s the difference between instance and server process in Oracle database

oracle

I'm now getting familiar with Oracle database. Unfortunately, I'm puzzled by the concept instance and server process.

My question is what's the difference between instance and server process. What's more, what's the life cycle of instance and server process respectively? My textbook at hand is about Oracle 9i, which doesn't give me a clear explanation.

Any reply will be appreciated. Thanks in advance.

Kind regards!

Best Answer

[A Community Wiki response feels most appropriate here.]

The database is officially a bunch of files (data files, redo logs, control file, parameter files).

An instance is a set of processes and a chunk of memory running on a server. Most of the time an instance has a database open and session 'live' in the instance to interact with the database. An instance is only connected to a single database.

In a RAC (Real Application Clusters) configuration, separate instances on multiple servers can have the same database open.

A server can also have multiple instances running, each instance running a separate database. A common example of this is where development and test database instances are running on the same machine. [Personally, I expect to see less of this as having dev and test on separate virtual servers on the same box provides more control.]

A process on a server will belong to a particular instance, with the exception of the database listener. A single listener may listen (generally on port 1521) and pass connections off to separate instances based on the requested SID or service.