Erinevus lehekülje "Mysql cluster" redaktsioonide vahel

Allikas: Kuutõrvaja
 
(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 14: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

Mycf.jpg

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