MySQL cluster

From Hobbynet Admin Wiki
Jump to navigation Jump to search

doel

Om te zorgen dat onze database server ook volledig redundant is hebben we hier een cluster gemaakt, onze loadbalancer zorgt er voor dat verkeer of op db01 of op db02 terecht komt.

opzet

loadbalancing

Onze servers zijn opgezet in een master master setup, dus er kan op beide gemuteerd worden, de loadbalancer verspreid worden.
belangrijk
Op alle clusters moet database lbtest aanwezig zijn met tabel lbtest en deze tabel moet minimaal 1 record hebben, hier test de loadbalancer namelijk op.
De usernaam voor loadbalancer en nagios is lbtest met ww Testing123! deze gebruiker heeft alleen select rechten op deze database

database clusters

dbclus01-int

Dit cluster bestaat uit mysql01 en mysql02

hcc-dbclus02-int

Dit cluster bestaat uit mysql03 en mysql04

dbclus04-int

Dit cluster bestaat uit mysql05 en mysql06

configuratie

configuratie files

al deze bestanden bevinden zich in /etc/mysql/mysql.conf.d

mysqld.cnf

In deze file hebben we 1 aanpassing gedaan we hebben

bind-address           = 127.0.0.1

voorzien van commentaar

ssl.cnf

mysql beschikt over ssl daarom hebben dit geconfigureerd, onder andere de replicatie loopt over ssl file ziet er zo uit:

[mysqld]
ssl-ca=/disk/site/etc/ssl/hobby.nl/CA-bundel.crt
ssl-cert=/disk/site/etc/ssl/hobby.nl/hobby.nl.crt
ssl-key=/disk/site/etc/ssl/hobby.nl/hobby.nl.key

replicatie.cnf

Bij de replicatie is het belangrijk dat de oneven servers het server id 1 hebben en de even server id 2 er mogen nooit 2 de zelfde id's zijn. ook is het van auto-increment-offset belangrijk bij oneven is dat 1 en bij even2.
voor oneven server ziet hij er zo uit:

#sql mode uit voor toestaan lege velden
sql-mode                        =       ""
server-id                       =       1
replicate-same-server-id        =       0
auto-increment-increment        =       2
auto-increment-offset           =       1
relay-log                       =       mysql01-relay-bin
binlog_format                   =       "STATEMENT"
replicate-ignore-db             =       information_schema
replicate-ignore-db             =       mysql
binlog-ignore-db                =       information_schema
binlog-ignore-db                =       mysql
log_bin                         =       /var/log/mysql/mysql-bin.log
slave-skip-errors = 1062

credentials.cnf

Op de server is root voor localhost voor zien van wachtwoord om toch mysqldump en het mysql account gebruiken deze file is eigenaar van root en groep mysql met permissies 640.

tunning.cnf

In deze file bevat preformance tunning dit server specifiek maar er moet iedergeval deze regels in staan :

[mysqld]
skip-name-resolve    =       1

herstellen replicatie