兩資料庫即時同步,供負載用

 

Fedora core 4

 

192.168.1.30 – management node
192.168.1.12 – server 1 node
192.168.1.13 – server 2 node

 

1.
wget http://downloads.mysql.com/archives/mysql-4.1/mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz

ps: 至於為何要用有 max 的版本,因為 standard 不支援 cluster

2. server 1 node & server 2 node
tar zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
mv mysql-max-4.1.9-pc-linux-gnu-i686 /usr/local/mysql
useradd -d /usr/local/mysql mysql
cd /usr/local/mysql
./scripts/mysql_install_db –user=mysql
chown -R mysql.mysql .
cp support-files/my-small.cnf /etc/my.cnf

此時還不用要啟動mysql

3. management node
tar zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
cd mysql-max-4.1.9-pc-linux-gnu-i686/bin
cp ndb_mgm ndb_mgmd /usr/bin
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
vi config.ini

[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Managment Server
[NDB_MGMD]
HostName=192.168.1.30 # 管理節點的IP地址
# Storage Engines
[NDBD]
HostName=192.168.1.12 # MySQL集群Server 1 node的IP地址
DataDir= /usr/local/mysql-cluster
[NDBD]
HostName=192.168.1.13 # MySQL集群Server 2 node的IP地址
DataDir=/usr/local/mysql-cluster
# 以下2個[MYSQLD]可以為Server 1 node和Server 2 node的主機名稱
# 但為了能夠更快的更換集群中的server,建議不變動,否則更換server後必須對這個配置進行更改
[MYSQLD]
[MYSQLD]

執行 /usr/bin/ndb_mgmd

 

程式預設會讀/var/lib/mysql-cluster/底下的config.ini

如果為不同路徑的話

/usr/bin/ndb-mgmd -f /usr/local/mysql-cluster/config.ini

4. server 1 node & server 2 node
vi /etc/my.cnf

[mysqld]
ndbcluster
ndb-connectstring=192.168.1.30 # management node的IP地址
[mysql_cluster]
ndb-connectstring=192.168.1.30 # management node的IP地址

#server-id = 1

5. 建立目錄
mkdir /usr/local/mysql-cluster

只有在第一次啟動ndbd或者management node的config.ini有變動時,才需用–initial
/usr/local/mysql/bin/ndbd –initial

 

啟動mysql
/usr/local/mysql/bin/safe_mysql –user=mysql &

6. 檢驗,management node
/usr/bin/ndb_mgm
> show

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

此時傳回數值1

之後到server 2 node
mysql
> use test;
> SELECT * FROM ctest;

就會看到於server 1 node 所insert的值也在server 2 node中出現

或交換insert,於另一台也會看到所insert的資料

  

ref: http://dev.mysql.com/doc/refman/5.0/en/ndbcluster.html
http://kb.discuz.net/index.php?title=MySQL-Cluster%E9%9B%86%E7%BE%A4%E7%A0%94%E7%A9%B6
http://dev.mysql.com/tech-resources/articles/mysql-cluster-for-two-servers.html

http://www.howtoforge.com/loadbalanced_mysql_cluster_debian

 

Related posts 相關文章

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。