Relational Database Management System (RDBMS) Management Information Base (MIB) using SMIv2
Extracted elements (31)
Computing rdbmsDbInfoSizeAllocated and rdbmsDbInfoSizeUsed may be expensive; agents are explicitly permitted to cache these values to improve performance. This is noted in non-normative comments within the MIB module itself.
rdbmsRelTable is indexed first by rdbmsDbIndex and then by applIndex so that SNMP get-next and get-bulk traversal operations can efficiently enumerate all servers capable of accessing a given database.
The MIB is intentionally limited to broad, cross-product monitoring objects. The gap between this generic MIB and detailed management or performance monitoring is expected to be filled by vendor- and product-specific MIBs, locatable via PrivateMibOID objects.
The MIB requires no writable objects for conformance because there is no expectation that RDBMS systems will be actively managed through this MIB. Write access to twelve objects is supported optionally by implementors who choose to expose it.
The two traps (rdbmsStateChange and rdbmsOutOfSpace) are intentionally omitted from all conformance groups, making them entirely optional. Implementors may send them but are not required to for compliance.
Disk read/write and logical read/write counters in rdbmsSrvInfoTable are product-specific and explicitly not comparable between RDBMS products. Logical read/write values may only be meaningful when aggregated across all servers sharing a common cache.
Parameter names (rdbmsDbParamName, rdbmsSrvParamName) are limited to 64 characters to constrain the number of OID sub-identifiers needed for SNMP instance identification and to minimize network traffic.
rdbmsDbName uses a product-specific format; products may need to qualify the name to avoid duplicates on a host by embedding the RDBMS instance, installation, or owner, e.g., '/test-installation/database-owner/database-name'.
rdbmsSrvTable and rdbmsSrvInfoTable are both indexed by applIndex from APPLICATION-MIB (RFC 1565), extending the applTable. Objects such as applName, applVersion, applOperStatus, and applInboundAssociations in applTable have RDBMS-specific interpretations defined in the rdbmsSrvInfoTable description.
An instance of rdbmsRelState with value active(2), other(1), or restricted(4) implies that a corresponding row in rdbmsDbTable will be present for that database.
rdbmsDbInfoTable entries must be present only when the database is actively opened, defined as at least one rdbmsRelState entry for that database being active(2). If not actively opened, access returns noSuchName (SNMPv1) or noSuchInstance (SNMPv2).
rdbmsDbParamSubIndex and rdbmsSrvParamSubIndex values of zero are not permitted. Single-valued parameters use subindex 1; multi-valued parameters (e.g., members of a DBA group) must use multiple rows with distinct positive subindex values.
rdbmsSrvInfoTable entries are only visible when the corresponding applOperStatus is up(1). If applOperStatus is not up(1), the agent returns noSuchName (SNMPv1) or noSuchInstance (SNMPv2) for corresponding instances.
rdbmsSrvParamTable entries must be present when the corresponding applOperStatus is up(1). If applOperStatus is not up(1), the agent may return noSuchName (SNMPv1) or noSuchInstance (SNMPv2).
The compliance statement (rdbmsCompliance) requires implementation of HOST-RESOURCES-MIB hrSystem group, APPLICATION-MIB applGroup, and RDBMS-MIB rdbmsGroup. No write access to any object is required for compliance; eleven objects are listed with MIN-ACCESS read-only.
The rdbmsOutOfSpace trap should be used with care to avoid flooding the network; it signals that a managed server has been unable to allocate space for one of its databases.
rdbmsDbInfoTable (rdbmsObjects 2) holds additional information about databases that are actively opened, including product name, version, size units/allocated/used, and last backup time. It is indexed by rdbmsDbIndex and is only present when at least one rdbmsRelState for that database is active(2).
rdbmsDbLimitedResourceTable (rdbmsObjects 4) tracks limited per-database resources (e.g., locks, disk space) with fields for current value, maximum limit, highwater mark since applUpTime reset, and failure count. Resources shared across databases should use rdbmsSrvLimitedResourceTable instead.
rdbmsDbParamTable (rdbmsObjects 3) stores per-database configuration parameters, indexed by { rdbmsDbIndex, rdbmsDbParamName, rdbmsDbParamSubIndex }. Multi-valued parameters are represented as multiple rows; single-valued parameters use subindex 1. Zero is not a valid subindex.
rdbmsDbTable (rdbmsObjects 1) contains one row per database installed on a host, indexed by rdbmsDbIndex. Fields include rdbmsDbPrivateMibOID, rdbmsDbVendorName, rdbmsDbName, and rdbmsDbContact. Whether a database appears in this table may depend on its activity level.
rdbmsOutOfSpace NOTIFICATION-TYPE carries rdbmsSrvInfoDiskOutOfSpaces and is sent when a managed server cannot allocate disk space for a managed database. Neither trap is part of a conformance group and neither is required for compliance.
rdbmsRelTable (rdbmsObjects 9) maps server-database relationships on a host, indexed by { rdbmsDbIndex, applIndex }. Each entry carries rdbmsRelState and rdbmsRelActiveTime, enabling SNMP walk operations to enumerate all servers capable of accessing a given database.
rdbmsSrvInfoTable (rdbmsObjects 6) provides operational statistics for active servers: startup time, finished transactions, disk and logical reads/writes, page reads/writes, out-of-space events, handled requests, request send/receive counts, and inbound association high-water and maximum counts.
rdbmsSrvLimitedResourceTable (rdbmsObjects 8) tracks limited server-level resources (e.g., threads, semaphores, buffer pages) with the same limit/current/highwater/failures structure as rdbmsDbLimitedResourceTable. Resources shared across servers should be duplicated across all relevant server entries.
rdbmsSrvParamTable (rdbmsObjects 7) stores per-server configuration parameters with the same multi-valued row structure as rdbmsDbParamTable, indexed by { applIndex, rdbmsSrvParamName, rdbmsSrvParamSubIndex }. Entries must be present when the corresponding applOperStatus is up(1).
rdbmsSrvTable (rdbmsObjects 5) contains one row per database server, indexed by applIndex from APPLICATION-MIB. Fields include rdbmsSrvPrivateMibOID, rdbmsSrvVendorName, rdbmsSrvProductName, and rdbmsSrvContact.
rdbmsStateChange NOTIFICATION-TYPE carries rdbmsRelState and is sent when a database/server relationship transitions to a less accessible state. Both active(2) and available(3) are considered fully accessible; the trap includes the new, less accessible state.
rdbmsWellKnownLimitedResources (rdbmsObjects 10) defines well-known resource OIDs for use as rdbmsDbLimitedResourceID or rdbmsSrvLimitedResourceID values. The only defined entry is rdbmsLogSpace (subobject 1), representing storage allocated for redo and undo logs.
The RDBMS-MIB module is registered under mib-2 39 (OID { mib-2 39 }), making it part of the standard MIB-II subtree for relational database management instrumentation.
The RFC explicitly states that security issues are not discussed in this memo. No authentication, access control, or privacy protections for the MIB objects are specified; implementors must rely on the SNMPv2 administrative framework (RFC 1445) for any such controls.
rdbmsRelState defines five states for a server's access to a database: other(1), active(2) — server is actively using the DB, available(3) — server could use it if needed, restricted(4) — administratively limited availability, unavailable(5) — DB not accessible through this server. The rdbmsStateChange trap fires when the state transitions to a less accessible value.