gh-ost is a triggerless online schema migration solution for MySQL.
It is testable and provides pausability, dynamic control/reconfiguration, auditing, and many operational perks.
gh-ost produces a light workload on the master throughout the migration, decoupled from the existing workload on the migrated table.
gh-ost uses the binary log stream to capture table changes, and asynchronously applies them onto the ghost table. gh-ost takes upon itself some tasks that other tools leave for the database to perform. As result, gh-ost has greater control over the migration process; can truly suspend it; can truly decouple the migration’s write load from the master’s workload.
Key Features
- Build your trust in gh-ost by testing it on replicas. gh-ost will issue same flow as it would have on the master, to migrate a table on a replica, without actually replacing the original table, leaving the replica with two tables you can then compare and satisfy yourself that the tool operates correctly. This is how we continuously test gh-ost in production.
- True pause: when gh-ost throttles, it truly ceases writes on master: no row copies and no ongoing events processing. By throttling, you return your master to its original workload.
- Dynamic control: you can interactively reconfigure gh-ost, even as migration still runs. You may forcibly initiate throttling.
- Auditing: you may query gh-ost for status. gh-ost listens on unix socket or TCP.
- Control over cut-over phase: gh-ost can be instructed to postpone what is probably the most critical step: the swap of tables, until such time that you’re comfortably available. No need to worry about ETA being outside office hours.
- External hooks can couple gh-ost with your particular environment.
Website: github.com/github/gh-ost
Support: Documentation
Developer: GitHub
License: MIT License
gh-ost is written in Go. Learn Go with our recommended free books and free tutorials.
Related Software
| MySQL Tools | |
|---|---|
| DBeaver | Universal database tool |
| phpMyAdmin | MySQL web administration tool |
| NocoDB | Build databases as spreadsheets |
| MySQL Workbench | Complete visual database design tool |
| mycli | Command line interface for MySQL, MariaDB, and Percona |
| gh-ost | GitHub's Online Schema Migrations for MySQL |
| Beekeeper Studio | Cross-platform SQL editor and database manager |
| usql | Command-line database client |
| sqlit | lazygit of SQL databases |
| Harlequin | Easy, fast, and beautiful database client for the terminal |
| DbGate | Database manager for MySQL, PostgreSQL, MongoDB |
| Percona Toolkit | Essential command-line utilities for MySQL |
| SQuirreL SQL Client | Graphical SQL client written in Java |
| Adminer | Full-featured tool for managing content in MySQL database |
| dblab | Interactive client for PostgreSQL, MySQL, SQLite3, and more |
| Antares | SQL client based on Electron.js and Vue.js |
| XtraBackup | Backup utility for MySQL |
| innotop | Real-time, advanced investigation tool |
| SQLCheck | Detects common SQL anti-patterns |
| Skeema | Manage MySQL and MariaDB schema changes |
| Sequeler | Native Linux SQL client built in Vala and Gtk |
| orchestrator | High availability and replication management tool |
| OmniDB | Collaborative environment For database management |
Read our verdict in the software roundup.
Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |

