MySQL cluster

From Hobbynet Admin Wiki
Revision as of 17:19, 25 September 2011 by Bas (talk | contribs) (→‎db01)
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

normale situatie

Loadbalancer faalt

Database server faalt

database cluster 01 (hobbynet) dbclus01-int

configuratie

config files

db01

de config aanpassingen die gedaan zijn op standaard config zijn:

server-id               = 1
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 1

master-host = 172.31.1.214
master-user = repl
master-password = fxq5jLqWDYXYKhPD
master-connect-retry = 60
log_bin                 = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size         = 100M
binlog_do_db            = bas
# lbtest mag nooit weg ivm loadbalancing test of mysql nog werkt!
binlog_do_db            = lbtest
binlog_do_db            = xibo
binlog_do_db            = groepentest
binlog_do_db            = groepen
binlog_do_db            = groepen-test
binlog_do_db            = watersport
binlog_do_db            = watersport-test
binlog_do_db            = z-drenthe
binlog_do_db            = z-drenthe-test
binlog_do_db            = z-drenthe-hulp
binlog_do_db            = z-drenthe-hulp-test
binlog_do_db            = vandenbussche
binlog_do_db            = vandenbussche-test
binlog_do_db            = mz-limburg
binlog_do_db            = mz-limburg-test
binlog_do_db            = hccm-gg
binlog_do_db            = hccm-gg-test
binlog_do_db            = afd-gouda
binlog_do_db            = afd-gouda-test
binlog_do_db            = flightsimulator
binlog_do_db            = flightsimulator-test
binlog_do_db            = deventer
binlog_do_db            = deventer-test
binlog_do_db            = basic
binlog_do_db            = basic-test
binlog_do_db            = afd-arnhem
binlog_do_db            = afd-arnhem-test
binlog_do_db            = afd-almere
binlog_do_db            = afd-almere-test
binlog_do_db            = hcc-dagen
binlog_do_db            = basd
binlog_do_db            = basd-test
binlog_do_db            = int-nlb
binlog_do_db            = int-nlb-test
binlog_ignore_db        = mysql

db02

de config aanpassingen die gedaan zijn op standaard config zijn:

server-id               = 2
log_bin                 = /var/log/mysql/mysql-bin.log
binlog_do_db            = bas
binlog_do_db            = lbtest
binlog_ignore_db        = mysql

database aan replicatie toevoegen

Op beide database servers moet in /etc/mysql/my.cnf het volgende regeltje worden toegevoegd

binlog_do_db            = databasenaam

Hierna moet je op db01 en db02 mysql herstarten dit kan zonder probleem door de loadbalancing.
Hierna moet je op db01 en db02 de database aanmaken en user met bijbehorende rechten aanmaken.
rechten worden niet gerepliceerd

database uit replicatie verwijderen

Op beide database servers moet in /etc/mysql/my.cnf het volgende regeltje worden verwijderd:

binlog_do_db            = databasenaam

Hierna moet je op db01 en db02 mysql herstarten dit kan zonder probleem door de loadbalancing.
Hierna moet je op db01 en db02 de database eventueel verwijderen en eventueel de user met bijbehorende rechten verwijderen/aanpassen.

database cluster 02 (hcc.nl) hcc-dbclus02-int

configuratie

config files

db01

de config aanpassingen die gedaan zijn op standaard config zijn:

server-id               = 1
log_bin                 = /var/log/mysql/mysql-bin.log
binlog_do_db            = bas
binlog_do_db            = lbtest
binlog_ignore_db        = mysql

db02

de config aanpassingen die gedaan zijn op standaard config zijn:

server-id               = 2
log_bin                 = /var/log/mysql/mysql-bin.log
binlog_do_db            = bas
binlog_do_db            = lbtest
binlog_ignore_db        = mysql

database aan replicatie toevoegen

Op beide database servers moet in /etc/mysql/my.cnf het volgende regeltje worden toegevoegd

binlog_do_db            = databasenaam

Hierna moet je op db01 en db02 mysql herstarten dit kan zonder probleem door de loadbalancing.
Hierna moet je op db01 en db02 de database aanmaken en user met bijbehorende rechten aanmaken.
rechten worden niet gerepliceerd

database uit replicatie verwijderen

Op beide database servers moet in /etc/mysql/my.cnf het volgende regeltje worden verwijderd:

binlog_do_db            = databasenaam

Hierna moet je op db01 en db02 mysql herstarten dit kan zonder probleem door de loadbalancing.
Hierna moet je op db01 en db02 de database eventueel verwijderen en eventueel de user met bijbehorende rechten verwijderen/aanpassen.

links

http://www.hbyconsultancy.com/blog/create-a-master-master-mysql-replication-ubuntu-server-10-04-x64.html de handleiding die ik gebruikt hebt