Databases · DBC-36

MariaDB DBA

MariaDB DBA is a course in running MariaDB 12.3 LTS in production, from installation, configuration and privileges to backup and restore, replication, encryption, monitoring, tuning and high availability planning with Galera Cluster. It suits database administrators, system administrators and people starting a DBA career who look after MariaDB or MySQL servers.

Updated
From 12,150 THB / person 13,500 −10% excl. VAT 7% · group rates available
PDFDownload the course outline
  • Duration18 hours · 3 days
  • FormatOnsite / live online
  • Next roundOn request
  • CertificateIncluded

Course overview

MariaDB is an open source database that many organisations rely on for their websites and business systems. Yet many servers still run on installation defaults, with no tested restores, no standby replica and no idea which queries slow the system down. As data and users grow, that means a real risk of data loss, downtime and security gaps. A DBA's job is to make the system stable, secure and observable from day one.

This course teaches how to run MariaDB 12.3, the latest long-term support release. Learners install it on Linux and Docker, configure the server and InnoDB, manage users, roles and privileges, connect over the network with TLS and understand transactions and locking. They then practise backup and restore with mariadb-dump and mariadb-backup, including point-in-time recovery from the binary log, set up GTID replication, encrypt data and upgrade versions safely. The course continues with monitoring in PMM 3, parameter tuning, slow query analysis and partitioning, and closes with a workshop that builds a Galera Cluster and plans for high availability. (3 days, 6 hours per day, 18 hours in total, Intermediate level.)

What you’ll gain

  • Install and configure MariaDB 12.3 LTS on Linux and Docker appropriately
  • Manage users, roles and privileges on least-privilege lines and connect with TLS
  • Back up and restore data with mariadb-dump, mariadb-backup and the binary log
  • Set up and maintain GTID replication, including switching the primary when needed
  • Encrypt data, enable auditing and upgrade versions safely
  • Monitor performance with PMM 3 and tune InnoDB parameters
  • Analyse and fix slow queries, and plan high availability with Galera Cluster

Who this course is for

  • Database administrators who run MariaDB or MySQL in their organisation
  • System administrators and DevOps engineers who look after database servers
  • Developers who are responsible for the databases behind their own systems
  • People starting a DBA career who want to learn real-world practice
  • Teams moving or upgrading from older MariaDB versions to the current LTS release

Prerequisites

  • Basic SQL such as SELECT, JOIN, INSERT and UPDATE
  • Basic Linux commands, such as managing files, editing configuration files and using sudo
  • Basic networking such as IP addresses and ports
  • A laptop that can run Docker Desktop or an Ubuntu virtual machine, with permission to install software

Curriculum

Course Details

This course is the 2026 edition of MariaDB DBA, updated for MariaDB 12.3, the latest long-term support release. It runs for 3 days, 6 hours per day (18 hours in total, 09:00-16:00), as lectures with labs on servers the learners build themselves. Intermediate level. It focuses on database administration, covering installation, security, backup, replication, monitoring and high availability, unlike the SQL Essentials with MariaDB course, which centres on writing SQL. Every lab uses open source tools on the learner's own machine. Learners take home a lab guide, backup scripts, configuration files and docker-compose files for replication, Galera Cluster and PMM 3.

Day 1 Installation, Configuration and Security Basics

Section 1: Lab: Getting Started with MariaDB 12.3 LTS

  • Client/server architecture and how MariaDB differs from MySQL
  • LTS and rolling releases, and the support period of MariaDB 12.3
  • Install on Ubuntu Server from the MariaDB repository and run it with Docker
  • Start, stop and check the service with systemctl
  • Lab: install, apply secure defaults and connect with the mariadb client

Section 2: Configuration and Storage Engines

  • Configuration file layout and the order option files are read
  • InnoDB architecture: buffer pool, redo log and undo log
  • Other engines such as Aria and ColumnStore, and when to use them
  • The utf8mb4 character set and collations for Thai data
  • Lab: adjust the configuration and verify it with system variables

Section 3: Lab: Users, Roles and Privileges

  • Create, change and drop accounts, and set the hosts they may connect from
  • GRANT and REVOKE on least-privilege lines
  • Roles for grouping a team's privileges
  • Authentication plugins such as unix_socket and ed25519
  • Lab: set up privileges for an application, a reporting team and administrators

Section 4: Connecting Securely over the Network

  • bind-address, ports and opening the firewall on Linux
  • Enabling TLS connections and requiring them for selected users
  • Connecting from applications through language connectors, JDBC and ODBC
  • Limiting connections and setting timeouts
  • Lab: connect from another machine over TLS and test privileges

Section 5: Transactions, Concurrency and Locking

  • ACID, isolation levels and InnoDB MVCC
  • Row locks, gap locks and metadata locks
  • Detecting deadlocks and reading SHOW ENGINE INNODB STATUS
  • Finding stuck sessions and dealing with them safely
  • Lab: simulate conflicting locks and analyse the cause
Day 2 Backup, Replication and Day-to-Day Administration

Section 6: Lab: Backup and Restore

  • Choosing logical or physical backups to suit the data size
  • Backing up with mariadb-dump and restoring individual databases
  • Full and incremental backups with mariadb-backup, including the prepare step
  • Scheduling automatic backups with cron or a systemd timer
  • Lab: test a real restore and measure how long it takes

Section 7: Logs and the Binary Log

  • The error log, general log and slow query log
  • The binary log, ROW versus STATEMENT format and retention
  • Point-in-time recovery with mariadb-binlog
  • The InnoDB-based binary log new in 12.3, and when to turn it on
  • Lab: recover accidentally deleted data from the binary log

Section 8: Lab: GTID Replication

  • How replication works and the primary and replica model
  • Building a replica from mariadb-backup with MASTER_USE_GTID
  • Semi-synchronous replication and parallel replication
  • Tracking replication lag and fixing a stopped replica
  • Lab: promote a replica to primary (switchover)

Section 9: Security, Encryption and Auditing

  • Data-at-rest encryption with the File Key Management plugin
  • Encrypting the binary log and temporary files
  • Recording activity with the Server Audit plugin
  • Password policies and account locking
  • Lab: encrypt sensitive tables and review the audit log

Section 10: Upgrades and Routine Maintenance

  • Upgrade paths from MariaDB 10.x and 11.x to 12.3 LTS
  • Preparing backups, testing and running mariadb-upgrade
  • When to use ANALYZE, OPTIMIZE and CHECK TABLE
  • Exploring the server with information_schema and the sys schema
  • Recovering the administrator password safely
Day 3 Monitoring, Tuning and High Availability

Section 11: Lab: Monitoring with PMM 3

  • Install PMM Server 3 with Docker
  • Install PMM Client and add MariaDB with pmm-admin
  • Read the key dashboards, such as connections, buffer pool and replication
  • Query Analytics to find the queries that use the most resources
  • Alerts for low disk space or lagging replicas

Section 12: Parameter Tuning and Server Sizing

  • innodb_buffer_pool_size, redo log size and innodb_flush_method
  • max_connections, the thread pool and temporary tables
  • Reviewing settings with mysqltuner and reading its advice critically
  • Benchmarking with mariadb-slap and specifying hardware
  • Lab: tune for many concurrent users and measure before and after

Section 13: Lab: Analysing Slow Queries

  • Enabling and reading the slow query log systematically
  • EXPLAIN and ANALYZE FORMAT=JSON
  • Designing indexes that match queries and finding unused indexes
  • The newer optimizer cost model and the optimizer trace
  • Lab: fix slow queries from a sample system until they meet the target

Section 14: Partitioning and Capacity Planning

  • Range, list and hash partitioning
  • Partition pruning and choosing a partition key
  • Removing old data quickly with DROP PARTITION
  • Calculating storage and forecasting data growth
  • Lab: partition a log table by month

Section 15: Workshop: Galera Cluster and an HA Plan

  • How Galera Cluster works and the limitations to know
  • Build a three-node Galera Cluster with Docker Compose
  • Test a node failure and its return to the cluster
  • An introduction to MaxScale for read/write splitting and failover
  • Wrap up the backup, replication and HA plan with a DBA checklist

Schedule & training options

For individuals — public rounds

No public rounds are open right now. Join the waiting list and we will contact you first when the next round opens, or ask us on LINE. Or call 02-570-8449 or 088-807-9770

For organisations — in-house / private

  • Tailor the content to your team’s tools and projects
  • Your dates, at your office or live online
  • Quotation with tax ID for procurement
Corporate training quote

Instructors

Frequently asked questions

What is InnoDB, and why is it MariaDB's main storage engine?

InnoDB is a storage engine with ACID transactions, so COMMIT and ROLLBACK work. It locks at row level, which lets many users write at the same time, supports foreign keys and recovers itself after a crash using its redo log. That is why it is MariaDB's default and suits most workloads, whereas engines such as Aria or MyISAM do not offer full transaction support, and ColumnStore is aimed at analytics rather than transactions.

What are the steps to set up replication in MariaDB?

Enable the binary log and give the primary and replica unique server_id values. Create a replication user on the primary with the required privileges, take a consistent backup with mariadb-backup and restore it on the replica. Set gtid_slave_pos from the backup, run CHANGE MASTER TO with the host, user and MASTER_USE_GTID, then start replication and check it with SHOW REPLICA STATUS. Using GTIDs makes switching the primary far easier than tracking log file positions.

How should you set innodb_buffer_pool_size in MariaDB for your server?

innodb_buffer_pool_size is the memory InnoDB uses to cache data and indexes, and the more of your frequently used data it holds, the less the server reads from disk. On a dedicated database server it is commonly set to around 50 to 80 per cent of RAM, leaving room for the operating system and connections. Then watch the hit rate and disk reads in PMM dashboards or SHOW ENGINE INNODB STATUS and adjust to real usage.

Who is the MariaDB DBA course for, and what should I know beforehand?

It suits database administrators who run MariaDB or MySQL, system administrators and DevOps engineers who look after database servers, and people starting a DBA career. You should know basic SQL, basic Linux commands and basic networking, as most labs run on Ubuntu Server and Docker.

What will I be able to do after the MariaDB DBA course?

You will be able to install and configure MariaDB 12.3 LTS, manage users, roles and privileges, connect over TLS, run full, incremental and point-in-time backups and restores, set up GTID replication, encrypt data and enable auditing, upgrade versions, monitor with PMM 3, fix slow queries and plan high availability with Galera Cluster. Participants who complete the training receive a Certificate of Completion with its own number, which can be verified online.

Can the MariaDB DBA course be run in-house for our team?

Yes. It can be run in-house for your team, with examples adapted to your own work, such as planning backups, replication and upgrades around the systems your team already runs. You can request a quotation from this page, or contact us on LINE @itgenius or by phone on 02-570-8449.