How To Set Up A Load-Balanced MySQL Cluster - Part 3
2007-11-11 15:44:22 来源:WEB开发网4 Test The MySQL(和PHP搭配之最佳组合) Cluster
Our MySQL(和PHP搭配之最佳组合) cluster configuration is already finished, now it's time to test it. On the cluster management server (loadb1.example.com), run the cluster management client ndb_mgm to check if the cluster nodes are connected:
loadb1.example.com:
ndb_mgm
You should see this:
-- NDB Cluster -- Management Client -- |
Now type show; at the command prompt:
show;
The output should be like this:
ndb_mgm> show; |
If you see that your nodes are connected, then everything's ok!
Type
quit;
to leave the ndb_mgm client console.
Now we create a test database with a test table and some data on sql1.example.com:
sql1.example.com:
MySQL(和PHP搭配之最佳组合) -u root -p
CREATE DATABASE MySQL(和PHP搭配之最佳组合)clustertest;
USE MySQL(和PHP搭配之最佳组合)clustertest;
CREATE TABLE testtable (i INT) ENGINE=NDBCLUSTER;
INSERT INTO testtable () VALUES (1);
SELECT * FROM testtable;
quit;
(Have a look at the CREATE statment: We must use ENGINE=NDBCLUSTER for all database tables that we want to get clustered! If you use another engine, then clustering will not work!)
The result of the SELECT statement should be:
MySQL(和PHP搭配之最佳组合)> SELECT * FROM testtable; |
Now we create the same database on sql2.example.com (yes, we still have to create it, but afterwards testtable and its data should be replicated to sql2.example.com because testtable uses ENGINE=NDBCLUSTER):
sql2.example.com:
MySQL(和PHP搭配之最佳组合) -u root -p
CREATE DATABASE MySQL(和PHP搭配之最佳组合)clustertest;
USE MySQL(和PHP搭配之最佳组合)clustertest;
SELECT * FROM testtable;
The SELECT statement should deliver you the same result as before on sql1.example.com:
MySQL(和PHP搭配之最佳组合)> SELECT * FROM testtable; |
So the data was replicated from sql1.example.com to sql2.example.com. Now we insert another row into testtable:
sql2.example.com:
INSERT INTO testtable () VALUES (2);
quit;
Now let's go back to sql1.example.com and check if we see the new row there:
sql1.example.com:
MySQL(和PHP搭配之最佳组合) -u root -p
USE MySQL(和PHP搭配之最佳组合)clustertest;
SELECT * FROM testtable;
quit;
You should see something like this:
MySQL(和PHP搭配之最佳组合)> SELECT * FROM testtable; |
So both MySQL(和PHP搭配之最佳组合) cluster nodes alwas have the same data!
Now let's see what happens if we stop node 1 (sql1.example.com): Run
sql1.example.com:
killall ndbd
and check with
ps aux | grep ndbd | grep -iv grep
that all ndbd processes have terminated. If you still see ndbd processes, run another
killall ndbd
until all ndbd processes are gone.
Now let's check the cluster status on our management server (loadb1.example.com):
loadb1.example.com:
ndb_mgm
On the ndb_mgm console, issue
show;
and you should see this:
ndb_mgm> show; |
You see, sql1.example.com is not connected anymore.
Type
quit;
to leave the ndb_mgm console.
Let's check sql2.example.com:
sql2.example.com:
MySQL(和PHP搭配之最佳组合) -u root -p
USE MySQL(和PHP搭配之最佳组合)clustertest;
SELECT * FROM testtable;
quit;
The result of the SELECT query should still be
MySQL(和PHP搭配之最佳组合)> SELECT * FROM testtable; |
Ok, all tests went fine, so let's start our sql1.example.com node again:
sql1.example.com:
ndbd
- ››setpref轻松修改preferences文件
- ››TOscilloscope 仿Windows任务管理器CPU使用记录组...
- ››How to Make a Dark, Post-Apocalyptic City Illu...
- ››tomcat不支持TCP/IP6协议
- ››setTimeout()在js类中的使用方法
- ››tomcat 下的 url 大小写问题
- ››tomcat6.0.28 内存溢出PermGen Space
- ››Setting up proxy for Android Emulator
- ››Tomcat 系统架构与设计模式,第 2 部分: 设计模式...
- ››Tomcat 系统架构与设计模式,第 1 部分: 工作原理...
- ››How to (almost) create your own iPhone OS fram...
- ››TOMCAT和IIS整合
更多精彩
赞助商链接