About Dynamic Runbooks

Background and Concepts

Dynamic Runbooks are documented procedures that IT Operations staff follow to resolve an issue. The steps in the Dynamic Runbook are often based on the operational experience of subject matter experts who are responsible for providing a consistent way to respond to and resolve issues in a timely manner.

Dynamic Runbooks typically consist of a set of ordered instructions (steps) that include looking at metric data, correlating data across targets, and executing SQL against the Enterprise Manager repository or target databases to resolve the issue. Many, if not all such tasks, can be performed entirely within Enterprise Manager. With Dynamic Runbooks, users can execute these steps inside Enterprise Manager.

Terminology

  • Runbook

    Set of ordered instructions, data, and SQL designed to provide a standard way to diagnose and respond to an incident.

  • Runbook Session

    Execution of a Runbook by a user

  • Runbook Variables

    Context values applied to a Runbook. These could be: metric name, target name, target type, etc. These can be populated from an incident or metric in which the Runbook session is executed, or they could be an output of a previous Runbook step, i.e. the value for a Runbook variable can be manually filled in by the session user based on the output from one of the previous steps. Instructions for how this should be manually done from a previous step can be covered via the description in the step.

Prerequisites

You need to set the following OMS properties in order for the Repository SQL and Target SQL Runbook steps to work:

  • oracle.sysman.db.restfulapi.executesql.repository.query.enable
  • oracle.sysman.db.restfulapi.executesql.target.query.enable
  • oracle.sysman.db.restfulapi.executesql.target.update.enable
  • oracle.sysman.db.restfulapi.executesql.throttle.max.req.per.user.interval.sec
  • oracle.sysman.db.restfulapi.executesql.throttle.max.req.per.user
  • oracle.sysman.db.restfulapi.executesql.throttle.max.concurrent.request

Examples:

emctl set property -name oracle.sysman.db.restfulapi.executesql.repository.query.enable -value true -sysman_pwd "<your password>"
emctl set property -name oracle.sysman.db.restfulapi.executesql.target.query.enable -value true -sysman_pwd "<your password>"
emctl set property -name oracle.sysman.db.restfulapi.executesql.target.update.enable -value true -sysman_pwd  "<your password>"
emctl set property -name oracle.sysman.db.restfulapi.executesql.throttle.max.req.per.user.interval.sec -value 60 -sysman_pwd "<your password>"
emctl set property -name oracle.sysman.db.restfulapi.executesql.throttle.max.req.per.user -value 30 -sysman_pwd "<your password>"
emctl set property -name oracle.sysman.db.restfulapi.executesql.target.update.enable -value true -sysman_pwd "<your password>"
emctl set property -name oracle.sysman.db.restfulapi.executesql.throttle.max.concurrent.request -value 20 -sysman_pwd "<your password>"

Run any SQL on Database and Connect Target privilege is required on the database in order to run a Target SQL type step.