ผู้เขียน หัวข้อ: การทำระบบ MySQL Cluster  (อ่าน 42016 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
การทำระบบ MySQL Cluster
« เมื่อ: เมษายน 11, 2009, 14:26:37 PM »
0
การทำระบบ MySQL Cluster ครั้งนี้จะใช้เครื่องทั้งหมด จำนวน 4 เครื่องดังนี้
เครื่องที่1 : เป็น storage node (sqlnode1:192.168.0.1)
เครื่องที่2 : เป็น storage node (sqlnode2:192.168.0.2)
เครื่องที่3 : เป็น API node (sqlload:192.168.0.3)
เครื่องที่4 : เป็น MySQL cluster management server (sqlmang:192.168.0.4)




Storage node หรือ Data node เป็นส่วนที่เป็น Cluster ของข้อมูล ทำหน้าที่เก็บข้อมูล โดยเครื่องเหล่านี้จะ Replicate ทั้งด้านเวลาและจำนวนของแต่ละ Fragment สำหรับชื่อ process ของ Node นี้มีชื่อว่า ndbd
API node หรือ SQL node จะทำหน้าที่เป็นตัวกลางในการเรียกใช้งานข้อมูลจาก storage node โดย node นี้ connect โดยใช้ Deamon ที่ชื่อว่า mysqld -ndbcluster หรือจะใช้ mysqld ร่วมกับ ndbcluster ก็ได้ เพียงแต่ต้องเข้าไป config ใน file my.cnf (การทดสอบระบบครั้งนี้ เลือกใช้วิธีนี้ในการทดสอบ)

MySQL cluster management server หรือ Management node (MGM node) จะทำหน้าที่เป็นตัวตรวจสอบการคงอยู่ของ storage node (สถานะของ cluster) และทำหน้าที่จัดการ node อื่น ๆ เช่น การจัดการ Config, Start&Stop node อื่น ๆ , ทำการ backup&restore ข้อมูล ซึ่งแน่นอนว่า node นี้ต้อง run เป็นตัวแรกแน่นอน และ process ที่อยู่ node นี้มีชื่อว่า ndb_mgmd

การติดตั้ง MySQL Cluster Management Server

เริ่มต้น install mysql version 5.0.38-Ubuntu โดยจะมีการ install cluster management server (ndb_mgmd) และ cluster management client (ndb_mgm) ให้โดยอัตโนมัติดังนี้

sqlmang:192.168.0.4

sudo apt-get install mysql-server

สร้าง cluster configuration file ซึ่งอยู่ที่ /var/lib/mysql-cluster ซึ่งโดยปกติระหว่างการ install mysql-server จะสร้าง directory mysql-cluster ให้โดยอัตโนมัติจึงอาจไม่จำเป็นต้องใช้ คำสั่ง mkdir /var/lib/mysql-cluster นี้

cd /var/lib/mysql-cluster
pico config.ini



หรือถ้าต้องการจะให้ cluster management server start เองโดยอัตโนมัติเมื่อมีการ boot ระบบ เราสามารถสร้าง script เพื่อจัดการ ดังนี้

echo ‘ndb_mgmd -f /var/lib/mysql-cluster/config.ini’ > /etc/init.d/ndb_mgmd
chmod 755 /etc/init.d/ndb_mgmd
update-rc.d ndb_mgmd defaults

การติดตั้ง MySQL Cluster Nodes (Storage Nodes)

sqlnode1:192.168.0.1/sqlnode2:192.168.0.2

groupadd mysql
useradd -g mysql mysql

ทำการ install mysql version 5.0.38-Ubuntu

sudo apt-get install mysql-server

แก้ไข MySQL configuration file ทั้งสองเครื่อง ที่ /etc/mysql

pico /etc/mysql/my.cnf



จากนั้นทำการ start service MySQL ทั้ง 2 เครื่อง ดังนี่

mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
/etc/init.d/mysql stop
ndbd –initial
/etc/init.d/mysql start

หมายเหตุ

การใช้คำสั่ง ndbd –initial จะใช้ในกรณีที่ start service MySQL เป็นครั้งแรกหรือในกรณีที่ file config.ini ที่ /var/lib/mysql-cluster บน MySQL cluster management server มีการแก้ไข ส่วนในกรณีอื่น ๆ ใช้คำสั่ง ndbd

ทั้งนี้จะใช้คำสั่ง ndbd, ndbd –initial ได้ก็ต่อเมื่อ service MySQL stop อยู่

โดยปกติเมื่อทำการ install mysql เสร็จ : service MySQL จะ start โดยอัตโนมัติ ซึ่งเราสามารถตรวจสอบสถานะของ service MySQL ได้ว่าขณะนี้เป็นอย่างไร โดยใช้คำสั่ง /etc/init.d/mysql status

นอกจากนี้ในกรณีที่ service MySQL start อยู่ เรามีการสร้างหรือแก้ไข file my.cnf เราต้อง restart service MySQL ทุกครั้ง โดยใช้คำสั่ง /etc/init.d/mysql restart

แนะนำว่าในครั้งแรกที่ติดตั้ง mysql เสร็จ ควรทำการเปลี่ยนแปลง password ของ user root โดยใช้คำสั่ง mysqladmin -u root password newrootpassword

ในกรณีที่เราต้องการให้ start cluster node (storage node) เองโดยอัตโนมัติเมื่อมีการ boot เครื่อง เราสามารถสร้าง script เพื่อจัดการดังนี้

echo ‘ndbd’ > /etc/init.d/ndbd
chmod 755 /etc/init.d/ndbd
update-rc.d ndbd defaults

การติดตั้ง MySQL API Nodes

sqlload:192.168.0.3

เริ่มต้น install MySQL

sudo apt-get install mysql-server

จากนั้นแก้ไข MySQL configuration file ที่ /etc/mysql

pico /etc/mysql/my.cnf



ทำการ start service MySQL

/etc/init.d/mysql start //หรือใช้ /etc/init.d/mysql restart ในกรณี service MySQL start อยู่

ทำการแก้ไข user ที่ table user ภายในฐานข้อมูล mysql ดังนี้

mysql -u root -p
USE mysql;
SELECT host, user, password FROM user;

ให้ตรวจสอบว่ามี user ที่ชื่อเดียวกันกับเครื่องหรือมี user ที่ชื่อเดียวกับ IP address ของเครื่องหรือไม่ ในกรณีที่มีให้ทำการ update user นั้นเป็น % แทนดังนี้

UPDATE user SET host=’%’ WHERE host=’sqlload’;

ทั้งนี้เพื่อให้เครื่องอื่น ๆ ในวงเดียวกันสามารถ connect database ที่ API node นี้ได้

การทดสอบ MySQL Cluster

ในการทำ MySQL Cluster ครั้งนี้ ได้กำหนดขั้นตอนในการทดสอบดังนี้

ขั้นตอนที่ 1 : ทดสอบว่า MySQL cluster management server (sqlmang:192.168.0.4) สามารถ query สถานะของ cluster ได้หรือไม่
ขั้นตอนที่ 2 : ทดสอบการ replicate ข้อมูลของ storage node ทั้งสองเครื่อง (sqlnode1:192.168.0.1 และ sqlnode2:192.168.0.2)
ขั้นตอนที่ 3 : ทดสอบการเรียกใช้งานข้อมูลจากฐานข้อมูลผ่านทาง web application (PHP)

ขั้นตอนที่ 1 : จะทดสอบโดยการ kill process ndbd ของ storage node nodeใดนnodeหนึ่ง (ในที่นี้เลือก sqlnode1:192.168.0.1)

กรณีที่ storage node ทั้งสองเครื่องทำงานปกติ

sqlmang:192.168.0.4

ใช้คำสั่ง ndb_mgm เพื่อ run cluster management client (ndb_mgm) สำหรับตรวจสอบว่ามี cluster node (storage node) ใด connect อยู่บ้าง

ndb_mgm

จะแสดงผล

– NDB Cluster — Management Client –
ndb_mgm>

ใช้คำสั่ง show สำหรับการแสดงผล



ใช้คำสั่ง quit เพื่อออกจาก ndb_mgm client console

ndb_mgm> quit;

กรณีที่ storage node nodeใดnodeหนึ่ง (ในที่นี้เลือก sqlnode1:192.168.0.1) process ndbd ไม่ทำงาน

sqlnode1:192.168.0.1

ทำการ kill process ndbd โดยใช้คำสั่ง

killall ndbd

ข้อสังเกต ขณะที่ run คำสั่ง killall ndbd ที่ sqlnode1:192.168.0.1 ที่หน้า ndb_mgm client console ของ MySQL cluster management server (sqlmang:192.168.0.4) จะแสดง

ndb_mgm>Node 2: Node shutdown completed. Initiated by signal 15.

ตรวจสอบว่า process ndbd ยัง run อยู่หรือไม่โดยใช้คำสั่ง

ps aux | grep ndbd | grep -iv grep

ในกรณีที่ยังมี process ndbd run อยู่ให้ใช้คำสั่ง killall ndbd อีกจนกระทั่งไม่มี process ndbd ทำงานอยู่

จากนั้นให้ทำการตรวจสอบสถานะของ cluster บน MySQL cluster management server (sqlmang:192.168.0.4)

sqlmang:192.168.0.4



สังเกตว่า sqlnode2:192.168.0.2 จะทำหน้าที่เป็น Master แทน sqlnode1:192.168.0.1

ถ้าต้องการให้ sqlnode1: 192.168.0.1 กลับมาทำงานได้ตามปกติ ให้ใช้คำสั่ง

sqlnode1:192.168.0.1

ndbd

จากนั้นตรวจสอบสถานะการทำงานของ cluster บน MySQL cluster management server (sqlmang:192.168.0.4)

sqlmang:192.168.0.4



สังเกตว่า sqlnode2:192.168.0.2 จะยังคงทำหน้าที่เป็น Master อยู่ถึงแม้ sqlnode1:192.168.0.1 จะทำงานได้ตามปกติแล้ว

ขั้นตอนที่ 2 : ทดสอบโดยจะสลับกันเพิ่มข้อมูลที่ storage node nodeใดnodeหนึ่ง ซึ่งผลที่ได้ข้อมูลภายในฐานข้อมูลที่ storage node ทั้งสองต้องเหมือนกัน

ข้อกำหนด การสร้างตาราง (table) ภายในฐานข้อมูลใด ๆ ที่ใช้สำหรับ cluster จำเป็นต้องกำหนดให้ table เหล่านั้นใช้ ENGINE=NDBCLUSTER ถ้าคุณใช้ ENGINE ประเภทอื่น จะไม่สามารถทำ cluster ได้

เริ่มต้นสร้างฐานข้อมูลและ table สำหรับการทดสอบที่ sqlnode1:192.168.0.1

sqlnode1:192.168.0.1

mysql -u root -p
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE test_table (i INT) ENGINE=NDBCLUSTER;
INSERT INTO test_table () VALUES (1);
INSERT INTO test_table () VALUES (2);
SELECT * FROM test_table;
quit;

ผลลัพธ์ที่ได้จากการ select ข้อมูลมีดังนี้



สำหรับที่ sqlnode2:192.168.0.2 เราสร้างเพียงฐานข้อมูล โดยให้ชื่อฐานข้อมูลที่สร้างนี้ตรงกับชื่อฐานข้อมูลที่เครื่อง sqlnode1:192.168.0.1 ซึ่ง table และข้อมูลต่าง ๆ ภายใน table จะถูก replicate เองโดยอัตโนมัติ

sqlnode2:192.168.0.2

mysql -u root -p
CREATE DATABASE test_db;
USE test_db;
SELECT * FROM test_table;

ผลลัพธ์ที่ได้จากการ select ข้อมูลมีดังนี้



จากการทดสอบนี้แสดงให้เห็นว่าข้อมูลได้ถูก replicate จาก sqlnode1:192.168.0.1 มาที่ sqlnode2:192.168.0.2

ลองเปลี่ยนให้มีการ replicate ข้อมูลจาก sqlnode2:192.168.0.2 ไปที่ sqlnode1:192.168.0.1 บ้าง

sqlnode2:192.168.0.2

INSERT INTO test_table () VALUES (3);
quit;

sqlnode1:192.168.0.1

mysql -u root -p
USE test_db;
SELECT * FROM test_table;

ผลลัพธ์ที่ได้จากการ select ข้อมูลมีดังนี้

[/img]http://catidcdeveloper.thaipki.com/files/2007/10/9.JPG[/img]

แสดงให้เห็นว่าข้อมูลที่ storage node ทั้งสองเหมือนกันตลอด

ขั้นตอนที่ 3 : โดยในการทดสอบนี้ได้จำลองเครื่องของผู้เขียนเองเป็น web server โดยลงโปรแกรม AppServ

เริ่มต้นทำการ replicate ข้อมูลจาก storage node ไป API node (sqlload:192.168.0.3) ดังนี้

sqlload:192.168.0.3

mysql -u root -p
CREATE DATABASE test_db;
USE test_db;
SELECT * FROM test_table;

ผลลัพธ์ที่ได้จากการ select ข้อมูลมีดังนี้



จากนั้นนำ file loginmysql.php (file ทดสอบ) ที่ใช้สำหรับ connect database test_db (ฐานข้อมูลที่เราสร้างทดสอบก่อนหน้าที่) มาวางที่ path www

หมายเหตุ สิ่งสำคัญในการ connect database เพื่อการเข้าถึงข้อมูลใน NDB table เราจำเป็นต้องให้ application ของเรา connect database ผ่านทาง API node (ซึ่งในที่นี้คือ sqlnode:192.168.0.3) เท่านั้น ไม่สามารถเข้าถึงผ่านทาง MySQL cluster management server และ storage node ได้

ตัวอย่าง file loginmysql.php

<html>
<head><title>TEST CONNECT MySQL DATABASE</title></head>
<body bgcolor=”#FFFFFF”>
<?

$DBhost=”192.168.0.3″ //IP address ของ API Node
$DBuser=”root”;
$DBpass=”";
$DBName=”test_db”;
$table=”test_table”;

mysql_connect($DBhost,$DBuser,$DBPass) or die(”Unable to connect to database”);
@mysql_select_db(”$DBName”) or die(”Unable to select database $DBName”);
print “<CENTER><P>This Username and Password are Correct, You can connect MySQL Database.</P></CENTER>”;
$sqlquery = “SELECT * FROM $table”;
$result = mysql_query($sqlquery);
$number = mysql_numrows($result);

$i=0;

if ($number < 1) {
print “<CENTER>***************************************</CENTER><br>”;
}
else {
while($row = mysql_fetch_array($result)) {
echo “<CENTER>”. $row[’i'] .”</CENTER>”;
echo “<br />”;
}
}

?>
</body>
</html>

จากนั้นเรียกผ่าน web browser โดย http://localhost/loginmysql.php



ถ้าผลลัพธ์ที่ปรากฎไมเป็นไปตามนี้ หรือมี error เกิดขึ้นให้กลับไปตรวจสอบค่าที่กำหนดให้ตัวแปร $DBhost, $DBuser, $DBpass, $DBName, $table

การ Restart MySQL Cluster

การ restart MySQL cluster จะใช้ในกรณีที่ใกรเปลี่ยนแปลงแก้ไข file /var/lib/mysql-cluster/config.ini บน MySQL cluster management server (sqlmang:192.168.0.4) หรือด้วยเหตุผลอื่น ๆ

sqlmang:192.168.0.4

เข้าสู่ ndb_mgm client console

ndb_mgm
– NDB Cluster — Management Client –
ndb_mgm>

ใช้คำสั่ง shutdown สำหรับ shutdown NDB cluster node (storage node) และ shutdown NDB cluster management server



ใช้คำสั่ง quit เพื่อออกจาก ndb_mgm client console

ndb_mgm> quit;

ให้ start cluster management server บน MySQL cluster management server (sqlmang:192.168.0.4) โดยใช้คำสั่ง

ndb_mgmd -f /var/lib/mysql-cluster/config.ini

ต่อจากนั้นที่ storage node ทั้งสองเครื่อง ให้ start process ndbd ดังนี้

sqlnode1:192.168.0.1/sqlnode2:192.168.0.2

ndbd

แต่ในกรณีที่มีการเปลี่ยนแปลงแก้ไข file /var/lib/mysql-cluster/config.ini บน MySQL cluster management server (sqlmang:192.168.0.4) ให้ใช้คำสั่ง ndbd –initial แทน

จากนั้นกลับมาตรวจสอบสถานะของ cluster ดังนี้

sqlmang:192.168.0.4



ในขั้นตอนนี้ให้รอสักระยะหนึ่ง จนกว่าจะปรากฎข้อความ

ndb_mgm> Node 2: Started (version 5.0.38)
Node 3: Started (version 5.0.38)

เมื่อใช้คำสั่ง show เพื่อตรวจสอบสถานะของ cluster อีกครั้ง


http://www.thaiadmin.org/board/index.php?topic=100249.0
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ sungvien

  • Sr. Member
  • ****
  • กระทู้: 267
  • Respect: +1
    • ดูรายละเอียด
    • www.konsarnhospital.com
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #1 เมื่อ: เมษายน 11, 2009, 16:58:40 PM »
0
ยอดเยี่ยมครับ จารย์บอย
"คอนสาร ดินแดนแห่งน้ำผุดไหลหลาก ป่าหมากอุดม  รื่นรมย์เขื่อนจุฬาฯ เพลินป่าทุ่งกะมัง  มนต์ขลังทุ่งลุยลาย"

โรงพยาบาลคอนสาร  จังหวัดชัยภูมิ
sungvien@gmail.com
Server IBM X3650  HDD SATA 180x3  RAM 8 GB
 OS : CentOS 5.2   MySQL 5.1.30  HOSxP 3.54.8.19
Datatcenter IBM 3500 HDD SATA 180x3  RAM 4 GB
ขึ้นระบบ 28 สิงหาคม 2550 : Updateล่าสุด  19/08/2011

 5 ปีกับชีวิตอันอบอุ่นและมีความสุข ในครอบครัว ชุมชน HOSxP
------------------------------------------------------------------
ขอเป็นพลังสนับสนุนและให้กำลังใจ อ.ชัยพร และทีมงาน BMS ขอรับครับผม

ออฟไลน์ มดตานอย ครับ..

  • Hero Member
  • *****
  • กระทู้: 3,137
  • Respect: 0
    • ดูรายละเอียด
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #2 เมื่อ: เมษายน 12, 2009, 08:50:50 AM »
0
แจ่มจริงๆ.....ขอบพระคุณครับ

Nakhonphanom Hospital

MR.Tanoy999 ผู้ใช้งานทั่วไป
tanoy999-at-gmail-dot-com
เริ่ม  1 ตุลาคม 2549  โดย  BMS

doramon

  • บุคคลทั่วไป
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #3 เมื่อ: เมษายน 12, 2009, 14:58:16 PM »
0
แจ่มจริงๆ.....ขอบพระคุณครับ


สุดยอด

แต่ว่ายังมีเครื่องไม่พอทำ


ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #4 เมื่อ: เมษายน 13, 2009, 21:25:41 PM »
0
การทำระบบ MySQL Cluster ครั้งนี้จะใช้เครื่องทั้งหมด จำนวน 4 เครื่องดังนี้
เครื่องที่1 : เป็น storage node (sqlnode1:192.168.0.1)
เครื่องที่2 : เป็น storage node (sqlnode2:192.168.0.2)
เครื่องที่3 : เป็น API node (sqlload:192.168.0.3)
เครื่องที่4 : เป็น MySQL cluster management server (sqlmang:192.168.0.4)

ทดสอบกับเครื่องสำรอง มีพอดี 4 เครื่องกำลังขอเพิ่มอีก 1

« แก้ไขครั้งสุดท้าย: มีนาคม 01, 2010, 09:44:38 AM โดย บอย(ด่านมะขามเตี้ย) »
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ thannawe

  • Hero Member
  • *****
  • กระทู้: 2,904
  • Respect: +8
    • ดูรายละเอียด
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #5 เมื่อ: เมษายน 15, 2009, 09:57:53 AM »
0
ดีจังเลยครับ แต่.. อ่านแล้วมึนครับ สงสัย Ram ในหัวผมน้อยไป   ??? ???
กิจจา ชาญธัญกรรม
นักวิชาการคอมพิวเตอร์ชำนาญการ รพ.โพธาราม จ.ราชบุรี
็HOSxP XE

ออฟไลน์ yord

  • Hero Member
  • *****
  • กระทู้: 1,952
  • PATTANI HOSPITAL
  • Respect: +2
    • ดูรายละเอียด
    • http://www.pattanihos.com
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #6 เมื่อ: เมษายน 15, 2009, 19:49:07 PM »
0
สุดยอดเลยครับ อ. ;D
Mr.Yordying Kongkachan (yord02@gmail.com)
ADMIN PATTANI HOSPITAL  http://www.pattanihos.com
เริ่มใช้ HOSxP พฤศจิกายน 2549
(Master)IBM X3650 M3 QuardCord 3.06 1 CPU 20 GBs. of Ram (up to 68 GBs 29/06/56)
Linux 64bit MySQL 5.5.21 64bit (ด้วยความช่วยเหลือของ อ.บอยครับ)
(Slave1)HP ProLiant ML350 G6 Xeon E5530 2.04 20 GBs. Ram (up to 54 GBs 27/06/56)
Linux 64bit MySQL 5.1.30 64bit Database v.3.56.4.9 (29/06/56) client v.3.56.3.19

ออฟไลน์ Bond_007

  • Hero Member
  • *****
  • กระทู้: 1,533
  • เมื่อก่อนเคยรักมากเท่าไหร่มันยังคงรักมากเท่านั้น
  • Respect: +2
    • ดูรายละเอียด
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #7 เมื่อ: กุมภาพันธ์ 18, 2010, 08:57:09 AM »
0
สุดยอเลยครับ
โรงพยาบาลศิริเวชลำพูน
Hosxp version 3.53.7.16
ขอขบคุณ อาจารย์ชัยพร,อ.อ็อด,อ.เกื้อ,พี่เอก,พี่กิติศักดิ์,พี่เข้ม,พี่ไสว,พี่ terminator 2010,พี่pikepid,พี่udomchock ,พี่ขวด,พี่เจมส์,ป๋าJdadmin,พี่กานดา admin ทุกๆท่าน และนางฟ้า BMS

ทำเพื่อใครสักคนฉันได้ทำเพื่อความรัก
ร้องให้สักคนฉันก็ร้องจากหัวใจ
รักที่มันต้องจบมันก็ยังงดงาม ฉันยังจำไว้

Nologo How to be hosxp star

ออฟไลน์ มดตานอย ครับ..

  • Hero Member
  • *****
  • กระทู้: 3,137
  • Respect: 0
    • ดูรายละเอียด
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #8 เมื่อ: กุมภาพันธ์ 18, 2010, 09:27:20 AM »
0
table   ต้องใช้  engine=ndbcluster

แต่ hosxp  มีแต่    myisam +innodb




Nakhonphanom Hospital

MR.Tanoy999 ผู้ใช้งานทั่วไป
tanoy999-at-gmail-dot-com
เริ่ม  1 ตุลาคม 2549  โดย  BMS

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #9 เมื่อ: กุมภาพันธ์ 19, 2010, 18:08:47 PM »
0
table   ต้องใช้  engine=ndbcluster

แต่ hosxp  มีแต่    myisam +innodb





ลงเพิ่ม
ftp://mirrors.issp.co.th/mysql/Downloads/MySQL-Cluster-7.0/
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ มดตานอย ครับ..

  • Hero Member
  • *****
  • กระทู้: 3,137
  • Respect: 0
    • ดูรายละเอียด
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #10 เมื่อ: กุมภาพันธ์ 20, 2010, 19:43:22 PM »
0
ทำเป็นคู่มือเลยครับ + จะใช้สำหรับ   hosxp อย่างไร   ....ขอบพระคุณครับ

Nakhonphanom Hospital

MR.Tanoy999 ผู้ใช้งานทั่วไป
tanoy999-at-gmail-dot-com
เริ่ม  1 ตุลาคม 2549  โดย  BMS

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #11 เมื่อ: มีนาคม 01, 2010, 09:45:29 AM »
0
จะใช้เครื่องจำนวน 4 เครื่อง โดยแต่ละเครื่องจะมีหน้าที่ storages node จำนวน 2 เครื่อง (mysql-ndb-1 และ mysql-ndb-2) API node จำนวน 1 เครื่อง (mysql-api-1) และ Management node จำนวน 1 เครื่อง (mgmt)

storages node จำนวน 2 เครื่อง (mysql-ndb-1 และ mysql-ndb-2)
-192.168.0.33
-192.168.0.34
Management node จำนวน 1 เครื่อง (mgmt)
-192.168.0.32
API node จำนวน 1 เครื่อง (1 เครื่องขึ้นไป)
-192.168.0.35

package สำหรับการติดตั้ง MySQL Cluster
MySQL-clustermanagement-community.xxxx.rpm,
MySQL-clusterstorage-community.xxxx.rpm,
MySQL-clustertools-community.xxxx.rpm,
MySQL-clusterextra-community.xxxx.rpm

ftp://mirrors.issp.co.th/mysql/Downloads/MySQL-Cluster-7.0/

CentOS4.x
MySQL-Cluster-gpl-management-7.0.9-0.rhel4.x86_64.rpm
MySQL-Cluster-gpl-storage-7.0.9-0.rhel4.x86_64.rpm
MySQL-Cluster-gpl-tools-7.0.9-0.rhel4.x86_64.rpm
MySQL-Cluster-gpl-extra-7.0.9-0.rhel4.x86_64.rpm
CentOS5.x
MySQL-Cluster-gpl-management-7.0.9-0.rhel5.x86_64.rpm
MySQL-Cluster-gpl-storage-7.0.9-0.rhel5.x86_64.rpm
MySQL-Cluster-gpl-tools-7.0.9-0.rhel5.x86_64.rpm
MySQL-Cluster-gpl-extra-7.0.9-0.rhel5.x86_64.rpm

เมื่อทำการติดตั้ง package เรียบร้อยแล้ว ต่อมาให้มาที่เครื่อง mgmt
และพิมพ์คำสั่งและแก้ไขไฟล์ config ตามด้านล่าง


mgmt# mkdir /var/lib/mysql-clustermgmt# vi /var/lib/mysql-cluster/config.ini
[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]

# Management Server
[NDB_MGMD]
HostName=192.168.0.32 # IP address of this server

# Storage Nodes
[NDBD]
HostName=192.168.0.33 # IP address of storage-node-1
DataDir= /var/lib/mysql-cluster
[NDBD]
HostName=192.168.0.34 # IP address of storage-node-2
DataDir=/var/lib/mysql-cluster
# Setup node IDs for mySQL API-servers (clients of the cluster)
[MYSQLD]
[MYSQLD]
[MYSQLD]
[MYSQLD]

เมื่อแก้ไขไฟล์เสร็จเรียบร้อยแล้วให้ใช้คำสั่ง
mgmt# ndb_mgmd

ต่อจากนั้นก็ตรวจสอบดูว่าคำสั่ง ndb_mgmd ได้รันเรียบร้อยแล้วหรือยังโดยใช้คำสั่ง
mgmt# ps -ef | grep [n]db

จากนั้นมาแก้ไขไฟล์ /etc/my.cnf ของเครื่อง storage node ทั้งสองตามคำสั่งด้านล่าง
mysql-ndb-1# vi /etc/my.cnf
mysql-ndb-2# vi /etc/my.cnf

การแก้ไขไฟล์ของ storage node ทั้งสองเพื่อระบุว่าเครื่องไหนเป็นเครื่อง management โดยให้แก้ไขเหมือนกันโดยใส่ค่าเพิ่มเติมเข้าไปตามด้านล่าง
[mysqld]
ndbcluster
ndb-connectstring=’host=192.168.0.32′ # IP address of the management server
[mysql_cluster]
ndb-connectstring=’host=192.168.0.32′ # IP address of the management server

mysql-ndb-1# mkdir /var/lib/mysql-cluster
mysql-ndb-1# service mysqld start
mysql-ndb-2# mkdir /var/lib/mysql-cluster
mysql-ndb-2# service mysqld start

เมื่อทำการ start service ของ MySQL Storage node ทั้งสองเครื่องแล้ว ให้มาตรวจสอบ
เพื่อให้แน่ใจว่าเครื่องทั้งสามได้ทำการเชื่อมต่อกันเป็นที่เรียบร้อยแล้ว โดยใช้คำสั่ง และ
ผลลัพธ์ที่ได้จะเป็นไปตามข้อความด้านล่างนี้

mgmt# ndb_mgm
– NDB Cluster — Management Client –

ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=2 @192.168.0.33 (Version: x.x.x, starting, Nodegroup: 0, Master)
id=3 @192.168.0.34 (Version: x.x.x, starting, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.0.32 (Version: x.x.x)

[mysqld(API)] 4 node(s)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)
id=6 (not connected, accepting connect from any host)
id=7 (not connected, accepting connect from any host)

ขั้นสุดท้ายจะเป็นการเพิ่ม API node เข้าไปเพื่อให้เป้นเครื่องหน้าด่านในการ access database
แก้ไขไฟล์ /etc/my.cnf ตามด้านล่าง

[mysqld]
ndbcluster
ndb-connectstring=’host=192.168.0.32′ # IP address of the management server
[mysql_cluster]
ndb-connectstring=’host=192.168.0.32′ # IP address of the management server

จากนั้นทำการ start service MySQL ด้วยคำสั่ง
mysql-api-1# service mysqld start

ทำการตรวจสอบการเพื่อดูการเชื่อมต่อของเครื่องทั้งหมด

mgmt# ndb_mgm
ndb_mgm> show
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=2 @192.168.0.33 (Version: x.x.x, Nodegroup: 0)
id=3 @192.168.0.34 (Version: x.x.x, Nodegroup: 0, Master)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.0.32 (Version: x.x.x)

[mysqld(API)] 4 node(s)
id=4 (Version: x.x.x)
id=5 (Version: x.x.x)
id=6 @192.168.0.35 (Version: x.x.x)
id=7 (not connected, accepting connect from any host)


ขอให้ทุท่านโชคดีนะครับ

อ่านไม่เข้าใจลองดูจาก
http://www.thaiadmin.org/board/index.php?topic=100249.0
« แก้ไขครั้งสุดท้าย: มีนาคม 01, 2010, 10:32:32 AM โดย บอย(ด่านมะขามเตี้ย) »
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: หลักสูตร : MySQL Cluster
« ตอบกลับ #12 เมื่อ: มีนาคม 01, 2010, 10:33:18 AM »
0
หลักสูตร : MySQL Cluster
ระยะเวลา : 18 ชั่วโมง
ราคา : 18,000 บาท (อัตรานี้รวามภาษีมูลค่าเพิ่มแล้ว)
ตารางเวลาอบรม: หลักสูตร MySQL Cluster
รายละเอียดหลักสูตรเป็นไฟล์ PDF :

หลักสูตร MySQL Cluster

รายละเอียดของหลักสูตร :
    เนื้อหาหลักสูตรจะกล่าวถึงทฤษฎีหลักการทำงานของระบบคลัสเตอร์ในรูปแบบต่าง ๆ ทฤษฎีและหลักการทำงานของซอฟต์แวร์ MySQL Cluster การออกแบบระบบเพื่อรองรับผู้ใช้งานจำนวนมาก เพื่อให้ระบบมีอัตราการล่ม (Downtime) ต่ำที่สุด การออกแบบด้านความปลอดภัยของงระบบ เป็นหลักสูตรที่เน้นการปฎิบัติใช้งานจริง โดยเนื้อหาครอบคลุมตั้งแต่กระบวนการออกแบบ การติดตั้ง ทฤษฎีกระจายภาระงาน (Load balancing) การสร้างระบบคงอยู่สูง (High Availability -HA) การปรับแต่งความปลอดภัยของระบบ และมีการปรับพื้นฐานทฤษฎีระบบเครือข่ายในส่วนที่เกี่ยวข้องกับ MySQL Cluster เช่น Mac Address, ARP Protocol, Public และ Private Network เป็นต้น

หลักสูตรนี้เหมาะสำหรับ :
    ผู้ดูแลระบบฐานข้อมูล ระบบเว็บ องค์กรที่ให้บริการโดยใช้งานระบบฐานข้อมูล MySQL และผู้ที่สนใจ   

วัตถุประสงค์ :
1. เพื่อให้ผู้เข้าอบรมมีความรู้ความเข้าใจในหลักการออกแบบ MySQL Cluster
2. เพื่อให้ผู้เข้าอบรมทราบถึงความแตกต่างของวิธีการกระจายภาระงานในแบบต่าง ๆ
3. เพื่อให้ผู้เข้าอบรมสามารถนำไปประยุกต์ใช้งานได้จริง

ความรู้พื้นฐาน :
ผู้เข้าอบรมต้องมีความรู้ความสามารถในการติดตั้ง Linux Server หรือผ่านหลักสูตร Linux Administration มาก่อน เคยติดตั้งและใช้งานซอฟต์แวร์ MySQL และควรมีความเข้าใจเรื่องระบบเครือข่ายพื้นฐาน

รูปแบบการสอน :
บรรยายและปฏิบัติการ โดยใช้ชุดคอมพิวเตอร์จำนวน 6* เครื่อง ต่อ 1 ท่าน

ซอฟต์แวร์ที่ใช้สอน :
1. ซอฟต์แวร์ CentOS เวอร์ชั่น 5 ขึ้นไป
2. MySQL Cluster เวอร์ชั่น 7 ขึ้นไป

สิ่งที่ผู้เข้าอบรมจะได้รับ :
1. แผ่นดีวีดี CentOS จำนวน 3 แผ่น
2. เอกสารประกอบการฝึกอบรม จำนวน 1 เล่ม
3. ประกาศนียบัตรรับรองผ่านการฝึกอบรม
4. บัญชีผู้ใช้สำหรับเข้าสู่ระบบถามตอบของ CTC

เนื้อหาหลักสูตร :
ครั้งที่ 1

แนะนำเทคโนโลยีระบบคลัสเตอร์ (30 นาที)
รู้จักกับระบบคอมพิวเตอร์คลัสเตอร์
การประยุกต์ใช้งานระบบคลัสเตอร์ในด้านต่าง ๆ
รูปแบบต่าง ๆ ของการทำ Database แบบคลัสเตอร์
รูปแบบต่าง ๆ ของการใช้ Share Disk และ Share Storage
รู้จักกับ MySQL และ MySQL Cluster (15 นาที)
กล่าวสรุปเรื่องสำคัญของระบบจัดการฐานข้อมูล MySQL
รู้จักกับ Storage Engine
รู้จักกับ NDBCLUSTER Storage engine
แผนการพัฒนาระบบจัดการฐานข้อมูล MySQL
MySQL Cluster Concept (30 นาที)
จุดเด่นจุดด้อยของ MySQL Cluster
องค์ประกอบของMySQL Cluster
การทำงานของ MySQL Cluster
การทำงานในแบบ In-memory และ Disk-Bases Tables
Pre-Workshop  (60 นาที)
ปรับแต่งไฟล์เพื่อการใช้งานด้วยชื่อเครื่อง
การตั้งค่า SSH ให้ระบบคลัสเตอร์สามารถทำงานในแบบ Single Sign On ด้วยการใช้ Public key Infrastructure (PKI)
จัดการกับ iptables firewall สำหรับ MySQL Cluster
Workshop 1 : MySQL Cluster Software Installations (30 นาที)
ครั้งที่ 2
รู้จักกับคอนฟิกกูเรชั่นไฟล์ที่สำคัญ คือไฟล์ config.ini และไฟล์ my.cnf
Workshop 2 : สร้างระบบ MySQL Cluster แบบง่าย ๆ (1 client, 1 mgm, 2 ndb)
ทบทวนคำสั่งที่เกี่ยวข้องกับระบบ MySQL Cluster
ทดลองสร้างฐานข้อมูลและใช้งานระบบ
ทดลองความสามารถด้าน High Availability
การใช้งานคำสั่ง management client (ndb_mgm)
การทำงานร่วมกันระหว่าง PHP และ MySQL Cluster
Workshop 3 : ปรับแต่ง PHP ให้สามารถใช้งานร่วมกับ MySQL Cluster ได้
ครั้งที่ 3
การสร้างระบบแบบ No single point of failure บน MySQL Cluster (60 นาที)
Workshop 4 : MySQL Cluster with Dual MGM Nodes
สรุปคุณสมบัติด้าน High Availability
รู้จักกับDisk-bases Tables (115 นาที)
หลักการทำงานของ Tablespace & Log File Group
ข้อจำกัดของ Disk table data
การคำนวณขนาดพื้นที่ของ Tablespace
Workshop 5 : สร้างและใช้งาน table space and log file group
วิธีการจัดการกับข้อมูลขนาดใหญ่
วิธีปฏิบัติที่ดีและกรณีศึกษา
ครั้งที่ 4
การใช้งานคำสั่งสำคัญ ๆ ที่เกี่ยวข้อง (60 นาที)
Management Client tools
MySQL Cluster Utility Programs
เข้าใจการทำData Partitioning (60 นาที)
เข้าใจหลักการแบ่ง node group
workshop 6 : ทดลองทำData Partitioning บน MySQL Cluster
การเพิ่มโหนดแบบ online และการทำ rolling update
Designing Concept (45 นาที)
หลักการในการคำนวณพื้นที่จัดเก็บข้อมูล และ
การแบ่งพาร์ทิชั่นบนดิสก์สำหรับ MySQL Cluster
การกำหนดขนาดไฟล์สำหรับ Tablespace และ Undo Log File
ครั้งที่ 5
ความปลอดภัยใน MySQL Cluster
การออกแบบระบบเพื่อความปลอดภัย
การสำรอง (Backup) และกู้คืนข้อมูล (Restore)
Workshop 7 : การใช้งานโปรแกรมสำรองข้อมูล NDB Backup
การปรับแต่งประสิทธิภาพของ MySQL Cluster
ทฤษฎีในการกระจายภาระงาน (Load Balancing) เบื้องต้น
การทำงานแบบ Multi-threading ในระบบ MySQL Cluster
เข้าใจการทำงานภายในระบบ MySQL Cluster
เทคนิคที่สำคัญในการปรับแต่งประสิทธิภาพของ MySQL Cluster
การจัดการกับระบบเครือข่าย
พารามิเตอร์และตัวแปรที่สำคัญของระบบ
Workshop 8 : Direct tcp crossover between data nodes
ครั้งที่ 6
การติดตั้งและใช้งานระบบ CMON web monitor สำหรับ MySQL Cluster
หลักการปฏิบัติที่ดีในการสร้างระบบจริง
การประเมินความเหมาะสม
การออกแบบ
การคำนวณพื้นที่ที่ต้องการ
การเลือกใช้ฮาร์ดแวร์ที่เหมาะสม
การวางแผนขั้นตอนการติดตั้ง
ระยะเวลาในการติดตั้งระบบ
แนะนำระบบ Web Cluster
สำรองที่นั่งได้ที่ :

ClusterKit Training Center (CTC)

โทรศัพท์และแฟกซ์ 0 2424 7603

เว็บไซต์ http://www.clusterkit.co.th/
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ มดตานอย ครับ..

  • Hero Member
  • *****
  • กระทู้: 3,137
  • Respect: 0
    • ดูรายละเอียด
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #13 เมื่อ: มีนาคม 01, 2010, 17:38:11 PM »
0
เท่าที่อ่านดู   table  ต้องเป็น engine    >>>>NDBCLUSTER

Nakhonphanom Hospital

MR.Tanoy999 ผู้ใช้งานทั่วไป
tanoy999-at-gmail-dot-com
เริ่ม  1 ตุลาคม 2549  โดย  BMS

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #14 เมื่อ: มีนาคม 01, 2010, 17:46:30 PM »
0
เท่าที่อ่านดู   table  ต้องเป็น engine    >>>>NDBCLUSTER


ถูกต้องแล้วครับ

ค่าอบรมก็ราคา OK
« แก้ไขครั้งสุดท้าย: มีนาคม 01, 2010, 17:49:39 PM โดย บอย(ด่านมะขามเตี้ย) »
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ มดตานอย ครับ..

  • Hero Member
  • *****
  • กระทู้: 3,137
  • Respect: 0
    • ดูรายละเอียด
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #15 เมื่อ: มีนาคม 01, 2010, 18:04:22 PM »
0
ถ้าจะใช้  database hosxp  เป็น  NDBCLUSTER ทั้งหมด  จะดีหรือไม่
 ??? ??? ??? ??? ???

Nakhonphanom Hospital

MR.Tanoy999 ผู้ใช้งานทั่วไป
tanoy999-at-gmail-dot-com
เริ่ม  1 ตุลาคม 2549  โดย  BMS

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #16 เมื่อ: มีนาคม 01, 2010, 18:25:19 PM »
0
ถ้าจะใช้  database hosxp  เป็น  NDBCLUSTER ทั้งหมด  จะดีหรือไม่
 ??? ??? ??? ??? ???

ตามหลักการ น่าทดลองใช้

ถ้าทดสอบก็ต้องเครื่อง(4-6 เครื่อง)ใช้มากเหมือนกัน
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #17 เมื่อ: มิถุนายน 13, 2010, 11:47:08 AM »
0
 My Servers
A.sql1.example.com: 192.168.1.101 MySQL cluster node 1
B.sql2.example.com: 192.168.1.102 MySQL cluster node 2
C.loadb1.example.com: 192.168.1.103 Load Balancer 1 + MySQL cluster management server
D.loadb2.example.com: 192.168.1.104 Load Balancer 2
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #18 เมื่อ: มิถุนายน 13, 2010, 11:48:01 AM »
0
C.loadb1.example.com:

mkdir /usr/src/mysql-mgm
cd /usr/src/mysql-mgm
wget http://mysql.stu.edu.tw/Downloads/MySQL-Cluster-7.0/mysql-cluster-gpl-7.0.7-linux-i686-glibc23.tar.gz
tar xvfz mysql-cluster-gpl-7.0.7-linux-i686-glibc23.tar.gz
cd mysql-cluster-gpl-7.0.7-linux-i686-glibc23
mv bin/ndb_mgm /usr/bin
mv bin/ndb_mgmd /usr/bin
chmod 755 /usr/bin/ndb_mg*
cd /usr/src
rm -rf /usr/src/mysql-mgm

mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster

vi config.ini
************
[NDBD DEFAULT]
NoOfReplicas=2

[MYSQLD DEFAULT]

[NDB_MGMD DEFAULT]

[TCP DEFAULT]

# Section for the cluster management node
[NDB_MGMD]
# IP address of the management node (this system)
HostName=192.168.1.103

# Section for the storage nodes
[NDBD]
# IP address of the first storage node
HostName=192.168.1.101
DataDir= /var/lib/mysql-cluster

[NDBD]
# IP address of the second storage node
HostName=192.168.1.102
DataDir=/var/lib/mysql-cluster

# one [MYSQLD] per storage node
[MYSQLD]
[MYSQLD]
**********

mkdir -p /usr/local/mysql/mysql-cluster
### start the cluster management server:
ndb_mgmd -f /var/lib/mysql-cluster/config.ini
********
echo 'ndb_mgmd -f /var/lib/mysql-cluster/config.ini' > /etc/init.d/ndb_mgmd
chmod 755 /etc/init.d/ndb_mgmd
update-rc.d ndb_mgmd defaults
« แก้ไขครั้งสุดท้าย: มิถุนายน 13, 2010, 11:51:30 AM โดย บอย[ด่านมะขามเตี้ย] »
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ doi53

  • Full Member
  • ***
  • กระทู้: 103
  • Respect: 0
    • ดูรายละเอียด
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #19 เมื่อ: มิถุนายน 13, 2010, 11:52:47 AM »
0
ขยันจริงพี่เรา  ถ้าสำเร็จ  ขอให้พี่เขียนตำรา  ให้ด้วยนะครับ  จะได้ศึกษาต่อ  และนำไปใช้จริง
เจ้าพนักงานเภสัชกรรม รุ่น ๕   วสส.พล
งานพัฒนาระบบบริหารข้อมูลสารสนเทศ

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #20 เมื่อ: มิถุนายน 13, 2010, 11:58:00 AM »
0
A.sql1.example.com and
B.sql2.example.com:

install mysql-max-5.0.19

groupadd mysql
useradd -g mysql mysql
cd /usr/local/
wget http://mysql.stu.edu.tw/Downloads/MySQL-Cluster-7.0/mysql-cluster-gpl-7.0.7-linux-i686-glibc23.tar.gz
tar xvfz mysql-cluster-gpl-7.0.7-linux-i686-glibc23.tar.gz
ln -s mysql-cluster-gpl-7.0.7-linux-i686-glibc23 mysql
cd mysql

./scripts/mysql_install_db --no-defaults --port=3306 --socket=/tmp/mysql.sock --skip-locking --key_buffer=16M --max_allowed_packet=1M --table_cache=64 --sort_buffer_size=512K --net_buffer_length=8K --read_buffer_size=256K  --read_rnd_buffer_size=512K --myisam_sort_buffer_size=8M --log-bin=mysql-bin --server-id=1 --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock  --port=3306 --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --tmpdir=/tmp --skip-external-locking --bind-address=127.0.0.1 --key_buffer=16M --max_allowed_packet=16M --thread_stack=128K --thread_cache_size=8 --query_cache_limit=1M --query_cache_size=16M --expire_logs_days=10 --max_binlog_size=100M

chown -R root:mysql .
chown -R mysql data
cp support-files/mysql.server /etc/init.d/
chmod 755 /etc/init.d/mysql.server
update-rc.d mysql.server defaults
cd /usr/local/mysql/bin
mv * /usr/bin
cd ../
rm -fr /usr/local/mysql/bin
ln -s /usr/bin /usr/local/mysql/bin

####MySQL configuration file /etc/my.cnf  

vi /etc/my.cnf

[mysqld]
ndbcluster
# IP address of the cluster management node
ndb-connectstring=192.168.1.103

[mysql_cluster]
# IP address of the cluster management node
ndb-connectstring=192.168.1.103#IP MySQL cluster management server


*********

mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
ndbd --initial
/etc/init.d/mysql.server start

mysqladmin -u root password yourrootsqlpassword

####start the cluster nodes at boot time
echo 'ndbd' > /etc/init.d/ndbd
chmod 755 /etc/init.d/ndbd
update-rc.d ndbd defaults
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #21 เมื่อ: มิถุนายน 13, 2010, 12:10:51 PM »
0
 การทดสอบ MySQL Cluster

ขั้นตอนที่ 1 : ทดสอบว่า MySQL cluster management server (sqlmang:192.168.0.4) สามารถ query สถานะของ cluster ได้หรือไม่
ขั้นตอนที่ 2 : ทดสอบการ replicate ข้อมูลของ storage node ทั้งสองเครื่อง (sqlnode1:192.168.0.1 และ sqlnode2:192.168.0.2)
ขั้นตอนที่ 3 : ทดสอบการเรียกใช้งานข้อมูลจากฐานข้อมูลผ่านทาง web application (PHP)

ขั้นตอนที่ 1 : จะทดสอบโดยการ kill process ndbd ของ storage node nodeใดนnodeหนึ่ง (ในที่นี้เลือก sqlnode1:192.168.0.1)

กรณีที่ storage node ทั้งสองเครื่องทำงานปกติ

sqlmang:192.168.0.4

ใช้ คำสั่ง ndb_mgm เพื่อ run cluster management client (ndb_mgm) สำหรับตรวจสอบว่ามี cluster node (storage node) ใด connect อยู่บ้าง

ndb_mgm

จะแสดงผล

– NDB Cluster — Management Client –
ndb_mgm>
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #22 เมื่อ: มิถุนายน 13, 2010, 12:11:38 PM »
0
ใช้คำสั่ง quit เพื่อออกจาก ndb_mgm client console

ndb_mgm> quit;

กรณีที่ storage node nodeใดnodeหนึ่ง (ในที่นี้เลือก sqlnode1:192.168.0.1) process ndbd ไม่ทำงาน

sqlnode1:192.168.0.1

ทำการ kill process ndbd โดยใช้คำสั่ง

killall ndbd

ข้อสังเกต ขณะที่ run คำสั่ง killall ndbd ที่ sqlnode1:192.168.0.1 ที่หน้า ndb_mgm client console ของ MySQL cluster management server (sqlmang:192.168.0.4) จะแสดง

ndb_mgm>Node 2: Node shutdown completed. Initiated by signal 15.

ตรวจสอบว่า process ndbd ยัง run อยู่หรือไม่โดยใช้คำสั่ง

ps aux | grep ndbd | grep -iv grep

ในกรณีที่ยังมี process ndbd run อยู่ให้ใช้คำสั่ง killall ndbd อีกจนกระทั่งไม่มี process ndbd ทำงานอยู่

จากนั้นให้ทำการตรวจสอบสถานะของ cluster บน MySQL cluster management server (sqlmang:192.168.0.4)

sqlmang:192.168.0.4
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #23 เมื่อ: มิถุนายน 13, 2010, 12:12:17 PM »
0
สังเกตว่า sqlnode2:192.168.0.2 จะทำหน้าที่เป็น Master แทน sqlnode1:192.168.0.1

ถ้าต้องการให้ sqlnode1: 192.168.0.1 กลับมาทำงานได้ตามปกติ ให้ใช้คำสั่ง

sqlnode1:192.168.0.1

ndbd

จากนั้นตรวจสอบสถานะการทำงานของ cluster บน MySQL cluster management server (sqlmang:192.168.0.4)

sqlmang:192.168.0.4
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #24 เมื่อ: มิถุนายน 13, 2010, 12:13:07 PM »
0
สังเกตว่า sqlnode2:192.168.0.2 จะยังคงทำหน้าที่เป็น Master อยู่ถึงแม้ sqlnode1:192.168.0.1 จะทำงานได้ตามปกติแล้ว

ขั้นตอน ที่ 2 : ทดสอบโดยจะสลับกันเพิ่มข้อมูลที่ storage node nodeใดnodeหนึ่ง ซึ่งผลที่ได้ข้อมูลภายในฐานข้อมูลที่ storage node ทั้งสองต้องเหมือนกัน

ข้อ กำหนด การสร้างตาราง (table) ภายในฐานข้อมูลใด ๆ ที่ใช้สำหรับ cluster จำเป็นต้องกำหนดให้ table เหล่านั้นใช้ ENGINE=NDBCLUSTER ถ้าคุณใช้ ENGINE ประเภทอื่น จะไม่สามารถทำ cluster ได้

เริ่มต้นสร้างฐานข้อมูลและ table สำหรับการทดสอบที่ sqlnode1:192.168.0.1

sqlnode1:192.168.0.1

mysql -u root -p
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE test_table (i INT) ENGINE=NDBCLUSTER;
INSERT INTO test_table () VALUES (1);
INSERT INTO test_table () VALUES (2);
SELECT * FROM test_table;
quit;

ผลลัพธ์ที่ได้จากการ select ข้อมูลมีดังนี้
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #25 เมื่อ: มิถุนายน 13, 2010, 12:13:46 PM »
0
สำหรับ ที่ sqlnode2:192.168.0.2 เราสร้างเพียงฐานข้อมูล โดยให้ชื่อฐานข้อมูลที่สร้างนี้ตรงกับชื่อฐานข้อมูลที่เครื่อง sqlnode1:192.168.0.1 ซึ่ง table และข้อมูลต่าง ๆ ภายใน table จะถูก replicate เองโดยอัตโนมัติ

sqlnode2:192.168.0.2

mysql -u root -p
CREATE DATABASE test_db;
USE test_db;
SELECT * FROM test_table;

ผลลัพธ์ที่ได้จากการ select ข้อมูลมีดังนี้
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #26 เมื่อ: มิถุนายน 13, 2010, 12:14:25 PM »
0
สำหรับ ที่ sqlnode2:192.168.0.2 เราสร้างเพียงฐานข้อมูล โดยให้ชื่อฐานข้อมูลที่สร้างนี้ตรงกับชื่อฐานข้อมูลที่เครื่อง sqlnode1:192.168.0.1 ซึ่ง table และข้อมูลต่าง ๆ ภายใน table จะถูก replicate เองโดยอัตโนมัติ

sqlnode2:192.168.0.2

mysql -u root -p
CREATE DATABASE test_db;
USE test_db;
SELECT * FROM test_table;

ผลลัพธ์ที่ได้จากการ select ข้อมูลมีดังนี้
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #27 เมื่อ: มิถุนายน 13, 2010, 12:15:23 PM »
0
แสดงให้เห็นว่าข้อมูลที่ storage node ทั้งสองเหมือนกันตลอด

ขั้นตอนที่ 3 : โดยในการทดสอบนี้ได้จำลองเครื่องของผู้เขียนเองเป็น web server โดยลงโปรแกรม AppServ

เริ่มต้นทำการ replicate ข้อมูลจาก storage node ไป API node (sqlload:192.168.0.3) ดังนี้

sqlload:192.168.0.3

mysql -u root -p
CREATE DATABASE test_db;
USE test_db;
SELECT * FROM test_table;

ผลลัพธ์ที่ได้จากการ select ข้อมูลมีดังนี้
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #28 เมื่อ: มิถุนายน 13, 2010, 12:19:50 PM »
0
« แก้ไขครั้งสุดท้าย: มิถุนายน 13, 2010, 12:43:15 PM โดย บอย[ด่านมะขามเตี้ย] »
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ มนตรี บอยรักยุ้ยคนเดียว

  • Hero Member
  • *****
  • กระทู้: 5,369
  • Respect: +12
    • ดูรายละเอียด
    • โรงพยาบาลชุมชน ด่านมะขามเตี้ย
Re: Replicate กับ Cluster ต่างกันอย่างไร ?
« ตอบกลับ #29 เมื่อ: มิถุนายน 13, 2010, 12:20:41 PM »
0


Rep จะเป็นรูปแบบการทำสำเนา จากเครื่อง A ไปยังเครื่อง B
เมื่อมีปัญหาการใช้งานของเครื่อง A เราก็สามารถใช้เครื่อง B เข้ามาแทนที่ได้
แต่เมื่อใดที่เครื่อง A สามารถกลับมาทำงานได้อีกครั้ง ก็จะต้องมีการตรวจสอบ การอัพเดทจากเครื่อง B ด้วย เพื่อให้ข้อมูลตรงกัน

ในกรณีนี้ จะเห็นว่า มี 2 เครื่อง Server ที่ต้องเก็บข้อมูล เพื่อให้ข้อมูลทั้ง 2 ที่ มีข้อมูลที่ตรงกัน

Cluster เป็นรูปแบบการรองรับการใช้งาน และการเข้าถึงจากหลายๆ โหนด โดยมีข้อมูลปลายทางเดียวกัน ซึ่งข้อมูลปลายทางจะต้องถูกเก็บอยู่ใน Share Storage หรือ SAN ( Storage Area Network )

กรณีที่ 1
เช่น ผมติดตั้ง DHCP ไว้ 2 เครื่อง ซึ่งเครื่อง A ทำหน้าที่หลักในการจ่าย IP ให้แก่ Client
แต่วันหนึ่ง เครื่อง A ผมล่มขึ้นมา มันก็จะย้ายหน้าที่ไปยังเครื่อง B แทน ทำให้เครื่อง B มีหน้าที่จ่าย IP ให้แก่ Client แทน
แต่เมื่อเครื่อง A กลับมาใช้งานได้ปกติ ก็จะย้ายหน้าที่จากเครื่อง B กลับมา เครื่อง A แทน

กรณีที่ 2
หรือ ผมติดตั้ง DHCP ไว้ 3 เครื่อง ซึ่งทุกเครื่อง ทำหน้าที่ให้บริการจ่าย IP ให้แก่ Client ทั้งหมด
Client 1 อาจจะร้องขอผ่านเครื่อง Server A
Client 2 อาจจะร้องขอผ่านเครื่อง Server A เช่นกัน
Client 3 ....................................Server B
Client 4 .................................... Server C
Client 5 .................................... Server B

ซึ่งจะเห็นว่า รูปแบบนี้  Server ทุกเครื่อง ทำหน้าที่พร้อมกันทั้งหมด
หากวันหนึ่ง Server A เกิดล่มขึ้นมา มันก็จะทำการย้ายหน้าที่ทั้งหมด ไปที่ Server B หรือ C ตามแต่ที่เราคอนฟิกไว้

ถามว่า แล้วมันต่างกันยังไง ?
Cluster นั้น จะไม่เก็บข้อมูลอยู่บนเครื่องตนเอง เช่น ผมติดตั้ง DHCP ไว้กี่เครื่องก็ตาม , ฐานข้อมูล DHCP จะไม่ถูกเก็บอยู่บน Server A หรือ B หรือ C ทั้งนั้น
แต่จะถูกเก็บอยู่ใน Share Storage ซึ่ง เครื่อง Server ทุกตัว จะต้องเชื่อมต่อเข้ากับ Share Storage เพื่อให้สามารถเรียกใช้งานได้จากเครื่อง Server ทุกเครื่อง

ดังนั้น หากมองง่ายๆ ก็เหมือน Cluster เป็นประตู ให้เลือกว่า จะวิ่งเข้าไปประตูบานไหน แต่ ไม่ว่าจะเข้าประตูบานไหน ก็จะไปยังเป้าหมายเดียวกัน
ประตูบานใด เกิดเสียขึ้นมา ก็ยังเข้าประตูที่เหลือได้

Cluster เหมาะกับการรองรับผู้ใช้งานที่มีมากมาย ซึ่งการเรียกใช้งานจาก Server เครื่องเดียว อาจจะรองรับการประมวลผลไม่ทัน จึงต้องมี Server อื่นๆ มาช่วยรองรับการประมวลผลที่มากมายในเวลาเดียวกัน

พอแยกออกหรือยังครับ
เริ่ม11พย.2548OPD-Paperlessพร้อมHOSxPลดโลกร้อน
IPD-Lesspaper1ตค2560ระบบDmsByNeoNetwork
IPD-Paperless1พ.ค2562ระบบHOSxPXE4
MT-Oracle9.3+MariaDB-10.4.xx,SL-Oracle9.3+MariaDB-11.0.xx
LOG=MySQL-8.4.xx,INV=PostgreSQL11

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,358
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: การทำระบบ MySQL Cluster
« ตอบกลับ #30 เมื่อ: กันยายน 02, 2012, 00:21:20 AM »
0
เพิ่งไปอบรมมานะเนี่ย
อ.บอย post ไว้ตั้งสามปีแล้ว
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)