Excellent! Since you’re already a seasoned Oracle DBA on Linux, transitioning to MySQL will be straightforward — but you’ll need to shift focus to MySQL’s different architecture, tooling, and storage engine model.
🧠Training Plan: MySQL DBA for Oracle DBAs (Linux-Based)
We’ll cover the following areas step-by-step. Each topic will include theory, practical commands, and best practices.
✅ Phase 1: MySQL Basics & Architecture
- Installation on Linux (Ubuntu/CentOS)
apt install mysql-server
oryum install mysql-server
- Key config:
/etc/my.cnf
or/etc/mysql/my.cnf
- Server startup, shutdown
systemctl start|stop|status mysqld
mysqld_safe
andmysqladmin
- Directory Structure
- Data directory (
@@datadir
) - Log files:
error.log
,slow.log
,binlog
- Data directory (
- Architecture Overview
- Storage Engines (InnoDB, MyISAM, MEMORY)
- Single-process, multi-threaded
- Buffer pool, redo logs, doublewrite buffer
✅ Phase 2: Core DBA Tasks
- User Management
CREATE USER
,GRANT
,REVOKE
mysql.user
table (likedba_users
)
- Backup and Restore
- Logical:
mysqldump
,mysqlpump
- Physical:
xtrabackup
(hot backup for InnoDB)
- Logical:
- Security Hardening
mysql_secure_installation
- Removing test DB, anonymous users
- Using
caching_sha2_password
- Configuration Parameters
SHOW VARIABLES
- Modify in
my.cnf
:innodb_buffer_pool_size
,max_connections
, etc.
✅ Phase 3: Monitoring and Troubleshooting
- Monitoring
SHOW FULL PROCESSLIST
performance_schema
&information_schema
- Tools:
mysqladmin
,Percona Toolkit
,pmacct
- Locking & Concurrency
- MVCC in InnoDB
- Check locks:
performance_schema.metadata_locks
- Slow Query Logging
- Enable slow query log
- Use
mysqldumpslow
,pt-query-digest
✅ Phase 4: Performance Tuning
- Query Optimization
- Use
EXPLAIN
,ANALYZE FORMAT=JSON
- Index design:
SHOW INDEX
,information_schema.statistics
- Use
- Buffer Pool & Caching
- Key parameters:
innodb_buffer_pool_size
,query_cache_size
(deprecated)
- Key parameters:
- MySQL Tuner
- Use
mysqltuner.pl
to suggest tuning
- Use
- Table Statistics
ANALYZE TABLE
,OPTIMIZE TABLE
✅ Phase 5: High Availability & Replication
- Replication
- Async replication:
master → replica
- Semi-sync & GTID-based replication
SHOW SLAVE STATUS
- Async replication:
- InnoDB Cluster
- MySQL Shell, Group Replication
- Requires MySQL 8+
- Failover
- Tools: Orchestrator, MHA
- Monitor replication lag
✅ Phase 6: Advanced Topics
- Stored Procedures / Triggers
- Limited compared to PL/SQL
- Use
DELIMITER
,BEGIN...END
- Events (Jobs)
- MySQL Event Scheduler (
information_schema.events
)
- MySQL Event Scheduler (
- Partitioning
- RANGE, LIST, HASH (less flexible than Oracle)
- Tablespaces
- InnoDB general vs file-per-table
CREATE TABLESPACE
in 8.0+
✅ Phase 7: Migration & Tools
- Migration Tools
- Oracle → MySQL:
MySQL Workbench
,ora2pg
,AWS SCT
- Oracle → MySQL:
- Data Types Mapping
NUMBER
→DECIMAL
,VARCHAR2
→VARCHAR
,DATE
/TIMESTAMP
match closely
- SQL Differences
- No packages, limited error handling
- Use
DELIMITER
,SIGNAL
for error