Dedicated server and shared server
1. Dedicated Server
When I landed, Oracle would always create a new process for me to connect to the Oracle server, so that the configured server was called an Oracle dedicated server, and the resulting server process would serve my request specifically for the SGA lifetime. That is, whenever I open a session, a process is generated, and the corresponding relationship between the session and the server is a one-to-one mapping relationship.
Client-to-port 1521: listener--build process--connect instance--database
The instance is the location of the control file through the parameter file to construct the bridge of data exchange with the database.
2. Shared Server
In a shared server, Oracle uses the shared process pools to provide services to a large number of users (similar to the queuing mechanism).
Unlike dedicated servers, we do not have to open a process for each client that connects to each other, and if I have 10,000 users accessing the database at the same time, then we have to open 10,000 processes, which can make my Oracle Server resource loss and even overwhelm the server. But I open 100 processes in the process sharing pool for all users, the system in the management process, due to the small number of processes, improve management efficiency, and not due to the heavy load caused by the crash state.
However, in order to effectively manage these 100 processes, it is necessary to introduce a new concept called Scheduler to manage, when the client accesses the server, the listener receives the client request, and the listener knows through the scheduler that one of the 100 processes is idle. Then it responds to the client which process is idle and accesses it. The instance is then accessed to access the database.
Client-to-port 1521: listener--Call scheduler--discover that 18888 processes are idle--reply to client access through 18888 processes--Client access to the instance via 18888 Port--database
3.TNS Transparent Network Bottom
TNS is the basic software that handles Oracle remote access, and looks at the Tnsnames.ora under Oracle's working directory under $oracle_home/network/admin/. Take a look at the content:
ORCL =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP)
...
))
This configures which port on which host the client will access, and which instance to use to access the underlying database.
The server side also holds information about the client side, similar to the Linux SSH service ssh_know_hosts file.
This article is for technical reference only, if have insufficient, please correct me. Thank you.
Oracle Architecture Understanding (2)