MariaDB er en relasjonsdatabase management system (RDBMS) og MariaDB Galera Cluster er en synkron multi-mester cluster for MariaDB. Den er tilgjengelig på Linux, og bare støtter XtraDB /InnoDB lagrings motorer. Denne artikkelen forklarer hvordan du setter MariaDB Galera Cluster 10,0 med 3 noder som kjører på CentOS
6,5 x86_64 resulterer i en HA (høy tilgjengelighet) database klynge. CLUSTER detaljer
Vi bruker tre ferske utplassert VMs kjører en minimal installasjon av CentOS . 6.5 x86_64
Cluster node 1 har vertsnavn db1 og IP-adresse 1.1.1.1Cluster node 2 har vertsnavn db2 og IP-adresse 1.1.1.2Cluster node 3 har vertsnavn DB3 og IP-adresse 1.1.1.3Step 1: Legg MariaDB repositories
Lag en mariadb depot /etc/yum.repos.d/mariadb.repo bruker følgende innhold i systemet
For CentOS 6 - 64bit.
[mariadb] name = MariaDBbaseurl = http://yum.mariadb.org/10.0/centos6-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1For CentOS 6 - 32bit:
[mariadb] name = MariaDBbaseurl = http://yum.mariadb.org/10.0/centos6-x86gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1Step 2 - Sett SELinux i givende modus
Før du starter installeringen satt SELinux inn givende modus på alle noder:
sudo setenforce0Step 3 - Installer MariaDB Galera Cluster 10,0 programvare
Hvis du gjorde en CentOS 6 minimal installasjon så sørg for at du installerer socat pakken fra Epel depotet før du fortsetter med å installere MariaDB Galera Cluster 10,0 programvare
Du kan installere socat pakke direkte fra Epel med følgende kommando (for x86_64):.
sudo yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/socat-1.7.2.3-1.el6.x86_64.rpmOn CentOS 7 kan du installere socat pakke med følgende kommando.
sudo yum install socatInstall den MariaDB Galera Cluster 10,0 programvaren ved å kjøre følgende kommando på alle noder:
sudo yum install MariaDB-Galera-server MariaDB-klient rsync galeraStep 4: Oppsett MariaDB sikkerhet
Start mysql ( init script i MariaDB 10,0 fortsatt kalles mysql)
sudo tjenesten mysql startRun den mysql_secure_installation manuset, slik at vi kan forbedre sikkerheten. Kjør følgende kommando på alle noder.
sudo /usr /bin /mysql_secure_installationI velger passord som "dbpass 'og akseptert alle standarder (så svarte ja på alle spørsmålene) Anmeldelser Trinn 5 - Lag MariaDB Galera Cluster brukere
Nå er vi nødt til å lage noen brukere som må være i stand til å få tilgang til databasen. The 'sst_user' er brukeren som en database node vil bruke for å autentisere til en annen database node i State Transfer stillbilde (SST) fase. Kjør følgende kommando på alle noder:
mysql -u root -pmysql > DELETE FROM mysql.user WHERE user = ''; mysql > GRANT ALL ON * * TO 'root' @ '%' identifisert av 'dbpass.'; Mysql > . GRANT BRUK PÅ * * til sst_user @ '%' identifisert av 'dbpass'; mysql > Gi alle rettigheter på * * til sst_user @ '%.'; Mysql > FLUSH PRIVILEGES; mysql > quitYou er foreslått å endre '%' til vertsnavn (s) eller IP-adresser som disse brukerne kan få tilgang til databasen. Fordi '%' betyr at roten eller sst_user er lov til å få tilgang til databasen fra enhver vert, så mindre sikkerhet Anmeldelser Trinn 6 - Lag MariaDB Galera Cluster config
Først stoppe mysql tjenester på alle noder.
sudo tjenesten mysql stopNext, Vi kommer til å lage MariaDB Galera Cluster konfigurasjon av følgende kommando på alle noder (gå gjennom VIKTIG etter config og gjøre nødvendige endringer for DB2, og DB3):
< pre> sudo cat > > /etc/my.cnf.d/server.cnf < < EOFbinlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2innodb_locks_unsafe_for_binlog=1query_cache_size=0query_cache_type=0bind-address=0.0.0.0datadir=/var/lib/mysqlinnodb_log_file_size=100Minnodb_file_per_tableinnodb_flush_log_at_trx_commit=2wsrep_provider=/usr/lib64/galera/libgalera_smm.sowsrep_cluster_address="gcomm://1.1.1.1,1.1.1.2,1.1.1.3"wsrep_cluster_name='galera_cluster'wsrep_node_address='1.1.1.1'wsrep_node_name='db1'wsrep_sst_method=rsyncwsrep_sst_auth=sst_user:dbpassEOFIMPORTANT MERK: Når denne kommandoen på DB2 og DB3 ikke glem å justere wsrep_node_address og wsrep_node_name variabler
på DB2:.
wsrep_node_address = 1.1.1.2wsrep_node_name = 'db2'On DB3:
< pre> wsrep_node_address = '1.1.1.3'wsrep_node_name =' db3'Step 7- Initial første klyngenode
Begynn MariaDB med den spesielle '--wsrep-new-cluster alternativet, Gjør det på node db1 bare så det primære node i klyngen er initialisert:
sudo /etc/init.d/mysql starte --wsrep-ny-clusterCheck status ved å kjøre følgende kommando på noden db1 bare:
mysql-uroot -pe "show status som 'wsrep%'" Noen viktig informasjon i utskriften er følgende linjer:
wsrep_local_state_comment | Synkronisert < - klyngen er syncedwsrep_incoming_addresses | 1.1.1.1:3306 < - node db1 er en providerwsrep_cluster_size | 1 < - klyngen består av en node wsrep_ready | ON < - bra:) Trinn 8- Tilsett de andre klyngenoder Anmeldelser Sjekk og bekreft noder db2 og DB3 har riktig konfigurasjon i /etc/my.cnf.d/server.cnf under [mariadb-10.0] som beskrevet i trinn 6.
Med riktig konfigurasjon på plass, er alt som kreves for å gjøre DB2 og DB3 medlem av klyngen er å starte dem som du ville starte noe vanlig service. På db2 problemet følgende kommando:
sudo tjenesten mysql startCheck hva som er endret i klyngen status ved å kjøre følgende kommando på db1 eller db2:
mysql -u root -p -e "show status som 'wsrep%' »Og du vil se at node db2 er nå kjent som klyngestørrelsen er" 2 "og IP-adressen til noden db2 er oppført:
| wsrep_local_state_comment | Synkronisert || wsrep_incoming_addre sses | 1.1.1.1:3306,1.1.1.2:3306 || wsrep_cluster_size | 2 || wsrep_connected | PÅ || wsrep_ready | ON | Gjenta det samme trinnet for node DB3. På node DB3 bare utføre følgende kommando
sudo tjenesten mysql startCheck hva som er endret i klyngen status ved å kjøre følgende kommando for eksempel db1:
mysql -u root -p -e " vise status som 'wsrep%' »Og du bør se at node DB3 er nå kjent som klyngestørrelsen er" 3 "og IP-adressen til noden DB3 er oppført:
| wsrep_local_state_comment | Synkronisert || wsrep_incoming_addresses | 1.1.1.3:3306,1.1.1.1:3306,1.1.1.2:3306 || wsrep_cluster_size | 3 || wsrep_connected | PÅ || wsrep_ready | ON | Trinn 9 - Kontroller replikering
Nå klyngen er i gang. La oss teste om det fungerer. På db1 opprette en database 'clustertest' ved å kjøre følgende kommando:
mysql -u root -p -e 'CREATE DATABASE clustertest;'mysql -u root -p -e 'CREATE TABLE clustertest. mycluster (id INT NOT NULL AUTO_INCREMENT, navn VARCHAR (50), IP-adresse VARCHAR (20), PRIMARY KEY (id)); 'mysql -u root -p -e' INSERT INTO clustertest.mycluster (navn, ip-adresse) VERDIER ("db1", "1.1.1.1"); 'Sjekk om databasen, bord og data finnes:
mysql -u root -p -e' SELECT * FROM clustertest.mycluster; 'Skriv inn passord: + ---- + ------ + ----------- + | id | Navn | ipadresse | + ---- + ------ + ----------- + | 2 | db1 | 1.1.1.1 | + ---- + ------ + ----------- + Nå gjør sjekken på noden db2:
mysql -u root -p - e 'SELECT * FROM clustertest.mycluster;'Skriv inn passord: + ---- + ------ + ----------- + | id | Navn | ipadresse | + ---- + ------ + ----------- + | 2 | db1 | 1.1.1.1 | + ---- + ------ + ----------- + Nå gjør det samme sjekk på node DB3:
mysql -u root -p -e 'SELECT * FROM clustertest.mycluster;'Skriv inn passord: + ---- + ------ + ----------- + | id | Navn | ipadresse | + ---- + ------ + ----------- + | 2 | db1 | 1.1.1.1 |. + ---- + ------ + ----------- + Fra disse utgangene vi kan bekrefte at alt var vellykket kopiert av node db1 på tvers av alle andre noder
Det er det.
Cheers!
Previous:Slik installerer OpenVPN På CentOS 7