เพื่อให้ดาต้าเบส (Database) ทำงานได้อย่างเต็มประสิทธิภาพและสามารถใช้ทรัพยาการของเครื่องเซิร์ฟเวอร์ (Server) ได้เต็มศักยภาพของเครื่องเมื่อติดตั้งเสร็จก็จะควรมีการปรับแต่งค่าให้เหมาะสมกับการใช้งาน สำหรับ Linux ให้แก้ไขไฟล์ /etc/mysql/my.cnf สำหรับ Windows (XAMPP) ให้แก้ไขไฟล์ C:\xampp\mysql\bin\my.ini มาเริ่มกันเลย! ปัจจุบัน MySql/Mariadb เวอร์ชั่นใหม่จะใช้เอนจินแบบ InnoDB เป็นค่าเริ่มต้น ฉะนั้นเราจะโฟกัสความสำคัญเฉพาะการตั้งค่า InnoDB โดยเฉพาะค่า innodb_buffer_pool_size ควรกำหนดให้ไม่เกิน 70-80% ของขนาด RAM มีตัวย่างการค่าคอนเฟิกดังนี้ (สมมุติสเปกเครื่องเซิร์ฟเวอร์ CPU 4 core RAM 4 GB) คำสั่งคิวรีที่ใช้ตรวจสอบค่าที่เหมาะสมของ innodb_buffer_pool_size เมื่อใช้ดาต้าเบสไปได้ 1-2…
Tag: mysql
Ambari #07 เปรียบเทียบความเร็วของการ Query ระหว่าง MySQL กับ Hive
จากบทความก่อนหน้า Ambari #05 การดึงข้อมูลเข้าจาก MySQL เข้าสู่ Hive ด้วย Sqoop ได้นำเข้าข้อมูล Mail Log จาก MySQL ซึ่งมีขนาด 27 GB มีข้อมูลประมาณ 12 ล้าน Record ต่อไปจะเปรียบเทียบ การ Query ข้อมูลจาก Hive ซึ่งทำงานอยู่บน Hadoop Cluster กับ MySQL Server Spec MySQL Server: 1 Node x CPU 40 Core…
Ambari #06 การใช้งาน Zeppelin เพื่อเรียกข้อมูลจาก MySQL
ขั้นตอนการปรับแต่งให้ Zeppelin เชื่อมต่อกับ MySQL ในที่นี้ จะเชื่อมต่อไปยัง MySQL Server: ที่ your.mysql.server โดยมี Username/Password เป็น root/123456 และจะใช้ Database ชื่อ employees Download https://dev.mysql.com/downloads/connector/j/ จากนั้นให้ Unzip จะได้ไฟล์ mysql-connector-java-5.1.44-bin.jar (Version อาจจะแตกต่างกัน) แล้วนำไปไว้ใน /usr/hdp/current/spark2-client/jars *** ของทุก Nodes *** จาก Ambari Web UI เลือก Zeppelin Notebook >…
วิธีสร้าง CoreOS Cluster

จะสร้าง CoreOS ให้กลายเป็น Cluster Docker Container ได้อย่างไร จากบทความที่แล้วที่แนะนำเกี่ยวกับ CoreOS และการติดตั้งบน Vmware[1] ไปแล้วนั้น เราก็สามารถสร้างให้เป็นในรูปแบบ Cluster ได้ โดยมองว่าเครื่องแต่ละเครื่องที่สร้างนั้นเป็น Node หนึ่ง ๆ ใน Cluster โดยใช้ etcd เป็นตัวเก็บข้อมูลของ Node และ Fleet เป็นตัว Deploy docker ให้กระจายไปยัง Node ต่าง ๆ…
Oracle MySQL Cluster :- The shared-nothing architecture (Manual Installation)
สิ่งที่ต้องเตรียม ได้แก่ Ubuntu Server 16.04 (รุ่น x86_64 architecture) จำนวนอย่างน้อย 4 เครื่อง (แต่ควรอย่างน้อย 6 เครื่อง), IP Address 4 IP, Software MySQL Cluster โหลดที่ https://edelivery.oracle.com/ (ต้องสมัครสมาชิกให้เรียบร้อยก่อน) ใช้คำค้นว่า MySQL Cluster (จะมีรุ่น 7.5.5 ให้โหลด) โดยไฟล์ที่ใช้งานชื่อว่า V840854-01.zip MySQL Cluster 7.5.5 TAR for Generic Linux (glibc2.5)…
Juju #06 – เชื่อม MySQL Master-Master เข้ากับ HAProxy
ต่อจาก Juju #05 – วิธีกระจายงานไปยัง MySQL แบบ Master-Master เมื่อสร้าง MySQL แบบ Master-Master Replication ได้แล้ว ก็มาเชื่อมกับ HAProxy เพื่อให้ Application ที่เขียน มองเห็นทั้งระบบเป็นชิ้นเดียว IP Address ของระบบต่างๆเป็นดังนี้ haproxy : 10.107.107.71 mysql-master1: 10.107.107.35 mysql-master1: 10.107.107.83 ขั้นตอนการติดตั้ง ที่ mysql-master1 ต้องสร้าง 2 Users ขึ้นมา ชื่อ haproxy_check และ haproxy_root ด้วยคำสั่งต่อไปนี้…
Juju #05 – วิธีกระจายงานไปยัง MySQL แบบ Master-Master
ต่อจาก Juju #04 – วิธีทำให้ WordPress กระจายงานไปยัง MySQL Slave ด้วย HyperDB ซึ่งเป็นวิธีการกระจายงานให้ MySQL แบบ Master-Slave จะต้องอาศัยความสามารถของ HyperDB Plugin ของ WordPress ในการทำงาน ซึ่งถ้าเป็นการพัฒนา Application ทั่วไปที่ไม่ใช่ WordPress ก็จะทำด้วยวิธีดังกล่าวไม่ได้ ในบทความนี้จะกล่าวถึง การสร้าง Load-Balanced MySQL แบบ Master-Master ซึ่งทำให้สามารถกระจายการ Write ไปยัง MySQL หลายตัวได้ (ในเบื้องต้น 2 ตัว)…
Juju #04 – วิธีทำให้ WordPress กระจายงานไปยัง MySQL Slave ด้วย HyperDB
ต่อจาก Juju #03 – วิธีสร้าง Load Balance MySQL เมื่อมี MySQL Server มากกว่า 1 ตัว ซึ่งทำการ Replication กัน (ในตอนนี้ 2 ตัว คือ Master กับ Slave) ซึ่งให้ความสามารถในเรื่อง [1] Data-Security : เมื่อข้อมูลถูก Replicate ไปที่ Slave แล้ว เราสามารถหยุดการทำงานของ Slave เพื่อทำการสำรองข้อมูลได้ โดยไม่กระทบประสิทธิภาพการทำงานของ Master Analytics: ทำการวิเคราะห์ข้อมูลต่างๆได้ที่ Slave โดยไม่กระทบประสิทธิภาพการทำงานของ…
Juju #03 – วิธีสร้าง Load Balance MySQL
จาก Juju #02 – วิธีติดตั้ง WordPress ทำให้ได้ WordPress ซึ่งเป็น Web Application 2 เครื่องทำหน้าที่ Load Balance กัน ด้วย haproxy แล้ว จากนั้น ทำการเพิ่ม MySQL เข้าไปใหม่ แล้วตั้ง Application Name เป็น mysql-slave แล้ว Commit Chages จากนั้น สร้าง Relation เป็น mysql:master –> mysql-slave:slave เมื่อเสร็จแล้ว จะได้ผลอย่างนี้ ทดสอบเพิ่ม…