8000 GitHub - fiyo/DBCheck: RaccoonX(DBCheck): Open Source Intelligent Database Inspection & Operations Platform ยท GitHub
[go: up one dir, main page]

Skip to content
fiyoPublic

About

RaccoonX(DBCheck): Open Source Intelligent Database Inspection & Operations Platform

Topics

Resources

Contributing

Security policy

Stars

181 stars

Watchers

1 watching

Forks

Latest commit

ย 

History

895 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฆ RaccoonX

RaccoonX Logo

Open Source Intelligent Database Inspection & Operations Platform

RaccoonX is an open-source, cross-platform database inspection and operations platform designed for DBAs, database engineers, DevOps teams, and infrastructure teams.

Formerly known as DBCheck.

Version License Python AI RAG WebUI Docker Pulls GitHub Stars GitHub Forks

๐Ÿ—„๏ธ 22 database types ๐Ÿ” 839 inspection rules ๐Ÿค– AI-assisted diagnostics ๐Ÿ”Œ Extensible plugin architecture ๐Ÿ“œ Apache License 2.0

If RaccoonX is useful to you, consider giving the repository a โญ.

A Star helps more database engineers discover the project and is one of the simplest ways to support an independent open-source project.


๐ŸŒ Project Links


๐Ÿฆ Why RaccoonX?

Database environments are becoming increasingly complex.

A typical production environment may contain:

  • MySQL
  • PostgreSQL
  • Oracle
  • SQL Server
  • DM8
  • TiDB
  • OceanBase
  • Redis
  • MongoDB
  • ClickHouse
  • and many other database systems.

Traditional database inspection often depends on manually executing SQL scripts, checking operating-system resources, collecting screenshots, analyzing slow SQL, and writing inspection reports.

RaccoonX tries to bring these tasks together into one open-source platform.

RaccoonX helps you:

Connect
   โ†“
Inspect
   โ†“
Collect
   โ†“
Analyze
   โ†“
Identify Risks
   โ†“
Generate Reports
   โ†“
Track Changes
   โ†“
AI-assisted Diagnosis

It can be used as a standalone database inspection tool or as part of a broader database operations workflow.


๐Ÿ“Š Project Milestones

RaccoonX started as DBCheck and has evolved through continuous development and community feedback.

Milestone Status
GitHub Stars 180+
GitHub Forks 60+
Database types 22
Inspection rules 839
Languages 9
License Apache 2.0

Docker pull counts change frequently and are shown live by the badge at the top of this page instead of being hard-coded here. They represent image pulls and should not be interpreted as the number of unique users or installations.

โญ Help us reach the next milestone

If you have used RaccoonX, tested it, learned from it, or simply find the project interesting:

Give it a Star.

Every Single Pull
        โ†“
   Keep Building
        โ†“
   โญ Star RaccoonX

โœจ Features at a Glance

Feature Description
๐Ÿ—„๏ธ Data Source Manager Unified management of database instances, grouping, batch inspection, CSV import/export
๐Ÿ“‹ Database Inspection 22 database types and 839 inspection rules with automated Word reports
๐Ÿ”Œ Plugin System Independent plugin lifecycle, plugin data, templates, baselines and rules
๐Ÿ” Slow Query Analysis Execution plans, I/O patterns, lock waits and AI-assisted analysis
๐Ÿ”’ Lock Diagnostics Blocking chains, deadlocks, long transactions and remediation suggestions
๐Ÿ“Š Index Health Missing, redundant and long-unused index analysis
โš™๏ธ Configuration Baseline Compare database parameters against configurable recommended values
๐Ÿ“ˆ Historical Analysis Multi-round inspection history, trends and before/after comparisons
๐Ÿค– AI Diagnostics Local Ollama or compatible cloud APIs for AI-assisted analysis
๐Ÿ’ฌ AI Inspection Chat Natural-language interaction with the inspection system
๐Ÿงฐ MCP Server Exposes 12 tools (9 read-only + 3 approval-gated writes) to Claude, Cursor and other MCP clients
๐Ÿ“ก Real-time Monitoring Connections, latency, throughput and availability monitoring
๐Ÿ–ฅ๏ธ Server Inspection CPU, memory, disk, network, services and processes
๐Ÿ”— Shareable Reports Generate report links that can be viewed without login
โฐ Scheduled Tasks Cron-based inspection with Email/Webhook notifications
๐Ÿ“š RAG Knowledge Base Upload operational documentation for AI-assisted diagnosis
๐Ÿ“Š Oracle AWR Analysis Parse Oracle AWR HTML reports and generate structured reports
๐Ÿ’ฟ DM8 Offline Storage Check Analyze DM8 data files without a running database
๐Ÿ“ SQL Editor Interactive SQL editor with syntax highlighting and execution history
๐Ÿ–ฅ๏ธ Remote Terminal SSH terminal with multi-tab and fullscreen support
๐Ÿ“Š Monitoring Dashboard Instance status matrix and topology views; connection/slow-query/capacity drill-down adapts per DB type
๐Ÿง  Intelligence Center Multi-expert collaborative diagnosis with iterative replanning and reviewer verification
๐Ÿงฉ Workflow Orchestration Visually orchestrate inspection actions (DAG) with one-click built-in marketplace templates
๐Ÿ›ก๏ธ Xinchuang Compliance Compliance scoring by DB type with replacement checklist and mapping
๐ŸŒ Digital Twin Topology snapshots, configuration drift detection, capacity and health replay
๐Ÿ“ Smart Baseline Cross-instance configuration drift detection and capacity forecasting (Fleet view)
โœ๏ธ SQL Audit & Write Tickets Write-SQL audit state machine with approval gate (WriteGate): auto-read, approved-write, full audit
๐Ÿ’พ Disaster Recovery Backup Scheduled database/file backups with retention and health tracking
๐ŸŒ Multi-language UI Chinese, English, Traditional Chinese, Japanese, Korean, Spanish, French, German and Russian

๐Ÿ—„๏ธ Supported Databases

RaccoonX currently supports 22 database and data systems.

Database Driver Default Port Notes
MySQL pymysql 3306 5.6 / 5.7 / 8.0+
MariaDB pymysql 3306 10.3+
PostgreSQL psycopg2 5432 10+
Oracle oracledb / JPype1 + ojdbc 1521 11g R2 / 12c / 19c / 21c+, native or JDBC
SQL Server pyodbc / JDBC 1433 2012+, native or JDBC
DM8 dmpython 5236 Dameng
TiDB pymysql 4000 MySQL protocol
IvorySQL psycopg2 5333 PostgreSQL compatible
YashanDB yashandb 1688 Oracle compatible
KingbaseES psycopg2 54321 PostgreSQL compatible
GBase 8s JDBC 9088 JDK + JDBC
UXDB JDBC 33060 PostgreSQL compatible
HGDB (HighGo) JDBC 5866 PostgreSQL compatible
Vastbase G100 JDBC 5432 Vastbase, openGauss kernel
HaloDB JDBC 5432 Xihe Data, PG/Oracle dual-compatible
GBase 8a JDBC 5258 Column-store warehouse
MongoDB pymongo 27017 4.0+
DB2 LUW JDBC 50000 11.5+ / 12.x
OceanBase pymysql 2881 MySQL tenant
TDSQL-C MySQL pymysql 3306 MySQL compatible
Redis redis-py 6379 3.0+, standalone and cluster
ClickHouse JDBC 8123 21.8+

Oracle JDBC

Oracle JDBC is implemented as an independent plugin using JPype and the Oracle JDBC driver. It is useful in environments where Oracle Instant Client cannot be installed.


๐Ÿš€ Quick Start

๐Ÿณ Docker โ€” Recommended

Docker is the easiest way to start RaccoonX.

Docker Images

docker pull jackge12345/dbcheck:latest

docker run -d -p 5003:5003 \
  -v dbcheck_data:/app/data \
  -v dbcheck_reports:/app/data/reports \
  -e LD_LIBRARY_PATH=/opt/venv/lib/python3.12/site-packages/dmssl \
  jackge12345/dbcheck:latest

GitHub Container Registry

docker pull ghcr.io/fiyo/dbcheck:latest

docker run -d -p 5003:5003 \
  -v dbcheck_data:/app/data \
  -v dbcheck_reports:/app/data/reports \
  -e LD_LIBRARY_PATH=/opt/venv/lib/python3.12/site-packages/dmssl \
  ghcr.io/fiyo/dbcheck:latest

Open:

http://localhost:5003

Default credentials:

Username: admin
Password: admin123

Please change the password after the first login.


๐Ÿณ Docker Compose

curl -o deploy/docker-compose.yml \
  https://raw.githubusercontent.com/fiyo/DBCheck/main/deploy/docker-compose.yml

docker compose -f deploy/docker-compose.yml up -d

GBase 8s

The Docker image includes the required JDK and JDBC driver. GBase 8s can be used without additional driver installation when running through the provided image.

๐Ÿง Kylin / ARM64 domestic server deployment

The official image is a multi-architecture image (linux/amd64 + linux/arm64). docker pull picks the right one automatically, so Kylin servers reporting aarch64 from uname -m (Kunpeng 920 / Phytium S2500, S5000C) work out of the box.

The image ships its own user-space runtime (Debian 12 / glibc 2.36), isolated from the host's glibc, so the host only needs kernel โ‰ฅ 4.x โ€” Galaxy Kylin V10 SP3 ships kernel 4.19.90 and fully qualifies.

uname -m                                      # expect aarch64
# Version list: https://github.com/fiyo/DBCheck/releases
VERSION=26.11.5.1
docker pull jackge12345/dbcheck:$VERSION     # pin an explicit version
docker run -d -p 5003:5003 \
  --memory=2g --memory-swap=2g \
  -v dbcheck_data:/app/data \
  -v dbcheck_reports:/app/reports \
  --name raccoonx \
  jackge12345/dbcheck:$VERSION

Pin an explicit version tag

latest may still point at an older single-architecture image. If the pull fails with no matching manifest for linux/arm64, retry with a pinned version.

Driver differences on arm64

Database arm64 Notes
MySQL / MariaDB / TiDB / OceanBase / TDSQL-C โœ… Pure-Python drivers, architecture independent
PostgreSQL family (IvorySQL, Kingbase, UXDB, HGDB, Vastbase, HaloDB) โœ… psycopg2 is architecture independent
DM8 (Dameng) โœ… Uses the pure-Java JDBC driver in the image, no native client needed
YashanDB โœ… Driver is a pure-Python wheel (py3-none-any)
MongoDB / Redis / ClickHouse โœ… Architecture independent
SQL Server โš ๏ธ Install msodbcsql18 yourself (the image ships only the unixodbc driver manager)
Oracle โš ๏ธ Thick mode needs the x86_64 Instant Client and is unavailable on arm64; thin mode and the oracle_jdbc path work
GBase 8s โš ๏ธ The native Python driver needs the GBase SDK โ€” use the JDBC path on arm64

Do not run the binary package directly on Kylin

Only Windows / macOS clients are published; on Linux use the container or build from source. Debian-built binaries fail with GLIBC_2.34 not found on Kylin's glibc 2.28.


๐Ÿ’ป Source Installation

Requirements

  • Python 3.10+
  • Git
  • Database-specific Python drivers
  • Additional JDBC / ODBC dependencies where required

Clone the repository:

git clone https://github.com/fiyo/DBCheck.git
cd DBCheck

Install dependencies:

pip install -r deploy/requirements.txt

Start the Web UI:

python web_ui.py

Open:

http://localhost:5003

CLI Mode

Chinese interface:

python -m entrypoints.cli

English interface:

python -m entrypoints.cli --lang en

Web interface:

python web_ui.py

๐Ÿ” Database Inspection

RaccoonX provides configuration-driven database inspection.

The inspection engine collects database metadata, configuration, performance information, resource usage and security-related information, then evaluates them against inspection rules.

Typical workflow:

Database
   โ”‚
   โ”œโ”€โ”€ Connection
   โ”‚
   โ”œโ”€โ”€ Metadata
   โ”‚
   โ”œโ”€โ”€ Configuration
   โ”‚
   โ”œโ”€โ”€ Performance
   โ”‚
   โ”œโ”€โ”€ Sessions
   โ”‚
   โ”œโ”€โ”€ Locks
   โ”‚
   โ”œโ”€โ”€ Storage
   โ”‚
   โ”œโ”€โ”€ Security
   โ”‚
   โ””โ”€โ”€ SQL
          โ†“
    Inspection Engine
          โ†“
     Risk Analysis
          โ†“
    Recommendations
          โ†“
      Word Report

๐Ÿ“‹ Inspection Coverage

RaccoonX includes database-specific inspection templates.

Typical inspection dimensions include:

Dimension Coverage
Basic Information Version, instance, database information
Sessions Active sessions and connection usage
Memory Memory configuration and utilization
Storage Tablespaces, files and capacity
Configuration Important database parameters
Security Users, privileges and security configuration
SQL Top SQL and slow queries
Locks Blocking sessions and lock waits
Replication Replication / Data Guard status where supported
Backup Backup readiness and related configuration
Statistics Object and optimizer statistics
Performance Database performance indicators
Availability Database and service status

Coverage varies by database type.


๐Ÿ“Š Word Inspection Reports

RaccoonX can automatically generate structured Word inspection reports.

A typical Oracle report contains:

Chapter Content
Cover Database name, version, host, inspector and timestamp
Chapter 1 OS host information
Chapter 2 Database basic information
Chapter 3 Tablespaces
Chapter 4 SGA / PGA
Chapter 5 Key parameters
Chapter 6โ€“19 Undo, Redo, Archive, DG, RAC, ASM, Sessions, Performance, Security, etc.
Chapter 20 Risks & Recommendations
Chapter 21 AI Diagnostic Suggestions
Chapter 22 Report Notes

Report chapters can be configured through the Web UI.


โš ๏ธ Intelligent Risk Analysis

RaccoonX evaluates collected information against configurable inspection rules.

A risk item can contain:

  • Risk description
  • Current value
  • Recommended value
  • Risk level
  • Related SQL
  • Recommended action
  • Executable SQL where applicable

Example workflow:

Detected Risk
     โ†“
Understand the Risk
     โ†“
View Recommendation
     โ†“
Review SQL
     โ†“
Confirm
     โ†“
Execute Fix

Dangerous operations such as:

DELETE
DROP
TRUNCATE

require secondary confirmation.

All execution operations are logged.

Risk recommendations are reference information. Always evaluate changes against your actual production architecture, workload and business requirements before execution.


๐Ÿข Deep Slow Query Analysis

RaccoonX can analyze slow or expensive SQL using multiple dimensions.

Analysis may include:

  • SQL text
  • Execution plan
  • Execution time
  • CPU usage
  • I/O behavior
  • Lock waits
  • Index usage
  • Execution frequency
  • Resource consumption
  • Historical information
  • AI-assisted diagnosis

The goal is to connect SQL symptoms with database and system evidence rather than looking at SQL text alone.


๐Ÿ”’ Lock & Blocking Diagnostics

Lock analysis provides information such as:

  • Blocking sessions
  • Blocked sessions
  • Blocking chains
  • Lock waits
  • Long transactions
  • Deadlock statistics
  • Session relationships
  • Suggested remediation actions

For supported databases, remediation SQL can be generated directly from the risk analysis interface.


๐Ÿ“Š Index Health Analysis

RaccoonX analyzes index-related conditions including:

  • Potentially missing indexes
  • Redundant indexes
  • Long-unused indexes
  • Index statistics
  • Index-related SQL performance issues

Recommendations should always be reviewed against actual workload characteristics before applying changes.


โš™๏ธ Configuration Baseline

RaccoonX provides configurable baseline management.

The Web UI can be used to define:

  • Recommended values
  • Thresholds
  • Compliance rules
  • Database-specific configuration
  • Inspection rules

Examples include:

MySQL
PostgreSQL
Oracle
SQL Server
DM8
TiDB
YashanDB
KingbaseES
GBase 8s
MongoDB
ClickHouse

The baseline engine compares actual database parameters with configured recommendations.


๐Ÿ“ˆ Historical Trend Analysis

Inspection results can be retained locally and analyzed over multiple inspection rounds.

Historical analysis can show:

  • Resource trends
  • Configuration changes
  • Risk changes
  • Performance changes
  • Before / after comparisons
  • Risk evolution over time

This makes it possible to move from:

One-time Inspection

to:

Continuous Database Health Tracking

๐Ÿ“ก Real-time Monitoring

The Web UI provides real-time monitoring for supported database types.

Typical metrics include:

  • Response latency
  • QPS / TPS
  • Active connections
  • Total connections
  • Running sessions
  • Availability
  • Slow queries
  • Active connection heatmaps

The monitoring dashboard automatically adapts to the capabilities of each database type.

For database types without deep metrics support, RaccoonX can provide TCP-level connectivity information including:

  • Reachable / unreachable timeline
  • Availability percentage
  • Authentication failure
  • Port unreachable
  • Circuit-breaker state
  • Unsupported deep-collection status

๐Ÿ”ฅ Slow Query & Connection Heatmap

The monitoring interface provides heatmap visualization for:

  • Slow queries
  • Active connections
  • Time distribution
  • Connection activity

Auto-refresh can be configured between:

5s โ€“ 60s

CSV export is also supported.


๐Ÿค– AI Smart Diagnostics

RaccoonX supports AI-assisted database diagnostics.

The AI layer can analyze inspection results and provide:

  • Risk explanations
  • Possible root causes
  • Optimization suggestions
  • SQL analysis
  • Configuration suggestions
  • Operational recommendations

Local AI with Ollama

For environments where database information should remain local:

ollama pull qwen3:30b
ollama pull nomic-embed-text

Then start RaccoonX:

python web_ui.py

Configure the AI backend from the AI Settings page.

Supported AI Backends

Backend Description
ollama Local AI deployment
openai OpenAI-compatible cloud APIs
disabled Disable AI

When using Ollama, inspection data can remain within the local environment.

AI-generated recommendations should be reviewed by qualified database engineers before being applied to production systems.


๐Ÿ’ฌ AI Chat Inspection

RaccoonX includes an AI interaction panel in the Web UI.

Instead of navigating through every inspection option manually, users can interact with the inspection workflow using natural language.

For example:

Show me the databases with the highest connection usage.

Analyze the slow SQL of this instance.

What are the highest-risk configuration items?

Explain why this database has high I/O.

Compare the current inspection with the previous inspection.

Available capabilities depend on the configured database and AI backend.


๐Ÿ“š RAG Knowledge Base

RaccoonX includes a local knowledge-base capability.

Supported document types include:

  • PDF
  • Word
  • Markdown
  • TXT

Documents can be vectorized and retrieved during AI diagnosis.

Typical workflow:

Upload Documentation
        โ†“
Vectorization
        โ†“
Knowledge Retrieval
        โ†“
Database Inspection
        โ†“
AI Diagnosis
        โ†“
Context-aware Suggestions

This allows organizations to combine database inspection data with their own operational documentation and standards.


๐Ÿ”Œ Plugin Architecture

RaccoonX uses an extensible plugin architecture.

Plugins can manage their own:

  • Lifecycle
  • Metadata
  • Inspection templates
  • Baselines
  • Rules
  • Plugin-specific data

Typical plugin structure:

plugins/available/your_plugin/
โ”œโ”€โ”€ plugin.json
โ”œโ”€โ”€ main_plugin.py
โ”œโ”€โ”€ template_data.json
โ”œโ”€โ”€ baseline_data.json
โ””โ”€โ”€ rules/

A plugin can be installed, enabled, disabled and uninstalled through the Web UI.


Built-in Plugins

Plugin Database Description
MongoDB MongoDB 4.0+ Connection status, database statistics, slow queries
Oracle JDBC Oracle 11g / 12c / 19c / 21c+ JDBC-based Oracle inspection
DB2 JDBC DB2 LUW 11.5+ / 12.x JDBC inspection and system catalog analysis
Redis Redis 3.0+ Memory, clients, persistence, replication, security
Redis Cluster Redis Cluster Topology, slots, nodes and failover
UXDB JDBC UXDB 2.x PostgreSQL-compatible inspection
HGDB JDBC HGDB V9 PostgreSQL-compatible inspection
TDSQL-C MySQL TDSQL-C MySQL-compatible inspection

Plugin development documentation:

docs/plugin/

๐Ÿ–ฅ๏ธ Server Inspection

Server inspection is independent of database inspection.

It can collect:

  • CPU
  • Memory
  • Disk
  • Network
  • Processes
  • Services
  • System resources

A separate server inspection report can be generated.

This allows database and operating-system information to be considered together during troubleshooting.


๐Ÿ–ฅ๏ธ Remote Terminal

RaccoonX includes an SSH-based remote terminal.

Supported features include:

  • Password authentication
  • SSH key authentication
  • Multiple terminal tabs
  • Fullscreen mode

This can be useful when database diagnosis requires checking the underlying host.


๐Ÿ”— Shareable Reports

Inspection reports can be shared through generated links.

Supported capabilities include:

  • One-click sharing
  • Viewing without login
  • Permission isolation
  • Visit counting
  • Immediate deletion

Example:

/share/<share_id>

โฐ Scheduled Inspections

RaccoonX supports scheduled inspection tasks based on Cron expressions.

Common schedules include:

Daily
Weekdays
Weekly
Monthly
Custom Cron

After an inspection is completed, notifications can be sent through:

  • Email
  • Webhook
  • WeCom
  • DingTalk
  • Custom JSON Webhook

Word inspection reports can be attached to email notifications.


๐Ÿ’พ Disaster Recovery Backup

RaccoonX includes a disaster recovery backup module.

Supported targets include:

  • MySQL
  • MariaDB
  • PostgreSQL
  • Files

Features include:

  • Scheduled backups
  • Cron scheduling
  • Retention cleanup
  • Backup history
  • Backup health scoring
  • One-click restore points
  • Webhook notifications
  • Email notifications

Database passwords are encrypted at rest using Fernet and masked in API responses.


๐Ÿ“Š Oracle AWR Analysis

Oracle AWR HTML reports can be uploaded to RaccoonX.

The system can parse key performance information and generate a structured Word analysis report.

AI-assisted analysis can also be enabled.

Typical workflow:

Oracle AWR HTML
       โ†“
Upload
       โ†“
Parse
       โ†“
Analyze
       โ†“
Generate Report
       โ†“
AI-assisted Diagnosis

๐Ÿ’ฟ DM8 Offline Storage Check

RaccoonX supports DM8 storage inspection without a running database instance.

It can directly inspect:

.DBF
dm.ctl

Supported modes:

  • Local directory
  • Remote SSH server

The storage scanner can identify suspicious blocks based on binary patterns.

Examples include:

ZERO_PAGE
CONSTANT_FILL
TRUNCATED

Detected blocks are reported by:

  • Physical page number
  • File offset
  • Tablespace

A structured Word report can also be generated.


๐Ÿ“ SQL Editor

RaccoonX includes an interactive SQL editor in the Web UI.

Features include:

  • SQL syntax highlighting
  • Database object browsing
  • Result tables
  • Execution history
  • Friendly error messages

The editor supports the database types available through the configured RaccoonX drivers and plugins.


๐ŸŒ Multi-language Support

RaccoonX currently supports:

  1. ไธญๆ–‡
  2. English
  3. ็น้ซ”ไธญๆ–‡
  4. ๆ—ฅๆœฌ่ชž
  5. ํ•œ๊ตญ์–ด
  6. Espaรฑol
  7. Franรงais
  8. Deutsch
  9. ะ ัƒััะบะธะน

Language can be changed from:

  • Web UI language selector
  • CLI argument

Example:

python -m entrypoints.cli --lang en

The localized areas include:

  • UI text
  • Menus
  • Reports
  • AI diagnostic labels

RaccoonX also supports:

  • Dark theme
  • Light theme

๐Ÿ”Œ REST API

RaccoonX provides REST APIs for automation and integration.

API Key authentication can be used to integrate RaccoonX with:

  • CI/CD
  • Monitoring platforms
  • Automation systems
  • Internal operation platforms

Health Check

curl http://localhost:5003/api/v1/health

Trigger Inspection

curl -X POST http://localhost:5003/api/v1/inspect \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "db_type": "mysql",
    "host": "192.168.1.100",
    "port": 3306,
    "user": "root",
    "password": "****"
  }'

Async Inspection

curl -X POST http://localhost:5003/api/v1/inspect \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "db_type": "oracle",
    "host": "192.168.1.200",
    "service_name": "ORCL",
    "user": "system",
    "password": "****",
    "mode": "async"
  }'

API Endpoints

Endpoint Method Description
/api/v1/health GET Health check
/api/v1/inspect POST Trigger inspection
/api/v1/inspect/{task_id} GET Query task result
/api/v1/inspects GET Recent task list
/share/<share_id> GET View shared report

For production environments, use a reverse proxy such as nginx and rotate API keys regularly.


๐Ÿงฐ MCP Server

RaccoonX ships a Model Context Protocol (MCP) server that hands inspection capabilities directly to MCP-capable clients such as Claude, Cursor and Codex.

The point is simple: your AI no longer needs you to paste SQL output, screenshots or report contents. It can list your data sources, run an inspection, inspect blocking chains, check index health โ€” and then reason about the result.

Start it

python -m modules.mcp_server

It uses stdio transport by default (local trusted mode). The MCP client spawns the process, so no port needs to be exposed.

Client configuration

Add this to the mcpServers block of Claude Desktop, Cursor or any MCP client:

{
  "mcpServers": {
    "dbcheck": {
      "command": "python",
      "args": ["-m", "modules.mcp_server"],
      "cwd": "/path/to/DBCheck"
    }
  }
}

Available tools (12: 9 read-only + 3 write)

Tool Description
dbcheck.list_instances List data sources visible to the current user (passwords always stripped)
dbcheck.run_inspection Run one inspection round against a data source and return the verdict
dbcheck.slow_queries Top slow queries, execution plans and AI optimization advice
dbcheck.lock_tree Blocking chains, deadlocks and long-transaction trees
dbcheck.index_health Missing, redundant and long-unused indexes
dbcheck.baseline_check Compare parameters against the configuration baseline
dbcheck.ai_diagnose Comprehensive AI diagnosis for one instance
dbcheck.nl2sql Natural language to SQL (bridged to Chat2DB as an upstream MCP server)
dbcheck.bicqa_ask Knowledge-base Q&A backed by BIC-QA
dbcheck.kill_session Write. Terminate a blocking session โ€” returns a pending-approval ticket, never executes directly
dbcheck.apply_index Write. Create/rebuild an index โ€” pending-approval ticket, revertible via DROP INDEX
dbcheck.execute_sql Write. Run arbitrary SQL โ€” blocked by audit rules, otherwise pending approval, then controlled execution

Write operations never execute over MCP

The three write tools do not touch the database directly. Each call is converted into a SQL statement and submitted to the same SQL audit state machine the Web UI uses (WriteGate: auto-read / approved-write / full audit). You get back APPROVAL_REQUIRED plus a task number; statements that hit a blocking rule come back as BLOCKED_BY_RULE and never enter the approval queue. An MCP client cannot name its own approver โ€” approval and execution can only happen in the Web UI, so an AI cannot bypass approval and modify a database directly.

Tools reuse the same user-visibility checks and audit logging as the Web UI, so the permission model is identical: over MCP an ordinary user can only see the data sources they are allowed to see.


๐Ÿ“ฆ Distribution Packaging

RaccoonX can be packaged as a standalone executable using PyInstaller.

Windows

rd /s /q build dist __pycache__
pyinstaller dbcheck.spec
cd dist
dbcheck.exe

Linux

pyinstaller build/dbcheck_linux.spec
cd dist
./dbcheck

๐Ÿงฉ Environment Quick Reference

Database Python Driver Extra Dependencies
MySQL / TiDB pymysql โ€”
PostgreSQL / IvorySQL / KingbaseES psycopg2-binary โ€”
Oracle oracledb No Instant Client required
SQL Server pyodbc ODBC Driver 17
DM8 dmpython DM8 client libraries
YashanDB yashandb โ€”
GBase 8s jaydebeapi + JPype1 JDK + JDBC driver
Oracle JDBC JPype1 + ojdbc JDK + ojdbc
MongoDB pymongo โ€”
DB2 LUW JPype1 + db2jcc4 JDK + db2jcc4.jar
OceanBase pymysql โ€”
Redis / Redis Cluster redis-py โ€”
ClickHouse JDBC JDK + JDBC driver

โ“ FAQ

Some inspection sections appear empty. Why?

Inspection coverage varies by database type.

RaccoonX uses database-specific templates and graceful fallback mechanisms when certain metrics are unavailable.


Connection failed. What should I check?

Check:

  1. Database network accessibility
  2. Firewall rules
  3. Database listener/service status
  4. Username and password
  5. User privileges
  6. Database-specific connection parameters

GBase 8s reports "Driver not found".

When using the Docker image, the required JDK and JDBC driver are already included.

For source installation, verify the JDBC driver and JDK configuration.


AI diagnostics are not working.

Check:

ollama serve

and verify that the selected model has been downloaded:

ollama pull qwen3:30b

Then verify the AI settings in the Web UI.


Oracle reports ORA-01017.

Verify:

  • Username
  • Password
  • Service name
  • Authentication mode

For SYSDBA users, enable the SYSDBA option in the Web UI or use:

sys as sysdba

Are the recommended fixes safe to execute automatically?

No recommendation should be blindly applied to production.

RaccoonX provides inspection results and suggested remediation actions. Database engineers should review the proposed change against the actual environment before execution.


๐Ÿ”„ From DBCheck to RaccoonX

RaccoonX was previously known as DBCheck.

The project began as a database inspection tool and gradually expanded into a broader database operations platform.

The name RaccoonX represents the next stage of the project.

DBCheck
   โ”‚
   โ”œโ”€โ”€ Database Inspection
   โ”œโ”€โ”€ Risk Analysis
   โ”œโ”€โ”€ Performance Analysis
   โ”œโ”€โ”€ AI Diagnostics
   โ”œโ”€โ”€ Monitoring
   โ”œโ”€โ”€ Plugins
   โ””โ”€โ”€ Automation
          โ†“
      RaccoonX

The original DBCheck name may still appear in:

  • Repository URLs
  • Docker image names
  • Existing deployment configurations
  • Historical documentation
  • Existing scripts

These will be gradually unified as the RaccoonX brand evolves.

RaccoonX โ€” formerly known as DBCheck.


๐Ÿค Contributing

RaccoonX is an open-source project and contributions are welcome.

You can contribute through:

  • โญ Star the repository
  • ๐Ÿ› Report bugs
  • ๐Ÿ’ก Submit feature requests
  • ๐Ÿ—„๏ธ Improve database inspection rules
  • ๐Ÿ”Œ Develop plugins
  • ๐Ÿ“ Improve documentation
  • ๐ŸŒ Improve translations
  • ๐Ÿ”ง Submit pull requests
  • ๐Ÿ“ข Share RaccoonX with other database engineers

Before submitting a pull request, please read:

CONTRIBUTING.md

๐Ÿ› Issues & Feature Requests

Please use GitHub Issues for:

  • Bug reports
  • Feature requests
  • Database compatibility problems
  • Installation problems
  • Performance issues
  • Documentation problems

When reporting a database-specific issue, please provide:

Database type
Database version
RaccoonX version
Operating system
Installation method
Relevant error message
Steps to reproduce

Please remove passwords, credentials, IP addresses and other sensitive information before posting.


๐Ÿ’ฌ Community

Discussion topics are welcome, including:

  • Database operations
  • DBA automation
  • Database inspection
  • Database performance
  • AI-assisted database operations
  • Plugin development
  • Open-source development
  • Database compatibility

Use GitHub Discussions for questions and ideas that do not belong in a bug report.


๐Ÿ™ Acknowledgements

RaccoonX references and builds upon ideas, tools and open-source projects from the database community.

Special thanks to the following projects:

We appreciate the work of everyone who contributes to the database and open-source communities.


โค๏ธ Support the Project

RaccoonX is released under the Apache License 2.0.

If RaccoonX has been useful to you, there are many ways to support the project.

โญ Give it a Star

A Star helps more database engineers discover RaccoonX.

Use it
  โ†“
Like it
  โ†“
โญ Star it
  โ†“
Share it
  โ†“
More people discover it
  โ†“
More feedback
  โ†“
Better RaccoonX

๐Ÿ› Report a Bug

A good bug report can be more valuable than a Star.

๐Ÿ’ก Suggest a Feature

Your real-world requirements help determine what gets built next.

๐Ÿ”ง Contribute Code

Pull requests are welcome.

๐Ÿ“ข Share the Project

If you know a DBA or database engineer who might find RaccoonX useful, sharing the project is one of the most valuable forms of support.


โ˜• Sponsorship

Some users have supported the project through donations.

The amount of a donation is not the most important thing.

For an independent open-source project, a small donation means:

Someone used it. Someone noticed it. Someone believed it was worth continuing.

Thank you to everyone who has supported RaccoonX through donations, Stars, Issues, Pull Requests, suggestions, articles, testing, or simply telling another engineer about the project.

RaccoonX Support QR Code

RaccoonX Supporter Badge

Please specify your name or nickname when sponsoring โค๏ธ

Sponsors

Date Name ID
2026-04-28 ่‡ช็”ฑ็š„้ฃŽ No.000001
2026-04-29 ้ป„ๅต˜ No.000002
2026-05-04 ๅผ ไฝฐๆ”ฟ No.000003
2026-06-02 ๆฎ‹้…ทๆœˆๅ…‰ No.000004
2026-06-03 ๅคงๆ ‘ No.000005
2026-06-07 ๅฒณๅฝฉๆณข๏ผˆAdil0518๏ผ‰ No.000006
2026-06-17 ่ฝฉ No.000007
2026-06-18 ๅฟไบ‘ No.000008
2026-06-18 yuanlnet No.000009
2026-06-18 ่ตตๆณ•ๅจ No.000010
2026-06-19 ็ฑปๅปถ่‰ฏ No.000011
2026-06-19 ๆธบๆธบๅ…ฎไบˆๆ€€ No.000012
2026-09-06 leon No.000013
2026-09-24 James.Yao No.000014
2026-10-10 acdante-zhang No.000015

๐Ÿ“œ License

RaccoonX is open-source software licensed under the:

Apache License 2.0

See:

LICENSE

for the complete license text.

You are free to use, modify, distribute and build upon the project according to the terms of the Apache License 2.0.


โš ๏ธ Third-Party Trademarks

The names, logos, trademarks and database technologies mentioned in this project belong to their respective owners.

Their appearance in RaccoonX indicates compatibility or integration with the corresponding technology and does not imply endorsement, affiliation or partnership.


๐Ÿฆ Keep Building

RaccoonX is not built by a large team.

It grows through code, feedback, issues, ideas, testing, documentation, contributions and the people who choose to use it.

One Pull at a Time,
We Keep Building.

๐Ÿฆ RaccoonX

Thank you for being part of the RaccoonX community.


Author: Jack Ge Project: RaccoonX โ€” formerly DBCheck Website: https://raccoonx.cn/ Email: sdfiyon@gmail.com

About

RaccoonX(DBCheck): Open Source Intelligent Database Inspection & Operations Platform

Topics

Resources

Contributing

Security policy

Stars

181 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

0