dbasim breaks a real Oracle database on your own machine while simulated users keep hammering the app. You find the cause, fix it, and dbasim checks whether the fix actually holds. Hands on the keyboard, not another video course.
$ dbasim logs 02:01:14 ERROR NIGHTLY_BATCH FAILED after 3.2s: ORA-01652: unable to extend temp segment by 128 in tablespace TEMP_RPT 02:01:44 ERROR NIGHTLY_BATCH FAILED after 3.1s SQL> alter user shop temporary tablespace temp; User altered. $ dbasim check ✓ NIGHTLY_BATCH runs to completion without errors ✓ SHOP.INVOICES data is still intact Passed! Score 85 in 14.2 min▍
One Docker command, pulled straight from Oracle. Connect with SQL*Plus or SQL Developer, whichever you prefer.
dbasim start s01dbasim plants the fault in the database and starts a simulated app with many users. You get a ticket and logs, just like a real shift.
dbasim checkIt checks both the outcome and how you got there. Deleting data to make things faster does not count. Pass, and a senior DBA walkthrough explains the fix.
Each one is solvable with what ships in Oracle Free: v$ views, DBMS_XPLAN and trace.
| Scenario | What you see | Level | Plan | Status |
|---|---|---|---|---|
| Order search page is slow | ORDER_SEARCH customer=4127 … (SLOW) | Easy | Free | Playable |
| Month-end report slow after a data migration | MONTH_END report region=1 … (SLOW) | Easy | Free | Playable |
| Nightly batch fails every night | ORA-01652 in tablespace TEMP_RPT | Easy | Free | Playable |
| Payment entry screen hangs | ORA-30006 / ORA-00054 · enq: TX - row lock contention | Medium | Pro | Coming soon |
| CPU spikes after a new app release | parse count (hard) spikes | Medium | Pro | Coming soon |
| Long report dies halfway through | ORA-01555: snapshot too old | Medium | Pro | In progress |
| Nobody can connect | ORA-00257: archiver error | Medium | Pro | In progress |
| Same query, sometimes fast, sometimes slow | bind peeking / plan flip | Hard | Pro | In progress |
An incident lands and you don't know where to start looking. Build up hours without waiting for production to break.
No real system to practice on, but you need real stories to tell in interviews.
You know the theory from the book. Now try it under pressure that feels like the real thing.
No. dbasim runs on Oracle Database Free, which you download from Oracle yourself under Oracle's free-use terms.
You need Docker, about 3 GB of free RAM and 10 GB of free disk. On a slower machine you can shrink the scenario data size.
No, and you shouldn't. dbasim creates and drops objects, so it is locked to Oracle Free only.
The first 3 scenarios (s01–s03) are free forever, with no sign-up and no card. Pro scenarios are not on sale yet.
No date yet. Watch the project on GitHub to hear when it does. Until then the 3 free scenarios come with everything: hints, grading and the write-ups.
dbasim is "not recognized". Why?Your Python scripts folder is not on PATH (common on Windows). Run the same commands as python -m dbasim ..., or install with pipx install dbasim, which puts the command on PATH for you.
Run dbasim stop (or dbasim reset to clear the scenario), then docker stop dbasim-oracle to give the memory back. Before you shut the computer down, quit Docker Desktop first (right-click the whale icon, Quit): shutting down with it still running is what causes the error below.
Click Quit, then open Docker Desktop again; it normally starts on the second try. Do not choose "Reset to factory defaults": that deletes the Oracle container and you would download it again. If it keeps failing, run dbasim doctor; it tells you which part of the chain is broken.
Open an issue on the project's GitHub Issues.
The first 3 scenarios come with every feature. Pro scenarios are not on sale yet.
$0
Not on sale yet
Install Docker and Python 3.9 or newer.
Start Oracle Database Free with Docker (the first download is several GB).
Install dbasim with pip, then run dbasim setup once: it asks for the database password and remembers it.
Run dbasim doctor to check the setup, then dbasim start s01.
Full commands and the Windows setup are in the guide on GitHub.
$ docker run -d --name dbasim-oracle -p 1521:1521 \ -e ORACLE_PWD=ChangeMe123 \ container-registry.oracle.com/database/free:latest $ pip install dbasim $ dbasim setup $ dbasim doctor $ dbasim start s01