• Loading...

PostgreSQL RDBMS

Discover with BMC ADDM
download

This product can be discovered by any edition of BMC Atrium Discovery and Dependency Mapping. Download our free Community Edition to try it out, or see what else it can discover!

What is this?
This is a product information page, containing details of the information that BMC Atrium Discovery gathers about a product and how it is obtained.
Product Name
RDBMS
Publisher Page

PostgreSQL

Category

Relational Database Management Systems

Release
TKU 2012-Feb-1
Change History

PostgreSQL RDBMS - Change History

Reports & Attributes

PostgreSQL RDBMS - Reports & Attributes

Publisher Link
PostgreSQL

Product Description

PostgreSQL is a powerful, open source relational database system. It has more than 15 years of active development and a proven architecture that has earned it a strong reputation for reliability, data integrity, and correctness. It runs on all major operating systems, including Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), and Windows. It is fully ACID compliant, has full support for foreign keys, joins, views, triggers, and stored procedures (in multiple languages). It includes most SQL92 and SQL99 data types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and TIMESTAMP. It also supports storage of binary large objects, including pictures, sounds, or video. It has native programming interfaces for C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, among others, and exceptional documentation.

Known Versions

  • 1.0
  • 1.01
  • 1.02
  • 1.09
  • 6.0
  • 6.1
  • 6.2
  • 6.3
  • 6.4
  • 6.5
  • 7.0
  • 7.1
  • 7.3
  • 7.4
  • 8.0
  • 8.1
  • 8.2
  • 8.3

Software Pattern Summary

Product Component OS Type Versioning Pattern Depth
DatabaseServer UNIX, Windows Active (command), Path, Package Instance-based or grouped on command-line args (data dependent)

Platforms Supported by the Pattern

The current pattern identifies an instance of PostgreSQL Server running on both Unix/Linux and Microsoft Windows platforms.

Identification

Software Instance Triggers

Pattern Trigger Node Attribute Condition Argument
DatabaseServer DiscoveredProcess cmd matches regex '\bpostmaster$'
or
cmd matches regex '\bpostgres$'
or
cmd matches regex '(?i)\bpg_ctl\.exe$'

Simple Identification Mappings

The following components/processes are identified using the combination of pattern definitions and simple identity mappings.

Name Command
PostgreSQL Database Server regex '\bpostmaster$'
PostgreSQL Database Server Control process regex '(?i)\bpg_ctl\.exe$'
PostgreSQL Database Server regex '\bpostgres:$'
PostgreSQL Database Server regex '(?i)\bpostgres\.exe$'

Versioning

Version information for the product is currently collected using one of three possible methods. We execute the methods in order based on their accuracy, depth and reliability. Once a result is obtained, the method lower in precedence is not attempted. In order of precedence the methods are

Active Versioning - Command Execution

We have been able to identify one method to actively version this product. It provides a good level of reliability on both platforms and does not require special permissions.

Common Functionality

The first step for active versioning is to determine whether the path of the trigger process is an absolute path as only in that case will active versioning be attempted.

This is performed as follows:

Unix

  • regular expression used to match against the trigger process command: '^/'

Windows

  • regular expression used to match against the trigger process command: '^\w:'

Command Execution

The Unix specific version command is running postmaster command with the full path to it and "--version" parameter.
The Windows specific version command is running pg_ctl.exe command with the full path to it and "--version" parameter.

Name Command OS
Executed Command: /postmaster --version Unix
Executed Command: \pg_ctl.exe --version Windows

The output is parsed using the following regular expression:

Name Command OS
regex '(PostgreSQL)\s+(\d+\.\d+(?:\.\d+)*)' Unix
regex '(PostgreSQL)\s+(\d+\.\d+(?:\.\d+)*)' Windows

Package Versioning

If the pattern is unable to extract the version information from either the Active Command then it will attempt to query the package management system to obtain the product version.
The pattern supplies the package query with a set of regular expressions to be checked for.

  • (?i)^PostgreSQL - on Windows
  • ^postgresql-server$ - on Unix

This usually returns a version if PostgreSQL was installed from package on Windows or Unix.

Path Versioning (Windows Only)

If we are unable to fetch the version from package on Windows we will attempt to parse the process's command line to see if we can identify any installation version from path using the following regular expression:

Name Command
Path Regex: regex ^(?i)\w:\\.(\d\.\d+(?:\.\d+)*).+\\pg_ctl\.exe$''

This approach usually returns a version if path was not altered much during installation

Application Model Produced by Software Pattern

Product Architecture

Following its startup, the PostgreSQL server will launch a number of worker processes which handle the various DB server functions

Software Pattern Model

The pattern triggers on postmaster or pg_ctl process since these processes shows that PostgreSQL is running.
The pattern then attempts to determine the port the DB server is listening on and uses this as part of the SI key If the key cannot be obtained, the pattern will create a grouped SI using the trigger process command-line arguments.
Finally, the pattern creates association links with processes related to the trigger process (child processes started by the main process)

Note: The current Windows pattern trigger assumes that PostgreSQL is running as a service (expected in production environment)

Obtaining detailed PostgreSQL Database, Schema and Table information

A separate pattern has been created to query the PostgreSQL Server in order to obtain database list and (optionally) database table details. For more information about this pattern, please refer to the relevant page.

Subject Matter Expertise

Subject Matter Expert input will be welcome on any other potential approaches not discussed to improving product versioning coverage of PostgreSQL PostgreSQL RDBMS.

Testing

Testing to ensure the processes related to PostgreSQL Database Server have been correctly identified and that the product can be versioned has been performed using Foundation record data as well as live discovery of hosts running Solaris, Linux and Windows operating systems.

Information Sources

Open Issues

There are no known open issues with this pattern.

TOP


Created by: Dmytro Ostapchuk 5 Nov 2008
Updated by: Dmytro Ostapchuk 17 Jan 2010
Reviewed by: Nikola Vukovljak 5 Nov 2008

Skip to end of metadata
Go to start of metadata
Labels:
products products Delete
package_versioning package_versioning Delete
path_versioning path_versioning Delete
active_versioning active_versioning Delete
additional_attributes additional_attributes Delete
configuration configuration Delete
tku_2012-feb-1 tku_2012-feb-1 Delete
relational_database_management_systems relational_database_management_systems Delete
postgresql postgresql Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.