【读书笔记】Expert Oracle Architecture (by Tom) (2)

Abstract: 这个读书笔记系列是关于Tom的大作《Expert Oracle Database Architecture》

TomBook 

 

Chapter 2: Architecture Overview

1. Oracle and Instance

Oracle: A collection of physical operating system files or disk.

Instance: background processes and SGA

A database may be mounted and opened by many instances. An instance may mount and open a single database at any point in time. In fact, it is true to say that an instance will mount and open at most a single database in its entire lifetime!

Rename “spfileorcl.ora” (under dbs folder) to “spfileorcl.ora1” and put the following parameter in the file “initorcl.ora” (under database folder) db_name = test

■Note On Windows, prior to running the startup command, you’ll need to execute a service creation statement using the oradim.exe utility.

clip_image002

clip_image004

clip_image006

An instance can mount and open at most one database in its life. We must discard this instance and create a new one in order to open this or any other database.

To recap,

• An instance is a set of background processes and shared memory.

• A database is a collection of data stored on disk.

• An instance can mount and open only a single database, ever.

• A database may be mounted and opened by one or more instances (using RAC).

A database may be accessible from many instances, but an instance will provide access to exactly one database at a time.

2. Dedicated Server

clip_image008

As noted, typically Oracle will create a new process for me when I log in. This is commonly referred to as the dedicated server configuration, since a server process will be dedicated to me for the life of my session. For each session, a new dedicated server will appear in a one-to-one mapping. This dedicated server process is not (by definition) part of the instance. My client process (whatever program is trying to connect to the database) will be in direct communication with this dedicated server over some networking conduit, such as a TCP/IP socket. It is this server process that will receive my SQL and execute it for me. It will read data files if necessary, and it will look in the database’s cache for my data. It will perform my update statements. It will run my PL/SQL code. Its only goal is to respond to the SQL calls that I submit to it.

3. Shared Server

clip_image010

As shown in Figure 2-3, the client connection will send a request to the dispatcher. The dispatcher will first place this request onto the request queue in the SGA (1). The first available shared server will dequeue this request (2) and process it. When the shared server completes, the response (return codes, data, and so on) is placed into the response queue (3), subsequently picked up by the dispatcher (4), and transmitted back to the client.

-- To Be Continued --

原文地址:https://www.cnblogs.com/fangwenyu/p/1589406.html