ข้ามไปที่เนื้อหาหลัก

วางแผนรับมือกรณีเครื่องเซิรฟเวอร์หลักเกิดปัญหา (Change Slave to Master)



สำหรับเรื่องที่เลวร้ายที่สุดของการเป็นโปรแกรมเมอร์ คงจะเป็นช่วงเวลาบ่ายแก่ๆ ที่ต้องเดินไปชงกาแฟแล้วเจอแต่ความว่างเปล่า เจอแต่ขวดที่ปราศจากกาแฟ !!


จากนั้นก็เดินกลับมาพร้อมกับแก้วกาแฟ ที่มีเพียงน้ำอุ่นใสๆ ไว้จิบเล่น พอบรรเทาความง่วงสักเล็กน้อยโดยการเอาลิ้นลงไปจุ่มเล่น ให้พอสะดุ้ง


....ตึ้ง....ตึ๊ง... "ขออภัย ระบบไม่สามารถเชื่อมต่อกับฐานข้อมูลได้!!"


> cmd
> ping 192.168.1.211
> Request timed out.


ชัดเลย...ไม่ต้องสงสัย ต้องเกิดอะไรขึ้นกับเซิร์ฟเวอร์อย่างแน่นอน

ถ้าเปิดไม่ติด หรือติดแล้วก็ดับ หรือจะอะไรก็แล้วแต่ที่เครื่องไม่สามารถจะทำงานต่อไปได้
ก็ต้องหาเครื่องสำรองมาใช้แทนก่อนเป็นลำดับแรก

แล้วข้อมูลล่ะ สำหรับใครที่สะดวกในการถอดฮาร์ดดิสก์มาพ่วงเครื่องใหม่ที่เป็นเครื่องรุ่นเดียวกันได้ ก็ใช้วิธีนี้ไปเลยครับ เพราะถ้าฮาร์ดดิสก์ไม่เสีย ก็จะบู๊ตเข้าระบบตามปกติ

แต่ถ้าเราไม่มีเครื่องเซิรฟเวอร์สำรองล่ะ มีแต่เครื่อง PC ธรรมดา แน่นอนว่าถอดฮาร์ดดิสก์มาก็คงจะต้องใช้วิธีพ่วงเข้าไปอีกลูก แล้วตั้งค่าใหม่เพื่อใช้แทนเครื่องเดิมไปก่อน

แต่ถ้าฮาร์ดดิสก์ต่อพ่วงกับ PC ธรรมดาไม่ได้ล่ะ
ก็ไม่ต้องกังวลไปครับ เพราะในบทความที่แล้วผมได้ทำ Replication MySQL ไว้แล้ว ข้อมูลก็จะอัพเดตแบบเรียลไทม์ สามารถเปลี่ยน IP แล้วใช้แทนได้เลย


จากนั้นก็ทำการแก้ไขปัญหากับเครื่องหลัก ให้เรียบร้อย หากต้องส่งศูนย์ก็ต้องรอหลายวันหน่อย ถ้าจัดการเรียบร้อยแล้ว ก็นำเครื่องมาติดตั้งที่เดิมได้เลย แต่ข้อมูลจะไม่เหมือนเดิมเพราะว่ามีการใช้งานไปแล้ว ดังนั้นจะต้องทำการอัพเดตข้อมูลจากเครื่องเซิร์ฟเวอร์สำรอง มาใส่ให้กับเครื่องหลักที่นำกลับมาใช้งานอีกครั้ง เพื่อข้อมูลจะได้เป็นปัจจุบัน่ตรงกัน ทั้งสองเครื่อง แล้วทำการ Replicate อีกครั้ง


เมื่อเครื่องเซิร์ฟเวอร์หลักเกิดปัญหา จะมีข้อความแจ้งเตือนทาง SMS (ซึ่งจะกล่าวถึงในบทความต่อไป) หรืออาจจะมียูสเซอร์บางท่าน โทรมาก่อนที่ SMS จะส่งมาถึงเราก็ได้ เพราะตั้งเวลาตรวจสอบเซิร์ฟเวอร์ทุกๆ 20 วินาที ซึ่งอาจจะเร็วไม่ทันยูสเซอร์บางท่านก็ได้ สำหรับขั้นตอนคร่าวๆ ดังรูป คือ

  1. นำเครื่องเซิร์ฟเวอร์หลักไปตรวจสอบซ่อมแซม
  2. นำเครื่องเซิร์ฟเวอร์สำรองมาติดตั้งใช้งานแทน โดยการเปลี่ยน IP ใหม่
  3. ตรวจสอบแก้ไข หรือซ่อมแซมเซิร์ฟเวอร์หลักให้เรียบร้อย
  4. เปลี่ยน IP เครื่องที่มาใช้แทนให้กลับไปเป็นไอพีเครื่องสำรองเหมือนเดิม
  5. นำเครื่องเซิร์ฟเวอร์หลักที่ซ่อมแซมแล้วกลับมาใช้งาน โดยตั้ง IP ให้เหมือนเดิม
  6. ให้นำข้อมูลจากเซิร์ฟเวอร์เครื่องสำรอง ที่มีการใช้งานไปช่วงหนึ่งแล้วข้อมูลจะมากกว่าเครื่องหลักที่นำกลับมาใช้ เพื่อให้ข้อมูลเป็นปัจจุบันเหมือนกันทั้งสองเครื่อง

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


ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

ร้อยละ ทศนิยม 2 ตำแหน่งบวกคืน ไม่เท่ากับ 100 และ ปัญหาการคำนวณเลขทศนิยม เมื่อปัดเศษแล้วค่าที่บวกคืนไม่เท่าเดิม

กรณีนี้เป็นการทดสอบคำนวณเลขที่ต้องหารครึ่ง ตัวอย่างเช่น 2.33 / 2 = 1.165 กรณีนี้ถ้าเก็บค่านี้ในฐานข้อมูลที่กำหนดให้มีทศนิยมเพียง 2 หลัก ในฟิลด์ 2 ฟิลด์ซึ่งแต่ละฟิลด์จะถูกปัดขึ้นเป็น 1.7 เมื่อนำมาบวกกลับ 1.17 + 1.17 = 2.34 ถ้าอย่างนั้นเราก็ต้องกำหนดให้ฟิลด์ที่ใช้เก็บข้อมูลสามารถเก็บเลขทศนิยมได้หลายๆตัว ก็จะเก็บเลขทั้งสามหลักไว้ในฐานข้อมูลเลย 1.165 + 1.165 จะได้ 2.33 พอดี แต่ตอนเราแสดงรายงาน ก็จำเป็นจะต้องแสดงเลขทศนิยมเพียงแค่ 2 หลักอยู่ดี แล้วเราจะทำอย่างไรล่ะทีนี้ ก็เก็บมันเป็นเลขทศนิยมเต็มจำนวนซะแล้วตอนแสดงก็ต้องปัดเศษอยู่ดี เพราะค่า 1.165 ถ้าใช้ฟังก์ชั่นปัดเศษลง ก็จะเหลือ 1.16 แต่ถ้าปัดขึ้นก็จะเป็น 1.17 ซึ่งตัวเลขทั้งสองตัว เมื่อนำมารวมกัน ยังไงๆ ก็ไม่เท่ากับ 2.33 อยู่ดี (1.16+1.16 = 2.32,    1.17+1.17 = 2.34 ) อีกตัวอย่างนึงครับเป็นการถอด VAT ราคาสินค้า การคิดค่าทศนิยม แล้วผลรวมเพี้ยน เนื่องจากการปัดเศษ แล้วยอดเกินบ้าง ขาดบ้าง ตัวอย่างการถอด VAT ซื้อของมา 573.50 บาท ถอด VAT ออกมาได้ (573.50*7) / 100 = 40.145 ราคาสินค้า จะได้เป็น 573.50 - 40.145 = 533.3

FPDF ภาษาไทย กับ วรรณยุกต์ลอย

สำหรับงานเขียนโปรแกรมเว็บแอพฯ ด้วย PHP ที่ต้องทำการส่งออกข้อมูลเป็นไฟล์เอกสาร PDF นั้น เมื่อลองค้นดูแล้วก็เจอกับ FPDF เป็นคลาสที่เขียนขึ้นมาสำหรับงานนี้โดยเฉพาะ แต่กับภาษาไทยแล้วก็ต้องเจอกับปัญหาสุดคลาสสิคคือ รองรับภาษาไทยไม่ร้อยเปอร์เซ็นต์ ^^" บทความที่สอนการใช้งานเบื้องต้นที่ครอบคลุมการทำงานของ FPDF http://www.select2web.com/category/fpdf จะมีบทความแนะนำการใช้ฟอนต์ภาษไทยอยู่ที่ลิงค์นี้ http://www.select2web.com/fpdf/fpdf-lesson-10.html ดาวน์โหลดและสร้างฟอนต์มาใช้เอง http://witkub.blogspot.com/2011/11/fpdf.html สำหรับวิธีแก้ไขปัญหาวรรณยุกต์ลอย ลองดูวิธีจากที่นี่ http://punnawatt.blogspot.com/2009/07/pdf.html สุดท้ายแล้วลองทดลองมาหมด ก็ยังไม่ได้คำตอบที่ตรงใจครับ เพราะไม่สามารถแก้สระลอยได้อย่างแท้จริง เพราะเงื่อนไขข้อมูลจริงไม่อาจจะทำให้เหมือนในตัวอย่างได้ ก็เลยถอดใจเรื่องวรรณยุกต์ลอย นอกจากปัญหาเรื่องวรรณยุกต์ลอย แล้วฟอนต์บางตัวก็เกิดปัญหาวรรณยุกต์ซ้อนทับกันด้วย เช่นคำว่า "นี้" เมื่อผลลัพธ์ออกมา สระอี และวรรณยุกต์โท จะทับกัน สรุป 1. ดาวน์โหล

FPDI มาทำให้การสร้างเอกสาร PDF ด้วย PHP ง่ายขึ้นกันเถอะ

เคยใช้กันรึยังครับ เหมาะสำหรับงานสร้างแบบฟอร์ม PDF แล้วกรอกข้อมูลตามแบบฟอร์มทีหลัง หลักการคือโหลด PDF เข้ามา แล้วก็เขียนไฟล์ใหม่ขึ้นมา ส่วนที่มันไดนามิกมากๆ คงไม่เหมาะเท่าไหร่ ถ้าให้มองการทำงานของไลบรารี่ตัวนี้ ก็เหมือนกับที่เราสั่งทำใบเสร็จรับเงิน แล้วกรอกข้อมูลทีหลังนั่นเอง 1. สร้าง PDF เปล่าๆ ที่มีแค่ส่วนหัว และส่วนท้าย 2. เติมข้อมูลรายการลงในส่วนกลาง ถ้าเกินจำนวนแถวที่กำหนดให้ขึ้นหน้าใหม่ http://www.setasign.com/products/fpdi/about/ ตัวอย่างในลิงค์ต่อไปนี้ จะเป็นการนำข้อความในไฟล utf8test.txt ไปแทรกในไฟล์ logo.pdf http://www.setasign.com/products/fpdi/demos/tcpdf-demo/ PHP  CI  MANIA   -  PHP Code Generator  โปรแกรมช่วยสร้างโค้ด  "ลดเวลาการเขียนโปรแกรม" ราคาสุดคุ้ม    http://fastcoding.phpcodemania.com

PHP CI MANIA