helloworld

目前日期文章:201008 (10)

瀏覽方式: 標題列表 簡短摘要

(SizeofDatabase * NumberOfReplicas * 1.1 ) / NumberOfDataNodes

MySQL官方資料 : http://dev.mysql.com/doc/refman/5.0/fr/mysql-cluster-faq.html

helloworld 發表在 痞客邦 PIXNET 留言(0) 人氣()

ERROR 1214 (HY000)  The used table type doesn't support FULLTEXT indexes
不可以有FULLTEXT index

ERROR 1118 (42000)  Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8052. You have to change some columns to TEXT or BLOBs
欄位長度總和不能過長
測試新增一個ndbcluster的table ...裡面只有一個欄位,最大的長度到
varchar (2680)而以,再大就過不去了 >_<

helloworld 發表在 痞客邦 PIXNET 留言(0) 人氣()

在virtualbox中建立了一個linux環境,開開心心的檔案複製一份
想要開第二台linux起來,但是就是不給你加入

原因是每一個virtualbox的虛擬硬碟 *.vdi 都有自己的uuid , 為的就是不要和別人重複
要怎麼修改ssid咧
以windows環境下的virtualbox為例 (檔案放在低潮)
VBoxManage.exe internalcommands setvdiuuid d:\vbox\server2.vdi


helloworld 發表在 痞客邦 PIXNET 留言(0) 人氣()

MUJI無印良品 文具

muji無印良品好用文具大集合
集點還可以到門市換贈品
聽起來真不錯啊XD

helloworld 發表在 痞客邦 PIXNET 留言(0) 人氣()

mgm node看起來沒什麼load,決定把他加上sql node的群組

[root@node1 ~]# vi /var/lib/mysql-cluster/config.ini
[mysqld]
hostname=10.0.0.102
id=2
[mysqld]
hostname=10.0.0.101
id=11

[root@node1 ~]# vi /etc/my.cnf
[mysqld]
ndbcluster # run NDB storage engine
ndb-connectstring=node1
[mysql_cluster]
ndb-connectstring=node1

ndb服務shutdown (補充說明一下,這個動作可以把ndb_mgmd & ndbd 都shutdown , mysqld 不會shutdown)
[root@node1 ~]# ndb_mgm -e shutdown

重新再讀一次設定檔
[root@node1 ~]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial

再去data node 把ndbd帶起來

最後把sql node的mysqld 帶起來,當然包括剛剛加上去的node1
[root@node1 ~]# service mysql start

觀察一下目前cluster的狀態
[root@node1 ~]# ndb_mgm -e show
Connected to Management Server at: node1:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=3    @10.0.0.103  (mysql-5.1.44 ndb-7.1.4, Nodegroup: 0, Master)
id=4    @10.0.0.104  (mysql-5.1.44 ndb-7.1.4, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @10.0.0.101  (mysql-5.1.44 ndb-7.1.4)

[mysqld(API)]   2 node(s)
id=2    @10.0.0.102  (mysql-5.1.44 ndb-7.1.4)
id=11   @10.0.0.101  (mysql-5.1.44 ndb-7.1.4)

最後如果可以讀到在其他sql node建立起來的資料的話就是成功囉!!
mysql> select * from table1;
+------+
| a    |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.01 sec)



helloworld 發表在 痞客邦 PIXNET 留言(0) 人氣()

將MyISAM的table格式轉換為cluster格式
mysql> ALTER TABLE table1 ENGINE=NDBCLUSTER;
Query OK, 2 rows affected (0.96 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> show create table `table1`;
+--------+------------------------------------
| Table  | Create Table
+--------+------------------------------------
| table1 | CREATE TABLE `table1` (
  `a` int(11) DEFAULT NULL
) ENGINE=ndbcluster DEFAULT CHARSET=latin1 |
+--------+------------------------------------
1 row in set (0.01 sec)

-rw-rw---- 1 mysql mysql 8554 Aug 11 15:34 table1.frm
-rw-rw---- 1 mysql mysql    0 Aug 11 15:34 table1.ndb
-rw-rw---- 1 mysql mysql 8554 Aug 11 15:05 table2.frm
-rw-rw---- 1 mysql mysql    0 Aug 11 15:05 table2.ndb

helloworld 發表在 痞客邦 PIXNET 留言(0) 人氣()

開始建table囉
首先看看有沒有支援ndbcluster
mysql> show engines;
| ndbcluster | YES .... (略)

mysql> use test;

以前會醬子create table
mysql> create table `table1` (a int);
Query OK, 0 rows affected (0.06 sec)

現在你要醬子create table
mysql> create table `table2` (a int) ENGINE=ndbcluster;
Query OK, 0 rows affected (0.73 sec)

實際到os下面看看檔案格式有什麼不一樣
-rw-rw---- 1 mysql mysql 8554 Aug 11 14:59 table1.frm
-rw-rw---- 1 mysql mysql    0 Aug 11 14:59 table1.MYD
-rw-rw---- 1 mysql mysql 1024 Aug 11 14:59 table1.MYI
-rw-rw---- 1 mysql mysql 8554 Aug 11 15:05 table2.frm
-rw-rw---- 1 mysql mysql    0 Aug 11 15:05 table2.ndb

塞幾筆資料進去看看
mysql> insert table1 values (1);
mysql> insert table1 values (2);
mysql> insert table2 values (1);
mysql> insert table2 values (2);

mysql> select * from table1;
+------+
| a    |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)

mysql> select * from table2;
+------+
| a    |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)

再看一下檔案有甚麼不一樣
-rw-rw---- 1 mysql mysql 8554 Aug 11 14:59 table1.frm
-rw-rw---- 1 mysql mysql   14 Aug 11 15:07 table1.MYD
-rw-rw---- 1 mysql mysql 1024 Aug 11 15:07 table1.MYI
-rw-rw---- 1 mysql mysql 8554 Aug 11 15:05 table2.frm
-rw-rw---- 1 mysql mysql    0 Aug 11 15:05 table2.ndb

嗯..看起來data都是已經寫到data node去囉:D

helloworld 發表在 痞客邦 PIXNET 留言(0) 人氣()

master 現在是node3
[root@node3 ~]# ndb_mgm -e show
Connected to Management Server at: 10.0.0.101:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=3    @10.0.0.103  (mysql-5.1.44 ndb-7.1.4, Nodegroup: 0, Master)
id=4    @10.0.0.104  (mysql-5.1.44 ndb-7.1.4, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @10.0.0.101  (mysql-5.1.44 ndb-7.1.4)

[mysqld(API)]   1 node(s)
id=2    @10.0.0.102  (mysql-5.1.44 ndb-7.1.4)

試試模擬node3的ndbd掛掉的時候看看會怎樣
[root@node3 ~]# killall ndbd

node4接手變成master了
[root@node3 ~]# ndb_mgm -e show
Connected to Management Server at: 10.0.0.101:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=3 (not connected, accepting connect from 10.0.0.103)
id=4    @10.0.0.104  (mysql-5.1.44 ndb-7.1.4, Nodegroup: 0, Master)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @10.0.0.101  (mysql-5.1.44 ndb-7.1.4)

[mysqld(API)]   1 node(s)
id=2    @10.0.0.102  (mysql-5.1.44 ndb-7.1.4)

重啟在node3啟動ndbd後會怎樣咧??
[root@node3 ~]# ndb_mgm -e show
Connected to Management Server at: 10.0.0.101:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=3    @10.0.0.103  (mysql-5.1.44 ndb-7.1.4, starting, Nodegroup: 0)
id=4    @10.0.0.104  (mysql-5.1.44 ndb-7.1.4, Nodegroup: 0, Master)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @10.0.0.101  (mysql-5.1.44 ndb-7.1.4)

[mysqld(API)]   1 node(s)
id=2    @10.0.0.102  (mysql-5.1.44 ndb-7.1.4)

[root@node3 ~]# ndb_mgm -e show
Connected to Management Server at: 10.0.0.101:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=3    @10.0.0.103  (mysql-5.1.44 ndb-7.1.4, Nodegroup: 0)
id=4    @10.0.0.104  (mysql-5.1.44 ndb-7.1.4, Nodegroup: 0, Master)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @10.0.0.101  (mysql-5.1.44 ndb-7.1.4)

[mysqld(API)]   1 node(s)
id=2    @10.0.0.102  (mysql-5.1.44 ndb-7.1.4)

嗯.. 結論是..node4繼續當他的master ... (筆記)

helloworld 發表在 痞客邦 PIXNET 留言(0) 人氣()

MySQL的cluster主要分為3種node
mgm node 沒錯,照字面上看起來就是管理用的node
sql node 未來查詢都會透過這個node來做增刪改查
data node 存放資料的地方

首先準備4台機器,裝好Linux作業系統,其他套件都不要選
10.0.0.101 (mgm node)
10.0.0.102 (sql node)
10.0.0.103 (data node)
10.0.0.104 (data node)

編輯四台node的/etc/hosts (非必要,只是我的怪僻XD)
10.0.0.101    node1
10.0.0.102    node2
10.0.0.103    node3
10.0.0.104    node4

安裝MySQL Cluster前把iptables / SELinux 都關掉先,會少很多麻煩
如果要關掉SELinux,必須要reboot
chkconfig iptables off
vi /etc/sysconfig/selinux
SELINUX=enforcing 修改為 SELINUX=disabled
reboot

下載需要的套件回來,以下是前幾天下載的7.1.4b,現在最新的版本是7.1.5
http://dev.mysql.com/downloads/cluster/

MySQL-Cluster-gpl-client-7.1.4b-1.rhel5.x86_64.rpm
MySQL-Cluster-gpl-clusterj-7.1.4b-1.rhel5.x86_64.rpm
MySQL-Cluster-gpl-debuginfo-7.1.4b-1.rhel5.x86_64.rpm
MySQL-Cluster-gpl-devel-7.1.4b-1.rhel5.x86_64.rpm
MySQL-Cluster-gpl-embedded-7.1.4b-1.rhel5.x86_64.rpm
MySQL-Cluster-gpl-extra-7.1.4b-1.rhel5.x86_64.rpm
MySQL-Cluster-gpl-management-7.1.4b-1.rhel5.x86_64.rpm
MySQL-Cluster-gpl-server-7.1.4b-1.rhel5.x86_64.rpm
MySQL-Cluster-gpl-shared-7.1.4b-1.rhel5.x86_64.rpm
MySQL-Cluster-gpl-storage-7.1.4b-1.rhel5.x86_64.rpm
MySQL-Cluster-gpl-test-7.1.4b-1.rhel5.x86_64.rpm
MySQL-Cluster-gpl-tools-7.1.4b-1.rhel5.x86_64.rpm

如果不想安裝全部,各Node基本需要的套件如下
mgm node
rpm -ihv MySQL-Cluster-gpl-management*.rpm
rpm -ihv MySQL-Cluster-gpl-tools*.rpm
sql node
rpm -ivh MySQL-Cluster-gpl-server*.rpm
rpm -ivh MySQL-Cluster-gpl-client*.rpm
data node
rpm -ihv MySQL-Cluster-gpl-storage*.rpm

省得麻煩的話,就全裝唄XD

開始設定了,在mgm node
如果沒有/var/lib/mysql-cluster的話就自己建一個目錄
[root@node1 ~]# mkdir -p /var/lib/mysql-cluster
[root@node1 ~]# vi /var/lib/mysql-cluster/config.ini

[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M
[tcp default]
portnumber=2202
[ndb_mgmd]
hostname=10.0.0.101
id=1
datadir=/var/lib/mysql-cluster
[ndbd]
hostname=10.0.0.104
datadir=/var/lib/mysql-cluster
id=4
[ndbd]
hostname=10.0.0.103
datadir=/var/lib/mysql-cluster
id=3
[mysqld]
hostname=10.0.0.102
id=2

編輯sql node的/etc/my.cnf

[mysqld]
ndbcluster # run NDB storage engine
ndb-connectstring=node1   ##這邊要寫mgm node的位址
[mysql_cluster]
ndb-connectstring=node1   ##這邊要寫mgm node的位址


啟動服務
順序: mgm node -> data node -> sql node
mgm node:
[root@node1 ~]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial (第一次執行要加-f /var/lib/mysql-cluster/config.ini
--initial , 第二次以後就不用了)
觀察一下mysql cluster的狀態,我們可以用以下的指令
[root@node1 ~]# ndb_mgm -e show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=3 (not connected, accepting connect from 10.0.0.103)
id=4 (not connected, accepting connect from 10.0.0.104)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @10.0.0.101  (mysql-5.1.44 ndb-7.1.4)

[mysqld(API)]   1 node(s)
id=2 (not connected, accepting connect from 10.0.0.102)


data node:
ndbd --initial (第一次執行要加 --initial , 第二次以後就不用了)
如果無法啟動的話,可以直接指定他mgm node在哪邊
[root@node3 ~]# ndbd -c node1
[root@node1 ~]# ndb_mgm -e show
Connected to Management Server at: 10.0.0.101:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=3    @10.0.0.103  (mysql-5.1.44 ndb-7.1.4, starting, Nodegroup: 0, Master)
id=4    @10.0.0.104  (mysql-5.1.44 ndb-7.1.4, starting, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @10.0.0.101  (mysql-5.1.44 ndb-7.1.4)

[mysqld(API)]   1 node(s)
id=2 (not connected, accepting connect from 10.0.0.102)

sql node:
service mysql start (注意!!不是mysqld喔)
最後看看狀態,是不是所有的node都起來了
Connected to Management Server at: node1:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=3    @10.0.0.103  (mysql-5.1.44 ndb-7.1.4, Nodegroup: 0, Master)
id=4    @10.0.0.104  (mysql-5.1.44 ndb-7.1.4, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @10.0.0.101  (mysql-5.1.44 ndb-7.1.4)

[mysqld(API)]   1 node(s)
id=2    @10.0.0.102  (mysql-5.1.44 ndb-7.1.4)

嗯..看來 data node要的記憶體要大一點.. (筆記)

參考資料:
http://forum.icst.org.tw/phpbb/viewtopic.php?f=10&t=17903
http://twpug.net/docs/mysql-5.1/ndbcluster.html
http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster.html
http://www.codecharge.com.tw/phpBB3/viewtopic.php?f=11&t=540



helloworld 發表在 痞客邦 PIXNET 留言(0) 人氣()

加入會員還送你300塊e-coupon喔..不過好像是50塊6張=.=

博客來網路書店15周年慶

helloworld 發表在 痞客邦 PIXNET 留言(0) 人氣()