Notes on Moving from MySQL to MariaDB and Replication
- it’s easier to switch from MySQL to MariaDB
# (Ubuntu 18.04 LTS - MariaDB 10.3 stable) # add repo sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.poliwangi.ac.id/mariadb/repo/10.3/ubuntu bionic main' # install sudo apt update sudo apt install mariadb-server
- we probably want a multi-source replication (multiple masters, data is combined into slaves)
- Galera Cluster is better than multi-source as it has all masters and no slaves. Every node can read+write.
- Slave databases are not updated in real-time (async transfers)
- Slave lag is the time it takes to replicate data from master to slave
- The downside for synchronous write to all masters is that it takes long to write (get an agreement between all master before changes apply)
- That is why some people setup Galera Cluster, but treat other masters as slaves handling only read ops.
- clustering techonology enabling active-active, true multi-master cluster. each database is a master database
- Application can read+write from any database node
- All database nodes contain same data (minimizing data logs)
- No slave lag, no complex failovers
- if one master fails, the other nodes continue to serve clients
- multi-mastter(source) replication
- Topology: infrasttructure of your databaes. Two types: master-master and maser-slave.
- DBMS: DataBase Management System (control panel). MySQL and Oracle etc. are DBMS
- Galera cluster on Kubernetes
- insall ClusterControl (will install MySQL as part of the installation process..)
- the SSH user has to be the same user and same SSH password on all servers. CloudConrol only asks for one user/password, not separate users for all nodes..
- Same is the case with MariaDB root passord for all nodes.. Setup your SSH keys before installing ClusterControl > MariaDB. It’ll confirm that the nodes can be reached during the install process.