User Guide

A practical walk through every part of mooMON — from your first connection to live monitoring, SQL, schema work, scheduling and OLAP. Each screen is shown as you'll see it.

Not installed yet? See the Installation page for the Windows, macOS and Linux downloads and step-by-step setup — then come back here.

Connecting

When mooMON opens, it asks where to connect. Fill in the host, port and service (or SID), your username and password, and choose a role. Tick as SYSDBA for an administrative login. Test checks the connection without opening a session.

Thin mode. mooMON speaks to Oracle directly — there is no client to install and nothing to configure on the machine beyond a network route to the listener (usually port 1521).
Connect to Oracle
Connect dialog
The connect dialog. Give either a service name or a SID — not both.

Saved profiles

Connections you use often can be saved as named profiles. Enter a master password once to unlock them; passwords are stored encrypted in ~/.moomon/connections.json, never in plain text. Select a profile to load its details, then Connect.

Saved connections
Saved connection profiles
Saved profiles keep host, port, service and user together, with the password encrypted.

Environment colour

Give each connection a soft colour — production red, staging amber, development green — and mooMON paints a gentle halo around the window and a swatch row in the status bar. It's a memory aid you set, remembered per login, so production always comes up wearing its colour.

Production, marked in red
Window with a red production halo
A red halo makes it obvious, at a glance, that this is production.

Several sessions at once

Use New session on the status bar to open another database in a second window, without closing the first — two databases, or two logins, worked side by side. Reconnect replaces a stale session using the same profile.

Two environments side by side
Two windows, production and development
Each window has its own connection and its own colour, so they never get mixed up.

Preferences & settings

The Settings menu holds mooMON's preferences. Switch between the light and dark themes, set the editor font used by the SQL and OLAP panes, and open a new scratchpad or a new OLAP terminal. Your choices are remembered per user in ~/.moomon/.

Editor font setting
Setting the editor font. Theme, scratchpads and new terminals live in the same menu.

Session lifecycle

The status bar shows the connection with a coloured light. If a session drops, mooMON marks it — click Reconnect (or the “session lost” indicator) to re-open it on the same profile, and the light returns to green once it's back. New session opens a second, independent window. The OLAP terminal keeps its own dedicated session and shuts its analytic workspaces down cleanly when closed, restarting the engine automatically if you run a command after a shutdown.

Tabs & navigation

mooMON's tools live along the top as tabs — Database, Performance, Dashboards, Users, Live Charts, DB Sessions, OLAP Sessions, Schema, SQL, Table Loader, OLAP Terminal, Undo Monitor, Scheduler and Job History (plus FinanceHub where licensed).

Under Database and Performance, reports are organised into groups in the left pane — sessions, undo, redo, the shared pool, dataguard, ASM, AWR and more. Select a report to run it; its description and source objects are shown above the grid.

Database — report groups
Database tab report groups
Hundreds of diagnostic reports, grouped by subsystem.

The filter bar

The strip along the top scopes what the monitoring panels show. Narrow to specific RAC instances or containers, filter by database user, and toggle Show SQL to reveal the exact statement each report runs.

The filter bar
Instances, containers, user and a Show-SQL toggle.

Working with grids

Every report renders in a fast, sortable grid. Type into the per-column filter row to narrow results instantly; click a header to sort. Grids stay responsive on large result sets.

Per-column filtering
Grid column filter

Drill-down

Right-click a row that carries a SQL_ID or a wait event to open an AWR/ASH detail report for that exact value — it opens in its own pop-out tab, so the report you came from stays put.

Right-click drill menu
Drill-down pop-out tab

Where a report needs an AWR snapshot range, mooMON asks for it first, then inherits that range for any further drills.

AWR snapshot picker

Exporting

The Export button sends the current result to Excel (.xlsx) or CSV; dashboards can also be saved as SVG or PNG.

Export menu

The report library at a glance

Under Database and Performance, hundreds of diagnostic reports are grouped by subsystem. You don't have to learn them — select a group, run a report, read its description above the grid, then filter, drill or export. The groups show the breadth of coverage:

DatabasePerformance
Sessions · Locks · Undo · Redo · Shared PoolWait Events · Latches · Library Cache
Parameters · Statistics · AdvisoryTop Sessions · ASH Top · ASH Wait Chains
Space · ASM · Flashback / FRAI/O · SQL Tuning Tasks · SYS Metric
Data Guard · Parallel Query · Shared Server
Distributed Txns · Streams · Diag / incidents
Jobs / Scheduler · OLAP · AWR (≈90 reports)

Live Charts

RichMon-style live monitoring: tick the metrics you want and watch them plot in real time from the gv$ views. Leave it running to build history before you read the trend.

Live Charts
Live charts

Instance Viewer

A single live page for one database instance: header vitals, live charts for CPU, sessions, waits, I/O and more, client counts, Top SQL and the SGA. On a RAC cluster, use the instance dropdown to focus on one node or see the whole cluster — under “All instances”, the single-metric charts draw one line per node.

Instance Viewer
Instance Viewer
Top SQL
Top SQL
Memory and storage
Memory & Storage

DB Sessions

Every session in the database, with a live blocking tree that shows exactly who is waiting on whom. Filters isolate active sessions or anything running longer than 24 hours. When you need to intervene, kill or disconnect a session — with a clear confirmation first.

DB Sessions — blocking tree
Blocking tree
Session list
The full session list
Kill confirmation
Kill / disconnect confirms first

Undo Monitor

A focused view of undo usage and the sessions consuming it — useful when undo pressure or long-running transactions are in play.

Undo Monitor
Undo Monitor

RAC & multitenant

mooMON is cluster- and container-aware throughout. The filter bar scopes monitoring to particular RAC instances or containers; the Instance Viewer lets you pick a single node or watch one line per node; and, from a CDB root, the container switcher in the top bar lets you act inside a PDB — the schema browser, SQL, Table Loader and OLAP all follow the container you choose, so a grant or a load lands where you intend rather than in the root.

The 15 dashboards

The Dashboards tab collects at-a-glance views built as clean, themed graphics: Host performance (live and from AWR history), RAC cluster overview, OLAP activity, Space & ASM, Scheduler/Jobs, Redo & Commit, Backup/RMAN health, the Alert Log, Capacity trend, and a set of ASH charts. Pick one from the list to render it.

Dashboards — Host performance
Host performance dashboard
Cluster overview
RAC cluster overview
Space and ASM
Space & ASM
Alert log
Alert Log & incidents
Backup health
Backup / RMAN health

DBA Reports

The DBA Reports tab is a hub of DBA tools, kept separate from the day-to-day monitoring reports: the Data Dictionary Explorer and dictionary views, a full AWR report, the Instance Viewer, and combined reports.

DBA Reports
DBA Reports tab

The data dictionary

The Data Dictionary Explorer browses Oracle's description of its own catalogue by subject — a quick way to find the right DBA_* or V$ view and see its columns and comments without leaving mooMON.

Data dictionary explorer
Browsing Oracle's catalogue by subject.

AWR reports

Generate Oracle's full AWR report for a snapshot range and read it inside mooMON, restyled to match. Pick the begin and end snapshots, click Generate report, and the workload repository report renders inline — DB summary, load profile, top timed events, ADDM findings and the rest.

DBA Reports — AWR report
AWR report

SQL — editor & completion

A full SQL workspace with syntax highlighting, formatting, statement history, and column-aware completion that suggests tables and their columns as you type. Run a single statement or a whole script; results appear in the grid below, ready to filter and export.

SQL — column completion
SQL completion popup

Explain & the syntax diagram

One click produces an Explain Plan for the statement. Below the editor, a live railroad diagram draws the grammar of the statement under your cursor — a quick way to see the shape of a query and spot a missing clause.

Explain plan
Explain Plan
Syntax diagram
Live syntax diagram

AI — ask in plain English

When a connection has the AI assistant enabled, an Ask bar sits above the SQL editor. Type a question the way you'd say it out loud — "which range rover models sold most in GB in 2020, with the customer account name" — and mooMON writes a matching Oracle SELECT straight into the editor, ready to run.

Ask — natural-language SQL
The Ask bar
The Ask bar. Append drops the query below your existing SQL, Comment keeps the question as a comment, Explain asks the model to describe what it did, and Why? shows its working.

A moment later the statement appears — grounded in your real tables and columns, not guessed. Read it, tweak it, run it.

Ask → generated SQL
Generated SQL in the editor
Read-only by design. The assistant only ever writes SELECT queries, and the SQL always lands in the editor for you to review before anything runs.
Working on it
While it thinks, the mooMON cow keeps you company.

Grounded — and it shows its working

The model isn't left to guess your schema. For every question, mooMON looks up the relevant tables, columns, data types and comments in your live database and hands those to the model as grounding. The Why? button opens a window that lays it all out: the question, the model's own plain-English explanation, exactly what it was told (the grounding tree), and the final SQL.

AI — why this SQL
The Why panel
Full transparency — the tables and columns the model saw, its reasoning, and the SQL it produced, side by side.

Complex questions, handled

It isn't limited to simple look-ups. Ask for something that needs several tables joined, one-to-many rows collapsed and duplicates merged, and it writes idiomatic Oracle to match — here, two joins plus LISTAGG(DISTINCT …) to fold multiple directors and countries into a single row per title.

A complex, multi-table question
A complex multi-join query

Safe, and honest about its limits

Ask for something that isn't a query — a PL/SQL script, an update, a new table — and mooMON says so plainly rather than inventing something: the assistant writes read-only SELECTs only.

Read-only SELECT only
Non-query requests are declined, not faked.

Behind the scenes, deterministic checks verify and tidy every answer — completing a join the model left half-finished, correcting an invalid HAVING, or removing a row cap you didn't ask for — and leave a note in the editor when they've stepped in. And there is no hidden prompt: Settings ▸ AI Prompt Viewer shows the exact instructions mooMON sends the model.

AI Prompt Viewer
The AI Prompt Viewer

Your AI, your choice — on-prem or Azure

Each connection picks its own AI backend from the AI type dropdown on the connection dialog: Local / Ollama — an on-premises model on your own network (a GPU box, say) — or Azure OpenAI.

Connection — AI type
AI type dropdown

Choose Azure and the fields change to the endpoint, deployment, api-version and key. The key is stored encrypted with your master password, exactly like the database password.

Azure OpenAI settings
Azure OpenAI settings — the key is encrypted at rest, never stored in plain text.
Where your questions go. With Ollama, nothing leaves your network. With Azure OpenAI, the schema and your question go to your own Azure resource — which, on the enterprise terms, is never used to train models.

Whichever you pick, the footer shows the live backend and model at a glance.

AI backend shown in the footer
The active AI backend and model, bottom-left in the status bar.

Connect your AI tools — the MCP server

mooMON can act as a server for your favourite AI assistant. Switch it on and tools like Claude (Desktop or CLI), GitHub Copilot and ChatGPT can talk to mooMON over the open Model Context Protocol (MCP) — asking it to run a curated diagnostic script, search your code library, look up an object's source, or run a read-only query, all against the database you choose. Your assistant gains mooMON's knowledge of your estate; mooMON stays firmly in control of what it is allowed to do.

AI assistant Claude · Copilot ChatGPT · others MCP · token mooMON — MCP server six read-only tools SELECT-only guard read-only Your Oracle DB session tagged in gv$session as “mooMON MCP”
Any MCP-capable assistant connects with a per-profile token and gets a small set of read-only tools — never more.

It is the same read-only, safety-first philosophy as the in-app assistant — simply made available to the tools your team already works in.

One line from the connection screen

Open the MCP Server window from the connection dialog. Each saved profile gets its own connector name (for example moomon-prod) and its own access token, so you can register several databases side by side and your assistant always knows which one it is talking to. mooMON hands you the exact line to paste into your terminal:

MCP Server
The MCP Server window
The MCP Server window: name the connector, pick a port, Start MCP server, then copy the URL, token or the ready-made command.
claude mcp add --transport http moomon-prod http://127.0.0.1:8765/mcp --header "Authorization: Bearer ••••••••••••"

Paste it into PowerShell for the Claude CLI, or point Claude Desktop — or any MCP client — at the same URL and bearer token. The token is per profile; New token rolls it at any time, and nothing connects without it.

mooMON connected as an MCP server in Claude
Once registered, mooMON shows up as a connected MCP server in your assistant.
One token per database. The connector name in the command is what selects the profile, so moomon-prod and moomon-dev can both be registered at once and never cross wires.

The six tools — and how you use them

You don't type these tool names yourself. You talk to your assistant in plain English — "what's using the most DB time right now?" — and it picks the right mooMON tool and fills in the details. Knowing what each one does, and what it accepts, tells you exactly what an assistant can reach — and lets you be explicit when you want to ("use run_readonly_sql to …").

The mooMON tools listed in the AI client
The mooMON tools, as your assistant sees them.
ToolWhat it doesWhat you give it
list_scripts Lists mooMON's curated diagnostic scripts and catalog actions — each with a short description and any values it still needs. An optional filter — a word matched against the name, label or description (e.g. undo, top sql). Leave it empty for the full list.
run_named_script Runs one of those scripts, read-only, and returns the rows. Time window and instance default to the last hour across all instances. The script name (from list_scripts). Optionally hours to widen the window, and binds — a positional list supplying anything the script still needs, such as a SQL_ID or AWR snapshot.
run_readonly_sql Runs an ad-hoc query and returns the rows. Guarded by sqlglot: a single SELECT only — no DML, DDL, PL/SQL, FOR UPDATE or multiple statements. One Oracle SELECT statement. Automatically row-capped; optional max_rows.
search_code Searches the OLAP and relational source library and returns the matching objects with the lines that hit. A search string. Optionally a tier (both, olap or relational) and exact to match the text verbatim.
get_object_source Returns the source of an OLAP program or model from the FinanceHub snapshot. The object name. Optionally an aw (analytic workspace) — omit it to get every AW that holds one of that name.
get_dependencies Shows what an OLAP program references (depends on) and what references it (dependents — the change blast-radius). The object name, and an optional aw.

There is also a read-only resource, moomon://catalog, that hands the assistant the whole grouped catalog of scripts at once — useful for "what can you check on this database?"

Ask, don't memorise. A good opening move is "list the mooMON scripts for <topic>": the assistant calls list_scripts, then runs the one you pick with run_named_script — prompting you for a SQL_ID or snapshot only if that script needs one.
list_scripts
Listing the curated scripts from the assistant
A diagnostic run returning DB time and CPU
A curated diagnostic — DB time and CPU — run straight from the assistant and returned as rows.
“run the host dashboard”
The assistant charts an hour of host CPU and explains it in plain English
The payoff. Asked only “run the host dashboard”, the assistant pulled the data through mooMON's tools, charted the hour as sparklines, and explained the three CPU events in plain English — a redo/undo burst, an autotask scan, and the OLAP dependency walk — with no further prompting.

Scoped, read-only and visible

The whole surface is deliberately small and read-only — the six tools above, and nothing that writes. Every ad-hoc query is checked and must be a plain SELECT (the same sqlglot guard as the in-app assistant); anything else is refused.

The database session mooMON opens for MCP is tagged in gv$session as mooMON, so your DBAs can always see exactly what an assistant is doing and on which connection. And because access is per-profile and token-gated, an assistant only ever reaches the database you pointed it at.

The MCP session shown as mooMON in gv$session
Every MCP session is badged as mooMON in gv$session — visible to your DBAs.
Still your call. The MCP server is off until you open the window and register a connector, and it only ever reads — it never changes data, runs DDL, or performs an action on your database.

Browsing objects

The Schema tab is a full object browser: expand a schema to see its tables, views, packages, indexes, sequences, types and more. Selecting an object shows its detail, and the tabs across the top give you its columns, constraints, indexes, triggers, partitions, grants, dependencies, statistics and data.

Schema browser
Schema browser

Editing data — safely

On the Data tab of a table you can edit rows directly in the grid. Changes are staged, not applied — an amber indicator counts what's new, changed or to be deleted. Preview SQL shows the exact statements first; Commit applies them as one transaction, and Rollback discards them.

Schema — staged edits
Editable data grid with staged changes
Only ROWID-keyed tables are editable. Views and index-organized tables (which have no physical ROWID) open read-only, and mooMON says so in the status bar — the edit controls simply don't appear.

DDL, keys & columns

Read an object's DDL straight from the browser, visualise its foreign-key relationships as a diagram, and alter a column with a guided dialog that builds the SQL and checks for the obvious hazards before you run it.

DDL view
DDL for a table
Foreign key diagram
Foreign-key diagram
Alter column dialog
The alter-column dialog builds and checks the SQL.

PL/SQL editor

Open a package, procedure or function in a full pop-out editor with syntax highlighting, an outline for jumping around large bodies, Find/Replace, and a split view so you can see a package's specification and body together. Compile and run right from the toolbar — mooMON collects any argument values first — and export the source or the page.

PL/SQL editor — spec & body, split view
PL/SQL editor with a package spec and body
Edit, compile and run PL/SQL with an outline and a split spec/body view.

Object details

Selecting a table, view or other object fills a row of detail tabs: Detail (columns and types), Data, Constraints, Indexes, Triggers, Partitions, Grants, Dependencies and Statistics. Only the tabs that apply to the object type appear.

Constraints tab
Constraints for a table, with the full detail-tab row above.
Dependencies tab
Dependencies — what the object uses, and what uses it.

Table Loader

Create a table and bulk-load data into it without leaving mooMON. Build a table with the column builder, then load from a CSV, Excel or delimited file — mapping columns by header name or position. When it finishes, you get the row count.

Column builder
Column builder
File column mapping
Map file columns
Load result
A completed load, with the row count.

The Users tab

Pick a database user and see what they can reach and why: their profile and quotas, their proxies, and their privileges — including ones inherited through nested roles. It's the fast way to answer “can this account do X, and where did that come from?”

Users
Users tab

Create User wizard

A guided wizard walks through creating a user — identification, tablespaces and quotas, roles and privileges — and shows you the exact SQL it will run before you commit to it.

Create user step 1
Create user step 2
Create user step 3
Create user step 4 — generated SQL

Scheduler

A window onto DBMS_SCHEDULER: jobs and their wiring — programs, schedules, chains and windows — together with file watchers and recent runs, so you can see what's scheduled and what fired.

Scheduler
Scheduler

Job History

Run history for scheduled work, with the chain reconstructed as a graph so you can follow how one step led to the next. Right-click a job row anywhere in mooMON to jump straight here.

Job History — chain graph
Job history chain graph

A job in detail

The Scheduler lists every job — owner, schedule, program, run and failure counts, next run. Selecting one opens detail tabs beneath the grid: its run history, its definition, a chain graph tracing how it triggers downstream work, and — for file-watcher jobs — the watcher configuration.

Scheduler — jobs & run history
Scheduler jobs and run history

The chain graph is the quickest way to understand a multi-step job:

Chain graph
A job's chain: file watcher → job → program → handler → downstream job.
File watcher
The file-watcher tab — directory, pattern and credential for a watcher-driven job.

OLAP Terminal

A dedicated terminal for Oracle OLAP / analytic-workspace work — run OLAP DML, read the log, and edit and compile programs, all against a dedicated session. Syntax highlighting, command recall and in-session editing make it a real working environment, and it recovers cleanly if a command is killed or a session drops.

OLAP Terminal
OLAP Terminal

Pseudo-commands

Beyond raw OLAP DML, the terminal understands a set of convenience commands — type moo help to list them:

CommandWhat it does
help / moo helpShow the list of pseudo-commands
all_awsList every analytic workspace in the database
pdb / con_nameThis session's container (PDB / CDB$ROOT) and user
detach_allDetach every attached AW (EXPRESS is never detached)
connect(Re)open the session and start OLAP (dbms_aw.startup)
exitShut OLAP down and disconnect (dbms_aw.shutdown)
cls / clearClear the transcript
tbl <rpr args>Run a report and open it as a table (copy / Excel / CSV)
lotf <path> / lotf offTee command output to a file (log output to file)
edt <name>Edit a program, model or aggmap
edtv <name>Edit a text variable
<cmd> | mgrep <pat>Filter a command's output to matching lines
moo help output in the terminal
moo help lists the pseudo-commands in the transcript.

Completion & output filtering

Press Ctrl+Space for OLAP DML completion, with one-line syntax help drawn from the built-in lexicon. Pipe any command through mgrep to filter a long report down to the lines you care about.

OLAP completion popup
OLAP DML completion, with one-line syntax help (Ctrl+Space).
mgrep output filtering
Filtering a command's output with mgrep.

Programs & sessions

Edit OLAP programs with highlighting, and keep an eye on which sessions have an analytic workspace attached — with the same safe kill controls as the database session manager.

OLAP program editor
Program editor — highlighting, outline, Find/Replace, split and export.
OLAP sessions
OLAP sessions — which sessions have an analytic workspace attached.

Container switcher

On a multitenant database, the session-container picker in the top bar lets you act inside a PDB straight from the CDB root — schema, SQL, Table Loader and OLAP all follow the container you choose, so a grant or a load lands where you intend.

Container switcher

The FinanceHub module

Where licensed, mooMON includes a FinanceHub module for teams running the FinanceHub platform: a Process Manager over the OLAP process table with a live run-state view; a GitLab-style Source Control browser with commits, diffs and history; a Models / Formulas browser; a View Explorer with dependency diagrams; and a Password Analytics board.

FinanceHub — Process Manager
FinanceHub process manager
Source control
Source Control
Source diff
Change diff
Models and formulas
Models / Formulas
View explorer
View Explorer
Password analytics
Password Analytics.

The Analytics dashboards go further — for example Access Paths traces user activity from session source to RAC node, so you can see how load is actually spread across the cluster, with imbalance ratios, a source×node matrix and the busiest paths called out.

FinanceHub — Access Paths (load balancing)
Access paths load-balancing dashboard
Sample data. FinanceHub screens in this guide are shown with illustrative, non-production data.

Department Mapping

Under FinanceHub → Users, Department Mapping maintains the mapping from source departments to reporting groups. Edits are staged — Preview SQL, Commit, Rollback — and dedicated tabs list unmapped departments and duplicates.

FinanceHub — Department Mapping
Department mapping

View Explorer

View Explorer maps how views relate: a diagram of a view and its neighbours, plus tabs for the Definition, Columns, Dependencies, Joins, Lineage and MV status — with column-level lineage derived by parsing the SQL.

FinanceHub — View Explorer
View explorer
Sample data. FinanceHub screens are shown with illustrative, non-production data.

Keyboard shortcuts

ShortcutAction
Ctrl+EnterRun the current statement (SQL / OLAP)
Ctrl+SpaceOpen the completion popup
Ctrl+LJump to the command / entry box
F2Recall previous commands (OLAP terminal)
Ctrl+SSave the current editor or script
Ctrl+GGo to line
Ctrl+Shift+CCopy the selection with column headers
Page Up / Page DownPage through results and history

Working with limited privileges

mooMON probes what your account can see when it connects, and adapts. If a login lacks the catalog or V$ privileges a tab needs, that tab is disabled rather than throwing errors, and where it can, mooMON falls back to the views you can see (ALL_* instead of DBA_* / CDB_*). You get as much of the tool as your grants allow, with a clear note on what's missing — ask your DBA for SELECT_CATALOG_ROLE to unlock the monitoring views.

About & deployment

The version and credits are under Help → About. mooMON connects in thin mode and needs no Oracle client. It ships as a self-contained bundle for Windows, macOS and Linux, or runs from a source tree on locked-down hosts — see the Installation page for every option. It adapts to the privileges of the account you connect with, disabling tools it cannot run rather than failing.

Help → About
About dialog

← Back to the Overview