Mysql cluster: erinevus redaktsioonide vahel

Allikas: Kuutõrvaja
Mine navigeerimisribaleMine otsikasti
Jj (arutelu | kaastöö)
Resümee puudub
Jj (arutelu | kaastöö)
Resümee puudub
 
(ei näidata sama kasutaja 24 vahepealset redaktsiooni)
1. rida: 1. rida:
kolm masinat
===Sissejuhatus===


management
Probleem.
node1
node2


Vaja oleks hajutada mysql serveri koormust ja samal ajal suurendada töökindlust kogu süsteemil.


install
Lahendus oleks mysql_cluster.


gentoo
MySQL Cluster combines the world's most popular open source database with a fault tolerant database clustering architecture so you can deliver mission-critical database applications with 99.999% availability.
 
Näites kasutame kolme serverit
 
management 192.168.1.10
node1      192.168.1.11
node2      192.168.1.12
 
[[Pilt:Mycf.jpg]]
 
===install===
 
'''gentoo'''


  make.conf
  make.conf
15. rida: 26. rida:
  emerge mysql
  emerge mysql


freebsd
'''freebsd'''
 
 
  131  10:40  cd /usr/ports/databases
  132  10:40  ls
  133  10:40  cd mysql50-server
  134  10:40  nano Makefile
  135  10:40  make
  136  10:40  nano /etc/make.conf
  137  10:41  nano Makefile
  138  10:41  nano /etc/make.conf
  139  10:41  make
  140  10:41  make WITH_NDB=yes
  141  11:30  make install WITH_NDB=yes


cd /usr/ports/databases/mysql50-server
make WITH_NDB=yes
make install WITH_NDB=yes


===seadistamine===


master
'''management'''


  ndb_mgmd --config-file=/etc/config.ini
  /etc/config.ini


  # file "config.ini" - 2 data nodes and 2 SQL nodes
  # file "config.ini" - 2 data nodes and 2 SQL nodes
  # This file is placed in the startup directory of ndb_mgmd (the
  # This file is placed in the startup directory of ndb_mgmd (the
  # management server)
  # management server)
# The first MySQL Server can be started from any host. The second
# can be started only on the host mysqld_5.mysql.com
   
   
  [NDBD DEFAULT]
  [NDBD DEFAULT]
47. rida: 47. rida:
   
   
  [NDB_MGMD]
  [NDB_MGMD]
  Hostname= 193.40.0.184
  Hostname= 192.168.1.10
  DataDir= /var/lib/mysql-cluster
  DataDir= /var/lib/mysql-cluster
   
   
  [NDBD]
  [NDBD]
  HostName= 193.40.0.187
  HostName= 192.168.1.11
   
   
  [NDBD]
  [NDBD]
  HostName= 193.40.0.183
  HostName= 192.168.1.12
   
   
  [MYSQLD]
  [MYSQLD]
  [MYSQLD]
  [MYSQLD]


ndb_mgmd --config-file=/etc/config.ini


FreeBSD's /usr/local/libexec/ndb_mgmd --config-file=/etc/config.ini


'''node 1'''


node 1
mysql_install
mkdir /var/lib/mysql-cluster
chown -R mysql:mysql /var/lib/mysql-cluster


/etc/mysql/my.cnf


freebsd serveris /usr/local/etc/my.cnf


cat /etc/mysql/my.cnf
  [mysql_cluster]
  [mysql_cluster]
  ndb-connectstring=193.40.0.184
  ndb-connectstring=192.168.1.10
   
   
  [mysqld]
  [mysqld]
  ndbcluster
  ndbcluster
  ndb-connectstring=193.40.0.184
  ndb-connectstring=192.168.1.10
   
   
ndbd --initial
mysqld_safe
freebsd puhul  /usr/local/libexec/ndbd --initial mõlemas
NB! --initial võtit kasutada vaid esmakordsel startimisel. Edaspidi startida lihtsalt ndbd käsuga
'''node2'''
Kõik täiesti sama mis esimeses
mysql_install
mkdir /var/lib/mysql-cluster
chown -R mysql:mysql /var/lib/mysql-cluster


node2
/etc/mysql/my.cnf


cat /usr/local/etc/my.cnf
  [mysql_cluster]
  [mysql_cluster]
  ndb-connectstring=193.40.0.184
  ndb-connectstring=192.168.1.10
   
   
  [mysqld]
  [mysqld]
  ndbcluster
  ndbcluster
  ndb-connectstring=193.40.0.184
  ndb-connectstring=192.168.1.10
 
node1


  ndbd --initial
  ndbd --initial


node2
  mysqld_safe
 
  /usr/local/libexec/ndbd --initial
 


===kasutamine===


master
'''management'''


Käivitame järgneva käsu ja testime kas cluster töötab


  localhost ~ # ndb_mgm
  localhost ~ # ndb_mgm
105. rida: 122. rida:
  ---------------------
  ---------------------
  [ndbd(NDB)]    2 node(s)
  [ndbd(NDB)]    2 node(s)
  id=2    @193.40.0.187 (Version: 5.0.44, Nodegroup: 0, Master)
  id=2    @192.168.1.11 (Version: 5.0.44, Nodegroup: 0, Master)
  id=3    @193.40.0.183 (Version: 5.0.45, Nodegroup: 0)
  id=3    @192.168.1.12 (Version: 5.0.45, Nodegroup: 0)
   
   
  [ndb_mgmd(MGM)] 1 node(s)
  [ndb_mgmd(MGM)] 1 node(s)
  id=1    @193.40.0.184 (Version: 5.0.44)
  id=1    @192.168.1.10 (Version: 5.0.44)
   
   
  [mysqld(API)]  2 node(s)
  [mysqld(API)]  2 node(s)
  id=4    @193.40.0.187 (Version: 5.0.44)
  id=4    @192.168.1.11 (Version: 5.0.44)
  id=5    @193.40.0.183 (Version: 5.0.45)
  id=5    @192.168.1.12 (Version: 5.0.45)
   
   
  ndb_mgm>
  ndb_mgm>
Teeme testi
mysql
use test;
CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
INSERT INTO ctest () VALUES (1);
SELECT * FROM ctest;
Nagu märkasite kasutasin ENGINE=NDBCLUSTER
Engine: ndbcluster
Support: YES
Comment: Clustered, fault-tolerant, memory-based tables
Et toimiks mysql clustri kasutus tuleb igale tabelile see engine lisada. Et vaikimisi loodavatel tabelitel oleks kasutuses õige engine siis lisada
my.cnf'i
default_storage_engine=NDBCLUSTER
Muide kogu mysql cluster on täiesti ilma paroolideta veel. Soovitav on ka need paika seada nüüd.
===Lisalugemist===
http://www.mysql.com/products/database/cluster/
http://mysql2.mirrors-r-us.net/doc/refman/5.0/en/mysql-cluster-config-example.html
http://onlinesolutionsmysql.blogspot.com/2007/05/q-webinar-part-4-mysql-cluster.html
Ja abivahendiks koormuse jagamisel
http://jan.kneschke.de/projects/mysql/mysql-proxy

Viimane redaktsioon: 27. november 2010, kell 11:03

Sissejuhatus

Probleem.

Vaja oleks hajutada mysql serveri koormust ja samal ajal suurendada töökindlust kogu süsteemil.

Lahendus oleks mysql_cluster.

MySQL Cluster combines the world's most popular open source database with a fault tolerant database clustering architecture so you can deliver mission-critical database applications with 99.999% availability.

Näites kasutame kolme serverit

management 192.168.1.10
node1      192.168.1.11
node2      192.168.1.12

install

gentoo

make.conf
use="cluster"
emerge mysql

freebsd

cd /usr/ports/databases/mysql50-server
make WITH_NDB=yes
make install WITH_NDB=yes

seadistamine

management

/etc/config.ini
# file "config.ini" - 2 data nodes and 2 SQL nodes
# This file is placed in the startup directory of ndb_mgmd (the
# management server)

[NDBD DEFAULT]
NoOfReplicas= 2
DataDir= /var/lib/mysql-cluster

[NDB_MGMD]
Hostname= 192.168.1.10
DataDir= /var/lib/mysql-cluster

[NDBD]
HostName= 192.168.1.11

[NDBD]
HostName= 192.168.1.12

[MYSQLD]
[MYSQLD]
ndb_mgmd --config-file=/etc/config.ini

FreeBSD's /usr/local/libexec/ndb_mgmd --config-file=/etc/config.ini

node 1

mysql_install
mkdir /var/lib/mysql-cluster
chown -R mysql:mysql /var/lib/mysql-cluster
/etc/mysql/my.cnf

freebsd serveris /usr/local/etc/my.cnf

[mysql_cluster]
ndb-connectstring=192.168.1.10

[mysqld]
ndbcluster
ndb-connectstring=192.168.1.10

ndbd --initial
mysqld_safe

freebsd puhul /usr/local/libexec/ndbd --initial mõlemas

NB! --initial võtit kasutada vaid esmakordsel startimisel. Edaspidi startida lihtsalt ndbd käsuga

node2

Kõik täiesti sama mis esimeses

mysql_install
mkdir /var/lib/mysql-cluster
chown -R mysql:mysql /var/lib/mysql-cluster
/etc/mysql/my.cnf
[mysql_cluster]
ndb-connectstring=192.168.1.10

[mysqld]
ndbcluster
ndb-connectstring=192.168.1.10
ndbd --initial
mysqld_safe

kasutamine

management

Käivitame järgneva käsu ja testime kas cluster töötab

localhost ~ # ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @192.168.1.11  (Version: 5.0.44, Nodegroup: 0, Master)
id=3    @192.168.1.12  (Version: 5.0.45, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.1.10  (Version: 5.0.44)

[mysqld(API)]   2 node(s)
id=4    @192.168.1.11  (Version: 5.0.44)
id=5    @192.168.1.12  (Version: 5.0.45)

ndb_mgm>

Teeme testi

mysql
use test;
CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
INSERT INTO ctest () VALUES (1);
SELECT * FROM ctest;

Nagu märkasite kasutasin ENGINE=NDBCLUSTER

Engine: ndbcluster Support: YES Comment: Clustered, fault-tolerant, memory-based tables

Et toimiks mysql clustri kasutus tuleb igale tabelile see engine lisada. Et vaikimisi loodavatel tabelitel oleks kasutuses õige engine siis lisada my.cnf'i

default_storage_engine=NDBCLUSTER

Muide kogu mysql cluster on täiesti ilma paroolideta veel. Soovitav on ka need paika seada nüüd.

Lisalugemist

http://www.mysql.com/products/database/cluster/

http://mysql2.mirrors-r-us.net/doc/refman/5.0/en/mysql-cluster-config-example.html

http://onlinesolutionsmysql.blogspot.com/2007/05/q-webinar-part-4-mysql-cluster.html

Ja abivahendiks koormuse jagamisel

http://jan.kneschke.de/projects/mysql/mysql-proxy