DB Creation   «Prev  Next»

Lesson 4 Locating the Shared Server executable file
ObjectiveFind the executable file for Oracle Shared Server

Locating the Shared Server Executable File

Now that you know where your Oracle Home is, it's time to find the "executable file" for the Shared Server . The executable file is named differently under different operating systems. You need to know the correct name for the executable file under your operating system, because the name is used in the command to start Shared Server.
Oracle always stores executable files in the "bin directory" underneath Oracle Home. That is one thing you can count on. To find the executable, you need to go to Oracle's bin directory, and search for files starting with that string smon_.

In Oracle 12c, the "Shared Server executable name" starts with smon_

For Oracle 12c, the shared server executable name starts with smon_. The shared server is a process that coordinates the execution of user requests on behalf of multiple Oracle database instances. It is a key component of the Oracle Real Application Clusters (RAC) architecture, but it can also be used in non-RAC environments.
The shared server is responsible for managing the following tasks:
  1. Accepting and queueing user requests
  2. Dispatching user requests to worker processes
  3. Managing the database connection pool
  4. Monitoring the performance of worker processes
  5. Restarting worker processes that fail
The shared server is a critical component of Oracle 12c and it plays a key role in the performance and reliability of the database.
Here are some examples of shared server executable names in Oracle 12c:
  1. smon_orcl.exe
  2. smon_p1.exe
  3. smon_p2.exe
  4. smon_p3.exe

The shared server executable name will vary depending on the name of the database instance and the number of shared server processes that are configured.

Locate the executable file for "Oracle Shared Server" on the Windows Server 2019 Operating System

Locating the executable file for "Oracle Shared Server" in an Oracle 12c environment hosted on a Windows Server 2019 Operating System necessitates a precise and systematic approach. Oracle Shared Server, previously known as Multi-Threaded Server (MTS), is a configuration that enables the database to handle a large number of user connections simultaneously, without necessitating an equal number of dedicated server processes.
  1. Identify Oracle Home: First and foremost, ascertain the Oracle Home directory for your Oracle 12c installation. Oracle Home is the directory path where the Oracle Database software is installed. You can determine the Oracle Home path by inspecting the 'ORACLE_HOME' environment variable, or through the registry, by navigating to:

    Here, `<Oracle Home Name>` corresponds to the unique name identifying your Oracle 12c home. Within this registry key, the “ORACLE_HOME” string value will provide the path to your Oracle Home directory.
  2. Navigate to the Oracle Home Directory: Utilize the File Explorer to navigate to the Oracle Home directory. In a standard installation, the path might resemble:

    Here, `12.x.x` represents your Oracle Database version, and `dbhome_n` is a specific identifier for your Oracle Home.
  3. Locate the Executable: The Oracle Shared Server’s functionality is ingrained within the Oracle Database software and does not exist as a standalone executable. However, the key Oracle Database executables reside in the `bin` directory within the Oracle Home. Navigate to this directory:

    Here, you will find the Oracle executable files. The primary Oracle Database executable on Windows is `oracle.exe`.
  4. Verify Oracle Shared Server Configuration: Ensure that Oracle Shared Server is configured and running. You can accomplish this by connecting to the database using SQL*Plus and executing the following queries:
    SHOW PARAMETER shared_servers;
    SHOW PARAMETER dispatchers;

    These commands will display the configuration of shared servers and dispatchers, respectively. Verify that the shared servers are configured and active.
  5. Validate Through Services: You can also verify the Oracle services running on your Windows Server 2019 operating system by executing `services.msc` from the Run dialog. Here, look for services related to your Oracle 12c installation, such as ‘OracleService’ and ‘OracleOraDB12Home1TNSListener’, ensuring they are running.
Locating the executable for Oracle Shared Server in Oracle 12c on a Windows Server 2019 operating system is intrinsically tied to understanding the Oracle Database architecture and knowing where to find and how to verify the relevant configurations. The systematic approach outlined above ensures a methodical traversal through the necessary steps, providing clarity and precision in locating the essential components related to Oracle Shared Server. Ensuring that the Oracle Shared Server is properly configured and verifying its status through the appropriate queries and system checks is paramount in maintaining a robust and efficient database environment.

Server Manager has been replaced with extended SQL*Plus implementation in Oracle 9i

The SQL*Plus program allows users to access SQL and the Oracle SQL extensions. This combination of commands, SQL, and the Oracle SQL extensions enable users and the DBA
  1. to access the database by means of standard SQL and
  2. to format input and output using the SQL*Plus extensions to the language.
In Oracle9i, the Server Manager (SVRMGR) program was completely eliminated in favor of an extended SQL*Plus implementation.

SQL*Plus has a command buffer that stores the current command and allows the user to edit the command using the native system editor or via command-line input. SQL*Plus also allows the user to
  1. store,
  2. retrieve, and
  3. execute
SQL/SQL*Plus command scripts, as well as PL/SQL command scripts. In SQL*Plus, local variables can be assigned as well as providing control of system variables used for format and display control.

SQL*Plus can also be used to dynamically create command scripts that can then be used to perform changes to users, tables, or other Oracle objects. If DBAs are not familiar with SQL*Plus, it is suggested they review the SQL*Plus reference guide. SQL*Plus can be accessed once the user has set the appropriate system variables and path, which is done using the
command on UNIX and Linux; in some environments the ORACLE_SID variable may have to be set to point to your database. On Windows Server, the user must either set some environmental variables or use connect aliases.

Why are there so many different executable names used under Windows?

The reason the executable names vary so much under Windows is that Oracle tries as much as possible to support the installation of multiple releases of their products on a single machine. Under UNIX that is done by creating separate Oracle Home directories for each Oracle release. For some reason, when Oracle first ported their product to Windows, multiple Oracle homes were not technically feasible. The compromise solution, which only allowed multiple releases of the client software, was to embed release numbers in the executable names.
The 12 in the name represents the first two digits of the product's release number. This works to keep the executables for different versions separate, but it became a bit confusing as the individual product release numbers did not always match the database release numbers. The various Oracle utility release numbers were usually off by a value of five in the first digit. Thus, you had:

Oracle synchronized Product Release Numbers [Historical Note]

When Oracle8 was first shipped, Oracle synchronized many of the product release numbers to match the database server release number. One of the exceptions was Server Manager. While products like SQL*Plus jumped from release 2.3 to release 8.0, Server Manager was simply advanced to release 3.0.
Beginning with the Oracle8i release, Oracle has figured out how to support multiple Oracle homes on Windows Server. Because of that, there is no need to embed the release number in the executable name, and the Server Manager now uses the UNIX naming convention.