CHAPTER 6. Oracle Intelligent Agent and SNMP Support
This chapter provides information about installing and running the Oracle Intelligent Agent (hereafter referred to as "the Agent") on OpenVMS and information about Single Network Management Protocol (SNMP) Support. Read this chapter carefully and completely before starting to install and use the Agent and SNMP Support on OpenVMS.
This chapter covers the following topics:
Introduction
The Agent is a backend server process that communicates with the Oracle Enterprise Manager (OEM) running on a Windows NT machine.
The current port of the Agent supports SNMP services and interfaces with any SNMP product on OpenVMS (currently PEER Master Agent).
Additional Information: General information about the Oracle Intelligent Agent can be found in the OEM documentation under Windows NT.
Additional Information: General information about SNMP can be found in the Oracle SNMP Support Reference Guide.
Installing the Oracle Intelligent Agent
The Agent requires that a supported TCP/IP implementation be installed on your OpenVMS system. In addition, you must enable TCP/IP support for SQL*Net in the NetConfig configuration screen.
Additional Information: See Chapter 3, "The TCP/IP Adapter"
The Agent may be installed at the same time as other products or it may be installed later.
Installation of the Agent creates the directories ORA_ROOT:[AGENT] and ORA_ROOT:[NETWORK.AGENT]. Most of the Agent files will reside in or beneath these directories.
Oracle Intelligent Agent Setup and Discovery Option
To correctly set up the Agent environment, the following two kinds of files need to be created:
- Startup command procedures
Creating the Startup Scripts
Once the Agent has been successfully installed, create the following three files:
- ORA_ROOT:[NETWORK.AGENT]AGENT_START.COM
- ORA_ROOT:[NETWORK.AGENT]DBSNMPCA_NETV2.COM
- ORA_ROOT:[NETWORK.AGENT]DBSNMPJ.COM
To create these three files, use the sample files AGENT_START_COM.SAMPLE, DBSNMPCA_NETV2_COM.SAMPLE, and DBSNMPJ_COM.SAMPLE provided in ORA_ROOT:[NETWORK.AGENT]. Correctly fill in the values for ora_db, sid, and dbname in these three files.
When you startup the Agent, AGENT_START.COM is run as a detached process. DBSNMPCA_NETV2.COM is invoked, again as a detached process, whenever the OEM console requests a connection on the address specified by the dbsnmp.spawn_address parameter in SNMP_RW.ORA.
Agent Parameter Files and Discovery Option
At startup, and when requested by the daemon thereafter, the agent runs a Tcl script called NMICONF.TCL, which resides in the ORA_AGENT directory. This script starts by reading the ORATAB file, which is kept in the TNS_ADMIN directory.
The ORATAB file should be as follows:
<sid_name>,<root_directory_for_SID>,n
For example:
rgv333,disk$server3:[000000]rgutherz.dir,n
rgv733,disk$server3:[000000]ron733.dir,n
Note that you can specify any SID that you want the Agent to monitor and that exists on this node.
If the ORATAB.ORA file does not exist, then a file named SIDS.DAT will be created automatically and will be used to tell the Agent which services to monitor for this node.
Note that this file contains service entries just for the current installation where the Agent is running and not for all the SIDs that are on that node. If you want the Agent to monitor other SIDs in different installations, put them in the TNS_ADMIN:ORATAB.ORA file.
Then, for each database instance found in ORATAB, the tnsnames list is searched for an address on the local host with the appropriate SID in the CONNECT_DATA. The key corresponding to the first matching address in the list becomes the name of the database. The listener.ora found in those same directories is searched for the SID of the database. Again, the first listener that matches our SID becomes the listener active for that database.
Note: This generic discovery phase is impossible if the local database names are stored in Oracle Names instead of in a local tnsnames file. We cannot do the backwards SID-to-name matching through Names. As a result, if Oracle Names is in use for the host, an old-style SNMP.ORA must still be in TNS_ADMIN, with the parameter nmi.register_with_names set to FALSE. If this flag is detected at start-up, none of the generic discovery occurs. Instead, the information in the old-style snmp.ora is used to construct the new configuration files.
The configuration files SNMP_RO.ORA and SNMP_RW.ORA are created.
The file SNMP_RO.ORA should reside at TNS_ADMIN, the same location as the TNS config files. This file contains lines from the old SNMP.ORA that should never be touched by the user:
SNMP.VISIBLESERVICES=(SERVICE-1,...SERVICE-N)
SNMP.SID.<service name>=<SID for the database>
SNMP.ORACLEHOME.<service name>=<oracle_home>
The file SNMP_RW.ORA should reside at TNS_ADMIN, the same location as the TNS config files. This file contains the following lines from the old SNMP.ORA that are automatically generated, but the user may want to modify or add to them:
SNMP.INDEX.<service name>=<integer index> Note: The integer must be unique on the host.
SNMP.CONTACT.<service name>=<free form text giving contact info>
NMI.REGISTER_WITH_NAMES=[TRUE|FALSE] Note: The choice of TRUE or FALSE determines whether the agent should try to register itself with Oracle Names.
DBSNMP.ADDRESS=<TNS address on which the agent can listen>
DBSNMP.SPAWNADDRESS=<TNS address for the services.ora>
The following lines are not automatically generated, but may be added to the SNMP_RW.ORA file:
SNMP.CONNECT.<service name>.NAME=<user name for the subagent to use>
SNMP.CONNECT.<service name>.PASSWORD=<password for the subagent to use> Note: This is optional for ALL databases.
SNMP.DBPOLLTIME=<interval for polling the database, in seconds> Note: This line governs the time that the subagent polls the database to determine whether it has gone down, or the interval between retries if the database has gone down or was never connected. The default is 30 seconds.
NMI.TRACE_DIRECTORY=<directory to which NMD will have write access>
NMI.TRACE_FILE=<file name for the trace>
NMI.LOG_DIRECTORY=<directory to which NMD will have write access>
NMI.LOG_FILE=<file name for the log file>
Note: The address chosen is a reserved TCP port granted to Oracle by the IANA (Internet Assigned Number Authority). Changing this port wilL likely make the agent undetectable by the EM Console and force a manual configuration step!)
The Tcl script NMICONF.TCL can execute other Tcl scripts written specifically to discover other Oracle services. If these other scripts exist, they should be installed with NMICONF.TCL in ORA_AGENT, and their names should be listed in a file in the same directory called 'NMICONF.LST', one script per line.
The file ORA_AGENT:SERVICES.ORA is created during the discovery phase, and will be used to tell the OEM which services the Agent is monitoring.
Setting the Preferred Credentials
The preferred credentials are supported from the OEM console. To run a job on the HOST database, you MUST supply username/password in the preferred credentials fields in the OEM console. To check that the username/password is valid, login to the HOST node where the Intelligent Agent is running and issue the command:
show process/right
to see that the account is not disabled and that it has the ORA_AGENT_ID identifier.
Oracle Intelligent Agent Startup, Shutdown, and Status Query
This section explains how to startup, shutdown, and status query the Agent.
Startup of the Agent
The Agent consists of the following two processes:
- WORK process, which runs as a background detached process
- COMM process, which runs as a subprocess of the WORK process.
Additionally, a third JOB process is spawned by the WORK process whenever it is needed to execute jobs.
Use the following command to start the Agent:
$ LSNRCTL DBSNMP_START
This command creates a detached process with a process name of the form ORA_AGENTWORK, which will then spawn a subprocess.
If a nonzero trace level is specified in SNMP_RW.ORA, two trace files with the names DBSNMP_<pid>.TRC will be created in ORA_ROOT:[NETWORK.AGENT.TRACE], where <pid> corresponds to the names of the COMM and WORK processes.
Whenever a job is executed, a trace file of the form DBSNMPJ_<pid>.TRC will also be created .
Note: The process that starts up the Agent must have the GROUP and GRPNAM privileges.
Note: The creation of the processes and initialization of the Agent takes about one to two minutes. This includes connection to the listener and database if specified in the visible services parameter of SNMP_RO.ORA. It also includes initialization of the queue files.
Shutdown of the Agent
Use the following command to shutdown the Agent:
$LSNRCTL DBSNMP_STOP
Note: Use the Oracle7 account to stop or start the Agent.
Note: Because this command depends on certain GROUP logical names, make sure that the account used to stop the Agent is in the same UIC group as the account that was used to start the Agent. GROUP privilege is also required to stop the Agent with this command.
Note: The shutdown can take up to two minutes.
Status Query of the Agent
Use the following command to verify whether the Agent is running:
$ LSNRCTL DBSNMP_STATUS
Note: Because this command depends on certain GROUP logical names, make sure that the account used to query the Agent is in the same UIC group as the account that was used to start the Agent. GROUP privilege is also required to query the Agent with this command.
Note: If the Agent is not running, this status query command can take up to two minutes before exiting with the message "Agent not running".
Oracle Intelligent Agent Maintenance
Unlike the listener process, the Agent processes are in a continuous loop, polling for incoming connections in each loop. This means that trace information is continuously being generated. Therefore, it is advisable to turn off tracing during normal operation and to turn it on only when a problem is encountered.
Oracle Intelligent Agent Product Capabilities
The following types of jobs are currently supported:
- Executing a host command from the OEM
- Running a DBA script task
The following types of events are currently supported:
- New errors are in the alert file
- Database users have been blocking other processes
- A new database connection can be established
- Buffer cache hit ratio is low
- Data dictionary miss ratio is high
- Library cache miss ratio is high
- Value of V$SYSSTAT parameter is too high
- Differences between parameters in V$SYSSTAT are too high
- Response time of user program is too low
- Exceeds lock resource limit
- Contiguous free space is too small
- Dump destination device is full
- Segments are reaching maximum
- SQL*Net listener is up or down
SNMP Support
SNMP is supported by using Intelligent Agent as an Oracle subagent. To enable SNMP support, choose Y in the SNMP support line when configuring the Agent.
PEER master agent is currently supported. to run PEER master agent, change the following two files, as follows:
1. Modify the three lines in the PEERAGENT_COM.SAMPLE file that could be found in ORA_NETWORK directory and save it as PEERAGENT.COM in the same directory.
2. Modify the CONFIG_MASTER.SAMPLE file that could be found in the TNS_ADMIN directory, and save it as CONFIG.MASTER in the same directory.
Then connect to Oracle using the SYS account to run the CATSNMP.SQL script from the ORA_AGENT directory, unless it was already run when the Agent was configured.
To use SNMP Support, start the SNMP master agent before starting the TNS Listener and before starting the Intelligent Agent
- To start PEER master agent, execute the command:
@ORA_NETWORK:STARTUP_PEERAGENT
- To query the status of the PEER master agent, execute the command:
@ORA_NETWORK:STATUS_PEERAGENT
- To stop PEER master agent, execute the command:
@ORA_NETWORK:SHUTDOWN_PEERAGENT
Additional Information: Refer to the Oracle SNMP Support Reference Guide.