Mostrando postagens com marcador MySQL Cluster. Mostrar todas as postagens
Mostrando postagens com marcador MySQL Cluster. Mostrar todas as postagens
quarta-feira, 10 de abril de 2013
Wizard para Configuração do MySQL Cluster
Uma das formas simples de gerar facilmente um cluster MySQL é utilizar um dos diversos wizards existentes. Dentre as diversas, encontrei uma bem legal que não necessita de nada adicional, pode ser gerado diretamente do site:
terça-feira, 9 de abril de 2013
2PC - Procotolo Two Phase Commit
Protocolo Two Phase Commit (2PC)
O Two Phase Commit (2PC) é um protocolo de compromisso atômica (ACP). É um algoritmo distribuído que coordena todos os processos que participam de uma transação distribuída atômica sobre a possibilidade de confirmar ou anular (roll back) a operação (que é um tipo especializado de protocolo de consenso). É usado em banco de dados (principalmente distribuído como o MySQL-Cluster), aplicações que exige controle transacional, redes de computadores.
O protocolo alcança o seu objectivo, mesmo em muitos casos de falha temporária do sistema (que envolvem um ou outro processo, o nó da rede, a comunicação, falhas, etc), e é, portanto, amplamente utilizada.
Conforme vemos na figura a cima, o nome "Duas Fases" é devido a necessidade da fase de preparo e fase de commit/rollback.
segunda-feira, 8 de abril de 2013
Instalação do MySQL Cluster no CenTOS 6.3
Instalação do MySQL Cluster no CenTOS 6.3
Pre-Requisitos - Centos 64bits para instalar MySQL 32bits
yum install glibc.i686
yum install libgcc.i686
yum install libaio.i686
yum install ncurses-libs.i686
Pre-Requisitos - Centos 64bits para instalar MySQL 64bits
yum install glibc
yum install libgcc
yum install libaio
yum install ncurses-libs
Download do Pacote
cd /tmpexport CDN_MySQL="http://cdn.mysql.com/Downloads/MySQL-Cluster-7.2"
# Para 64bits
wget ${CDN_MySQL}/mysql-cluster-gpl-7.2.12-linux2.6-x86_64.tar.gz
# Para 32bits
wget ${CDN_MySQL}/mysql-cluster-gpl-7.2.12-linux2.6-i686.tar.gz
Instalação do Pacote
# Se for 64bits subsitutir por mysql-cluster-gpl-7.2.12-linux2.6-x86_64.tar.gz
cd /usr/local/
tar -zxvf /tmp/mysql-cluster-gpl-7.2.12-linux2.6-i686.tar.gz
ln -sf mysql-cluster-gpl-7.2.12-linux2.6-i686 mysql
cd mysql
groupadd mysql
useradd -g mysql mysql
cp support-files/mysql.server /etc/init.d/mysql
vim /etc/bashrc
-- Adiciona no /etc/bashrc --
PATH=$PATH:/usr/local/mysql/bin-- Fim - /etc/bashrc
# RELOAD
source /etc/bashrc
# ----------- Single MySQL Cluster ---------
Pós Instalação
mkdir /databases/my_cluster/ndb_data -pmkdir /databases/my_cluster/mysqld_data -p
mkdir /databases/my_cluster/conf -p
cd /databases/my_cluster/conf
Criar /databases/my_cluster/conf/my.cnf
-- Inicio /databases/my_cluster/conf/my.cnf ---
[mysqld]
ndbcluster
ndb-connectstring=localhost
datadir=/databases/my_cluster/mysqld_data
basedir=/usr/local/mysql
port=5000
[mysql_cluster]
ndb-connectstring=localhost
[ndb]--- Fim /databases/my_cluster/conf/my.cnf ---
ndb-connectstring=localhost
Criar /databases/my_cluster/conf/config.ini
-- Inicio /databases/my_cluster/conf/config.ini
[ndbd default]noOfreplicas=2datadir=/databases/my_cluster/ndb_data
#Management Node[ndb_mgmd]hostname=localhostdatadir=/databases/my_cluster/ndb_dataNodeId=1
# Data Nodes[ndbd]hostname=localhostNodeId=3
[ndbd]hostname=localhostNodeId=4
# API - SQL Nodes[mysqld]NodeId=50-- Fim /databases/my_cluster/conf/config.ini
Criando my.cnf
cd /etc/
mv my.cnf my.cnf.disabled
ln -sf /databases/my_cluster/conf/my.cnf .
Configurando a instância
cd /usr/local/mysql/scripts
./mysql_install_db --no-defaults --datadir=/databases/my_cluster/mysqld_data/ --basedir=/usr/local/mysql/scripts/
cd /databases/
chown mysql:mysql my_cluster/ -R
Configurando a API(MySQL)
cd /etcmv my.cnf my.cnf-original
ln -sf /databases/my_cluster/conf/my.cnf .
/etc/init.d/mysql start
mysql -h 127.0.0.1 -P 5000 -u root
Start do Gerenciado do Cluster
ndb_mgmd -f /databases/my_cluster/conf/config.ini --initial \--configdir=/databases/my_cluster/conf/
Start do DataNode
ndbd -c localhost:1186ndbd -c localhost:1186
Verificando
ndb_mgm -e showConnected to Management Server at: localhost:1186
Cluster Configuration
---------------------log-name=lixclnd2
[ndbd(NDB)] 2 node(s)
id=3 (not connected, accepting connect from localhost)
id=4 (not connected, accepting connect from localhost)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @127.0.0.1 (mysql-5.5.30 ndb-7.2.12)
[mysqld(API)] 1 node(s)
id=50 (not connected, accepting connect from any host)
Desligando
/etc/init.d/mysql stopndb_mgm -e shutdownInstalacao do Banco World
cd /tmpmysql -u root -e'create database world'
wget http://downloads.mysql.com/docs/world_innodb.sql.gz
zcat world_innodb.sql.gz |sed 's/ENGINE=InnoDB/ENGINE=NDB/g' |mysql -u root world
Configurando o PERL para as ferramentas
Pré-requisitosyum install perl-DBI
yum install perl-DBD-MySQL
yum install perl-Class-MethodMaker
Testando ferramenta Perl: Size of NDB DataBase
ndb_size.pl --database=world --host=127.0.1:5000
ndb_size.pl --database=world --host=127.0.1:5000 > result.log
Assinar:
Postagens (Atom)