- Dec 09 Thu 2010 10:50
-
ssh tunnel 筆記
- Sep 30 Thu 2010 16:26
-
在centos文字模式下透過yum安裝x window
- Aug 30 Mon 2010 14:06
-
MySQL Cluster 測試筆記 (記憶體計算公式)
(SizeofDatabase * NumberOfReplicas * 1.1 ) / NumberOfDataNodes
MySQL官方資料 : http://dev.mysql.com/doc/refman/5.0/fr/mysql-cluster-faq.html
MySQL官方資料 : http://dev.mysql.com/doc/refman/5.0/fr/mysql-cluster-faq.html
- Aug 27 Fri 2010 16:44
-
MySQL Cluster 測試筆記 (常見的限制)
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)而以,再大就過不去了 >_<
不可以有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)而以,再大就過不去了 >_<
- Aug 27 Fri 2010 16:38
-
VirtualBox 轉換虛擬硬碟的uuid

在virtualbox中建立了一個linux環境,開開心心的檔案複製一份
想要開第二台linux起來,但是就是不給你加入
原因是每一個virtualbox的虛擬硬碟 *.vdi 都有自己的uuid , 為的就是不要和別人重複
要怎麼修改ssid咧
以windows環境下的virtualbox為例 (檔案放在低潮)
VBoxManage.exe internalcommands setvdiuuid d:\vbox\server2.vdi
認識虛擬化技術的第一本書(超圖解,學習無負擔)
おうちで学べる仮想化のきほん
作者: 高岡将, 高添修
譯者: 許郁文
出版社:碁峰
出版日期:2016/02/01
語言:繁體中文
定價:380元
- Aug 22 Sun 2010 02:28
-
MUJI無印良品好用文具大集合
- Aug 11 Wed 2010 18:35
-
MySQL Cluster 測試筆記 (新增一個sql node)
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)
[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)
- Aug 11 Wed 2010 15:37
-
MySQL Cluster 測試筆記 (轉換table格式to ndbcluster)
將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
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
- Aug 11 Wed 2010 15:10
-
MySQL Cluster 測試筆記 (建個資料玩看看)
開始建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
首先看看有沒有支援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
- Aug 11 Wed 2010 12:43
-
MySQL Cluster 測試筆記 (當data node掛掉一台的時候)
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 ... (筆記)
[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 ... (筆記)
- Aug 11 Wed 2010 10:57
-
MySQL Cluster 安裝筆記

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
MySQL技術精粹:架構、高級特性、性能優化與集群實戰
- Aug 06 Fri 2010 10:13
-
博客來網路書店15週年慶!!


